]> Shamusworld >> Repos - virtualjaguar/blobdiff - src/tom.h
Fix for bad window position when coming out of full screen
[virtualjaguar] / src / tom.h
index 091cd0cffa71bbecb1cd8a8f686582136a81c288..8b95a75aaab3f04f84ef9e7948b8e557ebf7d085 100644 (file)
--- a/src/tom.h
+++ b/src/tom.h
@@ -5,56 +5,63 @@
 #ifndef __TOM_H__
 #define __TOM_H__
 
-//#include "jaguar.h"
-#include "types.h"
+#include "memory.h"
 
 #define VIDEO_MODE_16BPP_CRY   0
 #define VIDEO_MODE_24BPP_RGB   1
 #define VIDEO_MODE_16BPP_DIRECT 2
 #define VIDEO_MODE_16BPP_RGB   3
 
+// Virtual screen size stuff
+
+// NB: This virtual width is for PWIDTH = 4
+//#define VIRTUAL_SCREEN_WIDTH            320
+#define VIRTUAL_SCREEN_WIDTH            340
+#define VIRTUAL_SCREEN_HEIGHT_NTSC      240
+#define VIRTUAL_SCREEN_HEIGHT_PAL       256
+
 // 68000 Interrupt bit positions (enabled at $F000E0)
 
-enum { IRQ_VBLANK = 0, IRQ_GPU, IRQ_OPFLAG, IRQ_TIMER, IRQ_DSP };
+enum { IRQ_VIDEO = 0, IRQ_GPU, IRQ_OPFLAG, IRQ_TIMER, IRQ_DSP };
 
-void tom_init(void);
-void tom_reset(void);
-void tom_done(void);
+void TOMInit(void);
+void TOMReset(void);
+void TOMDone(void);
 
 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 TOMExecScanline(int16 * backbuffer, int32 scanline, bool render);
-void TOMExecScanline(uint16 scanline, bool render);
-uint32 tom_getVideoModeWidth(void);
-uint32 tom_getVideoModeHeight(void);
-uint8 tom_getVideoMode(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);
-
-int    tom_irq_enabled(int irq);
-uint16 tom_irq_control_reg(void);
-void tom_set_irq_latch(int irq, int enabled);
+void TOMExecHalfline(uint16 halfline, bool render);
+uint32 TOMGetVideoModeWidth(void);
+uint32 TOMGetVideoModeHeight(void);
+uint8 TOMGetVideoMode(void);
+uint8 * TOMGetRamPointer(void);
+uint16 TOMGetHDB(void);
+uint16 TOMGetVDB(void);
+
+int TOMIRQEnabled(int irq);
+uint16 TOMIRQControlReg(void);
+void TOMSetIRQLatch(int irq, int enabled);
 void TOMExecPIT(uint32 cycles);
-void tom_set_pending_jerry_int(void);
-void tom_set_pending_timer_int(void);
-void tom_set_pending_object_int(void);
-void tom_set_pending_gpu_int(void);
-void tom_set_pending_video_int(void);
+void TOMSetPendingJERRYInt(void);
+void TOMSetPendingTimerInt(void);
+void TOMSetPendingObjectInt(void);
+void TOMSetPendingGPUInt(void);
+void TOMSetPendingVideoInt(void);
 void TOMResetPIT(void);
 
-//uint32 TOMGetSDLScreenPitch(void);
-void TOMResetBackbuffer(uint32 * backbuffer);
-
 // Exported variables
 
-extern uint32 tom_width;
-extern uint32 tom_height;
-extern uint8 tom_ram_8[];
+extern uint32 tomWidth;
+extern uint32 tomHeight;
+extern uint8 tomRam8[];
+extern uint32 tomTimerPrescaler;
+extern uint32 tomTimerDivider;
+extern int32 tomTimerCounter;
+
+extern uint32 screenPitch;
+extern uint32 * screenBuffer;
 
 #endif // __TOM_H__