OSDN Git Service

[VM][FMTOWNS][MEMORY] Fix setup around memory banks by I/O 0404h and 0480h.
[csp-qt/common_source_project-fm7.git] / source / src / vm / vm.h
1 /*
2         Skelton for retropc emulator
3
4         Author : Takeda.Toshiya
5         Date   : 2006.08.18 -
6
7         [ common header ]
8 */
9
10 #ifndef _VM_H_
11 #define _VM_H_
12
13 // GIJUTSU-HYORON-SHA Babbase-2nd
14 #ifdef _BABBAGE2ND
15 #include "babbage2nd/babbage2nd.h"
16 #endif
17
18 // HITACHI BASIC Master Jr
19 #ifdef _BMJR
20 #include "bmjr/bmjr.h"
21 #endif
22
23 // Systems Formulate BUBCOM80
24 #ifdef _BUBCOM80
25 #include "bubcom80/bubcom80.h"
26 #endif
27
28 // CANON BX-1
29 #ifdef _BX1
30 #include "bx1/bx1.h"
31 #endif
32
33 // Hino Electronics CEFUCOM-21
34 #ifdef _CEFUCOM21
35 #include "cefucom21/cefucom21.h"
36 #endif
37
38 // COLECO ColecoVision
39 #ifdef _COLECOVISION
40 #include "colecovision/colecovision.h"
41 #endif
42
43 // Computer Research CRC-80
44 #ifdef _CRC80
45 #include "crc80/crc80.h"
46 #endif
47
48 // TOSHIBA EX-80BS
49 #ifdef _EX80BS
50 #include "ex80bs/ex80bs.h"
51 #endif
52
53 // Nintendo Family BASIC
54 #ifdef _FAMILYBASIC
55 #include "familybasic/familybasic.h"
56 #endif
57
58 // FUJITSU FM-8
59 #ifdef _FM8
60 #include "fm7/fm7.h"
61 #endif
62
63 // FUJITSU FM-7
64 #ifdef _FM7
65 #include "fm7/fm7.h"
66 #endif
67
68 // FUJITSU FM-NEW7
69 #ifdef _FMNEW7
70 #include "fm7/fm7.h"
71 #endif
72
73 // FUJITSU FM-77
74 #ifdef _FM77
75 #include "fm7/fm7.h"
76 #endif
77
78 // FUJITSU FM-77L2
79 #ifdef _FM77L2
80 #include "fm7/fm7.h"
81 #endif
82
83 // FUJITSU FM-77L4
84 #ifdef _FM77L4
85 #include "fm7/fm7.h"
86 #endif
87
88 // FUJITSU FM77AV
89 #ifdef _FM77AV
90 #include "fm7/fm7.h"
91 #endif
92
93 // FUJITSU FM77AV20
94 #ifdef _FM77AV20
95 #include "fm7/fm7.h"
96 #endif
97
98 // FUJITSU FM77AV40
99 #ifdef _FM77AV40
100 #include "fm7/fm7.h"
101 #endif
102
103 // FUJITSU FM77AV20EX
104 #ifdef _FM77AV20EX
105 #include "fm7/fm7.h"
106 #endif
107
108 // FUJITSU FM77AV40EX
109 #ifdef _FM77AV40EX
110 #include "fm7/fm7.h"
111 #endif
112
113 // FUJITSU FM77AV40SX
114 #ifdef _FM77AV40SX
115 #include "fm7/fm7.h"
116 #endif
117
118 // FUJITSU FM16beta
119 #ifdef _FM16BETA
120 #include "fm16beta/fm16beta.h"
121 #endif
122
123 // FUJITSU FM16pi
124 #ifdef _FM16PI
125 #include "fm16pi/fm16pi.h"
126 #endif
127
128 // FUJITSU FMR-30
129 #ifdef _FMR30
130 #include "fmr30/fmr30.h"
131 #endif
132
133 // FUJITSU FMR-50
134 #ifdef _FMR50
135 #include "fmr50/fmr50.h"
136 #endif
137
138 // FUJITSU FMR-60
139 #ifdef _FMR60
140 #include "fmr50/fmr50.h"
141 #endif
142
143 #if defined(_FMTOWNS_1) || defined(_FMTOWNS_2)
144 #include "fmtowns/fmtowns.h"
145 #endif
146
147 #if defined(_FMTOWNS_1F) || defined(_FMTOWNS_2F) || defined(_FMTOWNS_1H) || defined(_FMTOWNS_2H)
148 #include "fmtowns/fmtowns.h"
149 #endif
150
151 #if defined(_FMTOWNS_10F) || defined(_FMTOWNS_20F) || defined(_FMTOWNS_40H) || defined(_FMTOWNS_80H)
152 #include "fmtowns/fmtowns.h"
153 #endif
154
155 #if defined(_FMTOWNS2_UX10) || defined(_FMTOWNS2_UX20) || defined(_FMTOWNS2_UX40)
156 #include "fmtowns/fmtowns.h"
157 #endif
158
159 #if defined(_FMTOWNS2_CX10) || defined(_FMTOWNS2_CX20) || defined(_FMTOWNS2_CX40) || defined(_FMTOWNS2_CX100)
160 #include "fmtowns/fmtowns.h"
161 #endif
162
163 #if defined(_FMTOWNS2_HG20) || defined(_FMTOWNS2_HG40) || defined(_FMTOWNS2_HG100)
164 #include "fmtowns/fmtowns.h"
165 #endif
166
167 #if defined(_FMTOWNS2_HR20) || defined(_FMTOWNS2_HR100) || defined(_FMTOWNS2_HR200)
168 #include "fmtowns/fmtowns.h"
169 #endif
170
171 // CASIO FP-200
172 #ifdef _FP200
173 #include "fp200/fp200.h"
174 #endif
175
176 // CASIO FP-1100
177 #ifdef _FP1100
178 #include "fp1100/fp1100.h"
179 #endif
180
181 // Panasonic FS-A1
182 #ifdef _FSA1
183 #include "msx/msx_ex.h"
184 #endif
185
186 // CASIO FX-9000P
187 #ifdef _FX9000P
188 #include "fx9000p/fx9000p.h"
189 #endif
190
191 // SEGA GAME GEAR
192 #ifdef _GAMEGEAR
193 #include "gamegear/gamegear.h"
194 #endif
195
196 // EPSON HC-20
197 #ifdef _HC20
198 #include "hc20/hc20.h"
199 #endif
200
201 // EPSON HC-40
202 #ifdef _HC40
203 #include "hc40/hc40.h"
204 #endif
205
206 // EPSON HC-80
207 #ifdef _HC80
208 #include "hc80/hc80.h"
209 #endif
210
211 // TOSHIBA HX-20 + FDD
212 #ifdef _HX20
213 #include "msx/msx_ex.h"
214 #endif
215
216 // TOSHIBA J-3100GT
217 #ifdef _J3100GT
218 #include "j3100/j3100.h"
219 #endif
220
221 // TOSHIBA J-3100SL
222 #ifdef _J3100SL
223 #include "j3100/j3100.h"
224 #endif
225
226 // National JR-100
227 #ifdef _JR100
228 #include "jr100/jr100.h"
229 #endif
230
231 // National JR-200
232 #ifdef _JR200
233 #include "jr200/jr200.h"
234 #endif
235
236 // National JR-800
237 #ifdef _JR800
238 #include "jr800/jr800.h"
239 #endif
240
241 // IBM Japan Ltd PC/JX
242 #ifdef _JX
243 #include "jx/jx.h"
244 #endif
245
246 // SORD M23
247 #ifdef _M23
248 #include "m23/m23.h"
249 #endif
250
251 // SORD m5
252 #ifdef _M5
253 #include "m5/m5.h"
254 #endif
255
256 // SORD M68
257 #ifdef _M68
258 #include "m23/m23.h"
259 #endif
260
261 // SEIKO MAP-1010
262 #ifdef _MAP1010
263 #include "phc25/phc25.h"
264 #endif
265
266 // SEGA MASTER SYSTEM
267 #ifdef _MASTERSYSTEM
268 #include "gamegear/mastersystem.h"
269 #endif
270
271 // Nippon Mail Service MICOM MAHJONG
272 #ifdef _MICOM_MAHJONG
273 #include "micom_mahjong/micom_mahjong.h"
274 #endif
275
276 // MITEC MP85
277 #ifdef _MP85
278 #include "mp85/mp85.h"
279 #endif
280
281 // ASCII MSX
282 #ifdef _MSX1
283 //#include "msx/msx.h"
284 #include "msx/msx_ex.h"
285 #endif
286
287 // ASCII MSX2
288 #ifdef _MSX2
289 //#include "msx/msx.h"
290 #include "msx/msx_ex.h"
291 #endif
292
293 // ASCII MSX2+
294 #ifdef _MSX2P
295 #include "msx/msx_ex.h"
296 #endif
297
298 // MITSUBISHI Elec. MULTI8
299 #ifdef _MULTI8
300 #include "multi8/multi8.h"
301 #endif
302
303 // Japan Electronics College MYCOMZ-80A
304 #ifdef _MYCOMZ80A
305 #include "mycomz80a/mycomz80a.h"
306 #endif
307
308 // SHARP MZ-80A
309 #ifdef _MZ80A
310 #include "mz80k/mz80k.h"
311 #endif
312
313 // SHARP MZ-80B
314 #ifdef _MZ80B
315 #include "mz2500/mz80b.h"
316 #endif
317
318 // SHARP MZ-80K
319 #ifdef _MZ80K
320 #include "mz80k/mz80k.h"
321 #endif
322
323 // SHARP MZ-700
324 #ifdef _MZ700
325 #include "mz700/mz700.h"
326 #endif
327
328 // SHARP MZ-800
329 #ifdef _MZ800
330 #include "mz700/mz700.h"
331 #endif
332
333 // SHARP MZ-1200
334 #ifdef _MZ1200
335 #include "mz80k/mz80k.h"
336 #endif
337
338 // SHARP MZ-1500
339 #ifdef _MZ1500
340 #include "mz700/mz700.h"
341 #endif
342
343 // SHARP MZ-2200
344 #ifdef _MZ2200
345 #include "mz2500/mz80b.h"
346 #endif
347
348 // SHARP MZ-2500
349 #ifdef _MZ2500
350 #include "mz2500/mz2500.h"
351 #endif
352
353 // SHARP MZ-2800
354 #ifdef _MZ2800
355 #include "mz2800/mz2800.h"
356 #endif
357
358 // SHARP MZ-3500
359 #ifdef _MZ3500
360 #include "mz3500/mz3500.h"
361 #endif
362
363 // SHARP MZ-5500
364 #ifdef _MZ5500
365 #include "mz5500/mz5500.h"
366 #endif
367
368 // SHARP MZ-6500
369 #ifdef _MZ6500
370 #include "mz5500/mz5500.h"
371 #endif
372
373 // SHARP MZ-6550
374 #ifdef _MZ6550
375 #include "mz5500/mz5500.h"
376 #endif
377
378 // NEC N5200
379 #ifdef _N5200
380 #include "n5200/n5200.h"
381 #endif
382
383 // TOSHIBA PASOPIA
384 #ifdef _PASOPIA
385 #include "pasopia/pasopia.h"
386 #endif
387
388 // TOSHIBA PASOPIA 7
389 #ifdef _PASOPIA7
390 #include "pasopia7/pasopia7.h"
391 #endif
392
393 // NEC PC-2001
394 #ifdef _PC2001
395 #include "pc2001/pc2001.h"
396 #endif
397
398 // NEC PC-6001
399 #ifdef _PC6001
400 #include "pc6001/pc6001.h"
401 #endif
402
403 // NEC PC-6001mkII
404 #ifdef _PC6001MK2
405 #include "pc6001/pc6001.h"
406 #endif
407
408 // NEC PC-6001mkIISR
409 #ifdef _PC6001MK2SR
410 #include "pc6001/pc6001.h"
411 #endif
412
413 // NEC PC-6601
414 #ifdef _PC6601
415 #include "pc6001/pc6001.h"
416 #endif
417
418 // NEC PC-6601SR
419 #ifdef _PC6601SR
420 #include "pc6001/pc6001.h"
421 #endif
422
423 // NEC PC-8001
424 #ifdef _PC8001
425 #include "pc8801/pc8801.h"
426 #endif
427
428 // NEC PC-8001mkII
429 #ifdef _PC8001MK2
430 #include "pc8801/pc8801.h"
431 #endif
432
433 // NEC PC-8001mkIISR
434 #ifdef _PC8001SR
435 #include "pc8801/pc8801.h"
436 #endif
437
438 // NEC PC-8201
439 #ifdef _PC8201
440 #include "pc8201/pc8201.h"
441 #endif
442
443 // NEC PC-8201A
444 #ifdef _PC8201A
445 #include "pc8201/pc8201.h"
446 #endif
447
448 // NEC PC-8801
449 #ifdef _PC8801
450 #include "pc8801/pc8801.h"
451 #endif
452
453 // NEC PC-8801mkII
454 #ifdef _PC8801MK2
455 #include "pc8801/pc8801.h"
456 #endif
457
458 // NEC PC-8801MA
459 #ifdef _PC8801MA
460 #include "pc8801/pc8801.h"
461 #endif
462
463 // NEC PC-9801
464 #ifdef _PC9801
465 #include "pc9801/pc9801.h"
466 #endif
467
468 // NEC PC-9801E/F/M
469 #ifdef _PC9801E
470 #include "pc9801/pc9801.h"
471 #endif
472
473 // NEC PC-9801U
474 #ifdef _PC9801U
475 #include "pc9801/pc9801.h"
476 #endif
477
478 // NEC PC-9801VF
479 #ifdef _PC9801VF
480 #include "pc9801/pc9801.h"
481 #endif
482
483 // NEC PC-9801VM
484 #ifdef _PC9801VM
485 #include "pc9801/pc9801.h"
486 #endif
487
488 // NEC PC-9801VX
489 #ifdef _PC9801VX
490 #include "pc9801/pc9801.h"
491 #endif
492
493 // NEC PC-9801RA
494 #ifdef _PC9801RA
495 #include "pc9801/pc9801.h"
496 #endif
497
498 // NEC PC-98DO
499 #ifdef _PC98DO
500 #include "pc9801/pc9801.h"
501 #endif
502
503 // NEC PC-98HA
504 #ifdef _PC98HA
505 #include "pc98ha/pc98ha.h"
506 #endif
507
508 // NEC PC-98LT
509 #ifdef _PC98LT
510 #include "pc98ha/pc98ha.h"
511 #endif
512
513 // NEC PC-98RL
514 #ifdef _PC98RL
515 #include "pc9801/pc9801.h"
516 #endif
517
518 // NEC PC-98XA
519 #ifdef _PC98XA
520 #include "pc9801/pc9801.h"
521 #endif
522
523 // NEC PC-98XL
524 #ifdef _PC98XL
525 #include "pc9801/pc9801.h"
526 #endif
527
528 // NEC PC-100
529 #ifdef _PC100
530 #include "pc100/pc100.h"
531 #endif
532
533 // NEC-HE PC Engine
534 #ifdef _PCENGINE
535 #include "pcengine/pcengine.h"
536 #endif
537
538 // SANYO PHC-20
539 #ifdef _PHC20
540 #include "phc20/phc20.h"
541 #endif
542
543 // SANYO PHC-25
544 #ifdef _PHC25
545 #include "phc25/phc25.h"
546 #endif
547
548 // CASIO PV-1000
549 #ifdef _PV1000
550 #include "pv1000/pv1000.h"
551 #endif
552
553 // CASIO PV-2000
554 #ifdef _PV2000
555 #include "pv2000/pv2000.h"
556 #endif
557
558 // PIONEER PX-7
559 #ifdef _PX7
560 //#include "msx/msx.h"
561 #include "msx/msx_ex.h"
562 #endif
563
564 // TOMY PYUTA
565 #ifdef _PYUTA
566 #include "pyuta/pyuta.h"
567 #endif
568
569 // EPSON QC-10
570 #ifdef _QC10
571 #include "qc10/qc10.h"
572 #endif
573
574 // BANDAI RX-78
575 #ifdef _RX78
576 #include "rx78/rx78.h"
577 #endif
578
579 // SEGA SC-3000
580 #ifdef _SC3000
581 #include "sc3000/sc3000.h"
582 #endif
583
584 // EPOCH Super Cassette Vision
585 #ifdef _SCV
586 #include "scv/scv.h"
587 #endif
588
589 // SHARP SM-B-80TE
590 #ifdef _SMB80TE
591 #include "smb80te/smb80te.h"
592 #endif
593
594 // SONY SMC-70
595 #ifdef _SMC70
596 #include "smc777/smc777.h"
597 #endif
598
599 // SONY SMC-777
600 #ifdef _SMC777
601 #include "smc777/smc777.h"
602 #endif
603
604 // SPECTRAVIDEO SVI-3x8
605 #ifdef _SVI3X8
606 #include "svi3x8/msx_ex.h"
607 #endif
608
609 // NEC TK-80BS (COMPO BS/80)
610 #ifdef _TK80BS
611 #include "tk80bs/tk80bs.h"
612 #endif
613
614 // NEC TK-80
615 #ifdef _TK80
616 #include "tk80bs/tk80bs.h"
617 #endif
618
619 // NEC TK-85
620 #ifdef _TK85
621 #include "tk80bs/tk80bs.h"
622 #endif
623
624 // ESP TRN Junior
625 #ifdef _TRNJR
626 #include "trnjr/trnjr.h"
627 #endif
628
629 // GAKKEN TV BOY
630 #ifdef _TVBOY
631 #include "tvboy/tvboy.h"
632 #endif
633
634 // CANON X-07
635 #ifdef _X07
636 #include "x07/x07.h"
637 #endif
638
639 // SHARP X1
640 #ifdef _X1
641 #include "x1/x1.h"
642 #endif
643
644 // SHARP X1twin
645 #ifdef _X1TWIN
646 #include "x1/x1.h"
647 #endif
648
649 // SHARP X1turbo
650 #ifdef _X1TURBO
651 #include "x1/x1.h"
652 #endif
653
654 // SHARP X1turboZ
655 #ifdef _X1TURBOZ
656 #include "x1/x1.h"
657 #endif
658
659 // Yuasa Kyouiku System YALKY
660 #ifdef _YALKY
661 #include "yalky/yalky.h"
662 #endif
663
664 // YAMAHA YIS
665 #ifdef _YIS
666 #include "yis/yis.h"
667 #endif
668
669 // SHINKO SANGYO YS-6464A
670 #ifdef _YS6464A
671 #include "ys6464a/ys6464a.h"
672 #endif
673
674 // Homebrew Z80 TV GAME SYSTEM
675 #ifdef _Z80TVGAME
676 #include "z80tvgame/z80tvgame.h"
677 #endif
678
679 #ifndef WINDOW_MODE_BASE
680         #define WINDOW_MODE_BASE 1
681 #endif
682 #ifndef WINDOW_WIDTH
683         #ifdef SCREEN_FAKE_WIDTH
684                 #define WINDOW_WIDTH SCREEN_FAKE_WIDTH
685         #else
686                 #define WINDOW_WIDTH SCREEN_WIDTH
687         #endif
688 #endif
689 #ifndef WINDOW_HEIGHT
690         #ifdef SCREEN_FAKE_HEIGHT
691                 #define WINDOW_HEIGHT SCREEN_FAKE_HEIGHT
692         #else
693                 #define WINDOW_HEIGHT SCREEN_HEIGHT
694         #endif
695 #endif
696 #ifndef WINDOW_WIDTH_ASPECT
697         #define WINDOW_WIDTH_ASPECT WINDOW_WIDTH
698 #endif
699 #ifndef WINDOW_HEIGHT_ASPECT
700         #define WINDOW_HEIGHT_ASPECT WINDOW_HEIGHT
701 #endif
702
703 #if defined(USE_CART) && !defined(BASE_CART_NUM)
704         #define BASE_CART_NUM           1
705 #endif
706 #if defined(USE_FLOPPY_DISK) && !defined(BASE_FLOPPY_DISK_NUM)
707         #define BASE_FLOPPY_DISK_NUM    1
708 #endif
709 #if defined(USE_QUICK_DISK) && !defined(BASE_QUICK_DISK_NUM)
710         #define BASE_QUICK_DISK_NUM     1
711 #endif
712 #if defined(USE_HARD_DISK) && !defined(BASE_HARD_DISK_NUM)
713         #define BASE_HARD_DISK_NUM      1
714 #endif
715 #if defined(USE_TAPE) && !defined(BASE_TAPE_NUM)
716         #define BASE_TAPE_NUM           1
717 #endif
718 #if defined(USE_COMPACT_DISC) && !defined(BASE_COMPACT_DISC_NUM)
719         #define BASE_COMPACT_DISC_NUM   1
720 #endif
721 #if defined(USE_LASER_DISC) && !defined(BASE_LASER_DISC_NUM)
722         #define BASE_LASER_DISC_NUM     1
723 #endif
724 #if defined(USE_BINARY_FILE) && !defined(BASE_BINARY_FILE_NUM)
725         #define BASE_BINARY_FILE_NUM    1
726 #endif
727 #if defined(USE_BUBBLE) && !defined(BASE_BUBBLE_NUM)
728         #define BASE_BUBBLE_NUM         1
729 #endif
730
731 #ifndef KEY_KEEP_FRAMES
732         #define KEY_KEEP_FRAMES 3
733 #endif
734
735 #endif