After 3 years development time and over 1000 commits to the repository here is the final 1.38 release of the software. There were so many improvements, that it is impossible to list it here all in detail, the following describes the major progress made.
Frontpanel machines:
The frontpanel library is not a shared library anymore, is linked static into the executables, so no more configuration problems anymore and no need to understand details of the dynamic linker on some platform.
All frontpanel machines can be started with or without a frontpanel, which is default, to disable use option -F. This allows automatisation of the virtual machines with scripting, like starting/stopping machines from cron jobs and so on.
Webfrontend:
David McNaughton added a webfrontend for the Cromemco Z1, similar to the one for the IMSAI 8080. The webfrontend now always is compiled into the both machines, the webserver can be started with option -n, by default it is not started.
ICE:
The machines z80sim and mosteksim included an emulation of a Mostek In Circuit Emulator, irreplaceable for debugging or code analysis when no source code available. The ICE was much better isolated and now optionally can be connected to any machine. This is a compile time option, see sim.h for the various machines.
CPU's:
Tomas Eberhardt improved the CPU's and added additional ones as compile time option. The Intel 8080 can be configured to behave like an AMD 8080. Thomas added code size optimized implementations for Z80 and 8080, needed for bare metal MCU's. Machines that are compiled with more than one CPU can now switch CPU's with an I/O instruction. Works similar like an Apple ][ with Microsoft Z80 card.
Bare Metal/MCU's:
Much better support for small MCU boards like the ESP32 one, that Dave is using for his IMSAI 8080 and Cromemco Z1 kits. Additional implementations on MCU boards with Arduino Nano and Pi Pico have been build, as examples how to make use of the code base for such hardware.
Z80 assembler:
Totally reworked by Thomas Eberhardt. The assembler now supports Zilog Z80 and Intel 8080 syntax. Also macros were added, fully compatible with what Intel and DRI used in their assemblers. Then many features from Microsoft M80 were added, so that most software written for this one should assemble without too many changes. We have re-assembled all and any assembler code included in the project with the new z80asm, to demonstrate it's features. Very powerfull Z80/8080 assembler now, must have tool also for other projects.
General:
Lots of code reviews to improve code quality. Analysis with static code analyzers, to find questionable programming we missed in reviews. Adapted as much as possible to the latest POSIX and C/C++ standards. We didn't use features that are not implemented on the major POSIX platforms since at least 10 years or so. Makes sure that older OS versions still are supported and not already obsolet by now.
Thank you very much everyone who contributed to this release, all your hard work is much appreciated. I tried to keep the CREDITS file up to date, if something is missing this is my fault, please let me know, so that it can be corrected.
June 03 2024
Udo Munk