48 lines
1.2 KiB
C
48 lines
1.2 KiB
C
//
|
|
// TOM Header file
|
|
//
|
|
|
|
#ifndef __TOM_H__
|
|
#define __TOM_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
|
|
|
|
#define VIRTUAL_SCREEN_WIDTH 326
|
|
#define VIRTUAL_SCREEN_HEIGHT_NTSC 240
|
|
#define VIRTUAL_SCREEN_HEIGHT_PAL 256
|
|
|
|
#define MAX_SCREEN_WIDTH (VIRTUAL_SCREEN_WIDTH * 4)
|
|
|
|
// 68000 Interrupt bit positions (enabled at $F000E0)
|
|
|
|
enum { IRQ_VIDEO = 0, IRQ_GPU, IRQ_OPFLAG, IRQ_TIMER, IRQ_DSP };
|
|
|
|
void TOMInit(void);
|
|
void TOMReset(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);
|
|
uint16_t TOMGetHC(void);
|
|
uint16_t TOMGetMEMCON1(void);
|
|
|
|
int TOMIRQEnabled(int irq);
|
|
void TOMSetPendingObjectInt(void);
|
|
void TOMSetPendingGPUInt(void);
|
|
void TOMSetPendingVideoInt(void);
|
|
|
|
void TOMStartFrame(void);
|
|
void TOMBlit(uint32_t * framebuffer, int32_t & width, int32_t & height);
|
|
|
|
extern uint8_t tomRam8[];
|
|
|
|
#endif // __TOM_H__
|