AtomBusMon/firmware/regs6809.c

38 lines
913 B
C
Raw Normal View History

#include "AtomBusMon.h"
#define OFFSET_REG_A 32
#define OFFSET_REG_B 33
#define OFFSET_REG_X 34
#define OFFSET_REG_Y 36
#define OFFSET_REG_U 38
#define OFFSET_REG_S 40
#define OFFSET_REG_PC 42
#define OFFSET_REG_D 44
#define OFFSET_REG_CC 45
char statusString[8] = "EFHINZVC";
void doCmdRegs(char *params) {
int i;
unsigned int p = hwRead8(OFFSET_REG_CC);
log0("6809 Registers:\n A=%02X B=%02X X=%04X Y=%04X\n",
hwRead8(OFFSET_REG_A),
hwRead8(OFFSET_REG_B),
hwRead16(OFFSET_REG_X),
hwRead16(OFFSET_REG_Y));
log0(" CC=%02X D=%02X U=%04X S=%04X PC=%04X\n",
p,
hwRead8(OFFSET_REG_D),
hwRead16(OFFSET_REG_U),
hwRead16(OFFSET_REG_S),
hwRead16(OFFSET_REG_PC));
char *sp = statusString;
log0(" Status: ");
for (i = 0; i <= 7; i++) {
log0("%c", ((p & 128) ? (*sp) : '-'));
p <<= 1;
sp++;
}
log0("\n");
}