2 CASIO FP-1100 Emulator 'eFP-1100'
4 Author : Takeda.Toshiya
14 #include "../../emu.h"
15 #include "../device.h"
17 #define SIG_SUB_INT2 0
18 #define SIG_SUB_COMM 1
19 #define SIG_SUB_HSYNC 2
23 class SUB : public DEVICE
59 bool in_d, in_ck, in_s, in_r;
67 } else if(in_s && !in_r) {
70 } else if(!in_s && !in_r) {
71 out_q = out_nq = true; // undetermined
72 } else if(!tmp_ck && in_ck) {
78 } b16_1, b16_2, g21_1, g21_2;
82 bool in_d0, in_d1, in_d2, in_d3, in_d4, in_d5, in_d6, in_d7;
83 bool in_a, in_b, in_c, in_s;
89 } else if(!in_a && !in_b && !in_c) {
91 } else if( in_a && !in_b && !in_c) {
93 } else if(!in_a && in_b && !in_c) {
95 } else if( in_a && in_b && !in_c) {
97 } else if(!in_a && !in_b && in_c) {
99 } else if( in_a && !in_b && in_c) {
101 } else if(!in_a && in_b && in_c) {
103 } else if( in_a && in_b && in_c) {
112 bool in_a, in_b, in_rc1, in_rc2;
113 bool out_qa, out_qb, out_qc;
115 uint8 counter_a, counter_b;
118 if(in_rc1 && in_rc2) {
119 counter_a = counter_b = 0;
130 out_qa = ((counter_a & 1) != 0);
131 out_qb = ((counter_b & 1) != 0);
132 out_qc = ((counter_b & 2) != 0);
146 } else if(tmp_ck && !in_ck) {
150 out_q5 = ((counter & 0x10) != 0);
151 out_q6 = ((counter & 0x20) != 0);
158 uint8 key_sel, key_data;
163 uint8 screen[400][640];
165 scrntype palette_pc[8];
170 SUB(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu) {}
176 void write_data8(uint32 addr, uint32 data);
177 uint32 read_data8(uint32 addr);
178 void write_io8(uint32 addr, uint32 data);
179 uint32 read_io8(uint32 addr);
180 void write_signal(int id, uint32 data, uint32 mask);
182 void event_callback(int event_id, int err);
183 void save_state(FILEIO* state_fio);
184 bool load_state(FILEIO* state_fio);
187 void set_context_cpu(DEVICE *device)
191 void set_context_main(DEVICE *device)
195 void set_context_beep(DEVICE *device)
199 void set_context_drec(DEVICE *device)
203 void set_context_crtc(DEVICE *device, uint8* ptr)
208 void key_down(int code);
209 void key_up(int code);