]> git.sesse.net Git - pistorm/blob - platforms/amiga/rtg/rtg.h
Some Musashi mapping and RTG fixes/debug
[pistorm] / platforms / amiga / rtg / rtg.h
1 #define PIGFX_RTG_BASE 0x70000000
2 #define PIGFX_RTG_SIZE 0x04000000
3
4 #define PIGFX_REG_SIZE 0x00010000
5
6 #define CARD_OFFSET 0
7
8 enum pi_regs {
9   RTG_COMMAND = 0x00,
10   RTG_X1      = 0x02,
11   RTG_X2      = 0x04,
12   RTG_X3      = 0x06,
13   RTG_Y1      = 0x08,
14   RTG_Y2      = 0x0A,
15   RTG_Y3      = 0x0C,
16   RTG_FORMAT  = 0x0E,
17   RTG_RGB1    = 0x10,
18   RTG_RGB2    = 0x14,
19   RTG_ADDR1   = 0x18,
20   RTG_ADDR2   = 0x1C,
21   RTG_U81     = 0x20,
22   RTG_U82     = 0x21,
23   RTG_U83     = 0x22,
24   RTG_U84     = 0x23,
25   RTG_X4      = 0x24,
26   RTG_X5      = 0x26,
27   RTG_Y4      = 0x28,
28   RTG_Y5      = 0x2A,
29   RTG_U1      = 0x2C,
30   RTG_U2      = 0x2E,
31 };
32
33 enum rtg_cmds {
34   RTGCMD_SETGC,
35   RTGCMD_SETPAN,
36   RTGCMD_SETCLUT,
37   RTGCMD_ENABLE,
38   RTGCMD_SETDISPLAY,
39   RTGCMD_SETSWITCH,
40   RTGCMD_FILLRECT,
41   RTGCMD_BLITRECT,
42 };
43
44 enum rtg_formats {
45   RTGFMT_8BIT,
46   RTGFMT_RBG565,
47   RTGFMT_RGB32,
48   RTGFMT_RGB555,
49   RTGFMT_NUM,
50 };
51
52 void rtg_write(uint32_t address, uint32_t value, uint8_t mode);
53 unsigned int rtg_read(uint32_t address, uint8_t mode);
54 void rtg_set_clut_entry(uint8_t index, uint32_t xrgb);
55 void rtg_init_display();
56 void rtg_shutdown_display();
57
58 void rtg_fillrect(uint16_t x, uint16_t y, uint16_t w, uint16_t h, uint32_t color, uint16_t pitch, uint16_t format, uint8_t mask);
59 void rtg_blitrect(uint16_t x, uint16_t y, uint16_t dx, uint16_t dy, uint16_t w, uint16_t h, uint16_t pitch, uint16_t format, uint8_t mask);