--- hatari/src/includes/main.h 2019/04/01 07:09:23 1.1.1.2 +++ hatari/src/includes/main.h 2019/04/01 07:10:35 1.1.1.6 @@ -1,15 +1,18 @@ /* - Hatari + Hatari - main.h + + This file is distributed under the GNU Public License, version 2 or at + your option any later version. Read the file gpl.txt for details. */ -#ifndef MAIN_H -#define MAIN_H +#ifndef HATARI_MAIN_H +#define HATARI_MAIN_H typedef int BOOL; -#define PROG_NAME "Hatari v0.10" /* Name, version for window title */ -#define PROG_VERSION "v0.10" -#define VERSION_STRING "0.10 " /* Always 6 bytes(inc' NULL) */ +#define PROG_NAME "Hatari v0.30" /* Name, version for window title */ +#define PROG_VERSION "v0.30" +#define VERSION_STRING "0.30 " /* Always 6 bytes(inc' NULL) */ #define VERSION_STRING_SIZE 6 /* Size of above(inc' NULL) */ //#define TOTALLY_FINAL_VERSION /* Web release version... */ @@ -23,10 +26,6 @@ typedef int BOOL; #define DEBUG_TO_FILE /* Use debug.txt files */ #endif -#ifndef TOTALLY_FINAL_VERSION - #define FORCE_WORKING_DIR /* Set default directory when running in MsDev */ -#endif - #ifdef TOTALLY_FINAL_VERSION #undef DEBUG_TO_FILE /* Don't use debug files for final release */ #undef FIND_PERFORMANCE @@ -35,9 +34,6 @@ typedef int BOOL; #define MAX_FILENAME_LENGTH 256 #define MAX_STRING_LENGTH 512 -#define DIRECTINPUT_VERSION 0x0500 - -#define MAX_PASSED_PARAMETERS 4 /* Number of passed parameters from command line */ #include #include @@ -54,7 +50,7 @@ typedef int BOOL; #define CALL_VAR(func) { ((void(*)(void))func)(); } -// Binary conversion macro's +/* Binary conversion macro's */ #define BIN2(a,b) ((a<<1)+(b)) #define BIN3(a,b,c) ((a<<2)+(b<<1)+(c)) #define BIN4(a,b,c,d) ((a<<3)+(b<<2)+(c<<1)+(d)) @@ -67,7 +63,7 @@ typedef int BOOL; #define BIN14(a,b,c,d,e,f,g,h,i,j,k,l,m,n) ((a<<13)+(b<<12)+(c<<11)+(d<<10)+(e<<9)+(f<<8)+(g<<7)+(h<<6)+(i<<5)+(j<<4)+(k<<3)+(l<<2)+(m<<1)+(n)) #define BIN16(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p) ((a<<15)+(b<<14)+(c<<13)+(d<<12)+(e<<11)+(f<<10)+(g<<9)+(h<<8)+(i<<7)+(j<<6)+(k<<5)+(l<<4)+(m<<3)+(n<<2)+(o<<1)+(p)) -// 68000 operand sizes +/* 68000 operand sizes */ #define SIZE_BYTE 1 #define SIZE_WORD 2 #define SIZE_LONG 4 @@ -90,15 +86,14 @@ enum { REG_A5, REG_A6, REG_A7, /* ..A7(also SP) */ - REG_A8=17 /* User/Super Stack Pointer */ /* FIXME: Nasty remap to regs.isp in decode.h */ }; /* PC Condition code's */ -#define PC_CARRY 0x0001 // Bit 0 -#define PC_AUX 0x0010 // Bit 4 -#define PC_ZERO 0x0040 // Bit 6 -#define PC_NEG 0x0080 // Bit 7 -#define PC_OVERFLOW 0x0800 // Bit 11 +#define PC_CARRY 0x0001 /* Bit 0 */ +#define PC_AUX 0x0010 /* Bit 4 */ +#define PC_ZERO 0x0040 /* Bit 6 */ +#define PC_NEG 0x0080 /* Bit 7 */ +#define PC_OVERFLOW 0x0800 /* Bit 11 */ /* 68000 Condition code's */ #define SR_AUX 0x0010 @@ -138,24 +133,24 @@ enum { #define EMU_CLEAR_C 0xffef /* Exception vectors */ -#define EXCEPTION_BUSERROR 0x00000008 +#define EXCEPTION_BUSERROR 0x00000008 #define EXCEPTION_ADDRERROR 0x0000000c -#define EXCEPTION_ILLEGALINS 0x00000010 -#define EXCEPTION_DIVZERO 0x00000014 -#define EXCEPTION_CHK 0x00000018 -#define EXCEPTION_TRAPV 0x0000001c -#define EXCEPTION_TRACE 0x00000024 -#define EXCEPTION_LINE_A 0x00000028 -#define EXCEPTION_LINE_F 0x0000002c -#define EXCEPTION_HBLANK 0x00000068 -#define EXCEPTION_VBLANK 0x00000070 -#define EXCEPTION_TRAP0 0x00000080 -#define EXCEPTION_TRAP1 0x00000084 -#define EXCEPTION_TRAP2 0x00000088 -#define EXCEPTION_TRAP13 0x000000B4 -#define EXCEPTION_TRAP14 0x000000B8 +#define EXCEPTION_ILLEGALINS 0x00000010 +#define EXCEPTION_DIVZERO 0x00000014 +#define EXCEPTION_CHK 0x00000018 +#define EXCEPTION_TRAPV 0x0000001c +#define EXCEPTION_TRACE 0x00000024 +#define EXCEPTION_LINE_A 0x00000028 +#define EXCEPTION_LINE_F 0x0000002c +#define EXCEPTION_HBLANK 0x00000068 +#define EXCEPTION_VBLANK 0x00000070 +#define EXCEPTION_TRAP0 0x00000080 +#define EXCEPTION_TRAP1 0x00000084 +#define EXCEPTION_TRAP2 0x00000088 +#define EXCEPTION_TRAP13 0x000000B4 +#define EXCEPTION_TRAP14 0x000000B8 -/* Find IPL */ +/* Find IPL - don't forget to call MakeSR() before you use it! */ #define FIND_IPL ((SR>>8)&0x7) /* Size of 68000 instructions */ @@ -183,33 +178,33 @@ enum { Pixels per NOP (med res) : 8 Pixels per NOP (high res) : 16 */ -#define SCREEN_START_HBL 64 /* This is usually the first line of the displayed screen */ +#define SCREEN_START_HBL 64 /* This is usually the first line of the displayed screen */ #define SCREEN_HEIGHT_HBL 200 /* This is usually the height of the screen */ #define FIRST_VISIBLE_HBL (SCREEN_START_HBL-OVERSCAN_TOP) /* Normal screen starts 64 lines in, top border is 28 lines */ -#define NUM_VISIBLE_LINES (OVERSCAN_TOP+SCREEN_HEIGHT_HBL+OVERSCAN_BOTTOM) /* Number of visible screen lines including top/bottom borders */ +#define NUM_VISIBLE_LINES (OVERSCAN_TOP+SCREEN_HEIGHT_HBL+OVERSCAN_BOTTOM) /* Number of visible screen lines including top/bottom borders */ /* Assumes 32 pixels left+right */ #define SCREENBYTES_LEFT 16 /* Bytes for left border in ST screen */ -#define SCREENBYTES_MIDDLE 160 /* Middle(320 pixels) */ -#define SCREENBYTES_RIGHT 16 /* right border */ +#define SCREENBYTES_MIDDLE 160 /* Middle(320 pixels) */ +#define SCREENBYTES_RIGHT 16 /* right border */ #define SCREENBYTES_LINE (SCREENBYTES_LEFT+SCREENBYTES_MIDDLE+SCREENBYTES_RIGHT) /* Overscan values */ -#define OVERSCAN_LEFT (SCREENBYTES_LEFT*2) /* Number of pixels in each border */ +#define OVERSCAN_LEFT (SCREENBYTES_LEFT*2) /* Number of pixels in each border */ #define OVERSCAN_RIGHT (SCREENBYTES_RIGHT*2) -#define OVERSCAN_TOP 29 -#define OVERSCAN_BOTTOM 38 -#define OVERSCAN_MIDDLE 320 /* Number of pixels across screen(low res) */ - -#define SCREEN_START_CYCLE 96 /* Cycle first normal pixel appears on */ -#define SCANLINES_PER_FRAME 313 /* Number of scan lines per frame */ -#define CYCLES_PER_LINE 512 /* Cycles per horiztonal line scan */ +#define OVERSCAN_TOP 29 +#define OVERSCAN_BOTTOM 38 +#define OVERSCAN_MIDDLE 320 /* Number of pixels across screen(low res) */ + +#define SCREEN_START_CYCLE 96 /* Cycle first normal pixel appears on */ +#define SCANLINES_PER_FRAME 313 /* Number of scan lines per frame */ +#define CYCLES_PER_LINE 512 /* Cycles per horiztonal line scan */ #define CYCLES_PER_FRAME (SCANLINES_PER_FRAME*CYCLES_PER_LINE) /* Cycles per VBL @ 50fps = 160256 */ -#define CYCLES_VBL_IN (SCREEN_START_HBL*CYCLES_PER_LINE) /*((28+64)*CYCLES_PER_LINE) */ -#define CYCLES_PER_SEC (CYCLES_PER_FRAME*50) /* Cycles per second */ -#define CYCLES_ENDLINE (64+320+88+40) /* DE(Display Enable) */ -#define CYCLES_HBL (CYCLES_PER_LINE+96) /* Cycles for first HBL - very inaccurate on ST */ -#define CYCLES_DEBUGGER 3000 /* Check debugger every 'x' cycles */ +#define CYCLES_VBL_IN (SCREEN_START_HBL*CYCLES_PER_LINE) /*((28+64)*CYCLES_PER_LINE) */ +#define CYCLES_PER_SEC (CYCLES_PER_FRAME*50) /* Cycles per second */ +#define CYCLES_ENDLINE (64+320+88+40) /* DE(Display Enable) */ +#define CYCLES_HBL (CYCLES_PER_LINE+96) /* Cycles for first HBL - very inaccurate on ST */ +#define CYCLES_DEBUGGER 3000 /* Check debugger every 'x' cycles */ /* Illegal Opcode used to help emulation. eg. free entries are 8 to 15 inc' */ #define GEMDOS_OPCODE 8 /* Free op-code to intercept GemDOS trap */ @@ -218,23 +213,10 @@ enum { #define TIMERD_OPCODE 11 /* Free op-code to prevent Timer D starting in GemDOS */ #define VDI_OPCODE 12 /* Free op-code to call VDI handlers AFTER Trap#2 */ #define LINEA_OPCODE 13 /* Free op-code to call handlers AFTER Line-A */ -/* Other Opcodes */ -#define RTS_OPCODE BIN16(0,1,0,0,1,1,1,0,0,1,1,1,0,1,0,1) -#define NOP_OPCODE BIN16(0,1,0,0,1,1,1,0,0,1,1,1,0,0,0,1) -#define BRAW_OPCODE BIN16(0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0) - -/* Handy invalid address for flags(24-bit address can never be this) */ -#define BRK_DISABLED 0xffffffff -#define BRK_SINGLE_INSTRUCTION 0xfffffffe -#define BRK_STOP 0xfffffffd + #define PRG_HEADER_SIZE 0x1c /* Size of header at start of ST .prg files */ -/* Emulation states */ -enum { - EMULATION_INACTIVE, - EMULATION_ACTIVE -}; extern BOOL bQuitProgram; extern BOOL bEnableDebug; @@ -250,9 +232,5 @@ extern int Main_Message(char *lpText, ch extern void Main_PauseEmulation(void); extern void Main_UnPauseEmulation(void); extern void Main_EventHandler(); -extern void Main_WaitVBLEvent(void); -extern BOOL Main_AlreadyWaitingVBLEvent(void); -/*extern void Main_SoundTimerFunc(void);*/ -extern void Main_SetSpeedThreadTimer(int nMinMaxSpeed); -#endif /* ifndef MAIN_H */ +#endif /* ifndef HATARI_MAIN_H */