]> Shamusworld >> Repos - virtualjaguar/blobdiff - src/tom.h
Added Memory Track support. One small step towards full CD-ROM support.
[virtualjaguar] / src / tom.h
index 4d5eae94d2679e62c19c7da22f2c294bb1486163..4ac5736b4192a43eb22767c3be1fd67002c98002 100644 (file)
--- a/src/tom.h
+++ b/src/tom.h
@@ -5,8 +5,6 @@
 #ifndef __TOM_H__
 #define __TOM_H__
 
-//#include "jaguar.h"
-//#include "types.h"
 #include "memory.h"
 
 #define VIDEO_MODE_16BPP_CRY   0
 #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
+//was:340, 330
+#define VIRTUAL_SCREEN_WIDTH            326
+#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 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 TOMGetVideoModeWidth(void);
-uint32 TOMGetVideoModeHeight(void);
-uint8 TOMGetVideoMode(void);
-uint8 * TOMGetRamPointer(void);
-uint16 TOMGetHDB(void);
-uint16 TOMGetVDB(void);
-//uint16 tom_get_scanline(void);
-//uint32 tom_getHBlankWidthInPixels(void);
+uint8_t TOMReadByte(uint32_t offset, uint32_t who = UNKNOWN);
+uint16_t TOMReadWord(uint32_t offset, uint32_t who = UNKNOWN);
+void TOMWriteByte(uint32_t offset, uint8_t data, uint32_t who = UNKNOWN);
+void TOMWriteWord(uint32_t offset, uint16_t data, uint32_t who = UNKNOWN);
+
+void TOMExecHalfline(uint16_t halfline, bool render);
+uint32_t TOMGetVideoModeWidth(void);
+uint32_t TOMGetVideoModeHeight(void);
+uint8_t TOMGetVideoMode(void);
+uint8_t * TOMGetRamPointer(void);
+uint16_t TOMGetHDB(void);
+uint16_t TOMGetVDB(void);
+uint16_t TOMGetHC(void);
+uint16_t TOMGetVP(void);
+uint16_t TOMGetMEMCON1(void);
+void TOMDumpIORegistersToLog(void);
+
 
 int TOMIRQEnabled(int irq);
-uint16 TOMIRQControlReg(void);
+uint16_t TOMIRQControlReg(void);
 void TOMSetIRQLatch(int irq, int enabled);
-void TOMExecPIT(uint32 cycles);
+void TOMExecPIT(uint32_t cycles);
 void TOMSetPendingJERRYInt(void);
 void TOMSetPendingTimerInt(void);
 void TOMSetPendingObjectInt(void);
@@ -49,18 +58,16 @@ void TOMSetPendingGPUInt(void);
 void TOMSetPendingVideoInt(void);
 void TOMResetPIT(void);
 
-//uint32 TOMGetSDLScreenPitch(void);
-void TOMResetBackbuffer(uint32 * backbuffer);
-
 // Exported variables
 
-extern uint32 tomWidth;
-extern uint32 tomHeight;
-extern uint8 tomRam8[];
-extern uint32 tomTimerPrescaler;
-extern uint32 tomTimerDivider;
-extern int32 tomTimerCounter;
+extern uint32_t tomWidth;
+extern uint32_t tomHeight;
+extern uint8_t tomRam8[];
+extern uint32_t tomTimerPrescaler;
+extern uint32_t tomTimerDivider;
+extern int32_t tomTimerCounter;
 
-extern uint32 tomDeviceWidth;
+extern uint32_t screenPitch;
+extern uint32_t * screenBuffer;
 
 #endif // __TOM_H__