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,
29 FM7_MAINMEM_SHADOWRAM, // FM77
31 FM7_MAINMEM_EXTRAM, // 192KB EXTRAM of FM-77, or 77AV40 768KB max. of 77AV40.
33 FM7_MAINMEM_AV_PAGE0, // $00000-$0ffff
34 FM7_MAINMEM_AV_PAGE2, // $20000-$2ffff
35 FM7_MAINMEM_AV_DIRECTACCESS, // $10000-$1ffff
36 FM7_MAINMEM_INITROM, // Initiator ROM, $06000 - $07fff
38 FM7_MAINMEM_BACKUPED_RAM, // DICTIONARY CARD, Backuped
39 FM7_MAINMEM_DICTROM, // DICTIONARY CARD, ROM
40 FM7_MAINMEM_77AV40_EXTRAROM, // DICTIONARY CARD, Extra sub ROM
41 FM7_MAINMEM_KANJI_LEVEL2,
42 FM7_MAINMEM_KANJI_DUMMYADDR,
46 #define FM7_BOOTMODE_BASIC 0
47 #define FM7_BOOTMODE_DOS 1
48 #define FM7_BOOTMODE_MMR 2
49 #define FM7_BOOTMODE_ROM4 3
50 #define FM7_BOOTMODE_RAM 4
52 #define FM7_DIPSW_CYCLESTEAL 0x00000001
53 #define FM7_DIPSW_EXTRAM 0x00000002
54 #define FM7_DIPSW_EXTRAM_AV 0x00000004
55 #define FM7_DIPSW_DICTROM_AV 0x00000008
56 #define FM7_DIPSW_FM8_PROTECT_FD0F 0x00000010
57 #define FM7_DIPSW_CONNECT_KANJIROM 0x00000020
58 #define FM7_DIPSW_CONNECT_320KFDC 0x00000040
59 #define FM7_DIPSW_CONNECT_1MFDC 0x00000080
60 // '1' is Auto 5 Key, '0' is Auto 8 Key
61 #define FM7_DIPSW_SELECT_5_OR_8KEY 0x00000100
62 #define FM7_DIPSW_AUTO_5_OR_8KEY 0x00000200
64 #define FM7_DIPSW_Z80_IRQ_ON 0x00001000
65 #define FM7_DIPSW_Z80_FIRQ_ON 0x00002000
66 #define FM7_DIPSW_Z80_NMI_ON 0x00004000
67 #define FM7_DIPSW_JIS78EMU_ON 0x00008000
68 #define FM7_DIPSW_JSUBCARD_ON 0x00010000
69 #define FM7_DIPSW_Z80CARD_ON 0x00020000
70 #define FM7_DIPSW_RS232C_ON 0x00040000
71 #define FM7_DIPSW_MODEM_ON 0x00080000
72 #define FM7_DIPSW_MIDI_ON 0x00100000
74 #define FM7_DIPSW_FRAMESKIP 0x30000000
75 #define FM7_DIPSW_SYNC_TO_HSYNC 0x80000000
78 #define MAINCLOCK_NORMAL 1798000
79 #define MAINCLOCK_MMR 1565000
80 #define MAINCLOCK_FAST_MMR 2016000
81 #define MAINCLOCK_SLOW 1095000
83 #define SUBCLOCK_NORMAL 2000000
84 #define SUBCLOCK_SLOW 999000
86 #define JCOMMCARD_CLOCK 1228000
88 #define FM7_SUBMEM_OFFSET_DPALETTE 0x0100000
89 #define FM7_SUBMEM_OFFSET_APALETTE_B 0x0200000
90 #define FM7_SUBMEM_OFFSET_APALETTE_R 0x0300000
91 #define FM7_SUBMEM_OFFSET_APALETTE_G 0x0400000
92 #define FM7_SUBMEM_OFFSET_APALETTE_HI 0x0500000
93 #define FM7_SUBMEM_OFFSET_APALETTE_LO 0x0500001
103 EVENT_FM7MAINIO_ATTENTION,
104 EVENT_FM7MAINIO_SUBBUSY_SET,
105 EVENT_FM7MAINIO_SUBBUSY_RESET,
107 EVENT_FM7SUB_DISPLAY_NMI = 32,
108 EVENT_FM7SUB_DISPLAY_NMI_OFF,
114 EVENT_FM7SUB_CLR_BUSY,
115 EVENT_FM7SUB_CLR_CRTFLAG,
117 EVENT_PRINTER_RESET_COMPLETED,
122 FM7_SUBMEM_VRAMBANK_0 = 0, // $0000-$BFFF #1
123 FM7_SUBMEM_CONSOLERAM, // $C000-$CFFF
124 FM7_SUBMEM_WORKRAM, // $D000-$D37F
125 FM7_SUBMEM_SHAREDRAM, // $D380-$D3FF
126 FM7_SUBMEM_MMIO, // $D400-$D7FF
127 FM7_SUBMEM_MONITOR_C, // $D800-#FFFF #1
131 FM7_SUBMEM_VRAMBANK_1, // $0000-$BFFF #2
132 FM7_SUBMEM_AV_HIDDEN_RAM, // $D500-$D7FF
133 // 77AV : $E000-$FFFF
134 FM7_SUBMEM_MONITOR_A,
135 FM7_SUBMEM_MONITOR_B,
136 FM7_SUBMEM_MONITOR_CG,
137 FM7_SUBMEM_CGROM, // 77AV: CGROM #2($D800-$DFFF)
139 FM7_SUBMEM_VRAMBANK_2, // $0000-$BFFF #3
140 FM7_SUBMEM_MONITOR_RAM, // $E000-$DFFF
141 FM7_SUBMEM_CGRAM, // $D800-$DFFF
143 FM7_SUBMEM_77_WORKRAM,
145 FM7_SUBMEM_77_TEXTRAM,
146 FM7_SUBMEM_77_SUBMONITOR,
153 FM7_MAINCLOCK_SLOW = 0,
155 FM7_MAINCLOCK_MMRSLOW,
156 FM7_MAINCLOCK_MMRHIGH
159 FM7_JCOMMCARD_BUS_BA = 0x400000,
160 FM7_JCOMMCARD_BUS_BS,
164 FM7_MAINIO_IS_BASICROM = 0x200000,
166 FM7_MAINIO_BOOTRAM_RW,
167 FM7_MAINIO_READ_FD0F,
168 FM7_MAINIO_PUSH_FD0F,
169 FM7_MAINIO_CLOCKMODE,
170 FM7_MAINIO_INITROM_ENABLED,
174 FM7_MAINIO_SUBMONITOR_ROM,
175 FM7_MAINIO_SUBMONITOR_RAM,
176 FM7_MAINIO_MMR_ENABLED,
177 FM7_MAINIO_FASTMMR_ENABLED,
178 FM7_MAINIO_WINDOW_ENABLED,
179 FM7_MAINIO_WINDOW_OFFSET,
180 FM7_MAINIO_MMR_SEGMENT,
181 FM7_MAINIO_MMR_EXTENDED,
182 FM7_MAINIO_WINDOW_FAST,
183 FM7_MAINMEM_REFRESH_FAST,
184 FM7_MAINIO_UART0_SYNDET,
185 FM7_MAINIO_UART0_RXRDY,
186 FM7_MAINIO_UART0_TXRDY,
187 FM7_MAINIO_UART0_DCD,
188 FM7_MAINIO_MODEM_SYNDET,
189 FM7_MAINIO_MODEM_RXRDY,
190 FM7_MAINIO_MODEM_TXRDY,
191 FM7_MAINIO_MIDI_SYNDET,
192 FM7_MAINIO_MIDI_RXRDY,
193 FM7_MAINIO_MIDI_TXRDY,
195 FM7_MAINIO_MMR_BANK = 0x200100,
200 FM7_MAINIO_CMT_RECV = 0x1000, // Input data changed
201 FM7_MAINIO_CMT_INVERT, // Set / reset invert cmt data.
202 FM7_MAINIO_TIMERIRQ, // Timer from SUB.
205 FM7_MAINIO_LPT_ERROR,
207 FM7_MAINIO_LPT_PAPER_EMPTY,
210 FM7_MAINIO_KEYBOARDIRQ,
211 FM7_MAINIO_KEYBOARDIRQ_MASK,
212 FM7_MAINIO_PUSH_KEYBOARD,
213 FM7_MAINIO_PUSH_BREAK, // FIRQ
214 FM7_MAINIO_SUB_ATTENTION, // FIRQ
215 FM7_MAINIO_SUB_BUSY, // SUB is BUSY.
216 FM7_MAINIO_SUB_CANCEL, // SUB is BUSY.
218 FM7_MAINIO_BEEP, // BEEP From sub
223 FM7_MAINIO_JOYPORTA_CHANGED, // Joystick
224 FM7_MAINIO_JOYPORTB_CHANGED, // Joystick
227 FM7_MAINIO_KANJI1_ADDR_HIGH,
228 FM7_MAINIO_KANJI1_ADDR_LOW,
229 FM7_MAINIO_KANJI2_ADDR_HIGH,
230 FM7_MAINIO_KANJI2_ADDR_LOW,
231 FM7_MAINIO_HOT_RESET,
236 FM7_JOYSTICK_EMULATE_MOUSE_0,
237 FM7_JOYSTICK_EMULATE_MOUSE_1,
238 FM7_JOYSTICK_MOUSE_STROBE,
244 SIG_DISPLAY_VBLANK = 0x4000,
249 SIG_DISPLAY_DIGITAL_PALETTE,
250 SIG_DISPLAY_ANALOG_PALETTE,
253 SIG_DISPLAY_CHANGE_MODE,
254 SIG_DISPLAY_MULTIPAGE,
255 SIG_DISPLAY_MODE_IS_400LINE,
258 SIG_DISPLAY_Y_HEIGHT,
259 SIG_DISPLAY_EXTRA_MODE,
260 SIG_DISPLAY_STATREG_FD12,
262 SIG_DISPLAY_BANK_OFFSET,
266 DISPLAY_MODE_8_200L = 0,
268 DISPLAY_MODE_8_200L_TEXT,
269 DISPLAY_MODE_8_400L_TEXT,
275 DISPLAY_ADDR_MULTIPAGE = 0,
276 DISPLAY_ADDR_OFFSET_H,
277 DISPLAY_ADDR_OFFSET_L,
278 DISPLAY_ADDR_DPALETTE,
279 DISPLAY_ADDR_APALETTE_B = 0x10000000,
280 DISPLAY_ADDR_APALETTE_R = 0x20000000,
281 DISPLAY_ADDR_APALETTE_G = 0x30000000,
282 DISPLAY_VRAM_DIRECT_ACCESS = 0x80000000
286 SIG_FM7_SUB_HALT = 0x2000,
289 SIG_FM7_SUB_KEY_FIRQ,
290 SIG_FM7_SUB_KEY_MASK,
296 SIG_FM7KEY_KEY_UP = 0x800,
298 SIG_FM7KEY_READ, // D400 = high , D401 = low
299 SIG_FM7KEY_SET_INSLED, // D40D: Write = OFF / Read = ON
300 SIG_FM7KEY_SET_KANALED, //
301 SIG_FM7KEY_SET_CAPSLED, //
303 SIG_FM7KEY_ACK, // D431
304 SIG_FM7KEY_BREAK_KEY,
305 SIG_FM7KEY_PUSH_TO_ENCODER,
306 SIG_FM7KEY_LED_STATUS,
310 KEYMODE_STANDARD = 0,
316 KANJIROM_ADDR_HI = 0x10000,
321 KANJIROM_DIRECTADDR = 0x20000,
324 #endif // _FM7_COMMON_H_