From 5e4e098f64656ca204b6983216ec8e2b800e2ad1 Mon Sep 17 00:00:00 2001 From: Wayne Warthen Date: Sun, 29 Dec 2019 16:27:25 -0800 Subject: [PATCH] CPM3/ZPM3 Cleanup --- ReadMe.txt | 14 +++++ Source/CPM3/@banks.txt | 28 ---------- Source/CPM3/Build.cmd | 23 +++++++- Source/CPM3/Clean.cmd | 2 +- Source/CPM3/boot.z80 | 27 +++++++++- Source/CPM3/genbnk.dat | 2 +- Source/CPM3/optbnk.lib | 2 +- Source/CPM3/optres.lib | 2 +- Source/CPM3/{optswp.lib => optzpm.lib} | 2 +- Source/Images/hd_cpm3/s0/u0/GENCPM.COM | Bin 0 -> 21155 bytes .../hd_cpm3/s0/u0/{WBW.TXT => ROMWBW.TXT} | 7 +++ Source/Images/hd_zpm3/s0/u0/ROMWBW.TXT | 51 ++++++++++++++++++ Source/Images/hd_zpm3/s0/u0/WBW.TXT | 20 ------- Source/Images/hd_zpm3/s0/u10/HELP.HLP | Bin 63488 -> 0 bytes Source/Images/hd_zpm3/s0/u10/ZHELP.COM | Bin 7040 -> 0 bytes Source/Images/hd_zpm3/s0/u15/gencpm.com | Bin 0 -> 21155 bytes Source/ZPM3/Build.cmd | 13 ++--- Source/ZPM3/Clean.cmd | 2 +- 18 files changed, 131 insertions(+), 64 deletions(-) delete mode 100644 Source/CPM3/@banks.txt rename Source/CPM3/{optswp.lib => optzpm.lib} (83%) create mode 100644 Source/Images/hd_cpm3/s0/u0/GENCPM.COM rename Source/Images/hd_cpm3/s0/u0/{WBW.TXT => ROMWBW.TXT} (69%) create mode 100644 Source/Images/hd_zpm3/s0/u0/ROMWBW.TXT delete mode 100644 Source/Images/hd_zpm3/s0/u0/WBW.TXT delete mode 100644 Source/Images/hd_zpm3/s0/u10/HELP.HLP delete mode 100644 Source/Images/hd_zpm3/s0/u10/ZHELP.COM create mode 100644 Source/Images/hd_zpm3/s0/u15/gencpm.com diff --git a/ReadMe.txt b/ReadMe.txt index 6309bf9e..a8b2bed7 100644 --- a/ReadMe.txt +++ b/ReadMe.txt @@ -191,6 +191,20 @@ the drive containing the CP/M 3 image and use the CPMLDR command to load CP/M. It will ask you for the disk unit number containing the CP/M 3 system files which are on the disk image you created. +ZPM3 +---- + +Like CP/M 3, ZPM3 exists in an experimental state and is started +just like CP/M 3 above. Just use the zpm_hd.img file to create +your CF or SD Card. There is an issue with the ZPMLDR app used +to start ZPM. Instead, just use CPMLDR which works exactly the +same way. + +Note that ZPM3 seems to be completely constrainted to use drive +A: as the boot drive. So, the RomWBW adaptation of ZPM3 will +"swap" the initial drive A: (typically RAM drive) with the +ZPM3 boot drive at startup. + ROM Customization ----------------- diff --git a/Source/CPM3/@banks.txt b/Source/CPM3/@banks.txt deleted file mode 100644 index 7fb0d406..00000000 --- a/Source/CPM3/@banks.txt +++ /dev/null @@ -1,28 +0,0 @@ -COMMON 8F ?? -CPMSYS 8E 00 -HBIOS 8D ?? -TPA 8C 01 -BUFS 8B 02 - -8D:7000 -> 8E:0300 - - -00 -> 8E -01 -> 8C -02 -> 8B -03 -> 8A -... - -if bnk = 0, then hbbnk = 8EH (BID_USR) -else hbbnk = 8DH (BID_BIOS) - bnk - - or a - jr z,bank0 - neg ; 2 -> -2 - add 8DH ; 8D - 2 = 8B - jp HBX_SETBNK -bank0: - ld a,(8EH) - jp HBX_SETBNK - ret - diff --git a/Source/CPM3/Build.cmd b/Source/CPM3/Build.cmd index efacbb00..5008a0ca 100644 --- a/Source/CPM3/Build.cmd +++ b/Source/CPM3/Build.cmd @@ -24,7 +24,7 @@ rem pause rem Resident CPM3 echo. echo. -echo *** Resident BIOS *** +echo *** Resident CPM3 BIOS *** echo. copy optres.lib options.lib copy genres.dat gencpm.dat @@ -43,7 +43,7 @@ rem pause rem Banked CPM3 echo. echo. -echo *** Banked BIOS *** +echo *** Banked CPM3 BIOS *** echo. copy optbnk.lib options.lib copy genbnk.dat gencpm.dat @@ -59,6 +59,25 @@ zx GENCPM -AUTO -DISPLAY copy cpm3.sys cpm3bnk.sys rem pause +rem Banked ZPM3 +echo. +echo. +echo *** Banked ZPM3 BIOS *** +echo. +copy optzpm.lib options.lib +copy genbnk.dat gencpm.dat +zx RMAC -BIOSKRNL +zx RMAC -SCB +zx Z80ASM -BOOT/MF +zx Z80ASM -CHARIO/MF +zx Z80ASM -MOVE/MF +zx Z80ASM -DRVTBL/MF +zx Z80ASM -DISKIO/MF +zx LINK -ZPMBIOS3[B]=BIOSKRNL,SCB,BOOT,CHARIO,MOVE,DRVTBL,DISKIO +rem zx GENCPM -AUTO -DISPLAY +rem copy cpm3.sys zpm3.sys +rem pause + rem *** Resident *** rem copy cpm3res.sys cpm3.sys rem copy genres.dat getcpm.dat diff --git a/Source/CPM3/Clean.cmd b/Source/CPM3/Clean.cmd index 34c3444b..02fa2692 100644 --- a/Source/CPM3/Clean.cmd +++ b/Source/CPM3/Clean.cmd @@ -3,7 +3,7 @@ setlocal if exist bios3.spr del bios3.spr if exist bnkbios3.spr del bnkbios3.spr -if exist swpbios3.spr del swpbios3.spr +if exist zpmbios3.spr del zpmbios3.spr if exist *.rel del *.rel if exist cpmldr.com del cpmldr.com if exist *.err del *.err diff --git a/Source/CPM3/boot.z80 b/Source/CPM3/boot.z80 index 0d9031ed..d0b5cb0f 100644 --- a/Source/CPM3/boot.z80 +++ b/Source/CPM3/boot.z80 @@ -38,7 +38,7 @@ tpa$bank equ 0 if banked ; Clone page zero from bank 0 to additional banks - ld b,2 ; last bank + ld b,3 ; last bank ld c,0 ; src bank init$2: push bc ; save bank id's @@ -250,7 +250,7 @@ stpsiz equ $ - stpimg ?ldccp: - if drvswap + if zpm ; Swap A: and system drive (make A: the system drive) ld bc,(@dtbl) ; get drive A DPH @@ -614,6 +614,27 @@ bin2bcd1: pop bc ret + if zpm + +signon$msg db 13,10,'ZPM3' + if banked + db ' [BANKED]' + endif + db ' on HBIOS v' + biosver + db 13,10,13,10,0 + +ccp$msg db 13,10,'BIOS Err on ' +ccp$msg$drv db '?' + db ': No ZCCP.COM file',0 + + +ccp$fcb db 0,'ZCCP ','COM',0,0,0,0 + ds 16 +fcb$nr db 0,0,0 + + else + signon$msg db 13,10,'CP/M v3.0' if banked db ' [BANKED]' @@ -631,6 +652,8 @@ ccp$fcb db 0,'CCP ','COM',0,0,0,0 ds 16 fcb$nr db 0,0,0 + endif + @bootdu db 0 hdspv db 2 ; slices per volume for hard disks (must be >= 1) diff --git a/Source/CPM3/genbnk.dat b/Source/CPM3/genbnk.dat index b3ca77b2..4a542bd3 100644 --- a/Source/CPM3/genbnk.dat +++ b/Source/CPM3/genbnk.dat @@ -8,7 +8,7 @@ MEMTOP = FD BNKSWT = Y COMBAS = 80 LERROR = Y -NUMSEGS = 02 +NUMSEGS = 03 MEMSEG00 = 01,43,00 MEMSEG01 = 0E,72,02 MEMSEG02 = 01,7F,03 diff --git a/Source/CPM3/optbnk.lib b/Source/CPM3/optbnk.lib index 7cfeb133..93dbb3c3 100644 --- a/Source/CPM3/optbnk.lib +++ b/Source/CPM3/optbnk.lib @@ -5,4 +5,4 @@ false equ not true banked equ true -drvswap equ false +zpm equ false diff --git a/Source/CPM3/optres.lib b/Source/CPM3/optres.lib index cbfd10c7..1c08bd24 100644 --- a/Source/CPM3/optres.lib +++ b/Source/CPM3/optres.lib @@ -5,4 +5,4 @@ false equ not true banked equ false -drvswap equ false +zpm equ false diff --git a/Source/CPM3/optswp.lib b/Source/CPM3/optzpm.lib similarity index 83% rename from Source/CPM3/optswp.lib rename to Source/CPM3/optzpm.lib index 52448081..eba22e9b 100644 --- a/Source/CPM3/optswp.lib +++ b/Source/CPM3/optzpm.lib @@ -6,4 +6,4 @@ false equ not true banked equ true -drvswap equ true +zpm equ true diff --git a/Source/Images/hd_cpm3/s0/u0/GENCPM.COM b/Source/Images/hd_cpm3/s0/u0/GENCPM.COM new file mode 100644 index 0000000000000000000000000000000000000000..d9d67499f9eff1fddf7748bc52fe835818a0886d GIT binary patch literal 21155 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 HIrIMk=LF{; literal 0 HcmV?d00001 diff --git a/Source/Images/hd_cpm3/s0/u0/WBW.TXT b/Source/Images/hd_cpm3/s0/u0/ROMWBW.TXT similarity index 69% rename from Source/Images/hd_cpm3/s0/u0/WBW.TXT rename to Source/Images/hd_cpm3/s0/u0/ROMWBW.TXT index 9bdf3827..8e3f0534 100644 --- a/Source/Images/hd_cpm3/s0/u0/WBW.TXT +++ b/Source/Images/hd_cpm3/s0/u0/ROMWBW.TXT @@ -1,3 +1,10 @@ +This is a generic CP/M 3 adaptation for RomWBW. + +To start CP/M 3, first boot into CP/M 2.2 or ZSystem. Then +switch to the drive that contains the CP/M 3 hard disk image +and run CPMLDR. You will be prompted for the disk unit +of the CP/M 3 image. + With the following exceptions, the files in this directory came from the CP/M 3 binary distribution on "The Unofficial CP/M Web site" at http://www.cpm.z80.de/binary.html. diff --git a/Source/Images/hd_zpm3/s0/u0/ROMWBW.TXT b/Source/Images/hd_zpm3/s0/u0/ROMWBW.TXT new file mode 100644 index 00000000..3d2181d5 --- /dev/null +++ b/Source/Images/hd_zpm3/s0/u0/ROMWBW.TXT @@ -0,0 +1,51 @@ +This is a generic ZPM3 adaptation for RomWBW. + +To start ZPM3, first boot into CP/M 2.2 or ZSystem. Then +switch to the drive that contains the ZPM3 hard disk image +and run CPMLDR. You will be prompted for the disk unit +of the ZPM3 image. + +You may notice that there is a ZPMLDR application on the +hard disk image. This application is equivalent to CPMLDR, +but it has some issues with the number of drives that +RomWBW supports. So, as indicated above, use CPMLDR to +launch ZPM3. + +I have not found a way to make ZPM3 start up with any drive +other than A: as the system drive. So, during the load +process, the boot drive and drive A: are "swapped" so that +the boot drive is always drive A:. Use the ASSIGN +command after starting ZPM3 to see how the drives get +mapped. + +Per ZPM3 standard, files are distributed across different +user areas depending on their usage. Normal applications +are in user 15. Help files in user 10. Configuration +files in user 14. + +In addition to the applications provided in the ZPM3 +distributio, the normal CP/M 3 files are included in user +area 15. A few typical ZCPR utility programs are also included +in user area 15: + + - ALIAS + - ARUNZ + - ERASE + - HELPC (named ZHELP) + - LBREXT + - SALIAS + - SETPATH + - VERRROR + - VLU + - ZCNFG + - ERASE (named ZERASE) + - ZEX + - ZFILER + - ZP + - SHOW (named ZSHOW) + - ZXD + +It is a bit confusing, but the ZPM3 system file is called CPM3.SYS. +This is the ZPM3 default configuration and I guess it is done this +way to maximize compatibility with CP/M 3. You will notice that +the startup banner will indicate ZPM3. \ No newline at end of file diff --git a/Source/Images/hd_zpm3/s0/u0/WBW.TXT b/Source/Images/hd_zpm3/s0/u0/WBW.TXT deleted file mode 100644 index cea4a982..00000000 --- a/Source/Images/hd_zpm3/s0/u0/WBW.TXT +++ /dev/null @@ -1,20 +0,0 @@ -This an experimental adaptation of ZPM3 for RomWBW. - -Launch ZPM3 using CPMLDR. ZPMLDR is not working reliably -at this time. - -I have not found a way to make ZPM3 start up with any drive -other than A: as the system drive. So, during the load -process, the boot drive and drive A: are "swapped" so that -the boot drive is always drive A:. Use the ASSIGN -command after starting ZPM3 to see how the drives get -mapped. - -Per ZPM3 standard, files are distributed across different -user areas depending on their usage. Normal applications -are in user 15. Help files in user 10. Configuration -files in user 14. - -ZSID6.COM is the original DRI ZSID distribution, but -patched to use RST 6 instead of RST 7 to avoid conflicting -with mode 1 interrupts. diff --git a/Source/Images/hd_zpm3/s0/u10/HELP.HLP b/Source/Images/hd_zpm3/s0/u10/HELP.HLP deleted file mode 100644 index 428c767a5a0f94b958ff3496965f7eba31b13cef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 63488 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 b2xyHJ22_<_mWxvesvp<+>F@uCW1s&I7<)`| diff --git a/Source/Images/hd_zpm3/s0/u10/ZHELP.COM b/Source/Images/hd_zpm3/s0/u10/ZHELP.COM deleted file mode 100644 index 714e1288be1a47942d266b55beb71ab0a7230c66..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7040 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 HIrIMk=LF{; literal 0 HcmV?d00001 diff --git a/Source/ZPM3/Build.cmd b/Source/ZPM3/Build.cmd index be0b723d..9537f2e0 100644 --- a/Source/ZPM3/Build.cmd +++ b/Source/ZPM3/Build.cmd @@ -9,14 +9,13 @@ set ZXBINDIR=%TOOLS%/cpm/bin/ set ZXLIBDIR=%TOOLS%/cpm/lib/ set ZXINCDIR=%TOOLS%/cpm/include/ -copy ..\ZCCP\ccp.com . +copy ..\ZCCP\ccp.com zccp.com copy ..\ZCCP\zinstal.zpm . copy ..\ZCCP\startzpm.com . copy ..\CPM3\genbnk.dat . -copy ..\CPM3\swpbios3.spr bnkbios3.spr +copy ..\CPM3\zpmbios3.spr bnkbios3.spr copy ..\CPM3\gencpm.com . copy ..\CPM3\biosldr.rel . - copy ..\CPM3\cpmldr.com . rem ZPM Loader @@ -27,7 +26,7 @@ echo. zx LINK -ZPMLDR[L100]=ZPM3LDR,BIOSLDR rem pause -rem Banked CPM3 +rem Banked ZPM3 echo. echo. echo *** Banked ZPM3 *** @@ -45,17 +44,19 @@ echo *** Update Disk Image *** echo. for %%f in ( zpmldr.com + cpmldr.com autotog.com clrhist.com setz3.com cpm3.sys - ccp.com + zccp.com zinstal.zpm startzpm.com makedos.com + gencpm.dat + bnkbios3.spr bnkbdos3.spr resbdos3.spr - cpmldr.com ) do call :upd_img %%f goto :eof diff --git a/Source/ZPM3/Clean.cmd b/Source/ZPM3/Clean.cmd index 3349c63e..91ffcb36 100644 --- a/Source/ZPM3/Clean.cmd +++ b/Source/ZPM3/Clean.cmd @@ -1,7 +1,7 @@ @echo off setlocal -if exist ccp.com del ccp.com +if exist zccp.com del zccp.com if exist *.sys del *.sys if exist gencpm.dat del gencpm.dat if exist loader.cim del loader.cim