Today I made a new release of my CP/M emulator and I think that maybe now it will run on Microsoft Windows. Unfortunately I cannot test it!
A working CP/M implementation needs to provide facilities for reading input from the console, both reading a complete line of text and individual keystrokes. These input functions need to handle several different types of input:
- Blocking, waiting for input to become available.
- Non-blocking, returning any pending input if it is available otherwise nothing.
- With echo, so the user can see what they typed.
- Without echo, so the keys are returned by not displayed ot the user.
In the past we used a Unix-specific approach to handle the enabling and disabling of keyboard echoing (specifically we executed the stty
binary to enable/disable echos), but this release adds a more portable solution, based around termbox-go which is the new default, and should allow our emulator to work on Microsoft Windows systems.
We always had the ability to select between a number of different output drivers, and as of this release we can now select between multiple input drivers too - with the new portable option being the default. This has been tested on MacOS X systems, as well as GNU/Linux, but sadly I don't have access to Windows to test that.
Fingers crossed it's all good now though, happy new year!