Friendly fZ80 Computer Software changes /*********************************** * S O F T W A R E U P D A T E * * 10 mar 2026 * ***********************************/ 10 mar 2026 The H19/H89 ESCape sequence machine has been substantially improved. Specifics of the technical changes are in the Operator's Manual. All ESCape sequences implemented except: keypad and related Hxx hardware features; ESC n position report, insert/delete character, ANSI mode. Specifically, graphics mode now has the complete font. This update includes firmware change. BASIC program CHARSET.BAS displays all of the graphical characters above DEL. KEYMAP paradigm and program have been simplified and upgraded; it will upload a new table, or restore the built-in table. -Y and -K have been combined into -K, and is much more legible. MP/M drive E:, 32 megabytes but importantly, 2048 directory entries, to support XFCB and time stamps, now available. FORMAT.COM now correctly creates 8 megabyte disks (/CPM/CPMFILE.SYS) and not 32 MB as before. Formatting MP/M's E: drive will create a 32 MB disk. The formatMachine() state machine has been cleaned up for clarity in debug messages, the command names renamed. The manual has been updated to match. New utility, VIEW.COM, for viewing text files, has most of the capabilities of unix "less", and command line options allow it to function as unix head and tail commands. It pages forward and backward, allows navigation, display line numbers, and search/search next. It adapts to window rows/columns (fZ80) or rows/cols can be specified on command line or by command. (Should work on any CP/M system.) The following programs have changed: CHARSET.BAS MBASIC program to display the graphical character sets EXPORT.COM afn bugs fixed, allows specifying target drive FORMAT.COM formats MP/M drive E: IMPORT.COM allows specifying target drive KEYMAP.COM New design MARCLOCK.RSP now displays dates correctly VGA.COM Compatible with corrected H19 escapes VIEW.COM new 06 feb 2026 CLOCK.COM and MARCLOCK.COM have been repaired -- they both calculated date incorrectly. Both have been checked against MP/M's TOD. VGA.COM ! command now sets a slower cursor blink. GREP.COM now works correctly with wildcards. EXPORT.COM built-in help fixed. ---------------------------------------------------------------------- /*********************************** * S O F T W A R E U P D A T E * * 28 Jan 2026 * ***********************************/ TO UPGRADE TO 28 JAN 2026: If you did not apply the 02 Jan 2026 update, no worries, this will do it all. But please read the SOFTWARE CHANGES for 29 dec 2025 below! Disk drive layout and capacity have changed. A firmware update is REQUIRED to use the new 63K CP/M. However all of the other updates (programs, etc) will work with the older 61K CP/M. Download the 28Jan2026update-kit.zip from the Release folder: https://www.bleeve.me/fZ80/Release/28Jan2026update-kit.zip. Unzip it in a folder created for the purpose. * Insert a CP/M SD card into your modern computer. Preferably one that has no CP/M files, but you can delete those in the next step. Go to the SD card's /IMPORT folder, empty it of files that may be there, then drag in all of the files unzipped above. * Eject this CP/M card and insert it into C: on fZ80. * Change to C:. If DIR shows files, delete them all. * Run A:IMPORT *.*. This imports files from the IMPORT folder, into CP/M. * Switch to A:. If you've set permissions correctly (with SETADRIV.SUB probably) then it will be easier to do: SET *.* [RW,DIR] to remove them all. * Copy the files from C: to A: with PIP A:=C:*.*, overwriting many files. * Fix permissions by running SUBMIT SETADRIV (setadriv.sub) TO UPDATE TO THE NEW 63K CP/M SYSTEM: You *must* upgrade the Teensy firmware first, by opening the cabinet (remove the two front screws, loosen the rear; the cabinet top tilts upwarn enough to insert the USB Micro-A cable) and following the TEENSY FIRMWARE UPGRADE instructions on the website. The Z80 ROM MONITOR address had to change from it's original F800h location to 8000h so that CP/M can load up high. This firmware change is the equivelant of rewiring the CPU board for a new ROM socket address. This change works with previous, older CP/M boot disks. Once the firmware has been updated, fZ80 reboots and you're ready for the new 63K CP/M. CP/M requires specific updating, to accommodate the changes to disk drive geometry and the new 63K CP/M. This is now vastly easier using the updated tools. Amongst the new files just copied by above is CPM24JAN.IMG, a complete CP/M bootable system image. CP/M now updates with this single command below. 0A> SYSBOOT a: CPM24JAN.IMG ---------------------------------------------------------------------- /*********************************** * S O F T W A R E C H A N G E * * 28 Jan 2026 * ***********************************/ *** The Operators Manual (PDF) has been updated to reflect all changes through this date. *** CP/M 2.2 bootable system has been upgraded from 61K to 63K, increasing TPA by 2K bytes. This necessitates a Teensy firmware update, because the ROM MONITOR had to be relocated from F800h to 8000h. This value had been hard-coded in the firmware. The ROM MONITOR has its origin changed and needs to be reassembled if you are running a custom MONITOR, which seems unlikely. The instructions are on the website, fZ80/Software tab. *** New tool, MP/M only: GO.COM. GO allows you to combine USER and DRIVE into a singular concept of "location", allows naming locations, and maintains lists of recent locations. GO provides a simple "go back" to previous location(s) in an ordered manner. A simple text file contains location names and user/drive destinations. It does not, alas, extend this service into MP/M. *** New MP/M utility, MARCLOCK, displays date and time within the inter-window margin. An RSP, you can change position and color; see the Operator's Manual. *** New BDS C source library (include): GETOPTS2.H. GetOpts, modelled after the similarly named unix functions (specifically the perl implementation) allows modern command line option handling: multiple filenames, switch options (-A). Switches may be simple binary (exists or not) or may be given numeric or textual arguments (-A123, -A=345, -A="A B C"). Filenames may be ordinary, or quoted strings (FILENAME.EXT, "QUOTED STRING", 'FOO.*XX', /A B C/). See the Operator's Manual for details. *** The SYSBOOT.COM tool is now a very flexible CP/M system update tool. It can still write individual BOOT.HEX and CBIOS.HEX assembled files to a disk's boot tracks, but has two new major features: 1) SYSBOOT can extract the CCP+BDOS from a MOVCPM xx *, SAVE file, and update only CCP and BDOS on disk. 2) SYSBOOT can write to the system track of a disk, a complete bootable system image saved by the new tool SYSIMAGE.COM. *** SYSIMAGE.COM, new tool, creates a .IMG file that contains all sectors of an fZ80 CP/M bootable system; boot sector, CCP, BDOS, and the extended-length CBIOS, 2048 bytes instead of the distribution 768 bytes. SYSBOOT can write these .IMG files to the correct place. *** The fZ80 utility that copies CP/M boot and system from one disk to another has been renamed to SYSDUP.COM. It was previously named SYSGEN, a poorly chosen name. *** BDS C 1.6 runtime package updated to eliminate redundant cooked-mode disk buffering, resulting in some programs using 7/8ths of a K byte less RAM at same or better performance. The provided fZ80 utilities will eventually be converted to use getOpts for consistency and flexibility. *** VGA.COM has new commands; W/nnn sets window width (columns), H/nn sets window height (rows). ---------------------------------------------------------------------- 08 jan 2026 * A new CPM bundle, NULU-ARC-CRUNCH, contains curated versions of NULU, ARC, CRUNCH/UNCRUNCH and LSWEEP utilities. These work on MP/M, unlike, sadly, LU310. * IMPORT and EXPORT allow specifying different drive letters for the CP/M files and the /IMPORT or /EXPORT folder. Previously, IMPORT and EXPORT assumed files were imported or exported on the currently logged in drive (with minor exceptions). ---------------------------------------------------------------------- /*********************************** * S O F T W A R E C H A N G E * * 02 Jan 2026 * ***********************************/ The bugs listed below have been fixed except as noted, in the 02Jan2026 release currently available for download. UPDATE KIT DOWNLOAD: https://www.bleeve.me/fZ80/Release/fZ80-update-02Jan2026.zip In the Release folder The pertinent changed files are contained in the 02Jan2026-UPDATE-KIT.zip file -- less than 10 files. To use this kit: * Read the SOFTWARE CHANGE sections below; the CBIOS update below will change the size of your disk drives. * Download and unzip in a new folder. * Insert a formatted SD card into your (modern) computer. Copy the unZIPped files to that card's IMPORT folder. It's easiest if the CP/M side of the SD card is empty (easier to see the files imported). * Insert the SD card into fZ80, say C:. Change to that disk (C: ). * A:IMPORT *.*. * You should see the names of the new files scroll up. * Copy these to your A:, overwriting existing files, eg A:PIP A:=C:*.* (assuming C: was empty before you imported.) PIP might complain about overwriting R/O files if you've set up attributes; Just Say Yes. * Finally, do SYSBOOT A: CBIOS.HEX. This will install the new CP/M CBIOS onto your A: drive. * Press RESET to reboot. You should see CBIOS display "28 Dec 2025". You can now use SYSGEN to install this new CP/M to each of your bootable disks. * The new MPM.SYS file also refers to the disks with their new sizes, and includes the new E: drive. /*********************************** * S O F T W A R E C H A N G E * * 29 dec 2025 * ***********************************/ BUG: 32MB disk drives are buggy and will corrupt on CP/M 2.2. MP/M has no such problem, and handles 32 MB drives fine. The solution is a replacement CBIOS, which should be applied to all of your bootable disks, obviously A: but any additional removables, using the SYSBOOT tool. The fix will reduce disk capacity from 32 to 8 megabytes, however the disks themselves remain untouched. If you currently have more than 8 MB on a disk, see below. Only the bootable CP/M disks need this change, after which existing 32 MB disks will be interpreted as 8 MB. The new CBIOS will print a date of 28 Dec 2025 at boot time (press reset). IF YOU HAVE SD CARDS IN USE NOW WITH MORE THAN 8 MEGABYTES OF FILES, use the EXPORT tool to copy all of the files, then IMPORT them again later. For CP/M: Drive letters A, B (fixed), C, D (removable) will remain the same and compatible and interoperable between CP/M and MP/M. Up til now CP/M had two disk drives, E and F, that were not visible to MP/M. Drives E and F disappear; copy any content from those to removable drives and re-copy those files after the new CBIOS is installed. The good news is this frees up nearly 2K of RAM for CP/M programs. To take advantage of this freed memory a firmware change will be required, that firmware will be made available shortly. For MP/M: MP/M will have the same first four drives, A, B, C, D, same 8 megabytes and interoperable. However MP/M will have one additional drive, E, of 32 megabytes. CP/M cannot "see" or use this drive. OTHER CHANGES: The keys used to change MP/M's window selects and sizing have changed; while different they are much easier to use. A design bug prevented actually configuring them properly via the keymap (EVRST60, provided) and that is now fixed. The code to do so was in the CP/M BIOS and MP/M BNKXIOS. These changes make no change to the basic keyboard keys. You will need to apply the supplied EVRST60.HEX keyboard map with the command: A> KEYMAP -U EVRST60.HEX then A> KEYMAP -S To save it in EEPROM. /*********************************** * S O F T W A R E C H A N G E * * 29 dec 2025 * ***********************************/ As of firmware version 6, 28 Dec 2025, the keyboard keys for MP/M dynamic window manipulations have changed, for the better; the previous version contained a design bug that prevented reassigning window select and resize commands. This is fixed with version 6 and the keymaps, both built-in and external, have been updated to match. The window keys are simpler and easier to use: * Control-1 (Press CONTROL key, then digit "1") selects window 1, upper left. Control-2, -3, -4 select windows 2, 3, 4. No change is made to window size. * ALT-1, etc, both selects window 1 and resizes it to 24 lines by 80 characters. * ALT-5 selects window 1 and resizes it to 36 lines 100 columns. ALT-6, ALT-7, ALT-8 do the same for windows 2, 3, 4. * Control-arrow keys (up down left right) resize the current window by one line. These functions can be now reassigned to other/additional keys by making changes to EVRST60.ASM, assembling with MAC.COM, and uploading the resulting .HEX file with the KEYMAP.COM utility. ---------------------------------------------- fZ80 RELEASE v5 NOVEMBER 2025 Tom Jennings 18 nov 2025 This is the first release; wish us all well. Everything was tested as thoroughly as possible but it's a large amount of complex software. There are known shortcomings mentioned below, but this should be 90% of what a good MP/M II 2.1 computer could have been in 1981. There is a lot of CP/M application software, provided here and out in the world. Most of what's survived is of pretty good quality, but keep in mind how few resources these machines had, features like un-do and auto-save-to-disk are rare. You may lose work, ruin disks, as you build new (or forgotten) skills and disciplines. There are workflow habits that minimize risks and they are good skills to have on modern machines! PERSPECTIVE ON THE fZ80 DISPLAY fZ80 has a *nice screen*. fZ80 allows changing current-window size with a single keystroke. This is not a 1980 thing! Changing window dimensions wasn't even concept in 1980! The amount of RAM used by the 1024 x 768 screen is 1980-unthinkable. In 1980, a terminal screen that could display 24 lines by 80 columns monochrome with one attribute (bright, or dim, or blink, etc) was a high-end and expensive thing. The VT100 terminal cost $1500 in 1980; that's $6000 today, adjusted for inflation. No one had these at home. 16 flickery lines of 40 columns on a TV set was common. PERSPECTIVE ON PERFORMANCE, GENERALLY fZ80 has a very fast Z80. Programs on MP/M are surely compute-bound, but mostly you will see that they are disk-bound. Strangled, actually, as there is literally zero disk buffering (beyond 512 bytes in the disk driver firmware). The physical memory to do effective buffering cannot exist. Effective use of a resource-restricted machine comes down to human techniques and excellent programming. For the common user practice of editing a program text in one window, compiling and testing in another, and occasional browsing files or other task in yet another, you learn to manage it. Modern software is very accommodating; it remembers filenames for you, provides shortcuts, fills in defaults, and generally prevents or recovers from keystrokes that would leave you in some inexplicable state. Little of this exists, here. Things work, but you have to do them correctly. INCOMPLETE fZ80 FEATURES This is a first release of new hardware and software (as well as spelunked antique software). The following are incomplete/known problems or limitations as of this release. Please report problems to me ASAP! The parallel port works but the full handshake features described are not yet implemented. The hardware is all present and tested. I don't yet have a printer to hang on it, and it's best uses will be for high-speed devices like Fujinet or other inter-machine uses. Dev work isn't difficult, it's not rocket science, just effort. The serial port similarly; hardware works, bit rates and control signals work, but it has had no applications testing. The on-board buzzer (v4 boards only) does not buzz. I apparently chose a piezo with incompatible characteristics. The underlying hardware works but the code is not present. v3 boards have SD card problems when two removables are inserted and in place at the same time (even passively). There are no problems when only one removable card is in place, eg. to/from/between removable and fixed SD cards. The v4 boards have buffering hardware that all-but-eliminate this. It seems that in the embedded world no one does what I'm doing with them, using them as hot-swappable "floppies". Popping SD cards in and out is more complex than is obvious. With the v4 boards there is a tiny window for problems but you may not see it. With v3, keep one card popped out. Some CP/M programs still need fiddling with configuration; SuperCalc2 uses H19/H89 graphics characters and the prompt area looks funny, and backspace/delete is odd. Left-arrow works. Some of these are configuration details and some are long-forgotten expectations of behavior. In ye olden dayes, configuring keyboards for "functions" (arrow yes, etc) was difficult, and those problems remain. For fZ80, there is the keymap... While fZ80 allows changing window dimensions at any time, cursor-graphical CP/M programs do not adapt to a changed window. Some of the cursor-driven .COM programs (PMate, SuperCalc2, ...) have names like PM36.COM, where "36" implies 36 x 100 window, obtained by selecting a window with CTRL key depressed to set it's size. WordStar is an exception; it will adapt to any window size (within reason) at startup. Occasionally, opening a document for editing in WordStar complains "not enough memory". Do it again, it works, and thereafter. This seems to happen once upon first use. This may be a minor WordStar configuration issue. WordStar is MP/M aware and has a nice configurator program, provided. In it's day, the CP/M world was fairly mature, but MP/M was still a new product and not all of the compatibility and interoperability solutions were worked out; it never got the chance. So things are sometimes rough around the edges. Using MP/M on fZ80 is an odd take on a historical event. NEAR TERM PLANS I intend to write a very nice and extensible HELP system, searchable, that mirrors the functions of man ("manual") on unix. This will help a lot and I wish I had it now... There is no inter-machine communications of any kind yet, but there is capability for it with the serial and parallel ports. Kermit, and telnet/ssh to and from the net, or BBS software on fZ80. It would be lovely if someone were to explore Fujinet...