This commit adds a "PMMI" device to the AltairZ80 VM that emulates
the PMMI Communications MM-103 MODEM & Communications Adapter.
This device was added at the request of a Facebook user that is
attempting to preserve and document various relevant communications
programs for CP/M and allow users to experience communicating and
sharing information with other remote computers of the same time
period, all on modern hardware.
This device attempts to emulate the MC6860L digital modem chip in
such a way that communications software written for the PMMI MM-103 can
communicate over a serial port or socket without a phone line or
the ability to MOdulate/DEModulate data over a phone line.
This commit adds two new devices, "M2SIO0" and "M2SIO1", to the AltairZ80
VM. These two independent devices emulate "raw" 88-2SIO ports that can
be used instead of the "SIO" device for attaching socket and serial
ports using TMXR.
There are two separate running contexts that provide video capabilities:
1) Video event processing threads created on the fly as needed
2) Video events must be run in the context of the initial thread in
a process. In this context simulation and SCP runs in a created
thread and when video activities are enabled needed activities
are passed back to the primary thread to be handled.
As mentioned in #873, there didn't appear to be a problem at runtime,
but the formal definition suggests SDL_InitSubSystem and its cleanup
should be called. It is likely that, as a vestige of SDL 1.2,
SDL_OpenAudio is doing this under the covers. No harm adding it.
- Avoid building a published version with uncommitted files in the
working directory
- Confirm existence of remote named origin and fetch master branch
- Add automatic force to push remote Win32-Development-Binaries
repo when resetting the binary directory
As reported in #865
When instruction execution is stopped, forced mux output rate limiting
can't leverage instruction execution rate to time inter-character delays.
A direct sleep is used but that has a minimal granularity measured in
milliseconds. The prior default for a non speed controlled line was 10ms
sleep between character output. This has been changed to 1ms which
is reasonable for most situations. Meanwhile, since the remote console
facility uses TMXR, and it has the reasonable ability to generate output
when instructions are not being executed, this is better but not perfect.