X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Ftom.h;h=8c5640a3d697589c52820e2f89d6a446d8ee9846;hb=c9d57b57d70ab2ae842144828175820fb207a3b0;hp=a484d78775ab9e3dc1306e2c89effbcd67e533de;hpb=438d3a52ef0af04ac3279c0839fe6ffd7333b776;p=virtualjaguar diff --git a/src/tom.h b/src/tom.h index a484d78..8c5640a 100644 --- 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 @@ -14,34 +12,44 @@ #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); - -int TOMIRQEnabled(int irq); -uint16 TOMIRQControlReg(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); +void TOMDumpIORegistersToLog(void); + + +int TOMIRQEnabled(int irq); +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 +57,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__