- Added RCEZ80 platform option to Build.ps1
- Added EZ80 config settings to MASTER config (required to get build to work for some situations)
- Modified a .EQU in cfg_RCEZ80.asm to a .SET. After adding config setting to MASTER config, the .EQU was causing a redefinition error.
- I have temporarily removed some "TRANSLATE" lines in ez80uart.asm. They were attempting to place a value greater that 0xFFFF in a register and generated an assembly error.
- Modified a few JR instructions in hbios.asm to JP due to out-of-range errors.
- Modified std.asm to "nest" a conditional. The Windows assembler does not ignore the remainder of a complex conditional when it should.
- Modified tms.asm to replace the PRTS macro with alternative lines. The Windows assembler cannot handle a string longer than about 8 characters in a macro argument.
- Added the TIMER utility to the ROM disk. Not sure what happened there. It was included in the Windows build, but not the Linux build. There is room for it, so I added it to the Linux build to get a binary exact build compare.
- Implement Interrupt Mode 2 (Mode 1 is still default)
- Implement interrupt driven keyboard support
- Improve UART keyboard driver to support interrupt driven flow control
- Rearranged HBIOS code to improve colocation of related code.
- Implemented macros to improve control over assembly diagnostic output.
- Improved handling of diagnostic LEDs.
- Improved application boot bank management.
- Implemented application boot for Z280 systems.
- Moved Z280_BNKSEL into proxy.
-
- Modified TMS driver to always imbed an uncompressed font. This is because I have found no reasonable way to decompress a font while an OS is still active without mangling some of the OSes RAM.
- This change avoids clearing the screen every time an OS reset occurs. A non-destructive VDC reset is now performed that leaves the screen contents and cursor position unchanged.
- If an application overwrites the video RAM, then the screen may contain garbage upon return to OS. However, the console will still be functional and the user can just press enter a few times to clear the screen.
- The TMS reset function was missing a call to re-initialize the CRT registers. This has been added.
- The SN76489 powers up in a dreadful state where it is emitting loud noise until initialized. Added a PREINIT entry point to initialize the registers earlier. Still not great, but a lot better.
- Minor doc updates
- Comment updates in ansi.asm and tms.asm
- Correction to build process for ROMless systems
- Fix for ZRC (default configuration) to use all available RAM
- The 40 column mode of the TMS driver now conforms to the memory map from the TMS9918 documentation and is also now consistent with the existing TMS9918 video programs from the RC2014 forum.
Added configuration setting VDAEMU_SERKBD which can be used to specify any serial unit # to be used as the keyboard for the video terminal. Default value is $FF which means to use the default hardware keyboard. All other values mean that terminal input is to come from corresponding serial unit #.
Also a couple more tweaks to the p-System boot volume.
I got a very nice email from Eluan Miranda. He pointed out a few inconsistencies in the video and audio driver configurations. I made a few adjustments to clean things up.
QP/M is a CP/M 2.2 replacement for BDOS/CCP. However, it adds it's own concept of date/time stamping. Support for the QP/M date/time routine has been added. You can configure QP/M to find the vector at address 0x0010.
A sidenote on QP/M. By default, it uses 2 bytes at address 0x0008 to store the current drive/user. This will conflict with RomWBW's use of RST 08 for API function calls. I recommend using address 0x000E when configuring QP/M for the location of the current drive/user.
- Added TMSMODE_RCKBD to support an 8242 keyboard combined with TMS video.
- Worked around a syntax issue from uz80as in rz.asm.
- Improved mechanism to handle forcing a UART detection for SIMH.
- Allow any system timer to drive MKY interrupt, not just the TMS driver interrupt.
- Add a build check to ensure that when MKY is enabled, a system timer is also enabled.