Annotation of hatari/src/includes/decode.h, revision 1.1

1.1     ! root        1: /*
        !             2:   Hatari
        !             3: */
        !             4: 
        !             5: extern   short int PendingInterruptCount;
        !             6: extern   int SoundCycles;
        !             7: 
        !             8: 
        !             9: /*extern   unsigned long Regs[16+1];*/
        !            10: /*extern   unsigned short int SR,SR_Before;*/
        !            11: /*extern   unsigned long PC;*/
        !            12: /*extern   unsigned long *Reg_SuperSP,*Reg_UserSP;*/
        !            13: 
        !            14: #ifndef UAESYSDEPS
        !            15: #include "sysdeps.h"
        !            16: #endif
        !            17: #ifndef UAEMEMORY
        !            18: #include "memory.h"
        !            19: #endif
        !            20: #ifndef UAENEWCPU
        !            21: #include "newcpu.h"
        !            22: #endif
        !            23: #define Regs regs.regs       /* Ouah - uggly hack - FIXME! */
        !            24: #define SR regs.sr
        !            25: #define PC regs.pc
        !            26: #define Reg_SuperSP regs.isp
        !            27: #define Reg_UserSP regs.usp
        !            28: 
        !            29: 
        !            30: /* Offset ST address to PC pointer: */
        !            31: #define STRAM_ADDR(Var)  ( (unsigned long)STRam+((unsigned long)Var&0x00ffffff) )
        !            32: 
        !            33: /*-----------------------------------------------------------------------*/
        !            34: /* Offsets from memory space program counter to immediate data(in wrong endian) */
        !            35: #define IMM_BYTE  SIZE_BYTE              /* Byte offset */
        !            36: #define IMM_WORD
        !            37: #define IMM_LONG
        !            38: 
        !            39: /*-----------------------------------------------------------------------*/
        !            40: /* Set clock times for each instruction, see '68000 timing' pages for details */
        !            41: /* NOTE All times are rounded up to nearest 4 cycles */
        !            42: #define  ROUND_CYCLES_TO4(var)  (((int)(var)+3)&0xfffffffc)
        !            43: 
        !            44: static inline void ADD_CYCLES(op,r,w)
        !            45: {
        !            46:  PendingInterruptCount-= (op+3)&0xfffffffc;
        !            47:  SoundCycles += (op+3)&0xfffffffc;
        !            48: }
        !            49: 
        !            50: 
        !            51: //-----------------------------------------------------------------------
        !            52: // Decode table structure offsets, see 'DecodeTable[]' MUST match 'decode.inc'
        !            53: #define DECODE_CYCLES    0                // Cycles for this instruction, includes <ea> etc...
        !            54: #define DECODE_FUNCTION    4              // Decode function to call
        !            55: #define DECODE_EA      8                  // <ea> Decode function
        !            56: #define DECODE_1      12                  // src/dest parameters
        !            57: #define DECODE_2      16
        !            58: #define DECODE_DISASS    20               // Disassembly function
        !            59: #define SIZEOF_DECODE    8
        !            60: 
        !            61: //-----------------------------------------------------------------------
        !            62: #define PENDING_INTERRUPT_FLAG_MFP      0x0001    // 'PendingInterruptFlag' masks, MUST match 'decode.inc'
        !            63: #define PENDING_INTERRUPT_FLAG_TRACE    0x0002
        !            64: #define  CLEAR_PENDING_INTERRUPT_FLAG_MFP  0xfffe
        !            65: #define  CLEAR_PENDING_INTERRUPT_FLAG_TRACE  0xfffd
        !            66: 
        !            67: //-----------------------------------------------------------------------
        !            68: #define INSTRUCTION_HISTORY_SIZE  8192            // MUST be ^2, and MUST match 'decode.inc'
        !            69: #define INSTRUCTION_HISTORY_MASK  (INSTRUCTION_HISTORY_SIZE-1)
        !            70: 
        !            71: //-----------------------------------------------------------------------
        !            72: #define  NUM_BREAKPOINTS    8                     // MUST match 'decode.inc'
        !            73: 
        !            74: //-----------------------------------------------------------------------
        !            75: // 68000 instruction emulation functions
        !            76: 
        !            77: /*
        !            78: extern   unsigned char PCCodeTable_NZVC[4096];
        !            79: extern   unsigned char PCCodeTable_NZV_CX_SAME[4096];
        !            80: extern   unsigned long ShiftCycleTable_ByteWord[64];
        !            81: extern   unsigned long ShiftCycleTable_Long[64];
        !            82: extern   int InsPC;
        !            83: extern   BOOL bInSuperMode;
        !            84: extern   unsigned long StackSave;
        !            85: extern   unsigned long DecodeTable[65536*SIZEOF_DECODE];
        !            86: extern   unsigned long InstructionHistory[INSTRUCTION_HISTORY_SIZE];
        !            87: extern   int InstructionHistoryIndex;
        !            88: extern   unsigned long BreakPointInstruction;
        !            89: extern   unsigned long AddressBreakpoints[NUM_BREAKPOINTS];
        !            90: extern   unsigned long BreakOnAddress;
        !            91: extern   unsigned long CPUStopped;
        !            92: */
        !            93: extern   unsigned long EmuCCode;
        !            94: extern   unsigned char STRam[16*1024*1024];
        !            95: extern   short int PendingInterruptFlag;
        !            96: extern   void *PendingInterruptFunction;
        !            97: extern   unsigned long STRamEnd;
        !            98: extern   unsigned long STRamEnd_BusErr;
        !            99: extern   unsigned long ExceptionVector;
        !           100: extern   unsigned long BusAddressLocation;

unix.superglobalmegacorp.com

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