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

1.1     ! root        1: /*
        !             2:   Hatari
        !             3: */
        !             4: 
        !             5: #define  BUS_ERROR_ADDR  0xE00000           // Address below here causes bus error exception
        !             6: 
        !             7: #define INTERCEPT_WORKSPACE_SIZE  (8*1024)  // 8k, size of intercept lists
        !             8: 
        !             9: // List of hardware addresses to be intercepted
        !            10: enum {
        !            11:   INTERCEPT_NULL,
        !            12:   INTERCEPT_VIDEOHIGH,       //0xff8205 byte
        !            13:   INTERCEPT_VIDEOMED,        //0xff8207 byte
        !            14:   INTERCEPT_VIDEOLOW,        //0xff8209 byte
        !            15:   INTERCEPT_VIDEOSYNC,       //0xff820a byte
        !            16:   INTERCEPT_VIDEOBASELOW,    //0xff820d byte
        !            17:   INTERCEPT_LINEWIDTH,       //0xff820e byte
        !            18:   INTERCEPT_COLOUR0,         //0xff8240 word
        !            19:   INTERCEPT_COLOUR1,         //0xff8242 word
        !            20:   INTERCEPT_COLOUR2,         //0xff8244 word
        !            21:   INTERCEPT_COLOUR3,         //0xff8246 word
        !            22:   INTERCEPT_COLOUR4,         //0xff8248 word
        !            23:   INTERCEPT_COLOUR5,         //0xff824a word
        !            24:   INTERCEPT_COLOUR6,         //0xff824c word
        !            25:   INTERCEPT_COLOUR7,         //0xff824e word
        !            26:   INTERCEPT_COLOUR8,         //0xff8250 word
        !            27:   INTERCEPT_COLOUR9,         //0xff8252 word
        !            28:   INTERCEPT_COLOUR10,        //0xff8254 word
        !            29:   INTERCEPT_COLOUR11,        //0xff8256 word
        !            30:   INTERCEPT_COLOUR12,        //0xff8258 word
        !            31:   INTERCEPT_COLOUR13,        //0xff825a word
        !            32:   INTERCEPT_COLOUR14,        //0xff825c word
        !            33:   INTERCEPT_COLOUR15,        //0xff825e word
        !            34:   INTERCEPT_SHIFTERMODE,     //0xff8260 byte
        !            35:   INTERCEPT_DISKCONTROL,     //0xff8604 word
        !            36:   INTERCEPT_DMASTATUS,       //0xff8606 word
        !            37:   INTERCEPT_PSG_REGISTER,    //0xff8800 byte
        !            38:   INTERCEPT_PSG_DATA,        //0xff8802 byte
        !            39:   INTERCEPT_MICROWIREDATA,   //0xff8922 word
        !            40:   INTERCEPT_MONITOR,         //0xfffa01 byte
        !            41:   INTERCEPT_ACTIVE_EDGE,     //0xfffa03 byte
        !            42:   INTERCEPT_DATA_DIRECTION,  //0xfffa05 byte
        !            43:   INTERCEPT_ENABLE_A,        //0xfffa07 byte
        !            44:   INTERCEPT_ENABLE_B,        //0xfffa09 byte
        !            45:   INTERCEPT_PENDING_A,       //0xfffa0b byte
        !            46:   INTERCEPT_PENDING_B,       //0xfffa0d byte
        !            47:   INTERCEPT_INSERVICE_A,     //0xfffa0f byte
        !            48:   INTERCEPT_INSERVICE_B,     //0xfffa11 byte
        !            49:   INTERCEPT_MASK_A,          //0xfffa13 byte
        !            50:   INTERCEPT_MASK_B,          //0xfffa15 byte
        !            51:   INTERCEPT_VECTOR_REG,      //0xfffa17 byte
        !            52:   INTERCEPT_TIMERA_CTRL,     //0xfffa19 byte
        !            53:   INTERCEPT_TIMERB_CTRL,     //0xfffa1b byte
        !            54:   INTERCEPT_TIMERCD_CTRL,    //0xfffa1d byte
        !            55:   INTERCEPT_TIMERA_DATA,     //0xfffa1f byte
        !            56:   INTERCEPT_TIMERB_DATA,     //0xfffa21 byte
        !            57:   INTERCEPT_TIMERC_DATA,     //0xfffa23 byte
        !            58:   INTERCEPT_TIMERD_DATA,     //0xfffa25 byte
        !            59:   INTERCEPT_KEYBOARDCONTROL, //0xfffc00 byte
        !            60:   INTERCEPT_KEYBOARDDATA,    //0xfffc02 byte
        !            61:   INTERCEPT_MIDICONTROL,     //0xfffc04 byte
        !            62:   INTERCEPT_MIDIDATA,        //0xfffc06 byte
        !            63: 
        !            64:   INTERCEPT_COUNT
        !            65: };
        !            66: 
        !            67: // Hardware address details
        !            68: typedef struct {
        !            69:   unsigned int Address;        // ST hardware address
        !            70:   int SpanInBytes;             // SIZE_BYTE, SIZE_WORD or SIZE_LONG
        !            71:   void *ReadWriteFunc[2];      // Read,Write
        !            72: } INTERCEPT_ACCESS_FUNC;
        !            73: 
        !            74: // List of hardware address which are not documented, ie STe, TT, Falcon locations - should be unconnected on STfm
        !            75: typedef struct {
        !            76:   unsigned int Start_Address;
        !            77:   unsigned int End_Address;
        !            78: } INTERCEPT_ADDRESSRANGE;
        !            79: 
        !            80: 
        !            81: 
        !            82: uae_u32 Intercept_ReadByte(uaecptr addr);
        !            83: uae_u32 Intercept_ReadWord(uaecptr addr);
        !            84: uae_u32 Intercept_ReadLong(uaecptr addr);
        !            85: 
        !            86: void Intercept_WriteByte(uaecptr addr, uae_u32 val);
        !            87: void Intercept_WriteWord(uaecptr addr, uae_u32 val);
        !            88: void Intercept_WriteLong(uaecptr addr, uae_u32 val);
        !            89: 
        !            90: 
        !            91: 
        !            92: // Read intercept functions
        !            93: extern void Intercept_VideoHigh_ReadByte(void);
        !            94: extern void Intercept_VideoMed_ReadByte(void);
        !            95: extern void Intercept_VideoLow_ReadByte(void);
        !            96: extern void Intercept_VideoSync_ReadByte(void);
        !            97: extern void Intercept_VideoBaseLow_ReadByte(void);
        !            98: extern void Intercept_LineWidth_ReadByte(void);
        !            99: extern void Intercept_Colour0_ReadWord(void);
        !           100: extern void Intercept_Colour1_ReadWord(void);
        !           101: extern void Intercept_Colour2_ReadWord(void);
        !           102: extern void Intercept_Colour3_ReadWord(void);
        !           103: extern void Intercept_Colour4_ReadWord(void);
        !           104: extern void Intercept_Colour5_ReadWord(void);
        !           105: extern void Intercept_Colour6_ReadWord(void);
        !           106: extern void Intercept_Colour7_ReadWord(void);
        !           107: extern void Intercept_Colour8_ReadWord(void);
        !           108: extern void Intercept_Colour9_ReadWord(void);
        !           109: extern void Intercept_Colour10_ReadWord(void);
        !           110: extern void Intercept_Colour11_ReadWord(void);
        !           111: extern void Intercept_Colour12_ReadWord(void);
        !           112: extern void Intercept_Colour13_ReadWord(void);
        !           113: extern void Intercept_Colour14_ReadWord(void);
        !           114: extern void Intercept_Colour15_ReadWord(void);
        !           115: extern void Intercept_ShifterMode_ReadByte(void);
        !           116: extern void Intercept_DiskControl_ReadWord(void);
        !           117: extern void Intercept_DmaStatus_ReadWord(void);
        !           118: extern void Intercept_PSGRegister_ReadByte(void);
        !           119: extern void Intercept_PSGData_ReadByte(void);
        !           120: extern void Intercept_MicrowireData_ReadWord(void);
        !           121: extern void Intercept_Monitor_ReadByte(void);
        !           122: extern void Intercept_ActiveEdge_ReadByte(void);
        !           123: extern void Intercept_DataDirection_ReadByte(void);
        !           124: extern void Intercept_EnableA_ReadByte(void);
        !           125: extern void Intercept_EnableB_ReadByte(void);
        !           126: extern void Intercept_PendingA_ReadByte(void);
        !           127: extern void Intercept_PendingB_ReadByte(void);
        !           128: extern void Intercept_InServiceA_ReadByte(void);
        !           129: extern void Intercept_InServiceB_ReadByte(void);
        !           130: extern void Intercept_MaskA_ReadByte(void);
        !           131: extern void Intercept_MaskB_ReadByte(void);
        !           132: extern void Intercept_VectorReg_ReadByte(void);
        !           133: extern void Intercept_TimerACtrl_ReadByte(void);
        !           134: extern void Intercept_TimerBCtrl_ReadByte(void);
        !           135: extern void Intercept_TimerCDCtrl_ReadByte(void);
        !           136: extern void Intercept_TimerAData_ReadByte(void);
        !           137: extern void Intercept_TimerBData_ReadByte(void);
        !           138: extern void Intercept_TimerCData_ReadByte(void);
        !           139: extern void Intercept_TimerDData_ReadByte(void);
        !           140: extern void Intercept_KeyboardControl_ReadByte(void);
        !           141: extern void Intercept_KeyboardData_ReadByte(void);
        !           142: extern void Intercept_MidiControl_ReadByte(void);
        !           143: extern void Intercept_MidiData_ReadByte(void);
        !           144: 
        !           145: // Write intercept functions
        !           146: extern void Intercept_VideoHigh_WriteByte(void);
        !           147: extern void Intercept_VideoMed_WriteByte(void);
        !           148: extern void Intercept_VideoLow_WriteByte(void);
        !           149: extern void Intercept_VideoSync_WriteByte(void);
        !           150: extern void Intercept_VideoBaseLow_WriteByte(void);
        !           151: extern void Intercept_LineWidth_WriteByte(void);
        !           152: extern void Intercept_Colour0_WriteWord(void);
        !           153: extern void Intercept_Colour1_WriteWord(void);
        !           154: extern void Intercept_Colour2_WriteWord(void);
        !           155: extern void Intercept_Colour3_WriteWord(void);
        !           156: extern void Intercept_Colour4_WriteWord(void);
        !           157: extern void Intercept_Colour5_WriteWord(void);
        !           158: extern void Intercept_Colour6_WriteWord(void);
        !           159: extern void Intercept_Colour7_WriteWord(void);
        !           160: extern void Intercept_Colour8_WriteWord(void);
        !           161: extern void Intercept_Colour9_WriteWord(void);
        !           162: extern void Intercept_Colour10_WriteWord(void);
        !           163: extern void Intercept_Colour11_WriteWord(void);
        !           164: extern void Intercept_Colour12_WriteWord(void);
        !           165: extern void Intercept_Colour13_WriteWord(void);
        !           166: extern void Intercept_Colour14_WriteWord(void);
        !           167: extern void Intercept_Colour15_WriteWord(void);
        !           168: extern void Intercept_ShifterMode_WriteByte(void);
        !           169: extern void Intercept_DiskControl_WriteWord(void);
        !           170: extern void Intercept_DmaStatus_WriteWord(void);
        !           171: extern void Intercept_PSGRegister_WriteByte(void);
        !           172: extern void Intercept_PSGData_WriteByte(void);
        !           173: extern void Intercept_MicrowireData_WriteWord(void);
        !           174: extern void Intercept_Monitor_WriteByte(void);
        !           175: extern void Intercept_ActiveEdge_WriteByte(void);
        !           176: extern void Intercept_DataDirection_WriteByte(void);
        !           177: extern void Intercept_EnableA_WriteByte(void);
        !           178: extern void Intercept_EnableB_WriteByte(void);
        !           179: extern void Intercept_PendingA_WriteByte(void);
        !           180: extern void Intercept_PendingB_WriteByte(void);
        !           181: extern void Intercept_InServiceA_WriteByte(void);
        !           182: extern void Intercept_InServiceB_WriteByte(void);
        !           183: extern void Intercept_MaskA_WriteByte(void);
        !           184: extern void Intercept_MaskB_WriteByte(void);
        !           185: extern void Intercept_VectorReg_WriteByte(void);
        !           186: extern void Intercept_TimerACtrl_WriteByte(void);
        !           187: extern void Intercept_TimerBCtrl_WriteByte(void);
        !           188: extern void Intercept_TimerCDCtrl_WriteByte(void);
        !           189: extern void Intercept_TimerAData_WriteByte(void);
        !           190: extern void Intercept_TimerBData_WriteByte(void);
        !           191: extern void Intercept_TimerCData_WriteByte(void);
        !           192: extern void Intercept_TimerDData_WriteByte(void);
        !           193: extern void Intercept_KeyboardControl_WriteByte(void);
        !           194: extern void Intercept_KeyboardData_WriteByte(void);
        !           195: extern void Intercept_MidiControl_WriteByte(void);
        !           196: extern void Intercept_MidiData_WriteByte(void);
        !           197: 
        !           198: extern void Intercept_Init(void);
        !           199: extern void Intercept_UnInit(void);
        !           200: extern void Intercept_CreateTable(unsigned long *pInterceptTable[],int Span,int ReadWrite);
        !           201: extern void Intercept_ModifyTablesForBusErrors(void);
        !           202: extern void Intercept_ModifyTablesForNoMansLand(void);

unix.superglobalmegacorp.com

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