Old TRS-80 Emulator Update News
Version 6.02 contains some more bug fixes that slipped by and into version 6.
Version 6.01 contains a few minor changes and a bug fix.
Version 6.00 (final)
The final release of version 6.00 is now available. Just a few problems had to be fixed in the beta release and a few enhancements have also been added to the final version.
Minor errors in the DOS shell command, Audio cassette recorder and status line options have been corrected
Support for the Model 3 MicroLabs graphics board have been added, two button mouse support and minor changes to the DOS shell and PC directory functions have been made.
The most significant change this time is not to the emulators but to the documentation. The version 6.00 update of the DOCs has been completed. The DOCs contain info about all the new functions and for the first time they contain documentation for the Enhanced Z80 Instructions available in the emulators.
Version 6.00 is a major update of the emulators. This update started out as v5.5 and was just going to add hardware support for the WD1010 hard disk controller. However, the update grew to include RS-232C support, additional functions, keyboard and operational changes and many bug and hardware emulation fixes.
With this version ALL of the standard TRS-80 hardware is supported and quite a bit of non-standard hardware as well. This should be the last major revision of the emulators with only error fixes and operational changes being needed in the future. My next project is a CoCo emulator.
Due to the additional features added and the operational changes made, please review the On-Line Docs to familiarize yourself with the changes to the emulator.
Now, on to what has changed in the version 6.00 update.
Configuration file formats have changed so old config files are invalid (sorry).
Lots of errors have been corrected is this update (more than I want to list here). Please check the WHATS.NEW file in the distribution for a list and description of the errors corrected.
Major features added:
Other features added:
Other important thing to know about the new update:
Do to changes in this version the XFER/CMD program and the VS100.DAT file from previous versions are not compatible with v6.00.
All other files and software are compatible with the new version.
It has been a long time since the last emulator update and there are lots of fixes, changes and enhancements in this long awaited version 5.40 update.
An error in the ADD IX,IX and ADD IY,IY instructions has been corrected. The emulator was executing ADD IX,HL and ADD IY,HL instead. This error caused no reported problems and I only found the error when I OCRed the Editor/Assembler manual and noticed the uniqueness of the instruction when I was proofreading the manual.
A change in version 5.20 caused the VS100 emulation sound quality to become distorted. This has been corrected
The CPU speed didn't revert to the user set speed after disk I/O in the Model 1 emulator. This has been corrected.
An error in the emulator trap instruction used by the EXPORT/CMD utility has been corrected.
The timing of data coming from a 500baud virtual cassette file was incorrect and has been corrected. This caused a 500baud virtual tape to load at about 350baud instead of 500baud. This error made CLOADs take even longer but caused no other problems.
Due to a number of requests the emulator no longer modifies the keyboard repeat rate.
Full Model 4P support has been added. With a real 4P boot ROM image the emulator will support all 4P memory map functions, including the loading of the MODELA/III ROM image. This update enables the support of the 4P version of NEWDOS/80 v2.0 (soon to be posted to the TRS-80 Software Page).
The Model 1 emulator now supports Level I and
Level II BASIC. A "Computer Type" option in the
configuration sceeen allows the user to boot the emulator as a
Level I or Level II machine.
The Level II ROM image filename has been changed from TRS81.ROM to LEVEL2.ROM and a Level I image has been added to the distribution.
TRS81.ROM is no longer needed and can be renamed to LEVEL2.ROM or deleted.
The Model III/4 emulator now supports Model III,
Model 4 and Model 4P modes. A "Computer Type" option in
the configuration sceeen allows the user to boot the emulator as
a Model III, Model 4 or Model 4P machine.
The Model 4 ROM image filename has been changed from TRS80.ROM to MODEL4.ROM, the Model 4P boot ROM image filename (by Pete Cervasio) has been changed from BOOT.ROM to MODEL4P.ROM and a Model III image has been added to the distribution.
TRS80.ROM is no longer needed and can be renamed to MODEL4.ROM or deleted.
When the Model III/4 emulator is in MODEL III mode none of the Model 4 memory map or speed functions operate so it WILL NOT run Model 4 mode DOSs in this mode (use Model 4 or 4P modes).
Changes to "Computer Type" in the emulators will not take effect until the next time the emulators are started (The ROMs can't be changed with the power on).
The Z80 CPU timing has been improved.
The cassette port SoundBlaster audio output has been improved.
The Model 1 emulator can now read & write 250baud Level I virtual cassettes.
Both emulators can now create real audio cassette tapes that will load on a real TRS-80. Connecting the line-out conector on a SoundBlaster compatible card to the AUX connector on a CTR-41 or CCR-81 cassette recorder (or simular mono tape recorder) will allow the recording of the audio of a CSAVE or other cassette write function. This recording can then be CLOADed on a real TRS-80 machine. All three baud rates are supported (250, 500 & 1500 baud). Results may vary but 500baud should work on most machines. No other programs should be running in Windows 95/98 when recording a cassette tape.
A really, really stupid yet serious error has been fixed in version 5.33. This is an error created in version 5.32 that caused the emulator to hang-up on exit if no sound card was enabled.
Several rather serious bugs dealing with REAL floppy disk I/O has been fixed in version 5.32. These bugs made formatting blank disks difficult or impossible. Also in the Model III/4 emulator trying to write to a REAL disk that was write protected caused the emulator to abort.
The exit clean-up of the SoundBlaster card has been improved, hopefully eliminating sound continuing to play after exiting the emulator.
A minor error in the way the Z80 EI instruction is handled has been fixed in version 5.31. This error caused the program LORES03A/CMD to lock-up when run in my emulator. The lock-up was the result of an error in the LORES03A program and my emulator.
The interrupt driven LORES03A program never inputs from port 0ECh to clear the RTC interrupt, so the RTC interrupt is always active. Therefore, as soon as a Z80 EI is executed another interrupt is seen and serviced. My emulator handled the EI instruction incorrectly by enabling interrupts before the next instruction while they should not be enabled until after the next instruction. The last 2 instructions of the LORES03A interrupt handler are:
This is proper Z80 coding. The EI will enable interrupts after the RET is executed. My emulator however enabled interrupts before the RET. Since the RTC is always active (because it isn't being cleared) the emulator executes an interrupt before the RET and nests the interrupt handler. This nesting continues until the stack eats it's way down through memory overwriting the vector table causing the LORES03A program to lock-up.
This error in my emulator has never caused an error before because an interrupt being serviced seldom ever occurs again while it's being serviced. Even it it does it won't do it more than once, therefore it would only nest once and then dig it's way out. The error in LORES03A caused the RTC interrupt to always nest, forcing the error in my emulator to lock-up the program. This is a rare case of an error causing an error. Were it not for this program I might never have found and corrected this error or it may have occurred in a larger more complex program that I didn't have source code for making it's debugging much more difficult.
Now that the emulator is fixed the LORES03A program needs to be fixed too. Since the RTC interrupt is always active the program is really not interrupt driven but runs as fast as the Z80 can execute. I added the IN (0ECH) instruction (after the DI in the interrupt service routine) which caused the program to slow down to a craw. The counters in the interrupt handler will need to be changed to handle the 30 or 60 ints/sec instead of the infinite interrupts occurring currently. Results are the same with my emulator and my Model 4.
The Orchestra 85/90 music features have been updated in the version 5.30 release. Orchestra 85/90 music can now be record to a Wave file either in Mono or Stereo (a compatible sound card is NOT required for this function to work). The direct play of Orchestra 85/90 music has also been greatly improved. Orchestra 85/90 programs and music can be found on my TRS-80 Orchestra 85/90 Page. Software speed control was also added to the Model 1 emulator.
There were several enhancements to the emulator in version 5.20. The ability to print to a PC disk file, set the background color and for the Model 1 an enhanced font option for displaying Model III/4 special characters. There were also several minor enhancements. The configuration file format and default filenames were also changed and previous version's configuration files are not compatible with this version (sorry).
There were also several bug fixes, most important of which was the correction of an error in the Z80 RETI instruction which prevented Radio Shack's CP/M from running (now available on the TRS-80 Software Page ). The other fixes were very minor.
There were several bug fixes in the version 5.11 update and support has been added for variable sector length REAL disks and the read address FDC command with REAL disks.
Because of the addition of a Model 1 emulator the program distribution has been changed. Only the files unique to each version of the emulator are in the program distribution. The support programs, utility disks, REAL disk specification files, source code for the utilities and documentation are now in the support distribution. Also no operating systems are included in the distribution. If you don't have any virtual or real disks to boot go to the TRS-80 Software Page to download an approperate operating system virtual disk. Without a virtual disk the Model 1 & III/4 emulators will only be able to boot cassette BASIC.
The virtual floppy drive support has been completely re-written in v5.00. The emulator can now support 100% of the WD1771 & WD1793 commands in its native virtual disk format. Improvements to the JV1 & JV3 support were also made. With this 100% WD1771 & WD1793 compatibility, protected virtual disk support is now possible. Six protected disk programs have already been converted and are available for download on the TRS-80 Software Page. Two of these programs are "Super Utility+ v3.0" and "Forbidden City".