2 * Common definition of FM-7 [FM7_COMMON]
10 #define _FM7_COMMON_H_
13 FM7_MAINMEM_OMOTE = 0, // $0000-$7FFF
14 FM7_MAINMEM_URA, // $8000-$FBFF #1
15 FM7_MAINMEM_BASICROM, // $8000-$FBFF #2
16 FM7_MAINMEM_BIOSWORK, // $FC00-$FC7F
17 FM7_MAINMEM_SHAREDRAM, // $FC80-$FCFF
18 FM7_MAINMEM_MMIO, // $FD00-$FDFF
19 FM7_MAINMEM_BOOTROM_BAS, // $FE00-$FFEF #1
20 FM7_MAINMEM_BOOTROM_DOS, // $FE00-$FFEF #2
21 FM7_MAINMEM_BOOTROM_MMR, // $FE00-$FFEF #3
22 FM7_MAINMEM_BOOTROM_EXTRA, // $FE00-$FFEF #4
23 FM7_MAINMEM_BOOTROM_RAM, // $FE00-$FFEF #5
24 FM7_MAINMEM_VECTOR, // $FFF0-$FFFD
25 FM7_MAINMEM_RESET_VECTOR, // $FFF0-$FFFD
26 FM7_MAINMEM_NULL, // NULL
27 FM7_MAINMEM_ZERO, // ZERO
28 FM7_MAINMEM_KANJI_LEVEL1,
30 FM7_MAINMEM_EXTRAM, // 192KB EXTRAM of FM-77, or 77AV40 768KB max. of 77AV40.
32 FM7_MAINMEM_AV_PAGE0, // $00000-$0ffff
33 FM7_MAINMEM_AV_PAGE2, // $20000-$2ffff
34 FM7_MAINMEM_AV_DIRECTACCESS, // $10000-$1ffff
35 FM7_MAINMEM_INITROM, // Initiator ROM, $06000 - $07fff
37 FM7_MAINMEM_BACKUPED_RAM, // DICTIONARY CARD, Backuped
38 FM7_MAINMEM_DICTROM, // DICTIONARY CARD, ROM
39 FM7_MAINMEM_77AV40_EXTRAROM, // DICTIONARY CARD, Extra sub ROM
40 FM7_MAINMEM_KANJI_LEVEL2,
45 #define FM7_BOOTMODE_BASIC 0
46 #define FM7_BOOTMODE_DOS 1
47 #define FM7_BOOTMODE_MMR 2
48 #define FM7_BOOTMODE_ROM4 3
49 #define FM7_BOOTMODE_RAM 4
51 #define FM7_DIPSW_CYCLESTEAL 0x00000001
52 #define FM7_DIPSW_EXTRAM_AV 0x00000002
53 #define FM7_DIPSW_DICTROM_AV 0x00000004
55 #define MAINCLOCK_NORMAL 1794000
56 #define MAINCLOCK_MMR 1565000
57 #define MAINCLOCK_FAST_MMR 2016000
58 #define MAINCLOCK_SLOW 1095000
60 #define SUBCLOCK_NORMAL 2000000
61 #define SUBCLOCK_SLOW 999000
64 #define FM7_SUBMEM_OFFSET_DPALETTE 0x0100000
65 #define FM7_SUBMEM_OFFSET_APALETTE_B 0x0200000
66 #define FM7_SUBMEM_OFFSET_APALETTE_R 0x0300000
67 #define FM7_SUBMEM_OFFSET_APALETTE_G 0x0400000
68 #define FM7_SUBMEM_OFFSET_APALETTE_HI 0x0500000
69 #define FM7_SUBMEM_OFFSET_APALETTE_LO 0x0500001
70 #define FM7_SUBMEM_VRAM_BANK0 0x1000000
71 #define FM7_SUBMEM_VRAM_BANK1 0x2000000
72 #define FM7_SUBMEM_VRAM_BANK2 0x3000000
73 #define FM7_SUBMEM_VRAM_BANK3 0x4000000
83 EVENT_FM7SUB_DISPLAY_NMI = 32,
84 EVENT_FM7SUB_DISPLAY_NMI_OFF,
91 ID_KEYBOARD_RXRDY_OK = 64,
92 ID_KEYBOARD_RXRDY_BUSY,
94 ID_KEYBOARD_RTC_COUNTUP,
95 ID_KEYBOARD_AUTOREPEAT_FIRST = 0x200,
96 ID_KEYBOARD_AUTOREPEAT = 0x400
101 FM7_SUBMEM_VRAMBANK_0 = 0, // $0000-$BFFF #1
102 FM7_SUBMEM_CONSOLERAM, // $C000-$CFFF
103 FM7_SUBMEM_WORKRAM, // $D000-$D37F
104 FM7_SUBMEM_SHAREDRAM, // $D380-$D3FF
105 FM7_SUBMEM_MMIO, // $D400-$D7FF
106 FM7_SUBMEM_MONITOR_C, // $D800-#FFFF #1
110 FM7_SUBMEM_VRAMBANK_1, // $0000-$BFFF #2
111 // 77AV : $E000-$FFFF
112 FM7_SUBMEM_MONITOR_A,
113 FM7_SUBMEM_MONITOR_B,
114 FM7_SUBMEM_MONITOR_CG,
115 FM7_SUBMEM_CGROM, // 77AV: CGROM #2($D800-$DFFF)
117 FM7_SUBMEM_VRAMBANK_2, // $0000-$BFFF #3
118 FM7_SUBMEM_MONITOR_RAM, // $E000-$DFFF
119 FM7_SUBMEM_CGRAM, // $D800-$DFFF
121 FM7_SUBMEM_77_WORKRAM,
123 FM7_SUBMEM_77_TEXTRAM,
124 FM7_SUBMEM_77_SUBMONITOR,
131 FM7_MAINCLOCK_SLOW = 0,
133 FM7_MAINCLOCK_MMRSLOW,
134 FM7_MAINCLOCK_MMRHIGH
138 FM7_MAINIO_IS_BASICROM = 0x100000,
140 FM7_MAINIO_READ_FD0F,
141 FM7_MAINIO_CLOCKMODE,
142 FM7_MAINIO_INITROM_ENABLED,
146 FM7_MAINIO_SUBMONITOR_ROM,
147 FM7_MAINIO_SUBMONITOR_RAM,
148 FM7_MAINIO_MMR_ENABLED,
149 FM7_MAINIO_FASTMMR_ENABLED,
150 FM7_MAINIO_WINDOW_ENABLED,
151 FM7_MAINIO_WINDOW_OFFSET,
152 FM7_MAINIO_MMR_SEGMENT,
153 FM7_MAINIO_MMR_BANK = 0x100080,
157 FM7_MAINIO_CMT_RECV = 0x1000, // Input data changed
158 FM7_MAINIO_CMT_INVERT, // Set / reset invert cmt data.
159 FM7_MAINIO_TIMERIRQ, // Timer from SUB.
161 FM7_MAINIO_KEYBOARDIRQ,
162 FM7_MAINIO_PUSH_KEYBOARD,
163 FM7_MAINIO_PUSH_BREAK, // FIRQ
164 FM7_MAINIO_SUB_ATTENTION, // FIRQ
165 FM7_MAINIO_SUB_BUSY, // SUB is BUSY.
166 FM7_MAINIO_SUB_CANCEL, // SUB is BUSY.
168 FM7_MAINIO_BEEP, // BEEP From sub
173 FM7_MAINIO_JOYPORTA_CHANGED, // Joystick
174 FM7_MAINIO_JOYPORTB_CHANGED, // Joystick
177 FM7_MAINIO_KANJI1_ADDR_HIGH,
178 FM7_MAINIO_KANJI1_ADDR_LOW,
179 FM7_MAINIO_KANJI2_ADDR_HIGH,
180 FM7_MAINIO_KANJI2_ADDR_LOW,
184 SIG_DISPLAY_VBLANK = 0x4000,
189 SIG_DISPLAY_DIGITAL_PALETTE,
190 SIG_DISPLAY_ANALOG_PALETTE,
193 SIG_DISPLAY_CHANGE_MODE,
194 SIG_DISPLAY_MULTIPAGE,
195 SIG_DISPLAY_MODE_IS_400LINE,
198 SIG_DISPLAY_Y_HEIGHT,
199 SIG_DISPLAY_EXTRA_MODE,
201 SIG_DISPLAY_BANK_OFFSET
205 DISPLAY_MODE_8_200L = 0,
207 DISPLAY_MODE_8_200L_TEXT,
208 DISPLAY_MODE_8_400L_TEXT,
214 DISPLAY_ADDR_MULTIPAGE = 0,
215 DISPLAY_ADDR_OFFSET_H,
216 DISPLAY_ADDR_OFFSET_L,
217 DISPLAY_ADDR_DPALETTE,
218 DISPLAY_ADDR_APALETTE_B = 0x10000000,
219 DISPLAY_ADDR_APALETTE_R = 0x20000000,
220 DISPLAY_ADDR_APALETTE_G = 0x30000000,
221 DISPLAY_VRAM_DIRECT_ACCESS = 0x80000000
225 SIG_FM7_SUB_HALT = 0x2000,
228 SIG_FM7_SUB_MULTIPAGE,
229 SIG_FM7_SUB_KEY_FIRQ,
235 SIG_FM7KEY_KEY_UP = 0x800,
237 SIG_FM7KEY_READ, // D400 = high , D401 = low
238 SIG_FM7KEY_SET_INSLED, // D40D: Write = OFF / Read = ON
239 SIG_FM7KEY_SET_KANALED, //
240 SIG_FM7KEY_SET_CAPSLED, //
244 SIG_FM7KEY_PUSH_TO_ENCODER
248 KEYMODE_STANDARD = 0,
253 #endif // _FM7_COMMON_H_