OSDN Git Service

[VM] Add EMU::set_vm_screen_lines() to some VMs.
[csp-qt/common_source_project-fm7.git] / source / src / vm / pc80s31k.h
1 /*
2         Skelton for retropc emulator
3
4         Author : Takeda.Toshiya
5         Date   : 2011.12.18-
6
7         [ PC-80S31K ]
8 */
9
10 #ifndef _PC80S31K_H_
11 #define _PC80S31K_H_
12
13 //#include "vm.h"
14 //#include "../emu.h"
15 #include "device.h"
16
17 class UPD765A;
18
19 class PC80S31K : public DEVICE
20 {
21 private:
22         UPD765A *d_fdc;
23         DEVICE *d_cpu, *d_pio;
24         
25         uint8_t rom[0x2000];    // PC-8801M*
26         uint8_t ram[0x4000];
27         
28         uint8_t wdmy[0x2000];
29         uint8_t rdmy[0x2000];
30         uint8_t* wbank[8];
31         uint8_t* rbank[8];
32
33         bool _debug_pc80s31k;
34         bool pc80s31k_no_wait;
35 public:
36         PC80S31K(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
37         {
38                 set_device_name(_T("PC-80S31K FDD"));
39                 
40         }
41         ~PC80S31K() {}
42         
43         // common functions
44         void initialize();
45         void reset();
46         uint32_t read_data8(uint32_t addr);
47         uint32_t fetch_op(uint32_t addr, int *wait);
48         void write_data8(uint32_t addr, uint32_t data);
49         uint32_t read_io8(uint32_t addr);
50         void write_io8(uint32_t addr, uint32_t data);
51         uint32_t get_intr_ack();
52         void save_state(FILEIO* state_fio);
53         bool load_state(FILEIO* state_fio);
54         
55         // unique functions
56         void set_context_cpu(DEVICE* device)
57         {
58                 d_cpu = device;
59         }
60         void set_context_fdc(UPD765A* device)
61         {
62                 d_fdc = device;
63         }
64         void set_context_pio(DEVICE* device)
65         {
66                 d_pio = device;
67         }
68 };
69
70 #endif
71