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_FD_MOTOR_ON_2HD,
104 EVENT_FD_MOTOR_OFF_2HD,
105 EVENT_FM7MAINIO_ATTENTION,
106 EVENT_FM7MAINIO_SUBBUSY_SET,
107 EVENT_FM7MAINIO_SUBBUSY_RESET,
109 EVENT_FM7SUB_DISPLAY_NMI = 32,
110 EVENT_FM7SUB_DISPLAY_NMI_OFF,
116 EVENT_FM7SUB_CLR_BUSY,
117 EVENT_FM7SUB_CLR_CRTFLAG,
119 EVENT_PRINTER_RESET_COMPLETED,
124 FM7_SUBMEM_VRAMBANK_0 = 0, // $0000-$BFFF #1
125 FM7_SUBMEM_CONSOLERAM, // $C000-$CFFF
126 FM7_SUBMEM_WORKRAM, // $D000-$D37F
127 FM7_SUBMEM_SHAREDRAM, // $D380-$D3FF
128 FM7_SUBMEM_MMIO, // $D400-$D7FF
129 FM7_SUBMEM_MONITOR_C, // $D800-#FFFF #1
133 FM7_SUBMEM_VRAMBANK_1, // $0000-$BFFF #2
134 FM7_SUBMEM_AV_HIDDEN_RAM, // $D500-$D7FF
135 // 77AV : $E000-$FFFF
136 FM7_SUBMEM_MONITOR_A,
137 FM7_SUBMEM_MONITOR_B,
138 FM7_SUBMEM_MONITOR_CG,
139 FM7_SUBMEM_CGROM, // 77AV: CGROM #2($D800-$DFFF)
141 FM7_SUBMEM_VRAMBANK_2, // $0000-$BFFF #3
142 FM7_SUBMEM_MONITOR_RAM, // $E000-$DFFF
143 FM7_SUBMEM_CGRAM, // $D800-$DFFF
145 FM7_SUBMEM_77_WORKRAM,
147 FM7_SUBMEM_77_TEXTRAM,
148 FM7_SUBMEM_77_SUBMONITOR,
155 FM7_MAINCLOCK_SLOW = 0,
157 FM7_MAINCLOCK_MMRSLOW,
158 FM7_MAINCLOCK_MMRHIGH
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,
175 FM7_MAINIO_SUBMONITOR_ROM,
176 FM7_MAINIO_SUBMONITOR_RAM,
178 FM7_MAINIO_MMR_ENABLED,
179 FM7_MAINIO_FASTMMR_ENABLED,
180 FM7_MAINIO_WINDOW_ENABLED,
181 FM7_MAINIO_WINDOW_OFFSET,
182 FM7_MAINIO_MMR_SEGMENT,
183 FM7_MAINIO_MMR_EXTENDED,
184 FM7_MAINIO_WINDOW_FAST,
185 FM7_MAINIO_MEM_REFRESH_FAST,
187 FM7_MAINIO_UART0_SYNDET,
188 FM7_MAINIO_UART0_RXRDY,
189 FM7_MAINIO_UART0_TXRDY,
190 FM7_MAINIO_UART0_DCD,
191 FM7_MAINIO_MODEM_SYNDET,
192 FM7_MAINIO_MODEM_RXRDY,
193 FM7_MAINIO_MODEM_TXRDY,
194 FM7_MAINIO_MIDI_SYNDET,
195 FM7_MAINIO_MIDI_RXRDY,
196 FM7_MAINIO_MIDI_TXRDY,
198 FM7_JCOMMCARD_BUS_HALT,
200 FM7_MAINIO_MMR_BANK = 0x200100,
205 FM7_MAINIO_CMT_RECV = 0x1000, // Input data changed
206 FM7_MAINIO_CMT_INVERT, // Set / reset invert cmt data.
207 FM7_MAINIO_TIMERIRQ, // Timer from SUB.
210 FM7_MAINIO_LPT_ERROR,
212 FM7_MAINIO_LPT_PAPER_EMPTY,
215 FM7_MAINIO_KEYBOARDIRQ,
216 FM7_MAINIO_KEYBOARDIRQ_MASK,
217 FM7_MAINIO_PUSH_KEYBOARD,
218 FM7_MAINIO_PUSH_BREAK, // FIRQ
219 FM7_MAINIO_SUB_ATTENTION, // FIRQ
220 FM7_MAINIO_SUB_BUSY, // SUB is BUSY.
221 FM7_MAINIO_SUB_CANCEL, // SUB is BUSY.
223 FM7_MAINIO_BEEP, // BEEP From sub
228 FM7_MAINIO_JOYPORTA_CHANGED, // Joystick
229 FM7_MAINIO_JOYPORTB_CHANGED, // Joystick
232 FM7_MAINIO_KANJI1_ADDR_HIGH,
233 FM7_MAINIO_KANJI1_ADDR_LOW,
234 FM7_MAINIO_KANJI2_ADDR_HIGH,
235 FM7_MAINIO_KANJI2_ADDR_LOW,
236 FM7_MAINIO_HOT_RESET,
241 FM7_JOYSTICK_EMULATE_MOUSE_0,
242 FM7_JOYSTICK_EMULATE_MOUSE_1,
243 FM7_JOYSTICK_MOUSE_STROBE,
245 FM7_MAINIO_FDC_DRQ_2HD,
246 FM7_MAINIO_FDC_IRQ_2HD,
251 SIG_DISPLAY_VBLANK = 0x4000,
256 SIG_DISPLAY_DIGITAL_PALETTE,
257 SIG_DISPLAY_ANALOG_PALETTE,
260 SIG_DISPLAY_CHANGE_MODE,
261 SIG_DISPLAY_MULTIPAGE,
262 SIG_DISPLAY_MODE_IS_400LINE,
265 SIG_DISPLAY_Y_HEIGHT,
266 SIG_DISPLAY_EXTRA_MODE,
267 SIG_DISPLAY_STATREG_FD12,
269 SIG_DISPLAY_BANK_OFFSET,
273 DISPLAY_MODE_8_200L = 0,
275 DISPLAY_MODE_8_200L_TEXT,
276 DISPLAY_MODE_8_400L_TEXT,
282 DISPLAY_ADDR_MULTIPAGE = 0,
283 DISPLAY_ADDR_OFFSET_H,
284 DISPLAY_ADDR_OFFSET_L,
285 DISPLAY_ADDR_DPALETTE,
286 DISPLAY_ADDR_APALETTE_B = 0x10000000,
287 DISPLAY_ADDR_APALETTE_R = 0x20000000,
288 DISPLAY_ADDR_APALETTE_G = 0x30000000,
289 DISPLAY_VRAM_DIRECT_ACCESS = 0x80000000
293 SIG_FM7_SUB_HALT = 0x2000,
296 SIG_FM7_SUB_KEY_FIRQ,
297 SIG_FM7_SUB_KEY_MASK,
303 SIG_FM7KEY_KEY_UP = 0x800,
305 SIG_FM7KEY_READ, // D400 = high , D401 = low
306 SIG_FM7KEY_SET_INSLED, // D40D: Write = OFF / Read = ON
307 SIG_FM7KEY_SET_KANALED, //
308 SIG_FM7KEY_SET_CAPSLED, //
310 SIG_FM7KEY_ACK, // D431
311 SIG_FM7KEY_BREAK_KEY,
312 SIG_FM7KEY_PUSH_TO_ENCODER,
313 SIG_FM7KEY_LED_STATUS,
314 SIG_FM7KEY_OVERRIDE_PRESS_BREAK,
318 KEYMODE_STANDARD = 0,
324 KANJIROM_ADDR_HI = 0x10000,
329 KANJIROM_DIRECTADDR = 0x20000,
332 #define ROM_KANJI_CLASS1_FALLBACK "KANJI.ROM"
333 #define ROM_KANJI_CLASS1 "KANJI1.ROM"
334 #define ROM_KANJI_CLASS2 "KANJI2.ROM"
336 #define ROM_FM8_SUBSYSTEM "SUBSYS_8.ROM"
337 #define ROM_FM7_SUBSYSTEM_TYPE_A "SUBSYS_A.ROM"
338 #define ROM_FM7_SUBSYSTEM_TYPE_B "SUBSYS_B.ROM"
339 #define ROM_FM7_SUBSYSTEM_TYPE_C "SUBSYS_C.ROM"
340 #define ROM_FM7_SUBSYSTEM_CG "SUBSYSCG.ROM"
342 #define ROM_FM8_BOOT_BASIC "BOOT_BAS8.ROM"
343 #define ROM_FM8_BOOT_DOS "BOOT_DOS8.ROM"
344 #define ROM_FM8_BOOT_BUBBLE "BOOT_BBL8.ROM"
345 #define ROM_FM8_BOOT_BUBBLE_128K "BOOT_B128.ROM"
346 #define ROM_FM8_BOOT_DOS_FD8 "BOOT_SFD8.ROM"
347 #define ROM_FM8_FBASICV10 "FBASIC10.ROM"
349 #define ROM_FM7_BOOT_BASIC "BOOT_BAS.ROM"
350 #define ROM_FM7_BOOT_DOS "BOOT_DOS.ROM"
351 #define ROM_FM7_BOOT_MMR "BOOT_MMR.ROM"
352 #define ROM_FM7_BOOT_BUBBLE_7 "BOOTBBL7.ROM"
353 #define ROM_FM7_BOOT_2HD "BOOT_1MB.ROM"
354 #define ROM_FM77_BOOT_BUBBLE_128K "BOOT_B12.ROM"
356 #define ROM_FM7_FBASICV30 "FBASIC30.ROM"
357 #define ROM_FM7_FBASICV30L00 "FBASIC300.ROM"
358 #define ROM_FM7_FBASICV30L10 "FBASIC301.ROM"
359 #define ROM_FM7_FBASICV30L20 "FBASIC302.ROM"
361 #define ROM_FM77_400LINE_SUBSYS "SUBSYSL4.ROM"
362 #define ROM_FM77_400LINE_ANKCG "ANKCG16.ROM"
364 #define ROM_FM77AV_INITIATOR "INITIATE.ROM"
365 #define ROM_FM77AV_DICTIONARY "DICROM.ROM"
366 #define ROM_FM77AV40EX_EXTSUB "EXTSUB.ROM"
368 #define ROM_JCOMM_FIRMWARE "JSUBMON.ROM"
369 #define ROM_JCOMM_DICTIONARY "DICROM.ROM"
370 #define ROM_JCOMM_KANJI "JSUBKANJI.ROM"
373 #define RAM_JCOMM_BACKUP "JCOMMCARD.bin"
374 #define RAM_FM77AV_DIC_BACKUP "USERDIC.DAT"
377 #endif // _FM7_COMMON_H_