OSDN Git Service

[VM][FMTOWNS] Add FONT ROMS, MSDOS ROM, SYSTEM ROM and SERIAL ROM.
[csp-qt/common_source_project-fm7.git] / source / src / vm / fmtowns / towns_sysrom.h
1 /*
2         FUJITSU FM Towns Emulator 'eFMTowns'
3
4         Author : Kyuma.Ohta <whatisthis.sowhat _at_ gmail.com>
5         Date   : 2019.01.09-
6
7         [ SYSTEM rom & RAM area 0x000f0000 - 0x000fffff]
8 */
9
10 #pragma once
11
12 #include "common.h"
13 #include "device.h"
14
15 #define SIG_FMTOWNS_SYSROMSEL 0x1000
16
17 namespace FMTOWNS {
18
19 class SYSROM : public DEVICE
20 {
21 protected:
22         uint8_t rom[0x40000]; // 256KB
23         uint8_t ram[0x10000];  // 64KB
24         int wait_val;
25
26         bool map_dos;
27
28 public:
29         SYSROM(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
30         {
31                 set_device_name("FM-Towns SYSTEM ROM/RAM 0x000fxxxx");
32         }
33         ~SYSROM() {}
34         void initialize();
35         void reset();
36
37         uint32_t read_data8(uint32_t addr);
38         uint32_t read_data8w(uint32_t addr, int* wait);
39
40         void write_data8(uint32_t addr, uint32_t data);
41         void write_data8w(uint32_t addr, uint32_t data, int* wait);
42
43         void write_signal(int ch, uint32_t data, uint32_t mask);
44         uint32_t read_signal(int ch);
45
46         bool process_state(FILEIO* state_fio, bool loading);
47
48 };
49
50 }
51
52 // END