Fixed a crash when reading the DWARF information.
[clinton/Virtual-Jaguar-Rx.git] / src / tom.h
CommitLineData
cf76e892
JPM
1//
2// TOM Header file
3//
4
5#ifndef __TOM_H__
6#define __TOM_H__
7
8#include "memory.h"
9
10#define VIDEO_MODE_16BPP_CRY 0
11#define VIDEO_MODE_24BPP_RGB 1
12#define VIDEO_MODE_16BPP_DIRECT 2
13#define VIDEO_MODE_16BPP_RGB 3
14
15// Virtual screen size stuff
16
17// NB: This virtual width is for PWIDTH = 4
18//#define VIRTUAL_SCREEN_WIDTH 320
19//was:340, 330
20#define VIRTUAL_SCREEN_WIDTH 326
21#define VIRTUAL_SCREEN_HEIGHT_NTSC 240
22#define VIRTUAL_SCREEN_HEIGHT_PAL 256
23
24// 68000 Interrupt bit positions (enabled at $F000E0)
25
26enum { IRQ_VIDEO = 0, IRQ_GPU, IRQ_OPFLAG, IRQ_TIMER, IRQ_DSP };
27
28void TOMInit(void);
29void TOMReset(void);
30void TOMDone(void);
31
32uint8_t TOMReadByte(uint32_t offset, uint32_t who = UNKNOWN);
33uint16_t TOMReadWord(uint32_t offset, uint32_t who = UNKNOWN);
34void TOMWriteByte(uint32_t offset, uint8_t data, uint32_t who = UNKNOWN);
35void TOMWriteWord(uint32_t offset, uint16_t data, uint32_t who = UNKNOWN);
36
37void TOMExecHalfline(uint16_t halfline, bool render);
38uint32_t TOMGetVideoModeWidth(void);
39uint32_t TOMGetVideoModeHeight(void);
40uint8_t TOMGetVideoMode(void);
41uint8_t * TOMGetRamPointer(void);
42uint16_t TOMGetHDB(void);
43uint16_t TOMGetVDB(void);
44uint16_t TOMGetHC(void);
45uint16_t TOMGetVP(void);
46uint16_t TOMGetMEMCON1(void);
47void TOMDumpIORegistersToLog(void);
48
49
50int TOMIRQEnabled(int irq);
51uint16_t TOMIRQControlReg(void);
52void TOMSetIRQLatch(int irq, int enabled);
53void TOMExecPIT(uint32_t cycles);
54void TOMSetPendingJERRYInt(void);
55void TOMSetPendingTimerInt(void);
56void TOMSetPendingObjectInt(void);
57void TOMSetPendingGPUInt(void);
58void TOMSetPendingVideoInt(void);
59void TOMResetPIT(void);
60
61// Exported variables
62
63extern uint32_t tomWidth;
64extern uint32_t tomHeight;
65extern uint8_t tomRam8[];
66extern uint32_t tomTimerPrescaler;
67extern uint32_t tomTimerDivider;
68extern int32_t tomTimerCounter;
69
70extern uint32_t screenPitch;
71extern uint32_t * screenBuffer;
72
73#endif // __TOM_H__