From 7341a3329994bf655f2490c4e9758929bd95c23f Mon Sep 17 00:00:00 2001 From: Pavel Pisa Date: Thu, 14 Feb 2019 10:07:44 +0100 Subject: Implement write syscall and signal written characters to terminal. Signed-off-by: Pavel Pisa --- qtmips_gui/mainwindow.cpp | 5 +++-- qtmips_gui/terminaldock.cpp | 6 ++++++ qtmips_gui/terminaldock.h | 1 + 3 files changed, 10 insertions(+), 2 deletions(-) (limited to 'qtmips_gui') diff --git a/qtmips_gui/mainwindow.cpp b/qtmips_gui/mainwindow.cpp index 0482b11..5174949 100644 --- a/qtmips_gui/mainwindow.cpp +++ b/qtmips_gui/mainwindow.cpp @@ -148,8 +148,9 @@ void MainWindow::create_core(const machine::MachineConfig &config) { set_speed(); // Update machine speed to current settings #if 1 - machine->register_exception_handler(machine::EXCAUSE_SYSCALL, - new osemu::OsSyscallExceptionHandler); + osemu::OsSyscallExceptionHandler *osemu_handler = new osemu::OsSyscallExceptionHandler; + machine->register_exception_handler(machine::EXCAUSE_SYSCALL, osemu_handler); + connect(osemu_handler, SIGNAL(char_written(int,uint)), terminal, SLOT(tx_byte(int,uint))); #endif // Connect machine signals and slots diff --git a/qtmips_gui/terminaldock.cpp b/qtmips_gui/terminaldock.cpp index 31e8c68..4b394a6 100644 --- a/qtmips_gui/terminaldock.cpp +++ b/qtmips_gui/terminaldock.cpp @@ -70,3 +70,9 @@ void TerminalDock::tx_byte(unsigned int data) { else append_cursor->insertText(QString(QChar(data))); } + +void TerminalDock::tx_byte(int fd, unsigned int data) +{ + (void)fd; + tx_byte(data); +} diff --git a/qtmips_gui/terminaldock.h b/qtmips_gui/terminaldock.h index b0c76cf..7154e81 100644 --- a/qtmips_gui/terminaldock.h +++ b/qtmips_gui/terminaldock.h @@ -53,6 +53,7 @@ public: public slots: void tx_byte(unsigned int data); + void tx_byte(int fd, unsigned int data); private: QVBoxLayout *layout_box; -- cgit v1.2.3