]> git.sesse.net Git - pistorm/blob - platforms/amiga/rtg/rtg_enums.h
Add somewhat proper RTG vsync handling
[pistorm] / platforms / amiga / rtg / rtg_enums.h
1 // SPDX-License-Identifier: MIT
2
3 // "Register" offsets for sending data to the RTG.
4 enum pi_regs {
5   RTG_COMMAND   = 0x00,
6   RTG_X1        = 0x02,
7   RTG_X2        = 0x04,
8   RTG_X3        = 0x06,
9   RTG_Y1        = 0x08,
10   RTG_Y2        = 0x0A,
11   RTG_Y3        = 0x0C,
12   RTG_FORMAT    = 0x0E,
13   RTG_RGB1      = 0x10,
14   RTG_RGB2      = 0x14,
15   RTG_ADDR1     = 0x18,
16   RTG_ADDR2     = 0x1C,
17   RTG_U81       = 0x20,
18   RTG_U82       = 0x21,
19   RTG_U83       = 0x22,
20   RTG_U84       = 0x23,
21   RTG_X4        = 0x24,
22   RTG_X5        = 0x26,
23   RTG_Y4        = 0x28,
24   RTG_Y5        = 0x2A,
25   RTG_U1        = 0x2C,
26   RTG_U2        = 0x2E,
27   RTG_ADDR3     = 0x30,
28   RTG_ADDR4     = 0x34,
29   RTG_DEBUGME   = 0x50,
30   RTG_WAITVSYNC = 0x60,
31   RTG_INVBLANK  = 0x62,
32   IRTG_COMMAND  = 0x60,
33 };
34
35 enum rtg_cmds {
36   RTGCMD_SETGC,
37   RTGCMD_SETPAN,
38   RTGCMD_SETCLUT,
39   RTGCMD_ENABLE,
40   RTGCMD_SETDISPLAY,
41   RTGCMD_SETSWITCH,
42   RTGCMD_FILLRECT,
43   RTGCMD_BLITRECT,
44   RTGCMD_BLITRECT_NOMASK_COMPLETE,
45   RTGCMD_BLITPATTERN,
46   RTGCMD_BLITTEMPLATE,
47   RTGCMD_INVERTRECT,
48   RTGCMD_DRAWLINE,
49   RTGCMD_P2C,
50   RTGCMD_P2D,
51   RTGCMD_SETSPRITE,
52   RTGCMD_SETSPRITEPOS,
53   RTGCMD_SETSPRITECOLOR,
54   RTGCMD_SETSPRITEIMAGE,
55   RTGCMD_DEBUGME,
56 };
57
58 enum rtg_formats {
59   RTGFMT_8BIT,
60   RTGFMT_RBG565,
61   RTGFMT_RGB32,
62   RTGFMT_RGB555,
63   RTGFMT_NUM,
64 };
65
66 enum gfx_minterm_modes {
67         MINTERM_FALSE,
68         MINTERM_NOR,
69         MINTERM_ONLYDST,
70         MINTERM_NOTSRC,
71         MINTERM_ONLYSRC,
72         MINTERM_INVERT,
73         MINTERM_EOR,
74         MINTERM_NAND,
75         MINTERM_AND,
76         MINTERM_NEOR,
77         MINTERM_DST,
78         MINTERM_NOTONLYSRC,
79         MINTERM_SRC,
80         MINTERM_NOTONLYDST,
81         MINTERM_OR,
82         MINTERM_TRUE,
83 };
84
85 enum gfx_draw_modes {
86     DRAWMODE_JAM1 = 0,
87     DRAWMODE_JAM2 = 1,
88     DRAWMODE_COMPLEMENT = 2,
89     DRAWMODE_INVERSVID = 4,
90 };
91
92 static const unsigned short rgbf_to_rtg[16] = {
93   RTGFMT_8BIT,      // 0x00
94   RTGFMT_8BIT,      // 0x01
95   0,                // 0x02
96   0,                // 0x03
97   0,                // 0x04
98   RTGFMT_RGB555,    // 0x05
99   0,                // 0x06
100   0,                // 0x07
101   RTGFMT_RGB32,     // 0x08
102   RTGFMT_RGB32,     // 0x09
103   RTGFMT_RBG565,    // 0x0A
104   RTGFMT_RGB555,    // 0x0B
105   0,                // 0x0C
106   RTGFMT_RGB555,    // 0x0D
107   0,                // 0x0E
108   0,                // 0x0F
109 };