Commit Graph

29 Commits

Author SHA1 Message Date
Seth Morabito 234fcdc5f5 Allow shell environment to not be inherited
The parent shell environment can now be inherited by passing the "-i,
--inherit" argument, but by default will NOT be inherited.
2023-07-02 10:00:23 -07:00
Seth Morabito 157ac0f57e Cairo painting fix
The screen refresh callback was creating a cairo surface and calling
cairo_paint() directly, when it should not have been. Instead, it now
simply calls gtk_widget_queue_draw() to request that the drawing
callback do the work it needs to do.
2022-09-14 10:42:58 -07:00
Seth Morabito bd74df94a0 Attempt to execute at 7.2MHz, not 10MHz
I am a dunderhead. The Bellmac 32 CPU of the DMD 5620 did not execute
at 10MHz. It executed at 7.2MHz, derived from a 28.8MHz clock source.
2022-09-14 09:42:47 -07:00
Seth Morabito c3eab0fc4e GTK menu and Video Dirty Bit
- Adds a new menu that will eventually become more useful.

- Introduces the video RAM dirty bit to help reduce memcpy()
  calls.
2022-09-13 20:01:53 -07:00
Seth Morabito db99836fc2 Release version 2.1.0 2022-09-12 16:02:19 -07:00
Seth Morabito 825aada63a Pass environment to subprocess
This change passes the user environment to the forked shell.

Additionally, the maximum number of steps allowed per loop has been
increased from 250000 to 350000. I will continue to experiment with
this for best performance.
2022-09-12 15:57:43 -07:00
Seth Morabito dec45ac9a1 Limit the number of steps per loop
It was possible for the code to attempt to run up to 10,000,000
simulated steps each time through the main simulation loop. This was
much too many simulated steps, and could result in starving the other
GTK threads of resources.

This change drops that maximum value way way down to 150,000 steps. This
should guarantee that the GTK tick callback can always complete in a
timely fashion and not steal resources from the other threads, while
still giving excellent CPU performance.
2022-09-12 13:28:43 -07:00
Seth Morabito 578aeb5662 Update for version 2.0.1 2022-09-11 18:13:26 -07:00
Seth Morabito a529d5c6ec Release 2.0.0 2022-09-11 16:59:44 -07:00
Seth Morabito 9df1c01c50 Support for 8;7;3 firmware
The simulator now supports executing the 8;7;3 firmware in
addition to 8;7;5. Additionally, several keycodes were fixed.
2022-09-11 16:59:44 -07:00
Seth Morabito 7a6bfb2f39 Update for version 1.4.0 2022-09-04 13:47:57 -07:00
Seth Morabito 8027a3abb6 Major refactor of step and refresh
This change does away with the old pthread code that used to run the CPU in a
separate thread. Now all execution is dispatched by the main GTK animation loop
via gtk_widget_add_tick_callback(). CPU steps and IO polling are now governed
by the GDK Frame Clock.
2022-09-03 16:50:26 -07:00
Seth Morabito b7e829d303 Rudimentary MacOS support 2022-09-02 14:57:50 -07:00
Seth Morabito 2eed0f3623 Support serial devices and verbose logging
This change adds support for connecting to physical or virtual serial
ports with the "--device" flag. Additionally, the "--verbose" flag can
be used to log each character sent and received to stdout.

Man page has been updated.
2022-08-31 11:16:47 -07:00
Seth Morabito cd88855c69 Tighter execution loops and trace support
This change adjusts some of the timing of the execution loop and
periodic idling, and adds support for debug trace logging.
2021-04-23 13:55:35 -07:00
Seth Morabito fe43f3d8d8 Version 1.3.0 - Local shell emulation
This change removes the built-in telnet capability in favor of allowing
the user to run an arbitrary shell command, essentially turning the
DMD5620 emulator into a local terminal emulator.

The options to specify host and port have been removed. In their place,
an option to supply a shell command to execute has been added. If it
is not supplied, the user's default login shell will be used.

A second option has been added to allow the user to specify whether
backspace generates ^H (the default), or ^? (DEL).

A rudimentary manpage has been added.
2021-04-17 17:21:29 -07:00
Seth Morabito 884adfa09c Use getopt 2020-09-20 07:46:46 -07:00
Seth Morabito 51ca216aa7 Upgrade to libdmd_core 0.6.3
- Improved timing and sleep delay
- Bump version to 1.2.0
2018-12-31 17:50:45 -08:00
Seth Morabito 80582b38dc Use libdmd_core 0.6.2, fix Telnet issue 2018-12-29 18:56:42 -08:00
Seth Morabito 9e51fae8ff Use dmd_core 0.4.0. Support for bell (^G) char 2018-12-19 21:58:19 -08:00
Seth Morabito 60c855d45a Refactor and cleanup.
- Refactored and cleaned up code
- Renamed project to 'dmd5620'
- Added icon resources
2018-12-19 15:21:21 -08:00
Seth Morabito e45281118a dmd_core 0.3.1. Allow load/save of NVRAM 2018-12-19 09:51:58 -08:00
Seth Morabito 7cc43974df Refactor for dmd_core 0.3.0, libtelnet 2018-12-17 22:04:07 -08:00
Seth Morabito 87c93b6a61 Incredibly hokey but getting there 2018-12-15 20:29:06 -08:00
Seth Morabito 328e1703f7 Greatly simplify binding library 2018-12-15 11:38:37 -08:00
Seth Morabito 8dd29cfa95 Added LICENSE and README 2018-12-15 10:58:35 -08:00
Seth Morabito 2f77975f65 Running the DMD core. 2018-12-14 22:53:45 -08:00
Seth Morabito a2d6cd5369 Successfully build Rust library 2018-12-14 20:57:06 -08:00
Seth Morabito a98cf690fc Initial experimental playground 2018-12-14 20:37:57 -08:00