Debug-output
This commit is contained in:
parent
c62fad55d0
commit
ebdd95ea0a
2 changed files with 25 additions and 32 deletions
45
bus.cpp
45
bus.cpp
|
@ -49,14 +49,11 @@ void bus::clearmem()
|
|||
|
||||
uint16_t bus::read(const uint16_t a, const bool word_mode, const bool use_prev)
|
||||
{
|
||||
// fprintf(stderr, "read [%d] from %06o [%d]\n", word_mode, a, use_prev);
|
||||
uint16_t temp = 0;
|
||||
|
||||
int run_mode = c->getPSW() >> 14;
|
||||
|
||||
if (a >= 0160000) {
|
||||
D(fprintf(stderr, "read%c I/O %o\n", word_mode ? 'b' : ' ', a);)
|
||||
|
||||
if (a == 0177750) { // MAINT
|
||||
D(fprintf(stderr, "read MAINT\n");)
|
||||
return 1; // POWER OK
|
||||
|
@ -213,7 +210,7 @@ uint16_t bus::read(const uint16_t a, const bool word_mode, const bool use_prev)
|
|||
((c -> getRegister(7) >> 13) << 1) | // page nr
|
||||
0 // MMU enabled
|
||||
;
|
||||
D(fprintf(stderr, "read MMU SR0 %o\n", t);)
|
||||
D(fprintf(stderr, "read MMU MMR0 %o\n", t);)
|
||||
return t;
|
||||
}
|
||||
|
||||
|
@ -292,8 +289,8 @@ uint16_t bus::read(const uint16_t a, const bool word_mode, const bool use_prev)
|
|||
|
||||
if (a & 1)
|
||||
D(fprintf(stderr, "bus::readWord: odd address UNHANDLED %o\n", a);)
|
||||
else
|
||||
D(fprintf(stderr, "UNHANDLED read %o(%c)\n", a, word_mode ? 'B' : ' ');)
|
||||
|
||||
D(fprintf(stderr, "UNHANDLED read %o(%c)\n", a, word_mode ? 'B' : ' ');)
|
||||
|
||||
// c -> busError();
|
||||
|
||||
|
@ -330,14 +327,9 @@ uint32_t bus::calculate_full_address(const uint16_t a)
|
|||
|
||||
uint16_t bus::write(const uint16_t a, const bool word_mode, uint16_t value, const bool use_prev)
|
||||
{
|
||||
// fprintf(stderr, "write [%d] %06o to %06o\n", word_mode, value, a);
|
||||
//D(fprintf(stderr, "write bus %o(%d): %o\n", a, word_mode, value);)
|
||||
|
||||
int run_mode = c->getPSW() >> 14;
|
||||
|
||||
if (a >= 0160000) {
|
||||
D(fprintf(stderr, "write%c %o to I/O %o\n", word_mode ? 'b' : ' ', value, a);)
|
||||
|
||||
if (word_mode) {
|
||||
if (a == 0177776 || a == 0177777) { // PSW
|
||||
D(fprintf(stderr, "writeb PSW %s\n", a & 1 ? "MSB" : "LSB");)
|
||||
|
@ -354,7 +346,7 @@ uint16_t bus::write(const uint16_t a, const bool word_mode, uint16_t value, cons
|
|||
}
|
||||
|
||||
if (a == 0177774 || a == 0177775) { // stack limit register
|
||||
D(fprintf(stderr, "writeb Set stack limit register to %o\n", value);)
|
||||
D(fprintf(stderr, "writeb Set stack limit register: %o\n", value);)
|
||||
uint16_t v = c -> getStackLimitRegister();
|
||||
|
||||
if (a & 1)
|
||||
|
@ -374,38 +366,38 @@ uint16_t bus::write(const uint16_t a, const bool word_mode, uint16_t value, cons
|
|||
}
|
||||
|
||||
if (a == 0177774) { // stack limit register
|
||||
D(fprintf(stderr, "write Set stack limit register to %o\n", value);)
|
||||
D(fprintf(stderr, "write Set stack limit register: %o\n", value);)
|
||||
c -> setStackLimitRegister(value);
|
||||
return value;
|
||||
}
|
||||
|
||||
if (a >= 0177700 && a <= 0177705) { // kernel R0-R5
|
||||
D(fprintf(stderr, "write kernel R%d to %o\n", a - 01777700, value);)
|
||||
D(fprintf(stderr, "write kernel R%d: %o\n", a - 01777700, value);)
|
||||
c -> setRegister(false, a - 0177700, value);
|
||||
return value;
|
||||
}
|
||||
if (a >= 0177710 && a <= 0177715) { // user R0-R5
|
||||
D(fprintf(stderr, "write user R%d to %o\n", a - 01777710, value);)
|
||||
D(fprintf(stderr, "write user R%d: %o\n", a - 01777710, value);)
|
||||
c -> setRegister(true, a - 0177710, value);
|
||||
return value;
|
||||
}
|
||||
if (a == 0177706) { // kernel SP
|
||||
D(fprintf(stderr, "write kernel SP to %o\n", value);)
|
||||
D(fprintf(stderr, "write kernel SP: %o\n", value);)
|
||||
c -> setStackPointer(0, value);
|
||||
return value;
|
||||
}
|
||||
if (a == 0177707) { // PC
|
||||
D(fprintf(stderr, "write PC to %o\n", value);)
|
||||
D(fprintf(stderr, "write PC: %o\n", value);)
|
||||
c -> setPC(value);
|
||||
return value;
|
||||
}
|
||||
if (a == 0177716) { // supervisor SP
|
||||
D(fprintf(stderr, "write supervisor sp to %o\n", value);)
|
||||
D(fprintf(stderr, "write supervisor sp: %o\n", value);)
|
||||
c -> setStackPointer(1, value);
|
||||
return value;
|
||||
}
|
||||
if (a == 0177717) { // user SP
|
||||
D(fprintf(stderr, "write user sp to %o\n", value);)
|
||||
D(fprintf(stderr, "write user sp: %o\n", value);)
|
||||
c -> setStackPointer(3, value);
|
||||
return value;
|
||||
}
|
||||
|
@ -416,43 +408,43 @@ uint16_t bus::write(const uint16_t a, const bool word_mode, uint16_t value, cons
|
|||
}
|
||||
|
||||
if (a == 0177766) { // cpu error register
|
||||
D(fprintf(stderr, "write CPUERR %o\n", value);)
|
||||
D(fprintf(stderr, "write CPUERR: %o\n", value);)
|
||||
CPUERR = 0;
|
||||
return CPUERR;
|
||||
}
|
||||
|
||||
if (a == 0172516) { // MMR3
|
||||
D(fprintf(stderr, "write set MMR3 to %o\n", value);)
|
||||
D(fprintf(stderr, "write set MMR3: %o\n", value);)
|
||||
MMR3 = value;
|
||||
return MMR3;
|
||||
}
|
||||
|
||||
if (a == 0177576) { // MMR2
|
||||
D(fprintf(stderr, "write set MMR2 to %o\n", value);)
|
||||
D(fprintf(stderr, "write set MMR2: %o\n", value);)
|
||||
MMR2 = value;
|
||||
return MMR2;
|
||||
}
|
||||
|
||||
if (a == 0177574) { // MMR1
|
||||
D(fprintf(stderr, "write set MMR1 to %o\n", value);)
|
||||
D(fprintf(stderr, "write set MMR1: %o\n", value);)
|
||||
MMR1 = value;
|
||||
return MMR1;
|
||||
}
|
||||
|
||||
if (a == 0177572) { // MMR0
|
||||
D(fprintf(stderr, "write set MMR0 to %o\n", value);)
|
||||
D(fprintf(stderr, "write set MMR0: %o\n", value);)
|
||||
MMR0 = value;
|
||||
return MMR0;
|
||||
}
|
||||
|
||||
if (a == 0177772) { // PIR
|
||||
D(fprintf(stderr, "write set PIR to %o\n", value);)
|
||||
D(fprintf(stderr, "write set PIR: %o\n", value);)
|
||||
PIR = value; // FIXME
|
||||
return PIR;
|
||||
}
|
||||
|
||||
if (a == 0177546) { // line frequency clock and status register
|
||||
D(fprintf(stderr, "write set LFC/SR to %o\n", value);)
|
||||
D(fprintf(stderr, "write set LFC/SR: %o\n", value);)
|
||||
CSR = value;
|
||||
return CSR;
|
||||
}
|
||||
|
@ -556,6 +548,7 @@ uint16_t bus::write(const uint16_t a, const bool word_mode, uint16_t value, cons
|
|||
|
||||
if (a & 1)
|
||||
D(fprintf(stderr, "bus::writeWord: odd address UNHANDLED\n");)
|
||||
|
||||
D(fprintf(stderr, "UNHANDLED write %o(%c): %o\n", a, word_mode ? 'B' : ' ', value);)
|
||||
|
||||
// c -> busError();
|
||||
|
|
12
rk05.cpp
12
rk05.cpp
|
@ -143,7 +143,7 @@ void rk05::writeWord(const uint16_t addr, uint16_t v)
|
|||
const int reg = (addr - RK05_BASE) / 2;
|
||||
D(fprintf(stderr, "RK05 write %s/%o: %o\n", regnames[reg], addr, v);)
|
||||
|
||||
D(fprintf(stderr, "set register %o to %o\n", addr, v);)
|
||||
D(fprintf(stderr, "set register %o: %o\n", addr, v);)
|
||||
registers[reg] = v;
|
||||
|
||||
if (addr == RK05_CS) {
|
||||
|
@ -166,14 +166,14 @@ void rk05::writeWord(const uint16_t addr, uint16_t v)
|
|||
const uint16_t memoff = registers[(RK05_BA - RK05_BASE) / 2];
|
||||
|
||||
if (func == 0) { // controller reset
|
||||
D(fprintf(stderr, "invoke %d (controller reset)\n", func);)
|
||||
D(fprintf(stderr, "RK05 invoke %d (controller reset)\n", func);)
|
||||
|
||||
}
|
||||
else if (func == 1) { // write
|
||||
if (disk_write_acitivity)
|
||||
*disk_write_acitivity = true;
|
||||
|
||||
D(fprintf(stderr, "invoke %d (write)\n", func);)
|
||||
D(fprintf(stderr, "RK05 invoke %d (write)\n", func);)
|
||||
D(fprintf(stderr, "RK05 writing %zo bytes to offset %o (%d dec)\n", reclen, diskoffb, diskoffb);)
|
||||
|
||||
uint32_t p = reclen; // FIXME
|
||||
|
@ -214,7 +214,7 @@ void rk05::writeWord(const uint16_t addr, uint16_t v)
|
|||
if (disk_read_acitivity)
|
||||
*disk_read_acitivity = true;
|
||||
|
||||
D(fprintf(stderr, "invoke %d (read)\n", func);)
|
||||
D(fprintf(stderr, "RK05 invoke %d (read)\n", func);)
|
||||
D(fprintf(stderr, "RK05 reading %zo bytes from offset %o (%d dec) to %o\n", reclen, diskoffb, diskoffb, memoff);)
|
||||
|
||||
#if defined(ESP32)
|
||||
|
@ -268,11 +268,11 @@ void rk05::writeWord(const uint16_t addr, uint16_t v)
|
|||
*disk_write_acitivity = false;
|
||||
}
|
||||
else if (func == 4) {
|
||||
D(fprintf(stderr, "invoke %d (seek)\n", func);)
|
||||
D(fprintf(stderr, "RK05 invoke %d (seek)\n", func);)
|
||||
D(fprintf(stderr, "RK05 seek to offset %o\n", diskoffb);)
|
||||
}
|
||||
else if (func == 7) {
|
||||
D(fprintf(stderr, "invoke %d (write lock)\n", func);)
|
||||
D(fprintf(stderr, "RK05 invoke %d (write lock)\n", func);)
|
||||
D(fprintf(stderr, "RK05 write lock\n");)
|
||||
}
|
||||
else {
|
||||
|
|
Loading…
Add table
Reference in a new issue