diff --git a/Binary/Apps/Makefile b/Binary/Apps/Makefile index cfa80100..7e63d751 100644 --- a/Binary/Apps/Makefile +++ b/Binary/Apps/Makefile @@ -7,4 +7,4 @@ all:: mkdir -p Tunes clobber:: - rm -f *.bin *.com *.img *.rom *.pdf *.log *.eeprom *.COM *.BIN Tunes/*.mym Tunes/*.pt? + @rm -f *.bin *.com *.img *.rom *.pdf *.log *.eeprom *.COM *.BIN Tunes/*.mym Tunes/*.pt? diff --git a/Binary/Apps/ReadMe.txt b/Binary/Apps/ReadMe.txt index 6fb4ccf8..1c8781b5 100644 --- a/Binary/Apps/ReadMe.txt +++ b/Binary/Apps/ReadMe.txt @@ -11,4 +11,11 @@ are specific to RomWBW. The source for these applications is found in the Source\Apps directory of the distribution. The Tunes subdirectory contains some sample ProTracker and MYM sound -files that can be played by the TUNE application. \ No newline at end of file +files that can be played by the TUNE application. + +All of these files are already included in the pre-built boot disk +images. They are also included on the ROM disk except for +FAT.COM, TUNE.COM, and the sample tune files in the Tunes directory. + +If you upgrade your ROM to a new version, you should also copy +these files over to any hard disk images you are using. \ No newline at end of file diff --git a/Binary/CPM3/Clean.cmd b/Binary/CPM3/Clean.cmd new file mode 100644 index 00000000..c909fdae --- /dev/null +++ b/Binary/CPM3/Clean.cmd @@ -0,0 +1,11 @@ +@echo off +setlocal + +if exist *.spr del *.spr +if exist *.com del *.com +if exist *.sys del *.sys +if exist *.pat del *.pat +if exist *.dat del *.dat +if exist *.1st del *.1st +if exist *.spr del *.spr +if exist *.pat del *.pat diff --git a/Binary/CPM3/Makefile b/Binary/CPM3/Makefile new file mode 100644 index 00000000..2105f8de --- /dev/null +++ b/Binary/CPM3/Makefile @@ -0,0 +1,7 @@ +TOOLS = ../../Tools +MOREDIFF := $(shell $(TOOLS)/unix/casefn.sh *.spr) + +include $(TOOLS)/Makefile.inc + +clobber:: + @rm -f *.spr diff --git a/Binary/CPM3/ReadMe.txt b/Binary/CPM3/ReadMe.txt new file mode 100644 index 00000000..18f1ecb3 --- /dev/null +++ b/Binary/CPM3/ReadMe.txt @@ -0,0 +1,17 @@ +*********************************************************************** +*** *** +*** R o m W B W *** +*** *** +*** Z80/Z180 System Software *** +*** *** +*********************************************************************** + +This directory contains the CP/M 3 system files for the RomWBW CP/M 3 +adaptation. All of these files are already included on the CP/M 3 +boot disk images. However if you are creating a CP/M 3 boot disk +manually, you should copy all of these files to the boot disk. + +These files should also be copied to any CP/M 3 boot disks on your +system when you upgrade your ROM firmware. Some of these files +*must* match the version of the RomWBW firmware you are using for +proper operation of your system. \ No newline at end of file diff --git a/Binary/Clean.cmd b/Binary/Clean.cmd index ad11adad..28826acb 100644 --- a/Binary/Clean.cmd +++ b/Binary/Clean.cmd @@ -11,3 +11,5 @@ if exist *.log del *.log if exist *.eeprom del *.eeprom setlocal & cd Apps && call Clean || exit /b 1 & endlocal +setlocal & cd CPM3 && call Clean || exit /b 1 & endlocal +setlocal & cd ZPM3 && call Clean || exit /b 1 & endlocal diff --git a/Binary/DiskList.txt b/Binary/DiskList.txt index 8ecedd63..7701d6ed 100644 --- a/Binary/DiskList.txt +++ b/Binary/DiskList.txt @@ -17,6 +17,12 @@ a floppy or hard/CF/SD disk. You can use your modern computer media. The disk media will then be ready to use in your RomWBW System. +WARNING: The hdnew_*.img disk images are part of a new disk +format that is a work in progress. Do not use these disk +images without knowing exactly what you are doing! The +hd_*.img disk images continue to be the images you should +be using under normal circumstances. + A description of the disk images is provided later in this file. For more information on the creatioin of these images including instructions for customizing them or creating your own, refer to diff --git a/Binary/Makefile b/Binary/Makefile index c856d1b8..8e01338f 100644 --- a/Binary/Makefile +++ b/Binary/Makefile @@ -1,8 +1,8 @@ TOOLS = ../Tools MOREDIFF := $(shell $(TOOLS)/unix/casefn.sh *.img *.rom *.com *.eeprom) -SUBDIRS = Apps +SUBDIRS = Apps CPM3 ZPM3 include $(TOOLS)/Makefile.inc clobber:: - rm -f *.bin *.com *.img *.rom *.pdf *.log *.eeprom + @rm -f *.bin *.com *.img *.rom *.pdf *.log *.eeprom diff --git a/Binary/ReadMe.txt b/Binary/ReadMe.txt index 70156630..87cf1a25 100644 --- a/Binary/ReadMe.txt +++ b/Binary/ReadMe.txt @@ -92,6 +92,12 @@ intended to be copied to the start of any type of hard disk media (typically a CF Card or SD Card). The resulting media will be usable on any RomWBW-based system that accepts the corresponding media type. +WARNING: The hdnew_*.img disk images are part of a new disk +format that is a work in progress. Do not use these disk +images without knowing exactly what you are doing! The +hd_*.img disk images continue to be the images you should +be using under normal circumstances. + Documentation of the pre-built disk images is contained in the DiskList.txt file in this directory. diff --git a/Binary/ZPM3/Clean.cmd b/Binary/ZPM3/Clean.cmd new file mode 100644 index 00000000..116507c8 --- /dev/null +++ b/Binary/ZPM3/Clean.cmd @@ -0,0 +1,10 @@ +@echo off +setlocal + +if exist *.spr del *.spr +if exist *.com del *.com +if exist *.sys del *.sys +if exist *.pat del *.pat +if exist *.dat del *.dat +if exist *.zpm del *.zpm +if exist *.spr del *.spr diff --git a/Binary/ZPM3/Makefile b/Binary/ZPM3/Makefile new file mode 100644 index 00000000..2105f8de --- /dev/null +++ b/Binary/ZPM3/Makefile @@ -0,0 +1,7 @@ +TOOLS = ../../Tools +MOREDIFF := $(shell $(TOOLS)/unix/casefn.sh *.spr) + +include $(TOOLS)/Makefile.inc + +clobber:: + @rm -f *.spr diff --git a/Binary/ZPM3/ReadMe.txt b/Binary/ZPM3/ReadMe.txt new file mode 100644 index 00000000..dcdef396 --- /dev/null +++ b/Binary/ZPM3/ReadMe.txt @@ -0,0 +1,17 @@ +*********************************************************************** +*** *** +*** R o m W B W *** +*** *** +*** Z80/Z180 System Software *** +*** *** +*********************************************************************** + +This directory contains the ZPM3 system files for the RomWBW ZPM3 +adaptation. All of these files are already included on the ZPM3 +boot disk images. However if you are creating a CP/M 3 boot disk +manually, you should copy all of these files to the boot disk. + +These files should also be copied to any ZPM3 boot disks on your +system when you upgrade your ROM firmware. Some of these files +*must* match the version of the RomWBW firmware you are using for +proper operation of your system. \ No newline at end of file diff --git a/Doc/RomWBW Applications.pdf b/Doc/RomWBW Applications.pdf index 0837e86f..6ab7d2a4 100644 Binary files a/Doc/RomWBW Applications.pdf and b/Doc/RomWBW Applications.pdf differ diff --git a/Doc/RomWBW Architecture.pdf b/Doc/RomWBW Architecture.pdf index 3ca943e0..c6a984a4 100644 Binary files a/Doc/RomWBW Architecture.pdf and b/Doc/RomWBW Architecture.pdf differ diff --git a/Doc/RomWBW Disk Catalog.pdf b/Doc/RomWBW Disk Catalog.pdf index aa9400af..2d688b63 100644 Binary files a/Doc/RomWBW Disk Catalog.pdf and b/Doc/RomWBW Disk Catalog.pdf differ diff --git a/Doc/RomWBW Getting Started.pdf b/Doc/RomWBW Getting Started.pdf index da962bbd..426d0b32 100644 Binary files a/Doc/RomWBW Getting Started.pdf and b/Doc/RomWBW Getting Started.pdf differ diff --git a/ReadMe.md b/ReadMe.md index 34710692..9cd672ab 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -3,7 +3,7 @@ ## Z80/Z180 System Software Version 3.1 Pre-release -Friday 8 May 2020 +Wednesday 13 May 2020 Wayne Warthen @@ -1060,12 +1060,76 @@ your choice. This process is described below in the Disk Images section. If you wish to update existing disk media in your system, you need to perform the following steps. -If the disk is bootable, you need to update the system tracks of the -disk. This is done using a SYSCOPY command such as `SYSCOPY -C:=B:ZSYS.SYS`. For a ZSDOS boot disk, use ZSYS.SYS. For a CP/M 2.2 -disk, use CPM.SYS. For a CP/M 3 or ZPM3 disk, use CPMLDR.SYS. CPMLDR.SYS -is not provided on the ROM disk, so you will need to upload it from the -distribution. +If the disk is bootable, you need to update the system image on the disk +using the procedure described below corresponsing to the operating +system on your disk. + + - **CP/M 2.2** + + Boot to CP/M 2.2 from ROM, then use `SYSCOPY` to update the system + image on **all** CP/M 2.2 boot disks/slices. The CP/M 2.2 system + image is called CPM.SYS and is found on the ROM disk. For example: + + `B>SYSCOPY C:=CPM.SYS` + + - **ZSDOS** + + Boot to Z-System from ROM, then use `SYSCOPY` to update the system + image on **all** ZSDOS boot disks/slices. The ZSDOS system image is + called ZSYS.SYS and is found on the ROM disk. For example: + + `B>SYSCOPY C:=ZSYS.SYS` + + - **NZCOM** + + NZCOM runs on top of either CP/M 2.2 or ZSDOS. By default, the + RomWBW disk image for NZCOM uses ZSDOS. Follow the corresponding + procedure above to update the system image on the NZCOM boot + disks/slices. + + - **CP/M 3** + + CP/M 3 uses a multi-step boot process involving multiple files. The + CP/M 3 boot files are not included on the ROM disk due to space + constraints. You will need to transfer the files to your system from + the RomWBW distribution directory Binary\\CPM3. + + After this is done, you will need to use `SYSCOPY` to place the CP/M + 3 loader image on the boot tracks of all CP/M 3 boot disks/slices. + The loader image is called `CPMLDR.SYS`. You must then copy (at a + minimum) `CPM3.SYS` and `CCP.COM` onto the disk/slice. Assuming you + copied the CP/M 3 boot files onto your RAM disk at A:, you would + use: + + A>B:SYSCOPY C:=CPMLDR.SYS + A>B:COPY CPM3.SYS C: + A>B:COPY CCP.COM C: + + - **ZPM3** + + ZPM3 uses a multi-step boot process involving multiple files. The + ZPM3 boot files are not included on the ROM disk due to space + constraints. You will need to transfer the files to your system from + the RomWBW distribution directory Binary\\ZPM3. + + After this is done, you will need to use `SYSCOPY` to place the ZPM3 + loader image on the boot tracks of all ZPM3 boot disks/slices. The + loader image is called `CPMLDR.SYS`. You must then copy (at a + minimum) `CPM3.SYS`, `ZCCP.COM`, `ZINSTAL.ZPM`, and `STARTZPM.COM` + onto the disk/slice. Assuming you copied the ZPM3 boot files onto + your RAM disk at A:, you would use: + + A>B:SYSCOPY C:=CPMLDR.SYS + A>B:COPY CPM3.SYS C: + A>B:COPY ZCCP.COM C: + A>B:COPY ZINSTAL.ZPM C: + A>B:COPY STARTZPM.COM C: + + You may be wondering if the references to `CPMLDR.SYS` and + `CPM3.SYS` are typos. They are not. ZPM3 uses the same loader image + as CPM3. The ZPM3 main system code file is called `CPM3.SYS` which + is the same name as CP/M 3 uses, but the file contents are not the + same. Finally, if you have copies of any of the RomWBW custom applications on your hard disk, you need to update them with the latest copies. The diff --git a/ReadMe.txt b/ReadMe.txt index 601e8101..4ce8acd7 100644 --- a/ReadMe.txt +++ b/ReadMe.txt @@ -3,7 +3,7 @@ RomWBW Z80/Z180 System Software Version 3.1 Pre-release -Friday 8 May 2020 +Wednesday 13 May 2020 Wayne Warthen wwarthen@gmail.com @@ -1084,12 +1084,74 @@ your choice. This process is described below in the Disk Images section. If you wish to update existing disk media in your system, you need to perform the following steps. -If the disk is bootable, you need to update the system tracks of the -disk. This is done using a SYSCOPY command such as -SYSCOPY C:=B:ZSYS.SYS. For a ZSDOS boot disk, use ZSYS.SYS. For a CP/M -2.2 disk, use CPM.SYS. For a CP/M 3 or ZPM3 disk, use CPMLDR.SYS. -CPMLDR.SYS is not provided on the ROM disk, so you will need to upload -it from the distribution. +If the disk is bootable, you need to update the system image on the disk +using the procedure described below corresponsing to the operating +system on your disk. + +- CP/M 2.2 + + Boot to CP/M 2.2 from ROM, then use SYSCOPY to update the system + image on all CP/M 2.2 boot disks/slices. The CP/M 2.2 system image + is called CPM.SYS and is found on the ROM disk. For example: + + B>SYSCOPY C:=CPM.SYS + +- ZSDOS + + Boot to Z-System from ROM, then use SYSCOPY to update the system + image on all ZSDOS boot disks/slices. The ZSDOS system image is + called ZSYS.SYS and is found on the ROM disk. For example: + + B>SYSCOPY C:=ZSYS.SYS + +- NZCOM + + NZCOM runs on top of either CP/M 2.2 or ZSDOS. By default, the + RomWBW disk image for NZCOM uses ZSDOS. Follow the corresponding + procedure above to update the system image on the NZCOM boot + disks/slices. + +- CP/M 3 + + CP/M 3 uses a multi-step boot process involving multiple files. The + CP/M 3 boot files are not included on the ROM disk due to space + constraints. You will need to transfer the files to your system from + the RomWBW distribution directory Binary\CPM3. + + After this is done, you will need to use SYSCOPY to place the CP/M 3 + loader image on the boot tracks of all CP/M 3 boot disks/slices. The + loader image is called CPMLDR.SYS. You must then copy (at a minimum) + CPM3.SYS and CCP.COM onto the disk/slice. Assuming you copied the + CP/M 3 boot files onto your RAM disk at A:, you would use: + + A>B:SYSCOPY C:=CPMLDR.SYS + A>B:COPY CPM3.SYS C: + A>B:COPY CCP.COM C: + +- ZPM3 + + ZPM3 uses a multi-step boot process involving multiple files. The + ZPM3 boot files are not included on the ROM disk due to space + constraints. You will need to transfer the files to your system from + the RomWBW distribution directory Binary\ZPM3. + + After this is done, you will need to use SYSCOPY to place the ZPM3 + loader image on the boot tracks of all ZPM3 boot disks/slices. The + loader image is called CPMLDR.SYS. You must then copy (at a minimum) + CPM3.SYS, ZCCP.COM, ZINSTAL.ZPM, and STARTZPM.COM onto the + disk/slice. Assuming you copied the ZPM3 boot files onto your RAM + disk at A:, you would use: + + A>B:SYSCOPY C:=CPMLDR.SYS + A>B:COPY CPM3.SYS C: + A>B:COPY ZCCP.COM C: + A>B:COPY ZINSTAL.ZPM C: + A>B:COPY STARTZPM.COM C: + + You may be wondering if the references to CPMLDR.SYS and CPM3.SYS + are typos. They are not. ZPM3 uses the same loader image as CPM3. + The ZPM3 main system code file is called CPM3.SYS which is the same + name as CP/M 3 uses, but the file contents are not the same. Finally, if you have copies of any of the RomWBW custom applications on your hard disk, you need to update them with the latest copies. The diff --git a/Source/CPM3/Build.cmd b/Source/CPM3/Build.cmd index 1d0e1a9c..557b6c53 100644 --- a/Source/CPM3/Build.cmd +++ b/Source/CPM3/Build.cmd @@ -101,3 +101,23 @@ rem Loader tasm -t80 -g3 -fFF loader.asm loader.bin loader.lst copy /b loader.bin + cpmldr.bin cpmldr.sys + +rem Copy OS files to Binary directory + +copy cpmldr.com ..\..\Binary\CPM3 +copy cpmldr.sys ..\..\Binary\CPM3 +copy ccp.com ..\..\Binary\CPM3 +copy gencpm.com ..\..\Binary\CPM3 +copy genres.dat ..\..\Binary\CPM3 +copy genbnk.dat ..\..\Binary\CPM3 +copy bios3.spr ..\..\Binary\CPM3 +copy bnkbios3.spr ..\..\Binary\CPM3 +copy bdos3.spr ..\..\Binary\CPM3 +copy bnkbdos3.spr ..\..\Binary\CPM3 +copy resbdos3.spr ..\..\Binary\CPM3 +copy cpm3res.sys ..\..\Binary\CPM3 +copy cpm3bnk.sys ..\..\Binary\CPM3 +copy gencpm.dat ..\..\Binary\CPM3 +copy cpm3.sys ..\..\Binary\CPM3 +copy readme.1st ..\..\Binary\CPM3 +copy cpm3fix.pat ..\..\Binary\CPM3 \ No newline at end of file diff --git a/Source/CPM3/Makefile b/Source/CPM3/Makefile index 4eb2a352..a75b03b3 100644 --- a/Source/CPM3/Makefile +++ b/Source/CPM3/Makefile @@ -4,11 +4,19 @@ # # it does this by overriding OBJECTS in an invoked sub-make # -OBJECTS = cpmldr.com cpmldr.sys cpm3res cpm3bnk zpmbios3 cpm3.sys gencpm.dat -OTHERS = cpmldr.rel biosldr.rel cpm3res.sys cpm3bnk.sys zpmbios3.spr loader.bin cpmldr.bin +OBJECTS = cpmldr.com cpmldr.sys cpm3res.sys cpm3bnk.sys zpmbios3 +OBJECTS += ccp.com gencpm.com genres.dat genbnk.dat +OBJECTS += bdos3.spr bnkbdos3.spr resbdos3.spr +OBJECTS += readme.1st cpm3fix.pat cpm3.sys gencpm.dat +NOCOPY = zpmbios3 +OTHERS = cpmldr.rel biosldr.rel cpm3res.sys cpm3bnk.sys loader.bin cpmldr.bin OTHERS += biosldrc.rel biosldrd.rel +NODELETE = ccp.com gencpm.com genres.dat genbnk.dat bdos3.spr bnkbdos3.spr resbdos3.spr +NODELETE += readme.1st cpm3fix.pat +DEST = ../../Binary/CPM3 TOOLS = ../../Tools + include $(TOOLS)/Makefile.inc export ZXINCDIR = ../ @@ -25,11 +33,11 @@ DEFCPM3 = bnk clean:: biosclean @rm -f bios3.spr bnkbios3.spr zpmbios3.spr cpmldr.com gencpm.dat options.lib ldropts.lib - + biosclean: @rm -f $(BIOSOBJS) -cpm3res: +cpm3res.sys: make biosclean cp optres.lib options.lib cp genres.dat gencpm.dat @@ -38,7 +46,7 @@ cpm3res: mv cpm3.sys cpm3res.sys rm gencpm.dat -cpm3bnk: +cpm3bnk.sys: make biosclean cp optbnk.lib options.lib cp genbnk.dat gencpm.dat @@ -50,9 +58,7 @@ cpm3bnk: zpmbios3: make biosclean cp optzpm.lib options.lib - cp genbnk.dat gencpm.dat - make OBJECTS=zpmbios3.spr - rm gencpm.dat + make OBJECTS=zpmbios3.spr DEST= cpmldr.bin: biosldrd.rel cpmldr.rel $(ZXCC) $(TOOLS)/cpm/bin/LINK -CPMLDRD[L100]=CPMLDR,BIOSLDRD @@ -83,9 +89,12 @@ zpmbios3.spr: $(BIOSOBJS) cpm3.sys: cpm3$(DEFCPM3).sys cp cpm3$(DEFCPM3).sys cpm3.sys + rm -f /tmp/casefn.cache gencpm.dat: gen$(DEFCPM3).dat cp gen$(DEFCPM3).dat gencpm.dat - + rm -f /tmp/casefn.cache + cpmldr.sys: loader.bin cpmldr.bin cat loader.bin cpmldr.bin > $@ + diff --git a/Source/Doc/GettingStarted.md b/Source/Doc/GettingStarted.md index cd6bc2da..a8be357a 100644 --- a/Source/Doc/GettingStarted.md +++ b/Source/Doc/GettingStarted.md @@ -1114,12 +1114,81 @@ your choice. This process is described below in the Disk Images section. If you wish to update existing disk media in your system, you need to perform the following steps. -If the disk is bootable, you need to update the system tracks of the -disk. This is done using a SYSCOPY command such as `SYSCOPY -C:=B:ZSYS.SYS`. For a ZSDOS boot disk, use ZSYS.SYS. For a CP/M 2.2 -disk, use CPM.SYS. For a CP/M 3 or ZPM3 disk, use CPMLDR.SYS. -CPMLDR.SYS is not provided on the ROM disk, so you will need to -upload it from the distribution. +If the disk is bootable, you need to update the system image on the +disk using the procedure described below corresponsing to the +operating system on your disk. + +* **CP/M 2.2** + + Boot to CP/M 2.2 from ROM, then use `SYSCOPY` to update the system + image on **all** CP/M 2.2 boot disks/slices. The CP/M 2.2 system image + is called CPM.SYS and is found on the ROM disk. For example: + + `B>SYSCOPY C:=CPM.SYS` + +* **ZSDOS** + + Boot to Z-System from ROM, then use `SYSCOPY` to update the system + image on **all** ZSDOS boot disks/slices. The ZSDOS system image + is called ZSYS.SYS and is found on the ROM disk. For example: + + `B>SYSCOPY C:=ZSYS.SYS` + +* **NZCOM** + + NZCOM runs on top of either CP/M 2.2 or ZSDOS. By default, the + RomWBW disk image for NZCOM uses ZSDOS. Follow the corresponding + procedure above to update the system image on the NZCOM boot + disks/slices. + +* **CP/M 3** + + CP/M 3 uses a multi-step boot process involving multiple files. + The CP/M 3 boot files are not included on the ROM disk due to + space constraints. You will need to transfer the files to your + system from the RomWBW distribution directory Binary\\CPM3. + + After this is done, you will need to use `SYSCOPY` to place + the CP/M 3 loader image on the boot tracks of all CP/M 3 + boot disks/slices. The loader image is called `CPMLDR.SYS`. + You must then copy (at a minimum) `CPM3.SYS` and `CCP.COM` + onto the disk/slice. Assuming you copied the CP/M 3 boot files + onto your RAM disk at A:, you would use: + + ``` + A>B:SYSCOPY C:=CPMLDR.SYS + A>B:COPY CPM3.SYS C: + A>B:COPY CCP.COM C: + ``` + +* **ZPM3** + + ZPM3 uses a multi-step boot process involving multiple files. + The ZPM3 boot files are not included on the ROM disk due to + space constraints. You will need to transfer the files to your + system from the RomWBW distribution directory Binary\\ZPM3. + + After this is done, you will need to use `SYSCOPY` to place + the ZPM3 loader image on the boot tracks of all ZPM3 + boot disks/slices. The loader image is called `CPMLDR.SYS`. + You must then copy (at a minimum) `CPM3.SYS`, `ZCCP.COM`, + `ZINSTAL.ZPM`, and `STARTZPM.COM` onto the disk/slice. + Assuming you copied the ZPM3 boot files onto your RAM disk + at A:, you would use: + + ``` + A>B:SYSCOPY C:=CPMLDR.SYS + A>B:COPY CPM3.SYS C: + A>B:COPY ZCCP.COM C: + A>B:COPY ZINSTAL.ZPM C: + A>B:COPY STARTZPM.COM C: + ``` + + You may be wondering if the references to `CPMLDR.SYS` and + `CPM3.SYS` are typos. They are not. ZPM3 uses the same loader + image as CPM3. The ZPM3 main system code file is called `CPM3.SYS` + which is the same name as CP/M 3 uses, but the file contents are + not the same. Finally, if you have copies of any of the RomWBW custom applications on your hard disk, you need to update them with the latest copies. The diff --git a/Source/HBIOS/ay38910.asm b/Source/HBIOS/ay38910.asm index 38744a31..0e3c7c5d 100644 --- a/Source/HBIOS/ay38910.asm +++ b/Source/HBIOS/ay38910.asm @@ -137,10 +137,15 @@ AY_FND: LD IY, AY_IDAT ; SETUP FUNCTION TABLE LD HL, AY_TIMER ; INSTALL TIMER HOOK HANDLER LD (VEC_TICK + 1), HL + LD A, $02 ; NOT READY & IN INTERUPT HANDLER + LD (AY_READY), A + #ELSE CALL LDELAY ; HALF SECOND DELAY LD E,$00 ; SET VOLUME OFF - CALL AY_SETV ; ON ALL CHANNELS + CALL AY_SETV ; ON ALL CHANNELS + LD A, $01 ; READY & NOT IN INTERUPT HANDLER + LD (AY_READY), A #ENDIF ; @@ -154,11 +159,15 @@ AY_TIMER: LD (AY_TIMTIK), A JR NZ, AY_TIMER1 - LD HL, (AY_TIMHOOK) ; REMOVE US FROM THE TIMER HOOKS LIST - LD (VEC_TICK + 1), HL - LD E,$00 ; SET VOLUME OFF CALL AY_SETV ; ON ALL CHANNELS + LD A, $01 ; READY & NOT IN INTERUPT HANDLER + LD (AY_READY), A + + LD DE, AY_TIMER ; MAKE AY_TIMER A NO_OP HANDLER + LD HL, AY_TIMER1 + LD BC, 3 + LDIR AY_TIMER1: JP 0 ; OVERWRITTEN WITH NEXT HANDLER @@ -174,8 +183,16 @@ AY_TIMTIK .DB 0 ; COUNT DOWN TO FINISH BOOT BEEP ; AY_INIT: LD DE,(AY_R7ENAB*256)+$F8 ; SET MIXER CONTROL / IO ENABLE. $F8 - 11 111 000 - CALL AY_WRTPSG ; I/O PORTS = OUTPUT, NOISE CHANNEL C, B, A DISABLE, TONE CHANNEL C, B, A ENABLE - RET + JP AY_WRTPSG ; I/O PORTS = OUTPUT, NOISE CHANNEL C, B, A DISABLE, TONE CHANNEL C, B, A ENABLE + +AY_CHKREDY: + LD A, (AY_READY) + BIT 0, A + RET NZ + + POP HL ; REMOVE LAST RETURN ADDRESS + OR $FF + RET ; RETURN NZ ; ;====================================================================== ; SET VOLUME ALL CHANNELS @@ -200,7 +217,8 @@ AY_SV: CALL AY_WRTPSG ; CYCLING THROUGH ALL CHANNELS ; AY_RESET: AUDTRACE(AYT_INIT) -; + CALL AY_CHKREDY ; RETURNS TO OUR CALLER IF NOT READY + PUSH DE PUSH HL CALL AY_INIT ; SET DEFAULT CHIP CONFIGURATION @@ -227,6 +245,7 @@ AY_VOLUME: AUDTRACE(AYT_VOL) AUDTRACE_L AUDTRACE_CR + LD A,L ; SAVE VOLUME LD (AY_PENDING_VOLUME), A ; @@ -283,6 +302,8 @@ AY_PLAY: AUDTRACE(AYT_PLAY) AUDTRACE_D AUDTRACE_CR + CALL AY_CHKREDY ; RETURNS TO OUR CALLER IF NOT READY + ; LD A, (AY_PENDING_PERIOD + 1) ; CHECK THE HIGH BYTE OF THE PERIOD INC A @@ -390,6 +411,21 @@ AY_QUERY_DEV: LD DE, (AY_RSEL*256)+AY_RDAT ; AND ADDRESS AND DATA PORT XOR A RET + +AY_DI: + LD A, (AY_READY) + BIT 1, A + RET NZ + HB_DI + RET + +AY_EI: + LD A, (AY_READY) + BIT 1, A + RET NZ + HB_EI + RET + ; ;====================================================================== ; @@ -399,7 +435,7 @@ AY_QUERY_DEV: ;====================================================================== ; AY_WRTPSG: - HB_DI + CALL AY_DI #IF (SBCV2004) LD A,8 ; SBC-V2-004 CHANGE OUT (112),A ; TO HALF CLOCK SPEED @@ -422,8 +458,7 @@ AY_WRTPSG: LD A,0 ; SBC-V2-004 CHANGE TO OUT (112),A ; NORMAL CLOCK SPEED #ENDIF - HB_EI - RET + JP AY_EI ; ;====================================================================== @@ -431,7 +466,7 @@ AY_WRTPSG: ; READ FROM REGISTER D AND RETURN WITH RESULT IN E ; AY_RDPSG: - HB_DI + CALL AY_DI #IF (SBCV2004) LD A,8 ; SBC-V2-004 CHANGE OUT (112),A ; TO HALF CLOCK SPEED @@ -454,13 +489,14 @@ AY_RDPSG: LD A,0 ; SBC-V2-004 CHANGE TO OUT (112),A ; NORMAL CLOCK SPEED #ENDIF - HB_EI - RET + JP AY_EI ; ;====================================================================== ; AY_PENDING_PERIOD .DW 0 ; PENDING PERIOD (12 BITS) ; ORDER AY_PENDING_VOLUME .DB 0 ; PENDING VOL (8 BITS) ; SIGNIFICANT +AY_READY .DB 0 ; BIT 0 -> NZ DRIVER IS READY TO RECEIVE PLAY COMMAND + ; BIT 1 -> NZ EXECUTING WITHIN TIMER HANDLER = DO NOT DIS/ENABLE INT ; #IF AUDIOTRACE AYT_INIT .DB "\r\nAY_INIT\r\n$" diff --git a/Source/HBIOS/cfg_state.inc b/Source/HBIOS/cfg_state.inc index 754f434b..d7d1ab3f 100644 --- a/Source/HBIOS/cfg_state.inc +++ b/Source/HBIOS/cfg_state.inc @@ -4,19 +4,19 @@ SYSTIMEN .EQU FALSE -#IF (CTCENABLE & INTMODE == 2 & CTCTIMER) +#IF (CTCENABLE & (INTMODE == 2) & (CTCTIMER)) SYSTIMEN .SET TRUE #ENDIF -#IF (TMSENABLE & INTMODE == 1 & TMSTIMENABLE) +#IF (TMSENABLE & (INTMODE == 1) & TMSTIMENABLE) SYSTIMEN .SET TRUE #ENDIF -#IF (INTMODE == 1 & PLATFORM == PLT_SBC & HTIMENABLE) +#IF ((INTMODE == 1) & (PLATFORM == PLT_SBC) & HTIMENABLE) SYSTIMEN .SET TRUE #ENDIF -#IF (INTMODE == 2 & CPUFAM == CPU_Z180) +#IF ((INTMODE == 2) & (CPUFAM == CPU_Z180)) SYSTIMEN .SET TRUE #ENDIF diff --git a/Source/Images/Common/CLRDIR.COM b/Source/Images/Common/CLRDIR.COM index c6b05cc9..ca65cbed 100644 Binary files a/Source/Images/Common/CLRDIR.COM and b/Source/Images/Common/CLRDIR.COM differ diff --git a/Source/RomDsk/ROM_1024KB/CLRDIR.COM b/Source/RomDsk/ROM_1024KB/CLRDIR.COM index c6b05cc9..ca65cbed 100644 Binary files a/Source/RomDsk/ROM_1024KB/CLRDIR.COM and b/Source/RomDsk/ROM_1024KB/CLRDIR.COM differ diff --git a/Source/RomDsk/ROM_512KB/CLRDIR.COM b/Source/RomDsk/ROM_512KB/CLRDIR.COM index c6b05cc9..ca65cbed 100644 Binary files a/Source/RomDsk/ROM_512KB/CLRDIR.COM and b/Source/RomDsk/ROM_512KB/CLRDIR.COM differ diff --git a/Source/ZPM3/Build.cmd b/Source/ZPM3/Build.cmd index 47018c83..2bf6f800 100644 --- a/Source/ZPM3/Build.cmd +++ b/Source/ZPM3/Build.cmd @@ -19,7 +19,8 @@ copy ..\CPM3\zpmbios3.spr bnkbios3.spr copy ..\CPM3\gencpm.com . copy ..\CPM3\biosldrd.rel . copy ..\CPM3\biosldrc.rel . -rem copy ..\CPM3\cpmldr.com . +copy ..\CPM3\cpmldr.com . +copy ..\CPM3\cpmldr.sys . rem ZPM Loader echo. @@ -46,3 +47,22 @@ rem Loader tasm -t80 -g3 -fFF loader.asm loader.bin loader.lst copy /b loader.bin + zpmldr.bin zpmldr.sys + +rem Copy OS files to Binary directory + +copy zpmldr.com ..\..\Binary\ZPM3 +copy zpmldr.sys ..\..\Binary\ZPM3 +copy cpmldr.com ..\..\Binary\ZPM3 +copy cpmldr.sys ..\..\Binary\ZPM3 +copy autotog.com ..\..\Binary\ZPM3 +copy clrhist.com ..\..\Binary\ZPM3 +copy setz3.com ..\..\Binary\ZPM3 +copy cpm3.sys ..\..\Binary\ZPM3 +copy zccp.com ..\..\Binary\ZPM3 +copy zinstal.zpm ..\..\Binary\ZPM3 +copy startzpm.com ..\..\Binary\ZPM3 +copy makedos.com ..\..\Binary\ZPM3 +copy gencpm.dat ..\..\Binary\ZPM3 +copy bnkbios3.spr ..\..\Binary\ZPM3 +copy bnkbdos3.spr ..\..\Binary\ZPM3 +copy resbdos3.spr ..\..\Binary\ZPM3 diff --git a/Source/ZPM3/Makefile b/Source/ZPM3/Makefile index d72e77bd..30859cef 100644 --- a/Source/ZPM3/Makefile +++ b/Source/ZPM3/Makefile @@ -1,10 +1,12 @@ OBJECTS = zpmldr.com zpmldr.sys cpm3.sys startzpm.com zccp.com -ifdef REBUILD_ZPM_TOOLS +#ifdef REBUILD_ZPM_TOOLS OBJECTS += setz3.com clrhist.com autotog.com -else -NODELETE = setz3.com clrhist.com autotog.com -endif -OTHERS = zpmldr.bin loader.bin biosldrd.rel biosldrc.rel gencpm.com gencpm.dat bnkbios3.spr +#else +NODELETE = setz3.com clrhist.com autotog.com makedos.com zinstal.zpm bnkbdos3.spr resbdos3.spr +#endif +OBJECTS += cpmldr.com cpmldr.sys zinstal.zpm makedos.com gencpm.dat bnkbios3.spr bnkbdos3.spr resbdos3.spr +OTHERS = zpmldr.bin loader.bin biosldrd.rel biosldrc.rel gencpm.com +DEST = ../../Binary/ZPM3/ TOOLS =../../Tools include $(TOOLS)/Makefile.inc @@ -47,8 +49,8 @@ zinstal.zpm: ../ZCCP/zinstal.zpm startzpm.com: ../ZCCP/startzpm.com cp $< $@ -setz3.com: setz3.z80 - -clrhist.com: clrhist.z80 +cpmldr.com: ../CPM3/cpmldr.com + cp $< $@ -autotog.com: autotog.z80 +cpmldr.sys: ../CPM3/cpmldr.sys + cp $< $@ diff --git a/Source/ver.inc b/Source/ver.inc index 3cc80df6..bd32d35c 100644 --- a/Source/ver.inc +++ b/Source/ver.inc @@ -2,4 +2,4 @@ #DEFINE RMN 1 #DEFINE RUP 1 #DEFINE RTP 0 -#DEFINE BIOSVER "3.1.1-pre.8" +#DEFINE BIOSVER "3.1.1-pre.9" diff --git a/Source/ver.lib b/Source/ver.lib index 2f03066f..2fd6a46f 100644 --- a/Source/ver.lib +++ b/Source/ver.lib @@ -3,5 +3,5 @@ rmn equ 1 rup equ 1 rtp equ 0 biosver macro - db "3.1.1-pre.8" + db "3.1.1-pre.9" endm diff --git a/Tools/Makefile.inc b/Tools/Makefile.inc index bccb2e26..d410246d 100644 --- a/Tools/Makefile.inc +++ b/Tools/Makefile.inc @@ -112,7 +112,7 @@ all:: $(OBJECTS) @for dir in $(SUBDIRS) ; do \ ( echo "building in `pwd`/$$dir" ; $(MAKE) --directory "$$dir" all ) ; \ done - @if [ "$(DEST)" ] ; then for file in $(OBJECTS) ; do \ + @if [ "$(DEST)" ] ; then for file in $(filter-out $(NOCOPY),$(OBJECTS)) ; do \ mkdir -p $(DEST) ; \ echo copy $$file to $(DEST) ; \ cp $$($(CASEFN) $$file) $(DEST) ; \