To install this package on CP/M, download the ZIP file and unpack it. It will create a folder with the same name as the package, containing the files shown.
Download PMATE-3.21-fZ80.zip containing all files below.
README.TXT ---------- PMATE 3.21 fZ80 customization 18 Dec 2025 PMATE has been patched to not be a resource hog on MP/M. The "instant command" list has also been modified to work with WordStar arrow keys, which necessitated some keyboard juggling. RESOURCE HOG PATCHES: PMATE is old and crude; it uses BIOS jump table routines for conSt, conIn, and conOut, which works, but somehow consumes CPU cycles on MP/M. The solution here, in FZPATCH.*, is to cause PMATE to eventually call DIRECT CONSOLE I/O E=0fd, which suspends the program in a keyboard wait. See FZPATCH.ASM for explanation. See below for the patching process. INSTANT COMMAND CHANGES: The keyboard arrow keys were defined to be WordStar compatible, as was common in it's heyday, and other programs like SuperCalc2 share it. PMATE had other ideas, with many keys conflicting. The new configuration file, PM-CFG2.CFG, swaps keys such the the arrow keys and the WordStar diamond (S, D, left and right and E, X, up and down) are consitent. To do this some traditional PMATE functions have moved. See https://www.bleeve.me/fZ80/PMATE-cheat-sheet.html for the new key mappings. PATCHING PROCESS: PMATE is simple and downright crude... patching is done by modifying the binary (PM.COM etc), using the version 3.21 patch file IOPATCH.ASM. The absolute addresses (compile, look at the .PRN) match the distribution binary. FZPATCH.* is a stripped down, then augmented, edit of IOPATCH.ASM. It leaves some things unchanged. PATCHING OVERVIEW: To do the job right you need to patch CONPMATE.COM so that you can create "customized" configuration PMATEs from the command line. I do this as a two-step process; apply patches to a working PMATE binary, when those look good, apply the patches to (a copy of) CONPMATE.COM, and use that to create your user copies. TESTING PATCHES: This can be done in MP/M, obviously necessary to fix the MP/M "hog" problem, but CONPMATE must be modified in CP/M. Start with a distribution 3.21 binary. I make a copy called TEST.COM, patch and test that, then apply to real files (see below). Edit FZPATCH.ASM as needed, compile with MAC.COM. DDT TEST.COM. Verify that RAM contains what's shown in IOPATCH.PRN etc. Load the assembled patch: -IFZPATCH.HEX -R - -g100 PMATE runs, reports some error, illegal file, etc. Ignore and xk$$ to clear it. Test PMATE as required for the change. If it looks OK execute xdtestx.com$$ to export a modified copy of the binary. When that's all good proceed to fixing COMPMATE. PATCHING CONPMATE: PMATE's configuration with CONPMATE self-modifies the running binary, in RAM, then saving a copy to disk, so patches must be first applied to CONPMATE. However patching CONPMATE requires the SAVE (memory to disk) command not available in MP/M. Make a copy of distribution CONPMATE.COM. DDT CONPMATE.COM -IFZPATCH.HEX R (prints out memory usage) g0 A> SAVE 122 CONPMXX.COM Now use that saved file CONPMXX to configure PMATE in the usual way. --------------------
Archive: PMATE-3.21-fZ80.zip
Length Date Time Name
--------- ---------- ----- ----
31232 2024-12-31 16:00 PMATE-3.21-fZ80/CONPMATE.COM
6400 2024-12-31 16:00 PMATE-3.21-fZ80/FZPATCH.ASM
896 2024-12-31 16:00 PMATE-3.21-fZ80/FZPATCH.HEX
12672 2024-12-31 16:00 PMATE-3.21-fZ80/FZPATCH.PRN
384 2024-12-31 16:00 PMATE-3.21-fZ80/FZPATCH.SYM
22272 2024-12-31 16:00 PMATE-3.21-fZ80/PM24.COM
6784 2024-12-31 16:00 PMATE-3.21-fZ80/PM-CNF2.CNF
6656 2024-12-31 16:00 PMATE-3.21-fZ80/PM-FZ80.CNF
2960 2026-04-05 16:43 PMATE-3.21-fZ80/README.TXT
--------- -------
90256 9 files