Commit Graph

50 Commits

Author SHA1 Message Date
Seth Morabito 1600ce26ca Update to dmd_core v0.7.2 2023-09-02 10:28:44 -07:00
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 969214c6d5 Revert last dmd_core change, fix submodule
The submodule was pointing at a private-SSH URL instead of the public
github URL for dmd_core. This commit fixes that.

It also reverts the last change to dmd_core, which apparently introduced
a bug.
2022-12-04 17:05:30 -08:00
Seth Morabito 07988707ef Update dmd_core 2022-11-20 10:28:04 -08: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 a8ee31b219 Update dmd_core 2022-09-13 11:42:39 -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 ee4d30db85 Update README 2022-09-11 17:44:30 -07:00
Seth Morabito 331b6460d7 Fix README 2022-09-11 17:00:43 -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 2893aad993 Update README build instructions 2022-09-04 16:44:08 -07:00
Seth Morabito e60c43e429 Updated README file 2022-09-04 14:52:45 -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 d9986ca8b9 Update dmd_core to v0.6.4 2022-09-03 16:49:54 -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 f9b8f47a8f Update dmd-core again 2022-08-25 16:35:44 -07:00
Seth Morabito dad3ab4dcd Update dmd_core 2022-08-25 16:14:36 -07:00
Seth Morabito 8aa1f46433 Add --trace option to manpage 2021-04-26 14:11:38 -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 112c3c0345 Use dmd_core dev branch 2021-04-23 05:56:10 -07:00
Seth Morabito d2bd147c1e Update dmd_core 2021-04-21 12:32:47 -07:00
Seth Morabito 4da6d592e6 Use git submodule instead of dmd_core.a
This commit introduces building the dmd_core.a static library
from source as a Git submodule.
2021-04-19 11:40:29 -07:00
Seth Morabito 5d2a68129f Improve manpage 2021-04-17 17:57:32 -07:00
Seth Morabito 1f96e4a918 Add keymap to manpage and README 2021-04-17 17:29:48 -07:00
Seth Morabito f39fd19858 Updated manpage for version 1.3.0 2021-04-17 17:24:26 -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 d5e27aed87 Use dmd_core 0.6.5 2021-04-12 15:42:56 -07:00
Seth Morabito 884adfa09c Use getopt 2020-09-20 07:46:46 -07:00
Seth Morabito 2717277ce5 Fix version in README 2018-12-31 18:16:52 -08:00
Seth Morabito 4bca7cb433 Update README for 1.2.0 2018-12-31 17:59:52 -08: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