aboutsummaryrefslogtreecommitdiff
path: root/qtmips_gui
Commit message (Collapse)AuthorAge
...
* Memory change counter moved to MemoryAccess and external changes ↵Pavel Pisa2019-06-30
| | | | | | | | | | | notification added. This change together with use of PhysAddrSpace as the memory content source for memory and program view allows to access and monitor contents of peripheral registers and frame-buffer memory from graphic user interface. Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
* Provide option to hide coreview to speedup simulation.Pavel Pisa2019-06-30
| | | | | | | If the view of core is not needed during simulation it can be hidded to speedup simulation. Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
* Version updated to 0.7.0Pavel Pisa2019-06-28
| | | | | | | | | | | | * Debian package updated to version 0.7.0. * Include simple LCD frame-buffer and display implementation. * Simulate push of dial buttons by check box. * Allow to create simulator without loaded executable. * Printing/export to PDF file reduces print area/page to actual image size. * Disable text elide for memory and program views (fix for MAC OS). * Implement standard zoom handling by mouse wheel and keys. Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
* Include QHtml5File source file to allow ELF file load under emscripten.Pavel Pisa2019-06-28
| | | | Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
* LCD display emulation updated to keep aspect ratio.Pavel Pisa2019-06-28
| | | | Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
* Initial optimized version LCD display emulation.Pavel Pisa2019-06-28
| | | | Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
* Simulate push of dial buttons by check box.Pavel Pisa2019-06-27
| | | | Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
* Set minimal size of about dialog to make it usable under emscripten.Pavel Pisa2019-06-27
| | | | Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
* Do not run local event loop in about dialog.Pavel Pisa2019-06-27
| | | | | | | Local event loops in modal dialog prevents emscripten/WAS function correctly. Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
* Set default location of the program view on the left.Pavel Pisa2019-06-27
| | | | Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
* Set follow fetch for program view if configuration is not found.Pavel Pisa2019-06-27
| | | | Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
* Allow to create simulator without loaded executable.Pavel Pisa2019-06-26
| | | | | | | This allows to test simple instruction sequences without need to install compiler. Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
* Printing/export to PDF file reduces print area/page to actual image size.Pavel Pisa2019-06-12
| | | | | | | This allows direct inclusion of print outputs into documentation and papers. Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
* Add simple printing of core view.Pavel Pisa2019-06-11
| | | | Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
* coreview: correct translation of position for vertical text printing.Pavel Pisa2019-06-11
| | | | | | | setY does not translate top and bottom together. The result was flipped rectangle. Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
* Editor start with already shown value in memory and program view.Pavel Pisa2019-06-05
| | | | Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
* Disable text elide for memory and program views.Pavel Pisa2019-06-05
| | | | | | | | | | Set of Monospace font does not ensure that different hexadecimal numbers do not vary in in the text size on MAC OS. QFontDatabase::systemFont(QFontDatabase::FixedFont) works on MAC OS but selected font looks ugly. Disable elide ensures that most of the text is seen. Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
* Add icon for macOSMartin Endler2019-05-12
|
* Implement standard zoom handling by mouse wheel and keys.Pavel Pisa2019-04-05
| | | | | | Suggested by Ales Kapica. Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
* Implement stall cycles counter and view of CPU cycles counter.Pavel Pisa2019-04-02
| | | | Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
* Version updated to 0.6.8.Pavel Pisa2019-04-01
| | | | Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
* Coreview multiplexers updated and added for branch compare forward.Pavel Pisa2019-04-01
| | | | Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
* qtmips_gui: set application window icon.Pavel Pisa2019-04-01
| | | | Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
* The follow stage selects address cell to make rest visible.Pavel Pisa2019-03-31
| | | | Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
* Update version string in ApplicationVersion property.Pavel Pisa2019-03-31
| | | | Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
* Set gray background to stalled instructions/idled stages.Pavel Pisa2019-03-31
| | | | | | This allows to easier identify unused pipeline stages. Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
* Setting background color dialTomas Prochazka2019-03-30
| | | | Setting the background color of the graphical component dial, which the color it representing (RGB)
* Version updated to 0.6.7Pavel Pisa2019-03-27
| | | | Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
* Change single cycle core with delay slot to use separate fetch stage.Pavel Pisa2019-03-26
| | | | | | | | | | | | When instructions are visualized then it is even more misleading to keep old instruction in decode phase delay buffer. The single cycle core with delay slot is upgraded to the variant with fetch and execute phases. This way the structure is logical and delay slot has purpose. Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
* Change instruction views background to match stages color.Pavel Pisa2019-03-26
| | | | Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
* Highlight instructions passing through the pipeline stages.Pavel Pisa2019-03-25
| | | | Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
* Do not save program view start address when changed due to program executed.Pavel Pisa2019-03-25
| | | | Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
* Correct write through spelling. Reported by Richard Susta.Pavel Pisa2019-03-25
| | | | Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
* Update version to 0.6.6.Pavel Pisa2019-03-17
| | | | Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
* Registers and cop0 state updates and reads are visualized by highlights.Pavel Pisa2019-03-17
| | | | Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
* Show corresponding memory word address in the cacheview.Pavel Pisa2019-03-17
| | | | Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
* Highlight actual word read or written to the cache.Pavel Pisa2019-03-17
| | | | Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
* Correct word in block visualization in cache view.Pavel Pisa2019-03-17
| | | | | | | The word index (column) has been erroneously used for set index value. Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
* Make lintian happy and update version to 0.6.5 as preparation for 0.7.Pavel Pisa2019-03-15
| | | | Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
* Switch to static libraries by default and ensure application rebuild when a ↵Pavel Pisa2019-03-15
| | | | | | | | | | | | | | | | library changes. I have not found a way how to pass additional CONFIG options to Debian package build (dpkg-buildpackage) when qmake is invoked from debian/rules with debian helper based (dh) build. The way how qmake solves dependencies between program and libraries comes from stone age. It is necessary to include complete path to the library in PRE_TARGETDEPS definition including lib prefix and .a suffix. This is non portable and cannot be easily used when static and dynamic libraries build alternatives are considered. Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
* More precise program and memory tableviews column width calculation.Pavel Pisa2019-03-15
| | | | | | | This should resolve text elide problem experienced on some combination of desktop/fonts setting. Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
* Fix nested calls of setCurrentIndex which caused breakage.Pavel Pisa2019-03-14
| | | | | | | | | | | | | | | | | ProgramTableView::focus_address() calls QAbstractItemView::setCurrentIndex(). verticalScrollBar() value is updated as result of current row change. This emits signal valueChanged which is connected to ProgramTableView::adjust_scroll_pos(). It checks if the limit of range covered by actual model and row to address offset is reached. If the top or bottom 1/8 of range is reached then model needs to be adjusted to cover continuation area. Model shift requires update of the current row to stay on the same address even that row 0 address offset is changed. This model shifting is required because range of scroll is only signed integer and QTableView is even more limited in row count to work reliably. Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
* Correct use of uninitialized dt_d.num_rd and delete reported by valgrind.Pavel Pisa2019-03-12
| | | | Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
* Updated read and write, added open, close, ftruncate syscalls and fs_root ↵Pavel Pisa2019-03-09
| | | | | | | | | | | option. When operating system emulation root directory (fs_root) are selected then open() syscall opens real host system files in this limited subtree. When fs_root is not set then console is mapped to all read, write, open and close calls. Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
* Enable configuration of syscalls emulation and stop on exception.Pavel Pisa2019-03-06
| | | | Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
* Complete revamp of disassembler and assembler arguments processing.Pavel Pisa2019-03-05
| | | | | | | | | | | | | | | | | | | | | Instructions description in instruction.cpp has been pragmatically augmented by tool based on Python MIPS simulator, hazards analyzer https://github.com/ppisa/apo-simarch That code has been originally distilled from from GNU binutils sources. Implementation is now inline with my original proposal Previous solution gets untenable with more complex instructions and its complexity would grow extremely. MIPS instruction set with coprocessor instructions which use sel field, rd used as index, rt as destination and other peculiarities in newer versions cannot be processed based on basic CPU control signals. Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
* Dock to view coprocessor 0 and cop0 counter/comparator support.Pavel Pisa2019-03-05
| | | | Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
* Use irq 3 (HW1) for Rx and irq 2 (HW0) for Tx to be compatible with SPIM.Pavel Pisa2019-03-04
| | | | | | | Jump to address 0x8000180 by default and to EBase + 0x180 when EBase is set to be compatible with real MIPS CPU. Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
* Implemented interrupt delivery and processing for serial port.Pavel Pisa2019-03-04
| | | | Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
* Simple serial port receive implementation.Pavel Pisa2019-02-25
| | | | | | | | | Simple polled mode serial port input implemented for serial port peripheral and for read and readv system calls. When end of input character reserve is reached for read/readv, newline is automatically appended. Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>