Browse Source

Handle lack of RTC better

DSRTC driver now correctly returns an error if there is no RTC present.
pull/110/head
Wayne Warthen 6 years ago
parent
commit
99dadbc17c
  1. 4
      Doc/ChangeLog.txt
  2. 1
      Source/CPM3/boot.z80
  3. 12
      Source/HBIOS/dsrtc.asm
  4. BIN
      Source/Images/Common/ZDE.COM
  5. 28
      Source/Images/d_cpm3/u0/ROMWBW.TXT
  6. 46
      Source/Images/d_zpm3/u0/ROMWBW.TXT
  7. BIN
      Source/RomDsk/ROM_1024KB/ZDE.COM
  8. BIN
      Source/RomDsk/ROM_512KB/ZDE.COM

4
Doc/ChangeLog.txt

@ -3,7 +3,9 @@ Version 3.0.1
- WBW: Increase XModem timeout waiting for host to start sending - WBW: Increase XModem timeout waiting for host to start sending
- WBW: Update TMS driver to dynamically increase Z180 I/O W/S inside driver - WBW: Update TMS driver to dynamically increase Z180 I/O W/S inside driver
- MJS: Update CLRDIR for CP/M 3 compatibility - 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 Version 3.0.0
------------- -------------

1
Source/CPM3/boot.z80

@ -495,6 +495,7 @@ time$get:
ld b,020h ; HBIOS func: get time ld b,020h ; HBIOS func: get time
ld hl,tim$buf ; time buffer ld hl,tim$buf ; time buffer
rst 08 ; do it rst 08 ; do it
ret nz ; bail out on error
; convert yymmss in time buffer -> cpm3 epoch date offset ; convert yymmss in time buffer -> cpm3 epoch date offset
call date2cpm ; time buf (yr, mon, day) -> SCB (@date) call date2cpm ; time buf (yr, mon, day) -> SCB (@date)

12
Source/HBIOS/dsrtc.asm

@ -236,6 +236,9 @@ DSRTC_SETBLK:
; 24 HOUR TIME FORMAT IS ASSUMED ; 24 HOUR TIME FORMAT IS ASSUMED
; ;
DSRTC_GETTIM: 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 PUSH HL ; SAVE ADR OF OUTPUT BUF
; ;
@ -272,6 +275,9 @@ DSRTC_GETTIM:
; 24 HOUR TIME FORMAT IS ASSUMED ; 24 HOUR TIME FORMAT IS ASSUMED
; ;
DSRTC_SETTIM: 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 ; COPY INCOMING TIME DATA TO OUR TIME BUFFER
LD A,(HB_INVBNK) ; COPY FROM CURRENT USER BANK LD A,(HB_INVBNK) ; COPY FROM CURRENT USER BANK
@ -303,6 +309,9 @@ DSRTC_SETTIM:
; E: VALUE (OUTPUT) ; E: VALUE (OUTPUT)
; ;
DSRTC_GETBYT: DSRTC_GETBYT:
LD A,(DSRTC_STAT) ; GET DEVICE STATUS
OR A ; SET FLAGS
RET NZ ; BAIL OUT ON ERROR
LD A,C ; INDEX LD A,C ; INDEX
SLA A ; SHIFT TO INDEX BITS SLA A ; SHIFT TO INDEX BITS
ADD A,$C1 ; CMD OFFSET ADD A,$C1 ; CMD OFFSET
@ -316,6 +325,9 @@ DSRTC_GETBYT:
; E: VALUE ; E: VALUE
; ;
DSRTC_SETBYT: DSRTC_SETBYT:
LD A,(DSRTC_STAT) ; GET DEVICE STATUS
OR A ; SET FLAGS
RET NZ ; BAIL OUT ON ERROR
LD A,C ; INDEX LD A,C ; INDEX
SLA A ; SHIFT TO INDEX BITS SLA A ; SHIFT TO INDEX BITS
ADD A,$C0 ; CMD OFFSET ADD A,$C0 ; CMD OFFSET

BIN
Source/Images/Common/ZDE.COM

Binary file not shown.

28
Source/Images/d_cpm3/u0/ROMWBW.TXT

@ -1,23 +1,21 @@
This is a generic CP/M 3 adaptation for RomWBW. 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: 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.

46
Source/Images/d_zpm3/u0/ROMWBW.TXT

@ -1,32 +1,28 @@
This is a generic ZPM3 adaptation for RomWBW. 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 - ALIAS
- ARUNZ - ARUNZ
@ -47,5 +43,5 @@ in user area 15:
It is a bit confusing, but the ZPM3 system file is called CPM3.SYS. 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 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.
way to maximize compatibility with CP/M 3. You will notice that the
startup banner will indicate ZPM3.

BIN
Source/RomDsk/ROM_1024KB/ZDE.COM

Binary file not shown.

BIN
Source/RomDsk/ROM_512KB/ZDE.COM

Binary file not shown.
Loading…
Cancel
Save