put all psw bits & instruction on leds
This commit is contained in:
parent
48be750ef3
commit
cf46e05c07
1 changed files with 16 additions and 11 deletions
|
@ -57,8 +57,9 @@ void panel(void *p) {
|
||||||
bus *const b = reinterpret_cast<bus *>(p);
|
bus *const b = reinterpret_cast<bus *>(p);
|
||||||
cpu *const c = b->getCpu();
|
cpu *const c = b->getCpu();
|
||||||
|
|
||||||
CRGB leds[32] { 0 };
|
constexpr const uint8_t n_leds = 80;
|
||||||
FastLED.addLeds<NEOPIXEL, NEOPIXELS_PIN>(leds, 32);
|
CRGB leds[n_leds] { 0 };
|
||||||
|
FastLED.addLeds<NEOPIXEL, NEOPIXELS_PIN>(leds, n_leds);
|
||||||
|
|
||||||
FastLED.setBrightness(25);
|
FastLED.setBrightness(25);
|
||||||
|
|
||||||
|
@ -69,20 +70,24 @@ void panel(void *p) {
|
||||||
for(;;) {
|
for(;;) {
|
||||||
vTaskDelay(20 / portTICK_RATE_MS);
|
vTaskDelay(20 / portTICK_RATE_MS);
|
||||||
|
|
||||||
|
// note that these are approximately as there's no mutex on the emulation
|
||||||
uint16_t current_PC = c->getPC();
|
uint16_t current_PC = c->getPC();
|
||||||
uint32_t full_addr = b->calculate_full_address(current_PC);
|
uint32_t full_addr = b->calculate_full_address(current_PC);
|
||||||
|
|
||||||
|
uint16_t current_instr = b->readWord(current_PC);
|
||||||
|
|
||||||
uint16_t current_PSW = c->getPSW();
|
uint16_t current_PSW = c->getPSW();
|
||||||
|
|
||||||
const CRGB & led_color = run_mode_led_color[current_PSW >> 14];
|
const CRGB & led_color = run_mode_led_color[current_PSW >> 14];
|
||||||
|
|
||||||
for(int b=0; b<22; b++)
|
for(uint8_t b=0; b<22; b++)
|
||||||
leds[b] = full_addr & (1 << b) ? led_color : CRGB::Black;
|
leds[b] = full_addr & (1 << b) ? led_color : CRGB::Black;
|
||||||
|
|
||||||
leds[22] = c->getPSW_c() ? CRGB::Magenta : CRGB::Black;
|
for(uint8_t b=0; b<16; b++)
|
||||||
leds[23] = c->getPSW_v() ? CRGB::Magenta : CRGB::Black;
|
leds[b + 22] = current_PSW & (1 << b) ? CRGB::Magenta : CRGB::Black;
|
||||||
leds[24] = c->getPSW_z() ? CRGB::Magenta : CRGB::Black;
|
|
||||||
leds[25] = c->getPSW_n() ? CRGB::Magenta : CRGB::Black;
|
for(uint8_t b=0; b<16; b++)
|
||||||
|
leds[b + 38] = current_instr & (1 << b) ? CRGB::Red : CRGB::Black;
|
||||||
|
|
||||||
FastLED.show();
|
FastLED.show();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue