Handle "HALT" correctly
This commit is contained in:
parent
28958a9945
commit
27703ad706
4 changed files with 7 additions and 9 deletions
|
@ -254,8 +254,8 @@ void setup_wifi_stations()
|
||||||
std::string password = read_terminal_line("password: ");
|
std::string password = read_terminal_line("password: ");
|
||||||
WiFi.begin(ssid.c_str(), password.c_str());
|
WiFi.begin(ssid.c_str(), password.c_str());
|
||||||
#else
|
#else
|
||||||
//WiFi.begin("www.vanheusden.com", "Ditiseentest31415926");
|
WiFi.begin("www.vanheusden.com", "Ditiseentest31415926");
|
||||||
WiFi.begin("NURDspace-guest", "harkharkhark");
|
//WiFi.begin("NURDspace-guest", "harkharkhark");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
while (WiFi.status() != WL_CONNECTED) {
|
while (WiFi.status() != WL_CONNECTED) {
|
||||||
|
|
4
cpu.cpp
4
cpu.cpp
|
@ -27,7 +27,7 @@ void cpu::reset()
|
||||||
pc = 0;
|
pc = 0;
|
||||||
psw = 7 << 5;
|
psw = 7 << 5;
|
||||||
fpsr = 0;
|
fpsr = 0;
|
||||||
runMode = resetFlag = haltFlag = false;
|
runMode = resetFlag = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void cpu::setDisassemble(const bool state)
|
void cpu::setDisassemble(const bool state)
|
||||||
|
@ -1007,7 +1007,7 @@ bool cpu::misc_operations(const uint16_t instr)
|
||||||
switch(instr) {
|
switch(instr) {
|
||||||
case 0b0000000000000000: // HALT
|
case 0b0000000000000000: // HALT
|
||||||
// pretend HALT is not executed, proceed
|
// pretend HALT is not executed, proceed
|
||||||
haltFlag = true;
|
*event = 1;
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
case 0b0000000000000001: // WAIT
|
case 0b0000000000000001: // WAIT
|
||||||
|
|
6
cpu.h
6
cpu.h
|
@ -16,9 +16,8 @@ private:
|
||||||
uint16_t pc { 0 };
|
uint16_t pc { 0 };
|
||||||
uint16_t psw { 0 }, fpsr { 0 };
|
uint16_t psw { 0 }, fpsr { 0 };
|
||||||
uint16_t stackLimitRegister { 0 };
|
uint16_t stackLimitRegister { 0 };
|
||||||
bool haltFlag { false }, resetFlag { false };
|
bool resetFlag { false };
|
||||||
bool runMode { false };
|
bool runMode { false };
|
||||||
|
|
||||||
bool emulateMFPT { false };
|
bool emulateMFPT { false };
|
||||||
|
|
||||||
bus *const b { nullptr };
|
bus *const b { nullptr };
|
||||||
|
@ -54,7 +53,6 @@ public:
|
||||||
void reset();
|
void reset();
|
||||||
|
|
||||||
void step();
|
void step();
|
||||||
void resetHalt() { haltFlag = false; }
|
|
||||||
void resetReset() { resetFlag = false; }
|
void resetReset() { resetFlag = false; }
|
||||||
|
|
||||||
void pushStack(const uint16_t v);
|
void pushStack(const uint16_t v);
|
||||||
|
|
2
tty.cpp
2
tty.cpp
|
@ -66,7 +66,7 @@ uint16_t tty::readWord(const uint16_t addr)
|
||||||
}
|
}
|
||||||
else if (addr == PDP11TTY_TKB) {
|
else if (addr == PDP11TTY_TKB) {
|
||||||
if (have_char) {
|
if (have_char) {
|
||||||
char c = get_char();
|
uint8_t c = get_char();
|
||||||
|
|
||||||
vtemp = c | (parity(c) << 7);
|
vtemp = c | (parity(c) << 7);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue