Handle "HALT" correctly

This commit is contained in:
folkert van heusden 2022-03-20 14:05:05 +01:00
parent 28958a9945
commit 27703ad706
4 changed files with 7 additions and 9 deletions

View file

@ -254,8 +254,8 @@ void setup_wifi_stations()
std::string password = read_terminal_line("password: ");
WiFi.begin(ssid.c_str(), password.c_str());
#else
//WiFi.begin("www.vanheusden.com", "Ditiseentest31415926");
WiFi.begin("NURDspace-guest", "harkharkhark");
WiFi.begin("www.vanheusden.com", "Ditiseentest31415926");
//WiFi.begin("NURDspace-guest", "harkharkhark");
#endif
while (WiFi.status() != WL_CONNECTED) {

View file

@ -27,7 +27,7 @@ void cpu::reset()
pc = 0;
psw = 7 << 5;
fpsr = 0;
runMode = resetFlag = haltFlag = false;
runMode = resetFlag = false;
}
void cpu::setDisassemble(const bool state)
@ -1007,7 +1007,7 @@ bool cpu::misc_operations(const uint16_t instr)
switch(instr) {
case 0b0000000000000000: // HALT
// pretend HALT is not executed, proceed
haltFlag = true;
*event = 1;
return true;
case 0b0000000000000001: // WAIT

4
cpu.h
View file

@ -16,9 +16,8 @@ private:
uint16_t pc { 0 };
uint16_t psw { 0 }, fpsr { 0 };
uint16_t stackLimitRegister { 0 };
bool haltFlag { false }, resetFlag { false };
bool resetFlag { false };
bool runMode { false };
bool emulateMFPT { false };
bus *const b { nullptr };
@ -54,7 +53,6 @@ public:
void reset();
void step();
void resetHalt() { haltFlag = false; }
void resetReset() { resetFlag = false; }
void pushStack(const uint16_t v);

View file

@ -66,7 +66,7 @@ uint16_t tty::readWord(const uint16_t addr)
}
else if (addr == PDP11TTY_TKB) {
if (have_char) {
char c = get_char();
uint8_t c = get_char();
vtemp = c | (parity(c) << 7);