]> Shamusworld >> Repos - virtualjaguar/blobdiff - src/include/tom.h
Changes for the upcoming 1.0.5 release
[virtualjaguar] / src / include / tom.h
index 3ed0ccdfb20e7adaaa436105659434a7c06f8abf..be51f63747a08ad6143efc1fbfb3ba008ff7874f 100644 (file)
@@ -1,61 +1,55 @@
-//////////////////////////////////////////////////////////////////////////////
 //
-//////////////////////////////////////////////////////////////////////////////
+// TOM Header file
 //
-//
-//
-//
-//
-//
-//////////////////////////////////////////////////////////////////////////////
 
 #ifndef __TOM_H__
 #define __TOM_H__
 
 #include "jaguar.h"
 
-#define TOM_VBLANK_DURATION_IN_SCANLINES 25
+//#define TOM_VBLANK_DURATION_IN_SCANLINES 25
 
 #define VIDEO_MODE_16BPP_CRY   0
 #define VIDEO_MODE_24BPP_RGB   1
 #define VIDEO_MODE_16BPP_DIRECT 2
 #define VIDEO_MODE_16BPP_RGB   3
 
-
 extern uint32 tom_width;
 extern uint32 tom_height;
 
 void tom_init(void);
 void tom_reset(void);
 void tom_done(void);
-unsigned tom_byte_read(unsigned int offset);
-unsigned tom_word_read(unsigned int offset);
-void tom_byte_write(unsigned  offset, unsigned  data);
-void tom_word_write(unsigned  offset, unsigned  data);
-void tom_exec_scanline(int16 *backbuffer, int32 scanline, int8 render);
+
+uint8 TOMReadByte(uint32 offset, uint32 who = UNKNOWN);
+uint16 TOMReadWord(uint32 offset, uint32 who = UNKNOWN);
+void TOMWriteByte(uint32 offset, uint8 data, uint32 who = UNKNOWN);
+void TOMWriteWord(uint32 offset, uint16 data, uint32 who = UNKNOWN);
+
+void tom_exec_scanline(int16 * backbuffer, int32 scanline, bool render);
 uint32 tom_getVideoModeWidth(void);
 uint32 tom_getVideoModeHeight(void);
 uint8 tom_getVideoMode(void);
-uint8 *tom_get_ram_pointer(void);
+uint8 * tom_get_ram_pointer(void);
 uint16 tom_get_hdb(void);
 uint16 tom_get_vdb(void);
 uint16 tom_get_scanline(void);
 uint32 tom_getHBlankWidthInPixels(void);
 
-//////////////////////////////////////////////////////////////////////////////
-// interrupts
-//////////////////////////////////////////////////////////////////////////////
-#define IRQ_VBLANK     0
+// 68000 Interrupt bit positions (enabled at $F000E0)
+
+/*#define IRQ_VBLANK   0
 #define IRQ_GPU                1
 #define IRQ_HBLANK  2
 #define IRQ_OPFLAG  IRQ_HBLANK
 #define IRQ_TIMER      3
-#define IRQ_DSP                4
+#define IRQ_DSP                4*/
+enum { IRQ_VBLANK = 0, IRQ_GPU, IRQ_OPFLAG, IRQ_TIMER, IRQ_DSP };
 
-int            tom_irq_enabled(int irq);
-uint16 tom_irq_control_reg(void);
-void   tom_set_irq_latch(int irq, int enabled);
-void   tom_pit_exec(uint32 cycles);
+int    tom_irq_enabled(int irq);
+uint16 tom_irq_control_reg(void);
+void tom_set_irq_latch(int irq, int enabled);
+void tom_pit_exec(uint32 cycles);
 void tom_set_pending_puck_int(void);
 void tom_set_pending_timer_int(void);
 void tom_set_pending_object_int(void);
@@ -63,5 +57,6 @@ void tom_set_pending_gpu_int(void);
 void tom_set_pending_video_int(void);
 void tom_reset_timer(void);
 
+uint32 TOMGetSDLScreenPitch(void);
 
-#endif
+#endif // __TOM_H__