]> Shamusworld >> Repos - virtualjaguar/blob - src/include/tom.h
Update for 1.0.6 release
[virtualjaguar] / src / include / tom.h
1 //
2 // TOM Header file
3 //
4
5 #ifndef __TOM_H__
6 #define __TOM_H__
7
8 #include "jaguar.h"
9
10 #define VIDEO_MODE_16BPP_CRY    0
11 #define VIDEO_MODE_24BPP_RGB    1
12 #define VIDEO_MODE_16BPP_DIRECT 2
13 #define VIDEO_MODE_16BPP_RGB    3
14
15 // 68000 Interrupt bit positions (enabled at $F000E0)
16
17 enum { IRQ_VBLANK = 0, IRQ_GPU, IRQ_OPFLAG, IRQ_TIMER, IRQ_DSP };
18
19 void tom_init(void);
20 void tom_reset(void);
21 void tom_done(void);
22
23 uint8 TOMReadByte(uint32 offset, uint32 who = UNKNOWN);
24 uint16 TOMReadWord(uint32 offset, uint32 who = UNKNOWN);
25 void TOMWriteByte(uint32 offset, uint8 data, uint32 who = UNKNOWN);
26 void TOMWriteWord(uint32 offset, uint16 data, uint32 who = UNKNOWN);
27
28 void tom_exec_scanline(int16 * backbuffer, int32 scanline, bool render);
29 uint32 tom_getVideoModeWidth(void);
30 uint32 tom_getVideoModeHeight(void);
31 uint8 tom_getVideoMode(void);
32 uint8 * tom_get_ram_pointer(void);
33 uint16 tom_get_hdb(void);
34 uint16 tom_get_vdb(void);
35 //uint16 tom_get_scanline(void);
36 //uint32 tom_getHBlankWidthInPixels(void);
37
38 int     tom_irq_enabled(int irq);
39 uint16 tom_irq_control_reg(void);
40 void tom_set_irq_latch(int irq, int enabled);
41 void tom_pit_exec(uint32 cycles);
42 void tom_set_pending_jerry_int(void);
43 void tom_set_pending_timer_int(void);
44 void tom_set_pending_object_int(void);
45 void tom_set_pending_gpu_int(void);
46 void tom_set_pending_video_int(void);
47 void tom_reset_timer(void);
48
49 uint32 TOMGetSDLScreenPitch(void);
50
51 // Exported variables
52
53 extern uint32 tom_width;
54 extern uint32 tom_height;
55
56 #endif  // __TOM_H__