class FILEIO;
-#if defined(_USE_QT) || defined(_USE_AGAR)
-typedef uint8 byte;
-#endif
+namespace PC6001 {
class PSUB : public DEVICE
{
int CasRecv;
int CasMode;
int CasBaud, FileBaud;
- uint8 CasData[0x10000];
+ uint8_t CasData[0x10000];
int CasLength;
int CasSkipFlag;
- uint8* key_stat;
+ const uint8_t* key_stat;
+// uint8_t key_stat[256];
int kbFlagFunc;
int kbFlagGraph;
int kbFlagCtrl;
int stick0;
int StrigIntFlag;
int StrigEventID;
- void update_keyboard();
+ void update_keyboard(int code);
public:
- PSUB(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu) {}
+ PSUB(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+ {
+ set_device_name(_T("Pseudo Sub System"));
+ }
~PSUB() {}
// common functions
void initialize();
void release();
void reset();
- void write_io8(uint32 addr, uint32 data);
- uint32 read_io8(uint32 addr);
+ void write_io8(uint32_t addr, uint32_t data);
+ uint32_t read_io8(uint32_t addr);
void event_frame();
void event_callback(int event_id, int err);
- uint32 intr_ack();
- void save_state(FILEIO* state_fio);
- bool load_state(FILEIO* state_fio);
+ uint32_t get_intr_ack();
+ bool process_state(FILEIO* state_fio, bool loading);
// unique functions
void set_context_pio(DEVICE* device)
{
d_timer = device;
}
- bool play_tape(_TCHAR* file_path);
- bool rec_tape(_TCHAR* file_path);
+ bool play_tape(const _TCHAR* file_path);
+ bool rec_tape(const _TCHAR* file_path);
void close_tape();
- bool tape_inserted()
+ bool is_tape_inserted()
{
return (play || rec);
}
- int get_tape_ptr()
- {
- if(CasLength <= 0) return 0;
- return (CasIndex * 100) / CasLength;
- }
+ void key_down(int code);
+ void key_up(int code);
};
+
+}
#endif