emuapi.h
1 #ifndef EMUAPI_H 2 #define EMUAPI_H 3 4 //#define INVX 1 5 //#define INVY 1 6 #define HAS_SND 1 7 #define CUSTOM_SND 1 8 #define HAS_I2CKBD 1 9 //#define TIMER_REND 1 10 11 #define EXTRA_HEAP 0x10 12 13 // Title: < > 14 #define TITLE " AtariST Emulator " 15 #define ROMSDIR "/st" 16 17 #define emu_Init(ROM) {ast_Init(); ast_Start(ROM);} 18 #define emu_Step(x) {ast_Step();} 19 #define emu_Input(x) {ast_Input(x);} 20 21 #define PALETTE_SIZE 256 22 #define VID_FRAME_SKIP 0x0 23 #define TFT_VBUFFER_YCROP 0 24 #define SINGLELINE_RENDERING 1 25 26 #define R32(rgb) ((rgb>>16)&0xff) 27 #define G32(rgb) ((rgb>>8)&0xff) 28 #define B32(rgb) (rgb & 0xff) 29 30 #define ACTION_NONE 0 31 #define ACTION_MAXKBDVAL 16 32 #define ACTION_EXITKBD 128 33 #define ACTION_RUNTFT 129 34 #define ACTION_RUNVGA 130 35 36 #ifdef KEYMAP_PRESENT 37 38 #define TAREA_W_DEF 32 39 #define TAREA_H_DEF 32 40 #define TAREA_END 255 41 #define TAREA_NEW_ROW 254 42 #define TAREA_NEW_COL 253 43 #define TAREA_XY 252 44 #define TAREA_WH 251 45 46 #define KEYBOARD_X 16 47 #define KEYBOARD_Y 32 48 #define KEYBOARD_KEY_H 30 49 #define KEYBOARD_KEY_W 28 50 #define KEYBOARD_HIT_COLOR RGBVAL16(0xff,0x00,0x00) 51 52 const unsigned short keysw[]= 53 { TAREA_NEW_ROW,18,18,18,18,18,18,18,18,18,18, 54 TAREA_NEW_ROW,18,18,18,18,18,18,18,18,18,18, 55 TAREA_NEW_ROW,18,18,18,18,18,18,18,18,18,18, 56 TAREA_NEW_ROW,18,18,18,18,18,18,18,18,18,18, 57 //TAREA_NEW_ROW,18,18,18,18,18,18,18,18,18,18, 58 TAREA_END}; 59 60 const unsigned short key_map1[]={ 61 109, 110, 111, 106, 107, 108, 103, 104, 105, 112, // keypad 62 16,17,18,19,20,21,22,23,24,25, 63 30,31,32,33,34,35,36,37,38,28, 64 44,45,46,47,48,49,50,51,52,57 }; 65 66 const unsigned short key_map2[]={ 67 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, // Function keys 68 16,17,18,19,20,21,22,23,24,25, 69 30,31,32,33,34,35,36,37,38,28, 70 44,45,46,47,48,49,50,51,52,57 }; 71 72 const unsigned short key_map3[]={ 73 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, // digits 74 16,17,18,19,20,21,22,23,24,25, 75 30,31,32,33,34,35,36,37,38,28, 76 44,45,46,47,48,49,50,51,52,57 }; 77 78 79 #ifdef HAS_I2CKBD 80 const unsigned short i2ckeys[] = { 81 0X0080,0X0008,0X0180,0X0108,0X0280,0X0208,0X0380,0X0308,0X0480,0X0408, 82 0X0040,0X0004,0X0140,0X0104,0X0240,0X0204,0X0340,0X0304,0X0440,0X0404, 83 0X0020,0X0002,0X0120,0X0102,0X0220,0X0202,0X0320,0X0302,0X0420,0X0402, 84 0X0010,0X0001,0X0110,0X0101,0X0210,0X0201,0X0310,0X0301,0X0410,0X0401 }; 85 //0X0580,0X0540,0X0520,0X0510,0X0508,0X0504,0X0502,0X0501,0X0680,0X0640 }; 86 #endif 87 88 #endif 89 90 91 92 #define MASK_JOY2_RIGHT 0x0001 93 #define MASK_JOY2_LEFT 0x0002 94 #define MASK_JOY2_UP 0x0004 95 #define MASK_JOY2_DOWN 0x0008 96 #define MASK_JOY2_BTN 0x0010 97 #define MASK_KEY_USER1 0x0020 98 #define MASK_KEY_USER2 0x0040 99 #define MASK_KEY_USER3 0x0080 100 #define MASK_JOY1_RIGHT 0x0100 101 #define MASK_JOY1_LEFT 0x0200 102 #define MASK_JOY1_UP 0x0400 103 #define MASK_JOY1_DOWN 0x0800 104 #define MASK_JOY1_BTN 0x1000 105 #define MASK_KEY_USER4 0x2000 106 107 108 109 extern void emu_init(void); 110 extern void emu_printf(char * text); 111 extern void emu_printi(int val); 112 extern void * emu_Malloc(int size); 113 extern void emu_Free(void * pt); 114 115 extern int emu_FileOpen(char * filename); 116 extern int emu_FileRead(char * buf, int size); 117 extern unsigned char emu_FileGetc(void); 118 extern int emu_FileSeek(int seek); 119 extern void emu_FileClose(void); 120 extern int emu_FileSize(char * filename); 121 extern int emu_LoadFile(char * filename, char * buf, int size); 122 extern int emu_LoadFileSeek(char * filename, char * buf, int size, int seek); 123 extern void emu_FileTempInit(void); 124 extern void emu_FileTempRead(int addr, unsigned char * val, int n); 125 extern void emu_FileTempWrite(int addr, unsigned char val); 126 127 extern void emu_SetPaletteEntry(unsigned char r, unsigned char g, unsigned char b, int index); 128 extern void emu_DrawScreen(unsigned char * VBuf, int width, int height, int stride); 129 extern void emu_DrawLine(unsigned char * VBuf, int width, int height, int line); 130 extern void emu_DrawLine16(unsigned short * VBuf, int width, int height, int line); 131 extern void emu_DrawVsync(void); 132 extern int emu_FrameSkip(void); 133 extern void * emu_LineBuffer(int line); 134 135 extern void emu_InitJoysticks(void); 136 extern int emu_SwapJoysticks(int statusOnly); 137 extern unsigned short emu_DebounceLocalKeys(void); 138 extern int emu_ReadKeys(void); 139 extern int emu_GetPad(void); 140 extern int emu_ReadAnalogJoyX(int min, int max); 141 extern int emu_ReadAnalogJoyY(int min, int max); 142 extern int emu_ReadI2CKeyboard(void); 143 extern void emu_sndPlaySound(int chan, int volume, int freq); 144 extern void emu_sndPlayBuzz(int size, int val); 145 extern void emu_sndInit(); 146 extern void emu_resetus(void); 147 extern int emu_us(void); 148 149 extern int emu_setKeymap(int index); 150 151 152 #endif 153 154 155 156