OSDN Git Service

[VM][COMMON_VM] Include IO:: class to common_vm.
[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_TEMPLATE* 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 __FASTCALL read_data8(uint32_t addr);
47         uint32_t __FASTCALL fetch_op(uint32_t addr, int *wait);
48         void __FASTCALL write_data8(uint32_t addr, uint32_t data);
49         uint32_t __FASTCALL read_io8(uint32_t addr);
50         void __FASTCALL write_io8(uint32_t addr, uint32_t data);
51         uint32_t get_intr_ack();
52         bool process_state(FILEIO* state_fio, bool loading);
53         
54         // unique functions
55         void set_context_cpu(DEVICE* device)
56         {
57                 d_cpu = device;
58         }
59         void set_context_fdc(UPD765A* device)
60         {
61                 d_fdc = device;
62         }
63         void set_context_pio(DEVICE* device)
64         {
65                 d_pio = device;
66         }
67 };
68
69 #endif
70