ESP32 tweaks
This commit is contained in:
parent
707d017330
commit
320d61551b
3 changed files with 26 additions and 7 deletions
|
@ -214,6 +214,8 @@ uint16_t loadbin(bus *const b)
|
|||
|
||||
uint16_t exec_addr = 0;
|
||||
|
||||
uint32_t start_ts = 0;
|
||||
|
||||
void setup() {
|
||||
Serial.begin(115200);
|
||||
|
||||
|
@ -240,6 +242,8 @@ void setup() {
|
|||
exec_addr = loadbin(b);
|
||||
c->setRegister(7, exec_addr);
|
||||
|
||||
pinMode(LED_BUILTIN, OUTPUT);
|
||||
|
||||
Serial.println(F("Press <enter> to start"));
|
||||
|
||||
for(;;) {
|
||||
|
@ -253,27 +257,36 @@ void setup() {
|
|||
}
|
||||
|
||||
Serial.println(F("Emulation starting!"));
|
||||
|
||||
start_ts = millis();
|
||||
}
|
||||
|
||||
unsigned int icount = 0;
|
||||
uint32_t icount = 0;
|
||||
|
||||
void loop() {
|
||||
icount++;
|
||||
|
||||
if (icount % 1000 == 0 && Serial.available()) {
|
||||
char c = Serial.read();
|
||||
if ((icount & 1023) == 0) {
|
||||
if (Serial.available()) {
|
||||
char c = Serial.read();
|
||||
|
||||
if (c > 0 && c < 127)
|
||||
tty_->sendChar(c);
|
||||
if (c > 0 && c < 127)
|
||||
tty_->sendChar(c);
|
||||
}
|
||||
}
|
||||
|
||||
if (c->step()) {
|
||||
Serial.println(F(""));
|
||||
Serial.println(F(" *** EMULATION STOPPED *** "));
|
||||
Serial.print(F("Instructions per second: "));
|
||||
Serial.println(icount * 1000.0 / (millis() - start_ts));
|
||||
delay(1000);
|
||||
Serial.println(F(" *** EMULATION RESTARTING *** "));
|
||||
|
||||
c->setRegister(7, exec_addr);
|
||||
c->resetHalt();
|
||||
|
||||
start_ts = millis();
|
||||
icount = 0;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -30,8 +30,8 @@ framework = arduino
|
|||
monitor_speed = 115200
|
||||
upload_speed = 1000000
|
||||
lib_deps =
|
||||
build_flags = -std=c++17
|
||||
build_unflags = -std=gnu++11
|
||||
build_flags = -std=c++17 -Ofast
|
||||
build_unflags = -std=gnu++11 -Os
|
||||
|
||||
[env:serial32_debug]
|
||||
platform = espressif32
|
||||
|
|
6
tty.cpp
6
tty.cpp
|
@ -52,6 +52,12 @@ uint16_t tty::readWord(const uint16_t addr)
|
|||
|
||||
if (addr == PDP11TTY_TKS) {
|
||||
vtemp = c ? 128 : 0;
|
||||
|
||||
#if defined(ESP32)
|
||||
static bool led_state = true;
|
||||
digitalWrite(LED_BUILTIN, led_state);
|
||||
led_state = !led_state;
|
||||
#endif
|
||||
}
|
||||
else if (addr == PDP11TTY_TKB) {
|
||||
vtemp = c | (parity(c) << 7);
|
||||
|
|
Loading…
Add table
Reference in a new issue