#define SIG_TIMER_IRQ_EXT_INT 7
#ifndef _PC6001
-class MEMORY;
+class PC6001_MEMORY;
#endif
class TIMER : public DEVICE
private:
DEVICE *d_cpu, *d_sub;
#ifndef _PC6001
- MEMORY *d_mem;
+ PC6001_MEMORY *d_mem;
#endif
- uint8 IRQ, NewIRQ;
+ uint8_t IRQ, NewIRQ;
int timer_id;
#ifndef _PC6001
#if defined(_PC6601SR) || defined(_PC6001MK2SR)
- uint8 sr_vectors[8];
- uint8 portFA;
- uint8 portFB;
+ uint8_t sr_vectors[8];
+ uint8_t portFA;
+ uint8_t portFB;
#endif
- uint8 portF3;
- uint8 portF4;
- uint8 portF5;
- uint8 portF6;
- uint8 portF7;
+ uint8_t portF3;
+ uint8_t portF4;
+ uint8_t portF5;
+ uint8_t portF6;
+ uint8_t portF7;
#endif
void update_intr();
public:
- TIMER(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu) {}
+ TIMER(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu) {}
~TIMER() {}
// common functions
void initialize();
void reset();
#ifndef _PC6001
- 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);
#endif
void event_callback(int event_id, int err);
- void write_signal(int id, uint32 data, uint32 mask);
- uint32 intr_ack();
- void intr_reti();
+ void write_signal(int id, uint32_t data, uint32_t mask);
+ uint32_t get_intr_ack();
+ void notify_intr_reti();
+ bool process_state(FILEIO* state_fio, bool loading);
- // unique function
+ // unique functions
void set_context_cpu(DEVICE* device)
{
d_cpu = device;
d_sub = device;
}
#ifndef _PC6001
- void set_context_memory(MEMORY* device)
+ void set_context_memory(PC6001_MEMORY* device)
{
d_mem = device;
}
#endif
- void set_portB0(uint32 data);
+ void set_portB0(uint32_t data);
};
#endif