show console LEDs
This commit is contained in:
parent
28750c56d8
commit
b7512ae3cd
3 changed files with 13 additions and 6 deletions
2
bus.cpp
2
bus.cpp
|
@ -858,7 +858,7 @@ void bus::write(const uint16_t a, const bool word_mode, uint16_t value, const bo
|
||||||
}
|
}
|
||||||
|
|
||||||
if (a == ADDR_CONSW) { // switch register
|
if (a == ADDR_CONSW) { // switch register
|
||||||
switch_register = value;
|
console_leds = value;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
8
bus.h
8
bus.h
|
@ -84,11 +84,10 @@ private:
|
||||||
|
|
||||||
uint16_t MMR0 { 0 }, MMR1 { 0 }, MMR2 { 0 }, MMR3 { 0 }, CPUERR { 0 }, PIR { 0 }, CSR { 0 };
|
uint16_t MMR0 { 0 }, MMR1 { 0 }, MMR2 { 0 }, MMR3 { 0 }, CPUERR { 0 }, PIR { 0 }, CSR { 0 };
|
||||||
|
|
||||||
uint16_t switch_register { 0 };
|
|
||||||
|
|
||||||
uint16_t lf_csr { 0 };
|
uint16_t lf_csr { 0 };
|
||||||
|
|
||||||
uint16_t console_switches { 0 };
|
uint16_t console_switches { 0 };
|
||||||
|
uint16_t console_leds { 0 };
|
||||||
|
|
||||||
uint16_t read_pdr (const uint32_t a, const int run_mode, const bool word_mode, const bool peek_only);
|
uint16_t read_pdr (const uint32_t a, const int run_mode, const bool word_mode, const bool peek_only);
|
||||||
uint16_t read_par (const uint32_t a, const int run_mode, const bool word_mode, const bool peek_only);
|
uint16_t read_par (const uint32_t a, const int run_mode, const bool word_mode, const bool peek_only);
|
||||||
|
@ -102,8 +101,11 @@ public:
|
||||||
void clearmem();
|
void clearmem();
|
||||||
|
|
||||||
void set_console_switches(const uint16_t new_state) { console_switches = new_state; }
|
void set_console_switches(const uint16_t new_state) { console_switches = new_state; }
|
||||||
|
uint16_t get_console_switches() { return console_switches; }
|
||||||
void set_debug_mode() { console_switches |= 128; }
|
void set_debug_mode() { console_switches |= 128; }
|
||||||
|
|
||||||
|
uint16_t get_console_leds() { return console_leds; }
|
||||||
|
|
||||||
void add_cpu(cpu *const c) { this -> c = c; }
|
void add_cpu(cpu *const c) { this -> c = c; }
|
||||||
void add_tm11(tm_11 *tm11) { this -> tm11 = tm11; }
|
void add_tm11(tm_11 *tm11) { this -> tm11 = tm11; }
|
||||||
void add_rk05(rk05 *rk05_) { this -> rk05_ = rk05_; }
|
void add_rk05(rk05 *rk05_) { this -> rk05_ = rk05_; }
|
||||||
|
@ -146,8 +148,6 @@ public:
|
||||||
void clearMMR0Bit(const int bit);
|
void clearMMR0Bit(const int bit);
|
||||||
void setMMR2(const uint16_t value);
|
void setMMR2(const uint16_t value);
|
||||||
|
|
||||||
uint16_t get_switch_register() const { return switch_register; }
|
|
||||||
|
|
||||||
uint32_t calculate_physical_address(const int run_mode, const uint16_t a, const bool trap_on_failure, const bool is_write, const bool peek_only, const bool is_data);
|
uint32_t calculate_physical_address(const int run_mode, const uint16_t a, const bool trap_on_failure, const bool is_write, const bool peek_only, const bool is_data);
|
||||||
|
|
||||||
bool get_use_data_space(const int run_mode);
|
bool get_use_data_space(const int run_mode);
|
||||||
|
|
|
@ -114,7 +114,7 @@ void console_ncurses::resize_terminal()
|
||||||
|
|
||||||
create_win_border(0, 0, 80, 25, "terminal", &w_main_b, &w_main, false);
|
create_win_border(0, 0, 80, 25, "terminal", &w_main_b, &w_main, false);
|
||||||
|
|
||||||
create_win_border(0, 27, 100, 4, "panel", &w_panel_b, &w_panel, false);
|
create_win_border(0, 27, 100, 5, "panel", &w_panel_b, &w_panel, false);
|
||||||
|
|
||||||
scrollok(w_main -> win, TRUE);
|
scrollok(w_main -> win, TRUE);
|
||||||
|
|
||||||
|
@ -163,6 +163,13 @@ void console_ncurses::panel_update_thread()
|
||||||
for(uint8_t b=0; b<16; b++)
|
for(uint8_t b=0; b<16; b++)
|
||||||
mvwprintw(w_panel->win, 1, 1 + 16 - b + 17, "%c", current_instr & (1 << b) ? '1' : '0');
|
mvwprintw(w_panel->win, 1, 1 + 16 - b + 17, "%c", current_instr & (1 << b) ? '1' : '0');
|
||||||
|
|
||||||
|
mvwprintw(w_panel->win, 4, 1, "LEDs:");
|
||||||
|
|
||||||
|
uint16_t leds = b->get_console_leds();
|
||||||
|
|
||||||
|
for(uint8_t b=0; b<16; b++)
|
||||||
|
mvwprintw(w_panel->win, 4, 1 + 22 - b, "%c", leds & (1 << b) ? '1' : '0');
|
||||||
|
|
||||||
wattron(w_panel->win, COLOR_PAIR(5));
|
wattron(w_panel->win, COLOR_PAIR(5));
|
||||||
|
|
||||||
mvwprintw(w_panel->win, 1, 1 + 35, "%c%c%c",
|
mvwprintw(w_panel->win, 1, 1 + 35, "%c%c%c",
|
||||||
|
|
Loading…
Add table
Reference in a new issue