OSDN Git Service

Merge branch 'master' of github.com:Artanejp/common_source_project-fm7
[csp-qt/common_source_project-fm7.git] / source / src / vm / ls244.h
1 /*
2         Skelton for retropc emulator
3
4         Author : Takeda.Toshiya
5         Date   : 2008.04.19-
6
7         [ 74LS244 / 74LS245 ]
8 */
9
10 #ifndef _LS244_H_
11 #define _LS244_H_
12
13 //#include "vm.h"
14 //#include "../emu.h"
15 #include "device.h"
16
17 #define SIG_LS244_INPUT 0
18
19 class VM;
20 class EMU;
21 class LS244 : public DEVICE
22 {
23 private:
24         // output signals
25         outputs_t outputs;
26         
27         uint8_t din;
28         
29 public:
30         LS244(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
31         {
32                 initialize_output_signals(&outputs);
33                 set_device_name(_T("74LS244 OCTAL 3-STATE BUFFER"));
34         }
35         ~LS244() {}
36         
37         // common functions
38         void initialize();
39         void write_io8(uint32_t addr, uint32_t data);
40         uint32_t read_io8(uint32_t addr);
41         void write_signal(int id, uint32_t data, uint32_t mask);
42         void save_state(FILEIO* state_fio);
43         bool load_state(FILEIO* state_fio);
44         
45         // unique function
46         void set_context_output(DEVICE* device, int id, uint32_t mask, int shift)
47         {
48                 register_output_signal(&outputs, device, id, mask, shift);
49         }
50 };
51
52 #endif
53