]> Shamusworld >> Repos - virtualjaguar/blob - src/tom.h
Fixes for the 68K IRQ system. There's probably a little more to do though.
[virtualjaguar] / src / tom.h
1 //
2 // TOM Header file
3 //
4
5 #ifndef __TOM_H__
6 #define __TOM_H__
7
8 //#include "jaguar.h"
9 //#include "types.h"
10 #include "memory.h"
11
12 #define VIDEO_MODE_16BPP_CRY    0
13 #define VIDEO_MODE_24BPP_RGB    1
14 #define VIDEO_MODE_16BPP_DIRECT 2
15 #define VIDEO_MODE_16BPP_RGB    3
16
17 // 68000 Interrupt bit positions (enabled at $F000E0)
18
19 enum { IRQ_VBLANK = 0, IRQ_GPU, IRQ_OPFLAG, IRQ_TIMER, IRQ_DSP };
20
21 void TOMInit(void);
22 void TOMReset(void);
23 void TOMDone(void);
24
25 uint8 TOMReadByte(uint32 offset, uint32 who = UNKNOWN);
26 uint16 TOMReadWord(uint32 offset, uint32 who = UNKNOWN);
27 void TOMWriteByte(uint32 offset, uint8 data, uint32 who = UNKNOWN);
28 void TOMWriteWord(uint32 offset, uint16 data, uint32 who = UNKNOWN);
29
30 //void TOMExecScanline(int16 * backbuffer, int32 scanline, bool render);
31 void TOMExecScanline(uint16 scanline, bool render);
32 uint32 TOMGetVideoModeWidth(void);
33 uint32 TOMGetVideoModeHeight(void);
34 uint8 TOMGetVideoMode(void);
35 uint8 * TOMGetRamPointer(void);
36 uint16 TOMGetHDB(void);
37 uint16 TOMGetVDB(void);
38 //uint16 tom_get_scanline(void);
39 //uint32 tom_getHBlankWidthInPixels(void);
40
41 int TOMIRQEnabled(int irq);
42 uint16 TOMIRQControlReg(void);
43 void TOMSetIRQLatch(int irq, int enabled);
44 void TOMExecPIT(uint32 cycles);
45 void TOMSetPendingJERRYInt(void);
46 void TOMSetPendingTimerInt(void);
47 void TOMSetPendingObjectInt(void);
48 void TOMSetPendingGPUInt(void);
49 void TOMSetPendingVideoInt(void);
50 void TOMResetPIT(void);
51
52 //uint32 TOMGetSDLScreenPitch(void);
53 void TOMResetBackbuffer(uint32 * backbuffer);
54
55 // Exported variables
56
57 extern uint32 tomWidth;
58 extern uint32 tomHeight;
59 extern uint8 tomRam8[];
60 extern uint32 tomTimerPrescaler;
61 extern uint32 tomTimerDivider;
62 extern int32 tomTimerCounter;
63
64 extern uint32 tomDeviceWidth;
65
66 #endif  // __TOM_H__