- WORD pc; // 6809 PC register
- WORD x; // 6809 X index register
- WORD y; // 6809 Y index register
- WORD s; // 6809 System stack pointer
- WORD u; // 6809 User stack pointer
- BYTE cc; // 6809 Condition Code register
- BYTE a; // 6809 A register
- BYTE b; // 6809 B register
- BYTE dp; // 6809 Direct Page register
- DWORD clock; // 6809 clock
-//DWORD _reserved;// BYTE (* Fetch)(WORD&); // Address of BYTE fetch routine
- BYTE (* RdMem)(WORD); // Address of BYTE read routine
- void (* WrMem)(WORD, BYTE); // Address of BYTE write routine
- DWORD cpuFlags; // v6809 IRQ/RESET flags
+ uint16 pc; // 6809 PC register
+ uint16 x; // 6809 X index register
+ uint16 y; // 6809 Y index register
+ uint16 s; // 6809 System stack pointer
+ uint16 u; // 6809 User stack pointer
+ uint8 cc; // 6809 Condition Code register
+ uint8 a; // 6809 A register
+ uint8 b; // 6809 B register
+ uint8 dp; // 6809 Direct Page register
+// uint32 clock; // 6809 clock (@ 1 MHz, wraps at 71.5 minutes)
+ uint64 clock; // 6809 clock (@ 1 MHz, wraps at 570842 years)
+ uint8 (* RdMem)(uint16); // Address of uint8 read routine
+ void (* WrMem)(uint16, uint8); // Address of uint8 write routine
+ uint32 cpuFlags; // v6809 IRQ/RESET flags
+ uint32 clockOverrun;