#ifndef _I8255_H_
#define _I8255_H_
-#include "vm.h"
-#include "../emu.h"
+//#include "vm.h"
+//#include "../emu.h"
#include "device.h"
#define SIG_I8255_PORT_A 0
// output signals
outputs_t outputs;
} port[3];
+ bool __I8255_AUTO_HAND_SHAKE;
public:
- I8255(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+ I8255(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
{
for(int i = 0; i < 3; i++) {
initialize_output_signals(&port[i].outputs);
port[i].wreg = port[i].rreg = 0;//0xff;
}
clear_ports_by_cmdreg = false;
- set_device_name(_T("i8255"));
+ __I8255_AUTO_HAND_SHAKE = false;
+ set_device_name(_T("i8255 PIO"));
}
~I8255() {}
// common functions
+ void initialize();
void reset();
- void write_io8(uint32_t addr, uint32_t data);
- uint32_t read_io8(uint32_t addr);
- void write_signal(int id, uint32_t data, uint32_t mask);
- uint32_t read_signal(int id);
- void save_state(FILEIO* state_fio);
- bool load_state(FILEIO* state_fio);
+ void __FASTCALL write_io8(uint32_t addr, uint32_t data);
+ uint32_t __FASTCALL read_io8(uint32_t addr);
+ void __FASTCALL write_signal(int id, uint32_t data, uint32_t mask);
+ uint32_t __FASTCALL read_signal(int id);
+ bool process_state(FILEIO* state_fio, bool loading);
// unique functions
void set_context_port_a(DEVICE* device, int id, uint32_t mask, int shift)
{