From f11962ef8ef7db1add78b04621472dc32168043a Mon Sep 17 00:00:00 2001 From: Wayne Warthen Date: Mon, 23 Mar 2020 19:54:17 -0700 Subject: [PATCH] Bug Fixes - Init RAM disk at boot under CP/M 3 - Fix ACR activation in TUNE --- Doc/RomWBW Applications.pdf | Bin 140215 -> 140215 bytes Doc/RomWBW Architecture.pdf | Bin 371106 -> 371106 bytes Doc/RomWBW Getting Started.pdf | Bin 159847 -> 160281 bytes ReadMe.md | 245 +++++++++++++++--------------- ReadMe.txt | 261 ++++++++++++++++---------------- Source/Apps/Tune/Tune.asm | 34 ++--- Source/CBIOS/cbios.asm | 2 +- Source/CPM3/boot.z80 | 85 ++++++++++- Source/Doc/GettingStarted.md | 264 +++++++++++++++++---------------- 9 files changed, 492 insertions(+), 399 deletions(-) diff --git a/Doc/RomWBW Applications.pdf b/Doc/RomWBW Applications.pdf index 7c04e88866217ba6f439fdf7d499cd6c3c52328a..a81cd99127f5d2d81157011f685ab06fb6d2a7bd 100644 GIT binary patch delta 106 zcmdmfoMZcOj)pCaTEAE=O%07Lr|bV>l!Gw02mNAX({wU+u`o8aa5A%WG&M0Xa56S> dGITL@H8V1|aB?=ZFtt;#aU-B)`YdH8SpadC8|eT5 delta 106 zcmdmfoMZcOj)pCaTEAEgjSY=0rtAM=l!Gw02mNAX({wU(G&eSJG%|8Ca&~q!H+3~I dbv86Ha5k|tayB+MaJ5sgaU-B)`YdH8SpaWR8|?r9 diff --git a/Doc/RomWBW Architecture.pdf b/Doc/RomWBW Architecture.pdf index 76c4944bd227c72dbc40261d32fb9c53ee3b1ce7..4ae067d4436ea76df57eb9054844a52cf7662069 100644 GIT binary patch delta 184 zcmZ2>Zq+GoCH1Y#y2X5K#Y zEz5>(CQH-l-j%G1Kze&#CF>Ra1Xo8(Q)5d5S92FjXBSsfXG3R00~aG#GjnqzLvsTI mM>_=@f=Xf)?CiLTOA?DpDvDCmxQtCLEX+)}R8?L5-M9eYl{W?e delta 184 zcmZ2>Zq+GoCH1Y#y2X5K#Y zEz5>(CPU-t-j%G1Kze&#CF>Ra1QT;Jb2C#@7YjoROA|w9VAJrV^c!| mGdl$vf=Xf)?CiLTOA?DpDvDCmxQtCLEX+)}R8?L5-M9cXUNxKm diff --git a/Doc/RomWBW Getting Started.pdf b/Doc/RomWBW Getting Started.pdf index 23eb3b7b682cbfa03d2e1e98d3fcb80a4613b181..ed132f42829f11466b44ed7a7db30b8ae4665445 100644 GIT binary patch delta 74966 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 OT1!ex%X+Sj)c*m)Dw|sX delta 74707 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 KO@@qe*Z4nZoe0+e diff --git a/ReadMe.md b/ReadMe.md index e789beea..ae38d703 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -165,119 +165,6 @@ disappear at the next power on (RAM is generally not persistent). Also note that attempts to save files to the ROM disk (B:) will fail because ROM is not writable. -# Upgrading - -Upgrading to a newer release of RomWBW is essentially just a matter of -updating the ROM chip in your system. If you have spare ROM chips for -your system and a ROM programmer, it is always safest to retain your -existing, working ROM chip and program a new one with the new firmware. -If the new one fails to boot, you can easily return to the known working -ROM. - -Prior to attempting to reprogram your actual ROM chip, you may wish to -“try” the upgrade. With RomWBW, you can upload a new system image -executable and load it from the command line. For each ROM image file -(.rom) in the Binary directory, you will also find a corresponding -application file (.com). For example, for SBC\_std.rom, there is also an -SBC\_std.com file. You can upload the .com file to your system using -XModem, then simply run the .com file. You will see your system go -through the normal startup process just like it was started from ROM. -However, your ROM has not been updated and the next time you boot your -system, it will revert to the system image contained in ROM. You may -find that you are unable to load the .com file because it is too large -to fit in available application RAM (TPA). Unfortunately, in this case, -you will not be able to use the .com file mechanism to start your -system. - -If you do not have easy access to a ROM programmer, it is usually -possible to reprogram your system ROM using the FLASH utility from Will -Sowerbutts. This application, called FLASH.COM, can be found on the ROM -drive of any running system. In this case, you would need to transfer -the new ROM image (.rom) over to your system using XModem (or one of the -other mechanisms described in the Transferring Files section below). The -ROM image is too large to fit on your RAM drive, so you will need to -transfer it to a larger storage drive. Once the ROM image is on your -system, you can use the FLASH application to update your ROM. The -following is a typical example of transferring ROM image using XModem -and flashing the chip in-situ. - - E>xm r rom.img - - XMODEM v12.5 - 07/13/86 - RBC, 28-Aug-2019 [WBW], ASCI - - Receiving: E0:ROM.IMG - 7312k available for uploads - File open - ready to receive - To cancel: Ctrl-X, pause, Ctrl-X - - Thanks for the upload - - E>flash write rom.img - FLASH4 by Will Sowerbutts version 1.2.3 - - Using RomWBW (v2.6+) bank switching. - Flash memory chip ID is 0xBFB7: 39F040 - Flash memory has 128 sectors of 4096 bytes, total 512KB - Write complete: Reprogrammed 2/128 sectors. - Verify (128 sectors) complete: OK! - -Obviously, there is some risk to this approach since any issues with the -programming or ROM image could result in a non-functional system. - -To confirm your ROM chip has been successfully updated, restart your -system and boot an operating system from ROM. Do not boot from a disk -device yet. Review the boot messages to see if any issues have occurred. - -Once you are satisfied that the ROM is working well, you will need to -update the system images and RomWBW custom applications on your disk -drives. The system images and custom applications are matched to the -RomWBW ROM firmware in use. If you attempt to boot a disk or run -applications that have not been updated to match the current ROM -firmware, you are likely to have odd problems. - -The simplest way to update your disk media is to just use your modern -computer to overwrite the entire media with the latest disk image of -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 would need to upload it from the -distribution. - -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 -following applications are found on your ROM disk. Use COPY to copy them -over any older versions of the app on your disk: - - - ASSIGN.COM - - SYSCOPY.COM - - MODE.COM - - FDU.COM (was FDTST.COM) - - FORMAT.COM - - XM.COM - - FLASH.COM - - FDISK80.COM - - TALK.COM - - RTC.COM - - TIMER.COM - - INTTEST.COM - -For example: `B>COPY ASSIGN.COM C:` - -Some RomWBW custom applications are too large to fit on the ROM disk. If -you are using any of these you will need to transfer them to your system -and then update all copies. These applications are found in the -Binary\\Apps directory of the distribution and in all of the disk -images. - - - FAT.COM - - TUNE.COM - # General Usage Each of the operating systems and ROM applications included with RomWBW @@ -487,14 +374,16 @@ therefore, globally available. | ----------- | ---------------------------------------------------------------------------------------------------- | | ASSIGN | Add, change, and delete drive letter assignments. Use ASSIGN /? for usage instructions. | | SYSCOPY | Copy system image to a device to make it bootable. Use SYSCOPY with no parms for usage instructions. | +| MODE | Reconfigures serial ports dynamically. | | FDU | Format and test floppy disks. Menu driven interface. | | FORMAT | Will someday be a command line tool to format floppy disks. Currently does nothing\! | -| MODE | Reconfigures serial ports dynamically. | | XM | XModem file transfer program adapted to hardware. Automatically uses primary serial port on system. | -| FDISK80 | John Coffman’s Z80 hard disk partitioning tool. See documentation in Doc directory. | -| FAT | Access MS-DOS FAT filesystems from RomWBW (based on FatFs). | | FLASH | Will Sowerbutts’ in-situ ROM programming utility. | -| CLRDIR | Initialize the directory area of a CP/M disk (Max Scane). | +| FDISK80 | John Coffman’s Z80 hard disk partitioning tool. See documentation in Doc directory. | +| TALK | Direct console I/O to a specified character device. | +| RTC | Manage and test the Real Time Clock hardware. | +| TIMER | Display value of running periodic system timer. | +| INTTEST | Test interrupt vector hooking. | Some custom applications do not fit on the ROM disk. They are found on the disk image files or the individual files can be found in the @@ -505,9 +394,8 @@ Binary\\Apps directory of the distribution. | TUNE | Play .PT2, .PT3, .MYM audio files. | | FAT | Access MS-DOS FAT filesystems from RomWBW (based on FatFs). | -There is additional documentation on some of these applications at the -[RomWBW Applications -Page](https://www.retrobrewcomputers.org/doku.php?id=software:firmwareos:romwbw:apps). +Additional documentation on all of these applications can be found in +“RomWBW Applications.pdf” in the Doc directory of the distribution. # Using Disks @@ -1062,6 +950,123 @@ Please refer to the [UNA BIOS Firmware Page](https://www.retrobrewcomputers.org/doku.php?id=software:firmwareos:una:start) for more information on UNA. +# Upgrading + +Upgrading to a newer release of RomWBW is essentially just a matter of +updating the ROM chip in your system. If you have spare ROM chips for +your system and a ROM programmer, it is always safest to retain your +existing, working ROM chip and program a new one with the new firmware. +If the new one fails to boot, you can easily return to the known working +ROM. + +Prior to attempting to reprogram your actual ROM chip, you may wish to +“try” the upgrade. With RomWBW, you can upload a new system image +executable and load it from the command line. For each ROM image file +(.rom) in the Binary directory, you will also find a corresponding +application file (.com). For example, for SBC\_std.rom, there is also an +SBC\_std.com file. You can upload the .com file to your system using +XModem, then simply run the .com file. You will see your system go +through the normal startup process just like it was started from ROM. +However, your ROM has not been updated and the next time you boot your +system, it will revert to the system image contained in ROM. + +There are two restrictions to be aware of related to loading a system +image as a .com application. First, this is only supported under +Z-System and CP/M 2.2. You must boot into one of these OSes before +attempting to launch the .com file. Second, you may find that you are +unable to load the .com file because it is too large to fit in available +application RAM (TPA). Your only recourse in this situation is to build +a custom ROM with fewer features. + +If you do not have easy access to a ROM programmer, it is usually +possible to reprogram your system ROM using the FLASH utility from Will +Sowerbutts. This application, called FLASH.COM, can be found on the ROM +drive of any running system. In this case, you would need to transfer +the new ROM image (.rom) over to your system using XModem (or one of the +other mechanisms described in the Transferring Files section). The ROM +image is too large to fit on your RAM drive, so you will need to +transfer it to a larger storage drive. Once the ROM image is on your +system, you can use the FLASH application to update your ROM. The +following is a typical example of transferring ROM image using XModem +and flashing the chip in-situ. + + E>xm r rom.img + + XMODEM v12.5 - 07/13/86 + RBC, 28-Aug-2019 [WBW], ASCI + + Receiving: E0:ROM.IMG + 7312k available for uploads + File open - ready to receive + To cancel: Ctrl-X, pause, Ctrl-X + + Thanks for the upload + + E>flash write rom.img + FLASH4 by Will Sowerbutts version 1.2.3 + + Using RomWBW (v2.6+) bank switching. + Flash memory chip ID is 0xBFB7: 39F040 + Flash memory has 128 sectors of 4096 bytes, total 512KB + Write complete: Reprogrammed 2/128 sectors. + Verify (128 sectors) complete: OK! + +Obviously, there is some risk to this approach since any issues with the +programming or ROM image could result in a non-functional system. + +To confirm your ROM chip has been successfully updated, restart your +system and boot an operating system from ROM. Do not boot from a disk +device yet. Review the boot messages to see if any issues have occurred. + +Once you are satisfied that the ROM is working well, you will need to +update the system images and RomWBW custom applications on your disk +drives. The system images and custom applications are matched to the +RomWBW ROM firmware in use. If you attempt to boot a disk or run +applications that have not been updated to match the current ROM +firmware, you are likely to have odd problems. + +The simplest way to update your disk media is to just use your modern +computer to overwrite the entire media with the latest disk image of +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. + +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 +following applications are found on your ROM disk. Use COPY to copy them +over any older versions of the app on your disk: + + - ASSIGN.COM + - SYSCOPY.COM + - MODE.COM + - FDU.COM (was FDTST.COM) + - FORMAT.COM + - XM.COM + - FLASH.COM + - FDISK80.COM + - TALK.COM + - RTC.COM + - TIMER.COM + - INTTEST.COM + +For example: `B>COPY ASSIGN.COM C:` + +Some RomWBW custom applications are too large to fit on the ROM disk. If +you are using any of these you will need to transfer them to your system +and then update all copies. These applications are found in the +Binary\\Apps directory of the distribution and in all of the disk +images. + + - FAT.COM + - TUNE.COM + # RomWBW Distribution All source code and distributions are maintained on GitHub. Code diff --git a/ReadMe.txt b/ReadMe.txt index e6eea6b1..9dd43532 100644 --- a/ReadMe.txt +++ b/ReadMe.txt @@ -179,117 +179,6 @@ disappear at the next power on (RAM is generally not persistent). Also note that attempts to save files to the ROM disk (B:) will fail because ROM is not writable. -Upgrading - -Upgrading to a newer release of RomWBW is essentially just a matter of -updating the ROM chip in your system. If you have spare ROM chips for -your system and a ROM programmer, it is always safest to retain your -existing, working ROM chip and program a new one with the new firmware. -If the new one fails to boot, you can easily return to the known working -ROM. - -Prior to attempting to reprogram your actual ROM chip, you may wish to -“try” the upgrade. With RomWBW, you can upload a new system image -executable and load it from the command line. For each ROM image file -(.rom) in the Binary directory, you will also find a corresponding -application file (.com). For example, for SBC_std.rom, there is also an -SBC_std.com file. You can upload the .com file to your system using -XModem, then simply run the .com file. You will see your system go -through the normal startup process just like it was started from ROM. -However, your ROM has not been updated and the next time you boot your -system, it will revert to the system image contained in ROM. You may -find that you are unable to load the .com file because it is too large -to fit in available application RAM (TPA). Unfortunately, in this case, -you will not be able to use the .com file mechanism to start your -system. - -If you do not have easy access to a ROM programmer, it is usually -possible to reprogram your system ROM using the FLASH utility from Will -Sowerbutts. This application, called FLASH.COM, can be found on the ROM -drive of any running system. In this case, you would need to transfer -the new ROM image (.rom) over to your system using XModem (or one of the -other mechanisms described in the Transferring Files section below). The -ROM image is too large to fit on your RAM drive, so you will need to -transfer it to a larger storage drive. Once the ROM image is on your -system, you can use the FLASH application to update your ROM. The -following is a typical example of transferring ROM image using XModem -and flashing the chip in-situ. - - E>xm r rom.img - - XMODEM v12.5 - 07/13/86 - RBC, 28-Aug-2019 [WBW], ASCI - - Receiving: E0:ROM.IMG - 7312k available for uploads - File open - ready to receive - To cancel: Ctrl-X, pause, Ctrl-X - - Thanks for the upload - - E>flash write rom.img - FLASH4 by Will Sowerbutts version 1.2.3 - - Using RomWBW (v2.6+) bank switching. - Flash memory chip ID is 0xBFB7: 39F040 - Flash memory has 128 sectors of 4096 bytes, total 512KB - Write complete: Reprogrammed 2/128 sectors. - Verify (128 sectors) complete: OK! - -Obviously, there is some risk to this approach since any issues with the -programming or ROM image could result in a non-functional system. - -To confirm your ROM chip has been successfully updated, restart your -system and boot an operating system from ROM. Do not boot from a disk -device yet. Review the boot messages to see if any issues have occurred. - -Once you are satisfied that the ROM is working well, you will need to -update the system images and RomWBW custom applications on your disk -drives. The system images and custom applications are matched to the -RomWBW ROM firmware in use. If you attempt to boot a disk or run -applications that have not been updated to match the current ROM -firmware, you are likely to have odd problems. - -The simplest way to update your disk media is to just use your modern -computer to overwrite the entire media with the latest disk image of -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 would need to upload it from the distribution. - -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 -following applications are found on your ROM disk. Use COPY to copy them -over any older versions of the app on your disk: - -- ASSIGN.COM -- SYSCOPY.COM -- MODE.COM -- FDU.COM (was FDTST.COM) -- FORMAT.COM -- XM.COM -- FLASH.COM -- FDISK80.COM -- TALK.COM -- RTC.COM -- TIMER.COM -- INTTEST.COM - -For example: B>COPY ASSIGN.COM C: - -Some RomWBW custom applications are too large to fit on the ROM disk. If -you are using any of these you will need to transfer them to your system -and then update all copies. These applications are found in the -Binary\Apps directory of the distribution and in all of the disk images. - -- FAT.COM -- TUNE.COM - General Usage Each of the operating systems and ROM applications included with RomWBW @@ -495,34 +384,38 @@ the OS variants included with RomWBW. The following custom applications are found on the ROM disk and are, therefore, globally available. - -------------------------------------------------------------------------- + ----------------------------------------------------------------------------- Application Description - ------------- ------------------------------------------------------------ - ASSIGN Add, change, and delete drive letter assignments. Use ASSIGN - /? for usage instructions. + ------------- --------------------------------------------------------------- + ASSIGN Add, change, and delete drive letter assignments. Use ASSIGN /? + for usage instructions. + + SYSCOPY Copy system image to a device to make it bootable. Use SYSCOPY + with no parms for usage instructions. - SYSCOPY Copy system image to a device to make it bootable. Use - SYSCOPY with no parms for usage instructions. + MODE Reconfigures serial ports dynamically. FDU Format and test floppy disks. Menu driven interface. FORMAT Will someday be a command line tool to format floppy disks. Currently does nothing! - MODE Reconfigures serial ports dynamically. + XM XModem file transfer program adapted to hardware. Automatically + uses primary serial port on system. - XM XModem file transfer program adapted to hardware. - Automatically uses primary serial port on system. + FLASH Will Sowerbutts’ in-situ ROM programming utility. FDISK80 John Coffman’s Z80 hard disk partitioning tool. See documentation in Doc directory. - FAT Access MS-DOS FAT filesystems from RomWBW (based on FatFs). + TALK Direct console I/O to a specified character device. - FLASH Will Sowerbutts’ in-situ ROM programming utility. + RTC Manage and test the Real Time Clock hardware. - CLRDIR Initialize the directory area of a CP/M disk (Max Scane). - -------------------------------------------------------------------------- + TIMER Display value of running periodic system timer. + + INTTEST Test interrupt vector hooking. + ----------------------------------------------------------------------------- Some custom applications do not fit on the ROM disk. They are found on the disk image files or the individual files can be found in the @@ -533,8 +426,8 @@ Binary\Apps directory of the distribution. TUNE Play .PT2, .PT3, .MYM audio files. FAT Access MS-DOS FAT filesystems from RomWBW (based on FatFs). -There is additional documentation on some of these applications at the -RomWBW Applications Page. +Additional documentation on all of these applications can be found in +“RomWBW Applications.pdf” in the Doc directory of the distribution. Using Disks @@ -1083,6 +976,122 @@ support for VGA3 as soon as it reaches production status. Please refer to the UNA BIOS Firmware Page for more information on UNA. +Upgrading + +Upgrading to a newer release of RomWBW is essentially just a matter of +updating the ROM chip in your system. If you have spare ROM chips for +your system and a ROM programmer, it is always safest to retain your +existing, working ROM chip and program a new one with the new firmware. +If the new one fails to boot, you can easily return to the known working +ROM. + +Prior to attempting to reprogram your actual ROM chip, you may wish to +“try” the upgrade. With RomWBW, you can upload a new system image +executable and load it from the command line. For each ROM image file +(.rom) in the Binary directory, you will also find a corresponding +application file (.com). For example, for SBC_std.rom, there is also an +SBC_std.com file. You can upload the .com file to your system using +XModem, then simply run the .com file. You will see your system go +through the normal startup process just like it was started from ROM. +However, your ROM has not been updated and the next time you boot your +system, it will revert to the system image contained in ROM. + +There are two restrictions to be aware of related to loading a system +image as a .com application. First, this is only supported under +Z-System and CP/M 2.2. You must boot into one of these OSes before +attempting to launch the .com file. Second, you may find that you are +unable to load the .com file because it is too large to fit in available +application RAM (TPA). Your only recourse in this situation is to build +a custom ROM with fewer features. + +If you do not have easy access to a ROM programmer, it is usually +possible to reprogram your system ROM using the FLASH utility from Will +Sowerbutts. This application, called FLASH.COM, can be found on the ROM +drive of any running system. In this case, you would need to transfer +the new ROM image (.rom) over to your system using XModem (or one of the +other mechanisms described in the Transferring Files section). The ROM +image is too large to fit on your RAM drive, so you will need to +transfer it to a larger storage drive. Once the ROM image is on your +system, you can use the FLASH application to update your ROM. The +following is a typical example of transferring ROM image using XModem +and flashing the chip in-situ. + + E>xm r rom.img + + XMODEM v12.5 - 07/13/86 + RBC, 28-Aug-2019 [WBW], ASCI + + Receiving: E0:ROM.IMG + 7312k available for uploads + File open - ready to receive + To cancel: Ctrl-X, pause, Ctrl-X + + Thanks for the upload + + E>flash write rom.img + FLASH4 by Will Sowerbutts version 1.2.3 + + Using RomWBW (v2.6+) bank switching. + Flash memory chip ID is 0xBFB7: 39F040 + Flash memory has 128 sectors of 4096 bytes, total 512KB + Write complete: Reprogrammed 2/128 sectors. + Verify (128 sectors) complete: OK! + +Obviously, there is some risk to this approach since any issues with the +programming or ROM image could result in a non-functional system. + +To confirm your ROM chip has been successfully updated, restart your +system and boot an operating system from ROM. Do not boot from a disk +device yet. Review the boot messages to see if any issues have occurred. + +Once you are satisfied that the ROM is working well, you will need to +update the system images and RomWBW custom applications on your disk +drives. The system images and custom applications are matched to the +RomWBW ROM firmware in use. If you attempt to boot a disk or run +applications that have not been updated to match the current ROM +firmware, you are likely to have odd problems. + +The simplest way to update your disk media is to just use your modern +computer to overwrite the entire media with the latest disk image of +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. + +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 +following applications are found on your ROM disk. Use COPY to copy them +over any older versions of the app on your disk: + +- ASSIGN.COM +- SYSCOPY.COM +- MODE.COM +- FDU.COM (was FDTST.COM) +- FORMAT.COM +- XM.COM +- FLASH.COM +- FDISK80.COM +- TALK.COM +- RTC.COM +- TIMER.COM +- INTTEST.COM + +For example: B>COPY ASSIGN.COM C: + +Some RomWBW custom applications are too large to fit on the ROM disk. If +you are using any of these you will need to transfer them to your system +and then update all copies. These applications are found in the +Binary\Apps directory of the distribution and in all of the disk images. + +- FAT.COM +- TUNE.COM + RomWBW Distribution All source code and distributions are maintained on GitHub. Code diff --git a/Source/Apps/Tune/Tune.asm b/Source/Apps/Tune/Tune.asm index 2526fccf..14814b23 100644 --- a/Source/Apps/Tune/Tune.asm +++ b/Source/Apps/Tune/Tune.asm @@ -100,9 +100,19 @@ CFGSEL: LD A,(PLT) ; Get platform id of loaded config CP E ; Equal? JR NZ,CFGSEL ; If no match keep trying +; + ; Activate card if applicable + CALL SLOWIO ; Slow down I/O now + LD A,(ACR) ; Get ACR port address (if any) + INC A ; $FF -> $00 & set flags + JR Z,PROBE ; Skip ahead to probe if no ACR + DEC A ; Restore real ACR port address + LD C,A ; Put in C for I/O + LD A,$FF ; Value to activate card + OUT (C),A ; Write value to ACR ; +PROBE: ; Test for hardware (sound chip detection) - CALL SLOWIO LD DE,(PORTS) ; D := RDAT, E := RSEL LD C,E ; Port = RSEL LD A,2 ; Register 2 @@ -110,17 +120,16 @@ CFGSEL: LD C,D ; Port = RDAT LD A,$AA ; Value = $AA OUT (C),A ; Write $AA to register 2 - ;LD C,E ; Port = RSEL LD A,(RIN) ; Port = RIN LD C,A ; ... to C IN A,(C) ; Read back value in register 2 - PUSH AF - CALL NORMIO - POP AF - ;CALL PRTHEX ; *debug* CP $AA ; Value as written? - JR NZ,CFGSEL ; If not, keep trying configs + JR Z,MAT ; Hardware matched! + CALL NORMIO ; Back to normal I/O speeds + JR CFGSEL ; And keep trying ; +MAT: + ; Hardware matched! CALL CRLF ; Formatting LD DE,(DESC) ; Load hardware description pointer CALL PRTSTR ; Print description @@ -150,15 +159,6 @@ SETDLY: RR E ; ... for delay factor EX DE,HL ; Move result to HL LD (QDLY),HL ; Save result as quark delay factor -; - ; Activate SCG card if applicable - LD A,(ACR) - CP $FF - JR Z,NOSCG - LD C,A - LD A,$FF - OUT (C),A -NOSCG: ; ; Clear heap storage LD HL,HEAP ; Point to heap start @@ -766,7 +766,7 @@ FILTYP .DB 0 ; Sound file type (TYPPT2, TYPPT3, TYPMYM) TMP .DB 0 ; work around use of undocumented Z80 ; -MSGBAN .DB "Tune Player for RomWBW v2.3, 11-Feb-2020",0 +MSGBAN .DB "Tune Player for RomWBW v2.4, 23-Mar-2020",0 MSGUSE .DB "Copyright (C) 2020, Wayne Warthen, GNU GPL v3",13,10 .DB "PTxPlayer Copyright (C) 2004-2007 S.V.Bulba",13,10 .DB "MYMPlay by Marq/Lieves!Tuore",13,10,13,10 diff --git a/Source/CBIOS/cbios.asm b/Source/CBIOS/cbios.asm index 5482cbc1..a822887f 100644 --- a/Source/CBIOS/cbios.asm +++ b/Source/CBIOS/cbios.asm @@ -2277,7 +2277,7 @@ CLRRAM2: CLRRAM3: LD A,(BNKUSER) ; USR BANK (TPA) CALL HB_BNKSEL ; SELECT BANK - EI ; RESUME INTRRUPTS + EI ; RESUME INTERRUPTS #ENDIF ; #ENDIF diff --git a/Source/CPM3/boot.z80 b/Source/CPM3/boot.z80 index a252faff..9c423f68 100644 --- a/Source/CPM3/boot.z80 +++ b/Source/CPM3/boot.z80 @@ -59,14 +59,15 @@ init$2: call ?pmsg ; print it ; Get boot disk unit and save it - ld bc,0F8E0h ; HBIOS func: get boot info - rst 08 ; do it, D := boot unit, E: := boot slice - ld a,d ; move boot unit to A - ld (@bootdu),a ; save it - ld a,e ; move boot slice to A - ld (@bootsl),a ; save it + ld bc,0F8E0h ; HBIOS func: get boot info + rst 08 ; do it, D := boot unit, E: := boot slice + ld a,d ; move boot unit to A + ld (@bootdu),a ; save it + ld a,e ; move boot slice to A + ld (@bootsl),a ; save it call dinit + call clrram ret cinit: @@ -298,6 +299,75 @@ stpimg db 'W',~'W' ; marker dw cbx ; address of cbios ext data stpsiz equ $ - stpimg + + cseg ; ram disk init must be done from resident memory + +; +; Initialize ram disk by filling directory with 'e5' bytes +; Fill first 8k of ram disk track 1 with 'e5' +; +clrram: + di ; no interrupts + ld a,(0FFE0h) ; get current bank + push af ; save it + ;ld a,(bnkramd) ; first bank of ram disk + ld a,080h ; first bank of ram disk + ;call hb_bnksel ; select bank + call 0FFF3h ; select bank + + ; Check first 32 directory entries. If any start with an invalid + ; value, init the ram disk. Valid entries are e5 (empty entry) or + ; 0-15 (user number). + ld hl,0 + ld de,32 + ld b,32 +clrram0: + ld a,(hl) + cp 0E5h + jr z,clrram1 ; e5 is valid + cp 16 + jr c,clrram1 ; 0-15 is also valid + jr clrram2 ; invalid entry! jump to init +clrram1: + add hl,de ; loop for 32 entries + djnz clrram0 +; jr clrram2 ; *debug* + jr clrram3 ; all entries valid, bypass init +clrram2: + ld hl,0 ; source adr for fill + ld bc,2000h ; length of fill is 8k + ld a,0E5h ; fill value + call fill ; do it + or 0ffh ; flag value for cleared + ld (clrflg),a ; save it +clrram3: + ;ld a,(bnkuser) ; usr bank (tpa) + pop af ; recover original bank + ;call hb_bnksel ; select bank + call 0FFF3h ; select bank + ei ; resume interrupts + + ld a,(clrflg) ; get cleared flag + or a ; set flags + ld hl,clr$msg ; clear ram disk message + call nz,?pmsg ; print msg if true + + ret + +; +; Fill memory at hl with value a, length in bc. All regs used. +; Length *must* be greater than 1 for proper operation!!! +; +fill: + ld d,h ; set de to hl + ld e,l ; so destination equals source + ld (hl),a ; fill the first byte with desired value + inc de ; increment destination + dec bc ; decrement the count + ldir ; do the rest + ret ; return + + cseg ; boot loading most be done from resident memory ; This version of the boot loader loads the CCP from a file @@ -569,6 +639,9 @@ read: ld c,20 jp bdos +clrflg db 0 ; RAM disk cleared flag +clr$msg db 'RAM Disk Initialized',13,10,13,10,0 + if zpm signon$msg db 13,10,'ZPM3' diff --git a/Source/Doc/GettingStarted.md b/Source/Doc/GettingStarted.md index 0083d7d4..128d29f9 100644 --- a/Source/Doc/GettingStarted.md +++ b/Source/Doc/GettingStarted.md @@ -196,122 +196,6 @@ to the RAM disk (A:) will disappear at the next power on (RAM is generally not persistent). Also note that attempts to save files to the ROM disk (B:) will fail because ROM is not writable. -# Upgrading - -Upgrading to a newer release of RomWBW is essentially just a matter of -updating the ROM chip in your system. If you have spare ROM chips for -your system and a ROM programmer, it is always safest to retain your -existing, working ROM chip and program a new one with the new -firmware. If the new one fails to boot, you can easily return to the -known working ROM. - -Prior to attempting to reprogram your actual ROM chip, you may wish to -"try" the upgrade. With RomWBW, you can upload a new system image -executable and load it from the command line. For each ROM image file -(.rom) in the Binary directory, you will also find a corresponding -application file (.com). For example, for SBC_std.rom, there is also -an SBC_std.com file. You can upload the .com file to your system using -XModem, then simply run the .com file. You will see your system go -through the normal startup process just like it was started from ROM. -However, your ROM has not been updated and the next time you boot your -system, it will revert to the system image contained in ROM. You may -find that you are unable to load the .com file because it is too large -to fit in available application RAM (TPA). Unfortunately, in this -case, you will not be able to use the .com file mechanism to start -your system. - -If you do not have easy access to a ROM programmer, it is usually -possible to reprogram your system ROM using the FLASH utility from -Will Sowerbutts. This application, called FLASH.COM, can be found on the -ROM drive of any running system. In this case, you would need to -transfer the new ROM image (.rom) over to your system using XModem (or -one of the other mechanisms described in the Transferring Files -section below). The ROM image is too large to fit on your RAM drive, -so you will need to transfer it to a larger storage drive. Once the -ROM image is on your system, you can use the FLASH application to -update your ROM. The following is a typical example of transferring -ROM image using XModem and flashing the chip in-situ. - -``` -E>xm r rom.img - -XMODEM v12.5 - 07/13/86 -RBC, 28-Aug-2019 [WBW], ASCI - -Receiving: E0:ROM.IMG -7312k available for uploads -File open - ready to receive -To cancel: Ctrl-X, pause, Ctrl-X - -Thanks for the upload - -E>flash write rom.img -FLASH4 by Will Sowerbutts version 1.2.3 - -Using RomWBW (v2.6+) bank switching. -Flash memory chip ID is 0xBFB7: 39F040 -Flash memory has 128 sectors of 4096 bytes, total 512KB -Write complete: Reprogrammed 2/128 sectors. -Verify (128 sectors) complete: OK! -``` - -Obviously, there is some risk to this approach since any issues with the -programming or ROM image could result in a non-functional system. - -To confirm your ROM chip has been successfully updated, restart your -system and boot an operating system from ROM. Do not boot from a disk -device yet. Review the boot messages to see if any issues have -occurred. - -Once you are satisfied that the ROM is working well, you will need to -update the system images and RomWBW custom applications on your disk -drives. The system images and custom applications are matched to the -RomWBW ROM firmware in use. If you attempt to boot a disk or run -applications that have not been updated to match the current ROM -firmware, you are likely to have odd problems. - -The simplest way to update your disk media is to just use your modern -computer to overwrite the entire media with the latest disk image of 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 would need to -upload it from the distribution. - -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 -following applications are found on your ROM disk. Use COPY to copy -them over any older versions of the app on your disk: - -* ASSIGN.COM -* SYSCOPY.COM -* MODE.COM -* FDU.COM (was FDTST.COM) -* FORMAT.COM -* XM.COM -* FLASH.COM -* FDISK80.COM -* TALK.COM -* RTC.COM -* TIMER.COM -* INTTEST.COM - -For example: `B>COPY ASSIGN.COM C:` - -Some RomWBW custom applications are too large to fit on the ROM disk. -If you are using any of these you will need to transfer them to your -system and then update all copies. These applications are found in -the Binary\\Apps directory of the distribution and in all of the disk -images. - -* FAT.COM -* TUNE.COM - # General Usage Each of the operating systems and ROM applications included with @@ -523,18 +407,20 @@ functional on all of the OS variants included with RomWBW. The following custom applications are found on the ROM disk and are, therefore, globally available. -| Application | Description | -| ----------- | -------------------------------------------------------------- | -| ASSIGN | Add, change, and delete drive letter assignments. Use ASSIGN /? for usage instructions. | +| Application | Description | +| ----------- | ---------------------------------------------------------------------------------------------------- | +| ASSIGN | Add, change, and delete drive letter assignments. Use ASSIGN /? for usage instructions. | | SYSCOPY | Copy system image to a device to make it bootable. Use SYSCOPY with no parms for usage instructions. | -| FDU | Format and test floppy disks. Menu driven interface. | -| FORMAT | Will someday be a command line tool to format floppy disks. Currently does nothing! | -| MODE | Reconfigures serial ports dynamically. | -| XM | XModem file transfer program adapted to hardware. Automatically uses primary serial port on system. | -| FDISK80 | John Coffman's Z80 hard disk partitioning tool. See documentation in Doc directory. | -| FAT | Access MS-DOS FAT filesystems from RomWBW (based on FatFs). | -| FLASH | Will Sowerbutts' in-situ ROM programming utility. | -| CLRDIR | Initialize the directory area of a CP/M disk (Max Scane). | +| MODE | Reconfigures serial ports dynamically. | +| FDU | Format and test floppy disks. Menu driven interface. | +| FORMAT | Will someday be a command line tool to format floppy disks. Currently does nothing! | +| XM | XModem file transfer program adapted to hardware. Automatically uses primary serial port on system. | +| FLASH | Will Sowerbutts' in-situ ROM programming utility. | +| FDISK80 | John Coffman's Z80 hard disk partitioning tool. See documentation in Doc directory. | +| TALK | Direct console I/O to a specified character device. | +| RTC | Manage and test the Real Time Clock hardware. | +| TIMER | Display value of running periodic system timer. | +| INTTEST | Test interrupt vector hooking. | Some custom applications do not fit on the ROM disk. They are found on the disk image files or the individual files can be found in the Binary\\Apps @@ -545,8 +431,8 @@ directory of the distribution. | TUNE | Play .PT2, .PT3, .MYM audio files. | | FAT | Access MS-DOS FAT filesystems from RomWBW (based on FatFs). | -There is additional documentation on some of these applications at the -[RomWBW Applications Page](https://www.retrobrewcomputers.org/doku.php?id=software:firmwareos:romwbw:apps). +Additional documentation on all of these applications can be found in +"RomWBW Applications.pdf" in the Doc directory of the distribution. # Using Disks @@ -1117,6 +1003,126 @@ Please refer to the [UNA BIOS Firmware Page](https://www.retrobrewcomputers.org/doku.php?id=software:firmwareos:una:start) for more information on UNA. +# Upgrading + +Upgrading to a newer release of RomWBW is essentially just a matter of +updating the ROM chip in your system. If you have spare ROM chips for +your system and a ROM programmer, it is always safest to retain your +existing, working ROM chip and program a new one with the new +firmware. If the new one fails to boot, you can easily return to the +known working ROM. + +Prior to attempting to reprogram your actual ROM chip, you may wish to +"try" the upgrade. With RomWBW, you can upload a new system image +executable and load it from the command line. For each ROM image file +(.rom) in the Binary directory, you will also find a corresponding +application file (.com). For example, for SBC_std.rom, there is also +an SBC_std.com file. You can upload the .com file to your system using +XModem, then simply run the .com file. You will see your system go +through the normal startup process just like it was started from ROM. +However, your ROM has not been updated and the next time you boot your +system, it will revert to the system image contained in ROM. + +There are two restrictions to be aware of related to loading a system +image as a .com application. First, this is only supported under +Z-System and CP/M 2.2. You must boot into one of these OSes before +attempting to launch the .com file. Second, you may find that you +are unable to load the .com file because it is too large to fit in +available application RAM (TPA). Your only recourse in this +situation is to build a custom ROM with fewer features. + +If you do not have easy access to a ROM programmer, it is usually +possible to reprogram your system ROM using the FLASH utility from +Will Sowerbutts. This application, called FLASH.COM, can be found on the +ROM drive of any running system. In this case, you would need to +transfer the new ROM image (.rom) over to your system using XModem (or +one of the other mechanisms described in the Transferring Files +section). The ROM image is too large to fit on your RAM drive, +so you will need to transfer it to a larger storage drive. Once the +ROM image is on your system, you can use the FLASH application to +update your ROM. The following is a typical example of transferring +ROM image using XModem and flashing the chip in-situ. + +``` +E>xm r rom.img + +XMODEM v12.5 - 07/13/86 +RBC, 28-Aug-2019 [WBW], ASCI + +Receiving: E0:ROM.IMG +7312k available for uploads +File open - ready to receive +To cancel: Ctrl-X, pause, Ctrl-X + +Thanks for the upload + +E>flash write rom.img +FLASH4 by Will Sowerbutts version 1.2.3 + +Using RomWBW (v2.6+) bank switching. +Flash memory chip ID is 0xBFB7: 39F040 +Flash memory has 128 sectors of 4096 bytes, total 512KB +Write complete: Reprogrammed 2/128 sectors. +Verify (128 sectors) complete: OK! +``` + +Obviously, there is some risk to this approach since any issues with the +programming or ROM image could result in a non-functional system. + +To confirm your ROM chip has been successfully updated, restart your +system and boot an operating system from ROM. Do not boot from a disk +device yet. Review the boot messages to see if any issues have +occurred. + +Once you are satisfied that the ROM is working well, you will need to +update the system images and RomWBW custom applications on your disk +drives. The system images and custom applications are matched to the +RomWBW ROM firmware in use. If you attempt to boot a disk or run +applications that have not been updated to match the current ROM +firmware, you are likely to have odd problems. + +The simplest way to update your disk media is to just use your modern +computer to overwrite the entire media with the latest disk image of +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. + +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 +following applications are found on your ROM disk. Use COPY to copy +them over any older versions of the app on your disk: + +* ASSIGN.COM +* SYSCOPY.COM +* MODE.COM +* FDU.COM (was FDTST.COM) +* FORMAT.COM +* XM.COM +* FLASH.COM +* FDISK80.COM +* TALK.COM +* RTC.COM +* TIMER.COM +* INTTEST.COM + +For example: `B>COPY ASSIGN.COM C:` + +Some RomWBW custom applications are too large to fit on the ROM disk. +If you are using any of these you will need to transfer them to your +system and then update all copies. These applications are found in +the Binary\\Apps directory of the distribution and in all of the disk +images. + +* FAT.COM +* TUNE.COM + # RomWBW Distribution All source code and distributions are maintained on GitHub. Code