Annotation of hatari/src/includes/main.h, revision 1.1.1.12

1.1       root        1: /*
1.1.1.6   root        2:   Hatari - main.h
                      3: 
                      4:   This file is distributed under the GNU Public License, version 2 or at
                      5:   your option any later version. Read the file gpl.txt for details.
1.1       root        6: */
                      7: 
1.1.1.6   root        8: #ifndef HATARI_MAIN_H
                      9: #define HATARI_MAIN_H
1.1       root       10: 
1.1.1.12! root       11: typedef signed char BOOL;
1.1       root       12: 
1.1.1.12! root       13: #define PROG_NAME      "Hatari v0.90" /* Name, version for window title */
        !            14: #define PROG_VERSION   "v0.90"
1.1       root       15: 
                     16: 
                     17: #include <stdio.h>
                     18: #include <stdlib.h>
                     19: #include <string.h>
                     20: #include <math.h>
                     21: #include <time.h>
                     22: 
1.1.1.8   root       23: #include <SDL_types.h>
                     24: 
                     25: 
1.1       root       26: #ifndef FALSE
                     27: #define FALSE 0
                     28: #define TRUE (!0)
                     29: #endif
                     30: 
1.1.1.12! root       31: #ifdef WIN32
        !            32: #define PATHSEP '\\'
        !            33: #else
        !            34: #define PATHSEP '/'
        !            35: #endif
        !            36: 
1.1       root       37: #define CALL_VAR(func)  { ((void(*)(void))func)(); }
                     38: 
                     39: 
1.1.1.4   root       40: /* 68000 operand sizes */
1.1       root       41: #define SIZE_BYTE  1
                     42: #define SIZE_WORD  2
                     43: #define SIZE_LONG  4
                     44: 
                     45: /* 68000 Register defines */
                     46: enum {
                     47:   REG_D0,    /* D0.. */
                     48:   REG_D1,
                     49:   REG_D2,
                     50:   REG_D3,
                     51:   REG_D4,
                     52:   REG_D5,
                     53:   REG_D6,
                     54:   REG_D7,    /* ..D7 */
                     55:   REG_A0,    /* A0.. */
                     56:   REG_A1,
                     57:   REG_A2,
                     58:   REG_A3,
                     59:   REG_A4,
                     60:   REG_A5,
                     61:   REG_A6,
1.1.1.8   root       62:   REG_A7,    /* ..A7 (also SP) */
1.1       root       63: };
                     64: 
                     65: /* 68000 Condition code's */
1.1.1.10  root       66: #define SR_AUX              0x0010
                     67: #define SR_NEG              0x0008
                     68: #define SR_ZERO             0x0004
                     69: #define SR_OVERFLOW         0x0002
                     70: #define SR_CARRY            0x0001
                     71: 
                     72: #define SR_CLEAR_AUX        0xffef
                     73: #define SR_CLEAR_NEG        0xfff7
                     74: #define SR_CLEAR_ZERO       0xfffb
                     75: #define SR_CLEAR_OVERFLOW   0xfffd
                     76: #define SR_CLEAR_CARRY      0xfffe
                     77: 
                     78: #define SR_CCODE_MASK       (SR_AUX|SR_NEG|SR_ZERO|SR_OVERFLOW|SR_CARRY)
                     79: #define SR_MASK             0xFFE0
                     80: 
                     81: #define SR_TRACEMODE        0x8000
                     82: #define SR_SUPERMODE        0x2000
                     83: #define SR_IPL              0x0700
1.1       root       84: 
1.1.1.10  root       85: #define SR_CLEAR_IPL        0xf8ff
1.1       root       86: #define SR_CLEAR_TRACEMODE  0x7fff
                     87: #define SR_CLEAR_SUPERMODE  0xdfff
                     88: 
                     89: /* Exception vectors */
1.1.1.6   root       90: #define  EXCEPTION_BUSERROR   0x00000008
1.1       root       91: #define  EXCEPTION_ADDRERROR  0x0000000c
1.1.1.6   root       92: #define  EXCEPTION_ILLEGALINS 0x00000010
                     93: #define  EXCEPTION_DIVZERO    0x00000014
                     94: #define  EXCEPTION_CHK        0x00000018
                     95: #define  EXCEPTION_TRAPV      0x0000001c
                     96: #define  EXCEPTION_TRACE      0x00000024
                     97: #define  EXCEPTION_LINE_A     0x00000028
                     98: #define  EXCEPTION_LINE_F     0x0000002c
                     99: #define  EXCEPTION_HBLANK     0x00000068
                    100: #define  EXCEPTION_VBLANK     0x00000070
                    101: #define  EXCEPTION_TRAP0      0x00000080
                    102: #define  EXCEPTION_TRAP1      0x00000084
                    103: #define  EXCEPTION_TRAP2      0x00000088
                    104: #define  EXCEPTION_TRAP13     0x000000B4
                    105: #define  EXCEPTION_TRAP14     0x000000B8
1.1       root      106: 
1.1.1.6   root      107: /* Find IPL - don't forget to call MakeSR() before you use it! */
1.1       root      108: #define FIND_IPL    ((SR>>8)&0x7)
                    109: 
                    110: /* Size of 68000 instructions */
                    111: #define MAX_68000_INSTRUCTION_SIZE  10  /* Longest 68000 instruction is 10 bytes(6+4) */
                    112: #define MIN_68000_INSTRUCTION_SIZE  2   /* Smallest 68000 instruction is 2 bytes(ie NOP) */
                    113: 
                    114: /* Illegal Opcode used to help emulation. eg. free entries are 8 to 15 inc' */
                    115: #define  GEMDOS_OPCODE        8  /* Free op-code to intercept GemDOS trap */
1.1.1.7   root      116: #define  SYSINIT_OPCODE      10  /* Free op-code to initialize system (connected drives etc.) */
1.1       root      117: #define  VDI_OPCODE          12  /* Free op-code to call VDI handlers AFTER Trap#2 */
1.1.1.6   root      118: 
1.1       root      119: 
                    120: #define PRG_HEADER_SIZE    0x1c  /* Size of header at start of ST .prg files */
                    121: 
                    122: 
                    123: extern BOOL bQuitProgram;
1.1.1.2   root      124: extern BOOL bEnableDebug;
1.1.1.8   root      125: extern char szWorkingDir[FILENAME_MAX];
                    126: 
1.1       root      127: 
                    128: extern void Main_MemorySnapShot_Capture(BOOL bSave);
                    129: extern void Main_PauseEmulation(void);
                    130: extern void Main_UnPauseEmulation(void);
1.1.1.12! root      131: extern void Main_WaitOnVbl(void);
1.1.1.9   root      132: extern void Main_WarpMouse(int x, int y);
                    133: extern void Main_EventHandler(void);
1.1       root      134: 
1.1.1.6   root      135: #endif /* ifndef HATARI_MAIN_H */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.