diff --git a/Doc/ChangeLog.txt b/Doc/ChangeLog.txt index 8ac107ff..5ddd4e80 100644 --- a/Doc/ChangeLog.txt +++ b/Doc/ChangeLog.txt @@ -3,7 +3,9 @@ Version 3.0.1 - WBW: Increase XModem timeout waiting for host to start sending - WBW: Update TMS driver to dynamically increase Z180 I/O W/S inside driver - MJS: Update CLRDIR for CP/M 3 compatibility -- WBW: Corrected cursor on/off esc sequence in pre-configured ZDE. +- WBW: Corrected cursor on/off esc sequence in pre-configured ZDE +- WBW: Fix automatic CRT console switching under CP/M 3 and ZPM3 +- WBW: DSRTC driver now correctly returns an error if there is no RTC present Version 3.0.0 ------------- diff --git a/Source/CPM3/boot.z80 b/Source/CPM3/boot.z80 index 1468883a..b80d7631 100644 --- a/Source/CPM3/boot.z80 +++ b/Source/CPM3/boot.z80 @@ -495,6 +495,7 @@ time$get: ld b,020h ; HBIOS func: get time ld hl,tim$buf ; time buffer rst 08 ; do it + ret nz ; bail out on error ; convert yymmss in time buffer -> cpm3 epoch date offset call date2cpm ; time buf (yr, mon, day) -> SCB (@date) diff --git a/Source/HBIOS/dsrtc.asm b/Source/HBIOS/dsrtc.asm index 34a6a4e8..7fa819db 100644 --- a/Source/HBIOS/dsrtc.asm +++ b/Source/HBIOS/dsrtc.asm @@ -236,6 +236,9 @@ DSRTC_SETBLK: ; 24 HOUR TIME FORMAT IS ASSUMED ; DSRTC_GETTIM: + LD A,(DSRTC_STAT) ; GET DEVICE STATUS + OR A ; SET FLAGS + RET NZ ; BAIL OUT ON ERROR ; PUSH HL ; SAVE ADR OF OUTPUT BUF ; @@ -272,6 +275,9 @@ DSRTC_GETTIM: ; 24 HOUR TIME FORMAT IS ASSUMED ; DSRTC_SETTIM: + LD A,(DSRTC_STAT) ; GET DEVICE STATUS + OR A ; SET FLAGS + RET NZ ; BAIL OUT ON ERROR ; ; COPY INCOMING TIME DATA TO OUR TIME BUFFER LD A,(HB_INVBNK) ; COPY FROM CURRENT USER BANK @@ -303,6 +309,9 @@ DSRTC_SETTIM: ; E: VALUE (OUTPUT) ; DSRTC_GETBYT: + LD A,(DSRTC_STAT) ; GET DEVICE STATUS + OR A ; SET FLAGS + RET NZ ; BAIL OUT ON ERROR LD A,C ; INDEX SLA A ; SHIFT TO INDEX BITS ADD A,$C1 ; CMD OFFSET @@ -316,6 +325,9 @@ DSRTC_GETBYT: ; E: VALUE ; DSRTC_SETBYT: + LD A,(DSRTC_STAT) ; GET DEVICE STATUS + OR A ; SET FLAGS + RET NZ ; BAIL OUT ON ERROR LD A,C ; INDEX SLA A ; SHIFT TO INDEX BITS ADD A,$C0 ; CMD OFFSET diff --git a/Source/Images/Common/ZDE.COM b/Source/Images/Common/ZDE.COM index c332ff51..f58310ba 100644 Binary files a/Source/Images/Common/ZDE.COM and b/Source/Images/Common/ZDE.COM differ diff --git a/Source/Images/d_cpm3/u0/ROMWBW.TXT b/Source/Images/d_cpm3/u0/ROMWBW.TXT index 95717ee4..3e6be3be 100644 --- a/Source/Images/d_cpm3/u0/ROMWBW.TXT +++ b/Source/Images/d_cpm3/u0/ROMWBW.TXT @@ -1,23 +1,21 @@ 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. +There are two ways to launch CP/M 3. First, you can run the command +CPMLDR from a CP/M 2.2 or Z-System command line. Alternatively, you +boot directly into CP/M 3 by choosing the CP/M 3 disk from the RomWBW +loader prompt. The CP/M 3 disk must be bootable in this case. -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. +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. -As documented in the "README.1ST" file, the included -files have been patched with all applicable DRI patches -per CPM3FIX.PAT. +As documented in the "README.1ST" file, the included files have been +patched with all applicable DRI patches per CPM3FIX.PAT. In addition, the following have been added: -- INITDIR.COM was not included. The copy included is the - original DRI distribution, with both patches installed. +- INITDIR.COM was not included. The copy included is the original + DRI distribution, with both patches installed. -- ZSID.COM is the original DRI ZSID distribution, but - patched to use RST 6 instead of RST 7 to avoid conflicting - with mode 1 interrupts. +- ZSID.COM is the original DRI ZSID distribution, but patched to use + RST 6 instead of RST 7 to avoid conflicting with mode 1 interrupts. \ No newline at end of file diff --git a/Source/Images/d_zpm3/u0/ROMWBW.TXT b/Source/Images/d_zpm3/u0/ROMWBW.TXT index 3d2181d5..45528bd5 100644 --- a/Source/Images/d_zpm3/u0/ROMWBW.TXT +++ b/Source/Images/d_zpm3/u0/ROMWBW.TXT @@ -1,32 +1,28 @@ 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. +There are two ways to launch ZPM3. First, you can run the command +CPMLDR from a CP/M 2.2 or Z-System command line. Alternatively, you +boot directly into ZPM3 by choosing the ZPM3 disk from the RomWBW +loader prompt. The ZPM3 disk must be bootable in this case. -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. +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. +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. +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: +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 @@ -47,5 +43,5 @@ in user area 15: 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 +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/RomDsk/ROM_1024KB/ZDE.COM b/Source/RomDsk/ROM_1024KB/ZDE.COM index c332ff51..f58310ba 100644 Binary files a/Source/RomDsk/ROM_1024KB/ZDE.COM and b/Source/RomDsk/ROM_1024KB/ZDE.COM differ diff --git a/Source/RomDsk/ROM_512KB/ZDE.COM b/Source/RomDsk/ROM_512KB/ZDE.COM index c332ff51..f58310ba 100644 Binary files a/Source/RomDsk/ROM_512KB/ZDE.COM and b/Source/RomDsk/ROM_512KB/ZDE.COM differ