]> Shamusworld >> Repos - virtualjaguar/blob - src/include/tom.h
3ed0ccdfb20e7adaaa436105659434a7c06f8abf
[virtualjaguar] / src / include / tom.h
1 //////////////////////////////////////////////////////////////////////////////
2 //
3 //////////////////////////////////////////////////////////////////////////////
4 //
5 //
6 //
7 //
8 //
9 //
10 //////////////////////////////////////////////////////////////////////////////
11
12 #ifndef __TOM_H__
13 #define __TOM_H__
14
15 #include "jaguar.h"
16
17 #define TOM_VBLANK_DURATION_IN_SCANLINES 25
18
19 #define VIDEO_MODE_16BPP_CRY    0
20 #define VIDEO_MODE_24BPP_RGB    1
21 #define VIDEO_MODE_16BPP_DIRECT 2
22 #define VIDEO_MODE_16BPP_RGB    3
23
24
25 extern uint32 tom_width;
26 extern uint32 tom_height;
27
28 void tom_init(void);
29 void tom_reset(void);
30 void tom_done(void);
31 unsigned tom_byte_read(unsigned int offset);
32 unsigned tom_word_read(unsigned int offset);
33 void tom_byte_write(unsigned  offset, unsigned  data);
34 void tom_word_write(unsigned  offset, unsigned  data);
35 void tom_exec_scanline(int16 *backbuffer, int32 scanline, int8 render);
36 uint32 tom_getVideoModeWidth(void);
37 uint32 tom_getVideoModeHeight(void);
38 uint8 tom_getVideoMode(void);
39 uint8 *tom_get_ram_pointer(void);
40 uint16 tom_get_hdb(void);
41 uint16 tom_get_vdb(void);
42 uint16 tom_get_scanline(void);
43 uint32 tom_getHBlankWidthInPixels(void);
44
45 //////////////////////////////////////////////////////////////////////////////
46 // interrupts
47 //////////////////////////////////////////////////////////////////////////////
48 #define IRQ_VBLANK      0
49 #define IRQ_GPU         1
50 #define IRQ_HBLANK  2
51 #define IRQ_OPFLAG  IRQ_HBLANK
52 #define IRQ_TIMER       3
53 #define IRQ_DSP         4
54
55 int             tom_irq_enabled(int irq);
56 uint16  tom_irq_control_reg(void);
57 void    tom_set_irq_latch(int irq, int enabled);
58 void    tom_pit_exec(uint32 cycles);
59 void tom_set_pending_puck_int(void);
60 void tom_set_pending_timer_int(void);
61 void tom_set_pending_object_int(void);
62 void tom_set_pending_gpu_int(void);
63 void tom_set_pending_video_int(void);
64 void tom_reset_timer(void);
65
66
67 #endif