Browse Source

Merge pull request #110 from wwarthen/master

Sync
pull/112/head
Wayne Warthen 6 years ago
committed by GitHub
parent
commit
565400eec5
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 9
      Doc/ChangeLog.txt
  2. BIN
      Doc/Contrib/SC126_How-To_No_1_Serial_Comms_Using_Minicom_v.1.1.pdf
  3. BIN
      Doc/Contrib/SC126_How-To_No_2_Preparing_an_SD_Card_for_Use_with_SC126_v1.5.3.pdf
  4. BIN
      Doc/Contrib/SC126_How-To_No_3_Updating_RomWBW_Using_a_Hybrid_SD_Card_v1.1.pdf
  5. BIN
      Doc/RomWBW Applications.pdf
  6. BIN
      Doc/RomWBW Architecture.pdf
  7. BIN
      Doc/RomWBW Getting Started.pdf
  8. 16
      ReadMe.md
  9. 14
      ReadMe.txt
  10. 7
      Source/Apps/Tune/Tune.asm
  11. 11
      Source/Apps/XM/xmdm125.asm
  12. 14
      Source/Apps/XM/xmhb.180
  13. 2
      Source/CPM22/loader.asm
  14. 8
      Source/CPM3/biosldr.z80
  15. 10
      Source/CPM3/boot.z80
  16. 2
      Source/CPM3/loader.asm
  17. 2
      Source/Doc/Common.inc
  18. 12
      Source/Doc/GettingStarted.md
  19. 4
      Source/HBIOS/Config/N8_std.asm
  20. 4
      Source/HBIOS/cfg_n8.asm
  21. 12
      Source/HBIOS/dsrtc.asm
  22. 68
      Source/HBIOS/tms.asm
  23. BIN
      Source/Images/Common/CLRDIR.COM
  24. BIN
      Source/Images/Common/ZDE.COM
  25. BIN
      Source/Images/d_bp/u0/LDDS.COM
  26. BIN
      Source/Images/d_bp/u0/LDNZT.COM
  27. BIN
      Source/Images/d_bp/u0/LDP2D.COM
  28. BIN
      Source/Images/d_bp/u0/SUBMIT.COM
  29. 28
      Source/Images/d_cpm3/u0/ROMWBW.TXT
  30. 46
      Source/Images/d_zpm3/u0/ROMWBW.TXT
  31. BIN
      Source/Images/d_zsdos/u0/CLOCKS.DAT
  32. BIN
      Source/Images/d_zsdos/u0/LDDS.COM
  33. BIN
      Source/Images/d_zsdos/u0/LDNZT.COM
  34. BIN
      Source/Images/d_zsdos/u0/LDP2D.COM
  35. BIN
      Source/RomDsk/ROM_1024KB/CLOCKS.DAT
  36. BIN
      Source/RomDsk/ROM_1024KB/CLRDIR.COM
  37. BIN
      Source/RomDsk/ROM_1024KB/LDDS.COM
  38. BIN
      Source/RomDsk/ROM_1024KB/LDNZT.COM
  39. BIN
      Source/RomDsk/ROM_1024KB/LDP2D.COM
  40. BIN
      Source/RomDsk/ROM_1024KB/ZDE.COM
  41. BIN
      Source/RomDsk/ROM_512KB/CLRDIR.COM
  42. BIN
      Source/RomDsk/ROM_512KB/LDDS.COM
  43. BIN
      Source/RomDsk/ROM_512KB/LDP2D.COM
  44. BIN
      Source/RomDsk/ROM_512KB/ZDE.COM
  45. 2
      Source/ZPM3/loader.asm
  46. 2
      Source/ZSDOS/Clock/Build.cmd
  47. BIN
      Source/ZSDOS/Clock/CLOCKS.DAT
  48. BIN
      Source/ZSDOS/Clock/LDDS.COM
  49. BIN
      Source/ZSDOS/Clock/LDNZT.COM
  50. BIN
      Source/ZSDOS/Clock/LDP2D.COM
  51. 24
      Source/ZSDOS/Clock/ReadMe.txt
  52. 2
      Source/ZSDOS/Clock/preclock.lib
  53. 20
      Source/ZSDOS/Clock/wbwclk.z80
  54. 2
      Source/ZSDOS/loader.asm
  55. 4
      Source/ver.inc
  56. 4
      Source/ver.lib

9
Doc/ChangeLog.txt

@ -1,3 +1,12 @@
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: 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
------------- -------------
- WBW: v2.9.2 -> 3.0 version upgrade due to scope of changes - WBW: v2.9.2 -> 3.0 version upgrade due to scope of changes

BIN
Doc/Contrib/SC126_How-To_No_1_Serial_Comms_Using_Minicom.pdf → Doc/Contrib/SC126_How-To_No_1_Serial_Comms_Using_Minicom_v.1.1.pdf

Binary file not shown.

BIN
Doc/Contrib/SC126_How-To_No_2_Preparing_an_SD_Card_for_Use_with_SC126_v1.5.2.pdf → Doc/Contrib/SC126_How-To_No_2_Preparing_an_SD_Card_for_Use_with_SC126_v1.5.3.pdf

Binary file not shown.

BIN
Doc/Contrib/SC126_How-To_No_3_Updating_RomWBW_Using_a_Hybrid_SD_Card_v1.1.pdf

Binary file not shown.

BIN
Doc/RomWBW Applications.pdf

Binary file not shown.

BIN
Doc/RomWBW Architecture.pdf

Binary file not shown.

BIN
Doc/RomWBW Getting Started.pdf

Binary file not shown.

16
ReadMe.md

@ -2,8 +2,8 @@
## Z80/Z180 System Software ## Z80/Z180 System Software
Version 3.0
Friday 27 March 2020
Version 3.0.1
Monday 30 March 2020
Wayne Warthen <wwarthen@gmail.com> Wayne Warthen <wwarthen@gmail.com>
@ -771,12 +771,7 @@ tracks. `CPMLDR.SYS` chain loads `CPM3.SYS`.
### Notes ### Notes
- `CLRDIR` is not working right under CP/M 3. It only partially clears
the disk sectors of the directory area. The extent of this issue has
not been evaluated, but it is not a RomWBW issue. To use CLRDIR, you
can temporarily boot back into Z-System.
- The `DATE` command cannot yet be used to set the RTC. The RTC is
- The `DATE` command cannot yet be used to **set** the RTC. The RTC is
used to read the current date/time for file stamping, etc. You can used to read the current date/time for file stamping, etc. You can
use the `RTC` app to set the RTC clock. use the `RTC` app to set the RTC clock.
@ -790,11 +785,6 @@ tracks of the disk.
### Notes ### Notes
- `CLRDIR` is not working right under ZPM3. It only partially clears
the disk sectors of the directory area. The extent of this issue has
not been evaluated, but it is not a RomWBW issue. To use CLRDIR, you
can temporarily boot back into Z-System.
- `ZPMLDR` is included with ZPM3, but it is not working correctly. - `ZPMLDR` is included with ZPM3, but it is not working correctly.
- The ZPM operating system is contained in the file called CPM3.SYS - The ZPM operating system is contained in the file called CPM3.SYS

14
ReadMe.txt

@ -2,8 +2,8 @@ RomWBW
Z80/Z180 System Software Z80/Z180 System Software
Version 3.0
Friday 27 March 2020
Version 3.0.1
Monday 30 March 2020
Wayne Warthen wwarthen@gmail.com Wayne Warthen wwarthen@gmail.com
@ -800,11 +800,6 @@ tracks. CPMLDR.SYS chain loads CPM3.SYS.
Notes Notes
- CLRDIR is not working right under CP/M 3. It only partially clears
the disk sectors of the directory area. The extent of this issue has
not been evaluated, but it is not a RomWBW issue. To use CLRDIR, you
can temporarily boot back into Z-System.
- The DATE command cannot yet be used to set the RTC. The RTC is used - The DATE command cannot yet be used to set the RTC. The RTC is used
to read the current date/time for file stamping, etc. You can use to read the current date/time for file stamping, etc. You can use
the RTC app to set the RTC clock. the RTC app to set the RTC clock.
@ -819,11 +814,6 @@ tracks of the disk.
Notes Notes
- CLRDIR is not working right under ZPM3. It only partially clears the
disk sectors of the directory area. The extent of this issue has not
been evaluated, but it is not a RomWBW issue. To use CLRDIR, you can
temporarily boot back into Z-System.
- ZPMLDR is included with ZPM3, but it is not working correctly. - ZPMLDR is included with ZPM3, but it is not working correctly.
- The ZPM operating system is contained in the file called CPM3.SYS - The ZPM operating system is contained in the file called CPM3.SYS

7
Source/Apps/Tune/Tune.asm

@ -38,6 +38,7 @@
; 2018-01-28 [WBW] Added support for MYM sound files ; 2018-01-28 [WBW] Added support for MYM sound files
; 2019-11-21 [WBW] Added table-driven configuration ; 2019-11-21 [WBW] Added table-driven configuration
; 2020-02-11 [WBW] Made hardware config & detection more flexible ; 2020-02-11 [WBW] Made hardware config & detection more flexible
; 2020-03-29 [WBW] Fix error in Z180 I/O W/S bracketing
;_______________________________________________________________________________ ;_______________________________________________________________________________
; ;
; ToDo: ; ToDo:
@ -124,8 +125,10 @@ PROBE:
LD C,A ; ... to C LD C,A ; ... to C
IN A,(C) ; Read back value in register 2 IN A,(C) ; Read back value in register 2
CP $AA ; Value as written? CP $AA ; Value as written?
JR Z,MAT ; Hardware matched!
PUSH AF ; Save AF
CALL NORMIO ; Back to normal I/O speeds CALL NORMIO ; Back to normal I/O speeds
POP AF ; Recover AF
JR Z,MAT ; Hardware matched!
JR CFGSEL ; And keep trying JR CFGSEL ; And keep trying
; ;
MAT: MAT:
@ -766,7 +769,7 @@ FILTYP .DB 0 ; Sound file type (TYPPT2, TYPPT3, TYPMYM)
TMP .DB 0 ; work around use of undocumented Z80 TMP .DB 0 ; work around use of undocumented Z80
; ;
MSGBAN .DB "Tune Player for RomWBW v2.4, 23-Mar-2020",0
MSGBAN .DB "Tune Player for RomWBW v2.5, 29-Mar-2020",0
MSGUSE .DB "Copyright (C) 2020, Wayne Warthen, GNU GPL v3",13,10 MSGUSE .DB "Copyright (C) 2020, Wayne Warthen, GNU GPL v3",13,10
.DB "PTxPlayer Copyright (C) 2004-2007 S.V.Bulba",13,10 .DB "PTxPlayer Copyright (C) 2004-2007 S.V.Bulba",13,10
.DB "MYMPlay by Marq/Lieves!Tuore",13,10,13,10 .DB "MYMPlay by Marq/Lieves!Tuore",13,10,13,10

11
Source/Apps/XM/xmdm125.asm

@ -2213,6 +2213,14 @@ ILLDU: CALL ERXIT
; ;
RCVRECD:XRA A ; Initialize error count to zero RCVRECD:XRA A ; Initialize error count to zero
STA ERRCT STA ERRCT
;
;WBW BEGIN: Be more patient waiting for host to start sending file
LDA FRSTIM ; WBW: Get first time flag
ORA A ; WBW: Set CPU flags
JNZ RCVRPT ; WBW: If not first time, bypass
MVI A,-10 ; WBW: Else increase error limit
STA ERRCT ; WBW: Save error new limit
;WBW END
; ;
RCVRPT: IF CONFUN ; Check for function key? RCVRPT: IF CONFUN ; Check for function key?
CALL FUNCHK ; Yeah, why not? CALL FUNCHK ; Yeah, why not?
@ -2224,7 +2232,8 @@ RCVRPT: IF CONFUN ; Check for function key?
JNZ RCVSABT ; If so, bail out now... JNZ RCVSABT ; If so, bail out now...
ENDIF ENDIF
; ;
MVI B,10-1 ; 10-second timeout
;MVI B,10-1 ; 10-second timeout
MVI B,5-1 ; WBW: 5-second timeout
CALL RECV ; Get any character received CALL RECV ; Get any character received
JC RCVSTOT ; Timeout JC RCVSTOT ; Timeout
; ;

14
Source/Apps/XM/xmhb.180

@ -243,7 +243,7 @@ EXTRA3:
; ;
BIOID DB 0 ; BIOS ID, 1=HBIOS, 2=UBIOS BIOID DB 0 ; BIOS ID, 1=HBIOS, 2=UBIOS
CPUSPD DB 10 ; CPU speed in MHz CPUSPD DB 10 ; CPU speed in MHz
RCVSCL DW 2800 ; RECV loop timeout scalar
RCVSCL DW 6600 ; RECV loop timeout scalar
; ;
RBC DB "RBC, 28-Aug-2019$" RBC DB "RBC, 28-Aug-2019$"
; ;
@ -302,6 +302,9 @@ U_JPTBL:
; UART initialization ; UART initialization
; ;
U_INIT: U_INIT:
LD HL,13000 ; Receive loop timeout scalar
LD (RCVSCL),HL ; ... for UART RCVRDY timing
;
LD HL,U_JPTBL LD HL,U_JPTBL
LD DE,U_LBL LD DE,U_LBL
JP MINIT_RET JP MINIT_RET
@ -429,6 +432,9 @@ A_JPTBL:
; ASCI initialization ; ASCI initialization
; ;
A_INIT: A_INIT:
LD HL,7500 ; Receive loop timeout scalar
LD (RCVSCL),HL ; ... for ASCI RCVRDY timing
;
; Test for location of Z180 internal registers ; Test for location of Z180 internal registers
; and use appropriate I/O address. ; and use appropriate I/O address.
LD B,0 ; set MSB for 16 bit I/O LD B,0 ; set MSB for 16 bit I/O
@ -601,6 +607,9 @@ S_JPTBL:
; SIO initialization ; SIO initialization
; ;
S_INIT: S_INIT:
LD HL,12000 ; Receive loop timeout scalar
LD (RCVSCL),HL ; ... for UART RCVRDY timing
;
; Suppress interrupts ; Suppress interrupts
LD A,01H ; WR1 LD A,01H ; WR1
OUT (S_CTLP),A ; Select WR1 OUT (S_CTLP),A ; Select WR1
@ -841,6 +850,9 @@ UF_JPTBL:
; USB-FIFO initialization ; USB-FIFO initialization
; ;
UF_INIT: UF_INIT:
LD HL,12000 ; Receive loop timeout scalar
LD (RCVSCL),HL ; ... for UART RCVRDY timing
;
LD HL,UF_JPTBL LD HL,UF_JPTBL
LD DE,UF_LBL LD DE,UF_LBL
JP MINIT_RET JP MINIT_RET

2
Source/CPM22/loader.asm

@ -207,7 +207,7 @@ PR_SIG .DB $5A,$A5 ; SIGNATURE GOES HERE
PR_WP .DB 0 ; (1) WRITE PROTECT BOOLEAN PR_WP .DB 0 ; (1) WRITE PROTECT BOOLEAN
PR_UPDSEQ .DW 0 ; (2) PREFIX UPDATE SEQUENCE NUMBER (DEPRECATED?) PR_UPDSEQ .DW 0 ; (2) PREFIX UPDATE SEQUENCE NUMBER (DEPRECATED?)
PR_VER .DB RMJ,RMN,RUP,RTP ; (4) OS BUILD VERSION PR_VER .DB RMJ,RMN,RUP,RTP ; (4) OS BUILD VERSION
PR_LABEL .DB "Unlabeled Drive ","$" ; (17) DISK LABEL (EXACTLY 16 BYTES!!!)
PR_LABEL .DB "Unlabeled$$$$$$$","$" ; (17) DISK LABEL (EXACTLY 16 BYTES!!!)
.DW 0 ; (2) DEPRECATED .DW 0 ; (2) DEPRECATED
PR_LDLOC .DW SYS_LOC ; (2) ADDRESS TO START LOADING SYSTEM PR_LDLOC .DW SYS_LOC ; (2) ADDRESS TO START LOADING SYSTEM
PR_LDEND .DW SYS_END ; (2) ADDRESS TO STOP LOADING SYSTEM PR_LDEND .DW SYS_END ; (2) ADDRESS TO STOP LOADING SYSTEM

8
Source/CPM3/biosldr.z80

@ -162,12 +162,12 @@ const:
ld a,82H ld a,82H
halt halt
conin: conin:
ld bc,0000H ; unit 0, func 0 = CIN
ld bc,0080H ; unit 80h (console), func 0 = CIN
call 0FFF0H call 0FFF0H
conout: conout:
ld e,c ; output character in E ld e,c ; output character in E
ld bc,0100H ; unit 0, func 1 = COUT
ld bc,0180H ; unit 80h (console), func 1 = COUT
;rst 08 ; do it ;rst 08 ; do it
call 0FFF0H call 0FFF0H
ret ; return ret ; return
@ -310,7 +310,7 @@ xmove:
cin: cin:
; input character from console via hbios ; input character from console via hbios
ld c,0D0H ; console unit to c
ld c,080H ; console unit to c
ld b,00H ; hbios func: input char ld b,00H ; hbios func: input char
call 0FFF0H ; hbios reads character call 0FFF0H ; hbios reads character
ld a,e ; move character to a for return ld a,e ; move character to a for return
@ -319,7 +319,7 @@ cin:
cout: cout:
; output character to console via hbios ; output character to console via hbios
ld e,a ; output char to e ld e,a ; output char to e
ld c,0D0H ; console unit to c
ld c,080H ; console unit to c
ld b,01H ; hbios func: output char ld b,01H ; hbios func: output char
call 0FFF0H ; hbios outputs character call 0FFF0H ; hbios outputs character
ret ret

10
Source/CPM3/boot.z80

@ -13,6 +13,7 @@
extrn @dtbl,@ctbl extrn @dtbl,@ctbl
extrn @date,@hour,@min,@sec extrn @date,@hour,@min,@sec
extrn @srch1 extrn @srch1
extrn @hbbio
extrn addhla, bcd2bin, bin2bcd extrn addhla, bcd2bin, bin2bcd
extrn cout, phex8, phex16, crlf, crlf2 extrn cout, phex8, phex16, crlf, crlf2
@ -73,7 +74,8 @@ init$2:
cinit: cinit:
; Setup CON: I/O vector based on HBIOS console device ; Setup CON: I/O vector based on HBIOS console device
ld b,0FAh ; HBIOS Peek Function ld b,0FAh ; HBIOS Peek Function
ld d,0 ; Bank 0 has HCB
ld a,(@hbbio) ; HBIOS bank id
ld d,a ; ... goes in D
ld hl,112h ; Offset 112h is current console device ld hl,112h ; Offset 112h is current console device
rst 08 ; Call HBIOS, value in E rst 08 ; Call HBIOS, value in E
push de ; save console unit value push de ; save console unit value
@ -94,16 +96,19 @@ cinit$1:
rst 08 ; do it, count in E rst 08 ; do it, count in E
ld a,e ; device count to accum ld a,e ; device count to accum
pop de ; recover console unit num to E pop de ; recover console unit num to E
push af ; save device count
cp 2 ; check for 2+ char devices cp 2 ; check for 2+ char devices
jr c,cinit$3 ; if not, skip aux assignment jr c,cinit$3 ; if not, skip aux assignment
ld a,e ; console unit num to A
or a ; check for zero or a ; check for zero
ld hl,4000h ; assume aux on second char device ld hl,4000h ; assume aux on second char device
jr nz,cinit$2 ; if console on unit 0, assumption good
jr z,cinit$2 ; if console on unit 0, assumption good
ld hl,8000h ; otherwise, aux goes to first char device ld hl,8000h ; otherwise, aux goes to first char device
cinit$2: cinit$2:
ld (@aivec),hl ; assign to aux input ld (@aivec),hl ; assign to aux input
ld (@aovec),hl ; assign to aux output ld (@aovec),hl ; assign to aux output
cinit$3: cinit$3:
pop af ; recover device count
; Truncate char table based on actual num of char devices ; Truncate char table based on actual num of char devices
rlca ; A still has char device count rlca ; A still has char device count
rlca ; * 8 for ctbl entry size rlca ; * 8 for ctbl entry size
@ -490,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)

2
Source/CPM3/loader.asm

@ -207,7 +207,7 @@ PR_SIG .DB $5A,$A5 ; SIGNATURE GOES HERE
PR_WP .DB 0 ; (1) WRITE PROTECT BOOLEAN PR_WP .DB 0 ; (1) WRITE PROTECT BOOLEAN
PR_UPDSEQ .DW 0 ; (2) PREFIX UPDATE SEQUENCE NUMBER (DEPRECATED?) PR_UPDSEQ .DW 0 ; (2) PREFIX UPDATE SEQUENCE NUMBER (DEPRECATED?)
PR_VER .DB RMJ,RMN,RUP,RTP ; (4) OS BUILD VERSION PR_VER .DB RMJ,RMN,RUP,RTP ; (4) OS BUILD VERSION
PR_LABEL .DB "Unlabeled Drive ","$" ; (17) DISK LABEL (EXACTLY 16 BYTES!!!)
PR_LABEL .DB "Unlabeled$$$$$$$","$" ; (17) DISK LABEL (EXACTLY 16 BYTES!!!)
.DW 0 ; (2) DEPRECATED .DW 0 ; (2) DEPRECATED
PR_LDLOC .DW SYS_LOC ; (2) ADDRESS TO START LOADING SYSTEM PR_LDLOC .DW SYS_LOC ; (2) ADDRESS TO START LOADING SYSTEM
PR_LDEND .DW SYS_END ; (2) ADDRESS TO STOP LOADING SYSTEM PR_LDEND .DW SYS_END ; (2) ADDRESS TO STOP LOADING SYSTEM

2
Source/Doc/Common.inc

@ -1,4 +1,4 @@
!def(ver)(3.0)
!def(ver)(3.0.1)
!def(date)(!mdate) !def(date)(!mdate)
!def(product)(RomWBW) !def(product)(RomWBW)
!def(author)(Wayne Warthen) !def(author)(Wayne Warthen)

12
Source/Doc/GettingStarted.md

@ -819,12 +819,7 @@ system tracks. `CPMLDR.SYS` chain loads `CPM3.SYS`.
### Notes ### Notes
- `CLRDIR` is not working right under CP/M 3. It only partially clears
the disk sectors of the directory area. The extent of this issue
has not been evaluated, but it is not a RomWBW issue. To use CLRDIR,
you can temporarily boot back into Z-System.
- The `DATE` command cannot yet be used to set the RTC. The RTC is
- The `DATE` command cannot yet be used to **set** the RTC. The RTC is
used to read the current date/time for file stamping, etc. You can used to read the current date/time for file stamping, etc. You can
use the `RTC` app to set the RTC clock. use the `RTC` app to set the RTC clock.
@ -839,11 +834,6 @@ tracks of the disk.
### Notes ### Notes
- `CLRDIR` is not working right under ZPM3. It only partially clears
the disk sectors of the directory area. The extent of this issue
has not been evaluated, but it is not a RomWBW issue. To use CLRDIR,
you can temporarily boot back into Z-System.
- `ZPMLDR` is included with ZPM3, but it is not working correctly. - `ZPMLDR` is included with ZPM3, but it is not working correctly.
- The ZPM operating system is contained in the file called CPM3.SYS - The ZPM operating system is contained in the file called CPM3.SYS

4
Source/HBIOS/Config/N8_std.asm

@ -25,8 +25,8 @@
#include "cfg_n8.asm" #include "cfg_n8.asm"
; ;
Z180_CLKDIV .SET 1 ; Z180: CHK DIV: 0=OSC/2, 1=OSC, 2=OSC*2 Z180_CLKDIV .SET 1 ; Z180: CHK DIV: 0=OSC/2, 1=OSC, 2=OSC*2
Z180_MEMWAIT .SET 1 ; Z180: MEMORY WAIT STATES (0-3)
Z180_IOWAIT .SET 3 ; Z180: I/O WAIT STATES TO ADD ABOVE 1 W/S BUILT-IN (0-3)
Z180_MEMWAIT .SET 0 ; Z180: MEMORY WAIT STATES (0-3)
Z180_IOWAIT .SET 1 ; Z180: I/O WAIT STATES TO ADD ABOVE 1 W/S BUILT-IN (0-3)
; ;
CRTACT .SET FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP CRTACT .SET FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP
; ;

4
Source/HBIOS/cfg_n8.asm

@ -34,8 +34,8 @@ RAMBIAS .EQU 0 ; OFFSET OF START OF RAM IN PHYSICAL ADDRESS SPACE
; ;
Z180_BASE .EQU $40 ; Z180: I/O BASE ADDRESS FOR INTERNAL REGISTERS Z180_BASE .EQU $40 ; Z180: I/O BASE ADDRESS FOR INTERNAL REGISTERS
Z180_CLKDIV .EQU 1 ; Z180: CHK DIV: 0=OSC/2, 1=OSC, 2=OSC*2 Z180_CLKDIV .EQU 1 ; Z180: CHK DIV: 0=OSC/2, 1=OSC, 2=OSC*2
Z180_MEMWAIT .EQU 1 ; Z180: MEMORY WAIT STATES (0-3)
Z180_IOWAIT .EQU 3 ; Z180: I/O WAIT STATES TO ADD ABOVE 1 W/S BUILT-IN (0-3)
Z180_MEMWAIT .EQU 0 ; Z180: MEMORY WAIT STATES (0-3)
Z180_IOWAIT .EQU 1 ; Z180: I/O WAIT STATES TO ADD ABOVE 1 W/S BUILT-IN (0-3)
; ;
N8_PPI0 .EQU $80 ; N8: FIRST PARALLEL PORT REGISTERS BASE ADR N8_PPI0 .EQU $80 ; N8: FIRST PARALLEL PORT REGISTERS BASE ADR
N8_PPI1 .EQU $84 ; N8: SECOND PARALLEL PORT REGISTERS BASE ADR N8_PPI1 .EQU $84 ; N8: SECOND PARALLEL PORT REGISTERS BASE ADR

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

68
Source/HBIOS/tms.asm

@ -51,11 +51,11 @@ TERMENABLE .SET TRUE ; INCLUDE TERMINAL PSEUDODEVICE DRIVER
; IF YOU SEE SCREEN CORRUPTION, ADJUST THIS!!! ; IF YOU SEE SCREEN CORRUPTION, ADJUST THIS!!!
; ;
#IF (TMSMODE == TMSMODE_N8) #IF (TMSMODE == TMSMODE_N8)
; BELOW WAS TUNED FOR N8 AT 18MHZ WITH 3 IO WAIT STATES
#DEFINE TMS_IODELAY NOP \ NOP \ NOP \ NOP \ NOP \ NOP \ NOP \ NOP
; BELOW WAS TUNED FOR N8 AT 18MHZ
#DEFINE TMS_IODELAY EX (SP),HL \ EX (SP),HL ; 38 W/S
#ELSE #ELSE
; BELOW WAS TUNED FOR SBC AT 8MHZ ; BELOW WAS TUNED FOR SBC AT 8MHZ
#DEFINE TMS_IODELAY NOP \ NOP
#DEFINE TMS_IODELAY NOP \ NOP ; 8 W/S
#ENDIF #ENDIF
; ;
;====================================================================== ;======================================================================
@ -63,6 +63,10 @@ TERMENABLE .SET TRUE ; INCLUDE TERMINAL PSEUDODEVICE DRIVER
;====================================================================== ;======================================================================
; ;
TMS_INIT: TMS_INIT:
#IF (CPUFAM == CPU_Z180)
CALL TMS_Z180IO
#ENDIF
;
#IF (TMSMODE == TMSMODE_SCG) #IF (TMSMODE == TMSMODE_SCG)
LD A,$FF LD A,$FF
OUT (TMS_ACR),A ; INIT AUX CONTROL REG OUT (TMS_ACR),A ; INIT AUX CONTROL REG
@ -85,7 +89,7 @@ TMS_INIT:
TMS_INIT1: TMS_INIT1:
CALL TMS_CRTINIT ; SETUP THE TMS CHIP REGISTERS CALL TMS_CRTINIT ; SETUP THE TMS CHIP REGISTERS
CALL TMS_LOADFONT ; LOAD FONT DATA FROM ROM TO TMS STRORAGE CALL TMS_LOADFONT ; LOAD FONT DATA FROM ROM TO TMS STRORAGE
CALL TMS_VDARES
CALL TMS_VDARES1
#IF (TMSMODE == TMSMODE_N8) #IF (TMSMODE == TMSMODE_N8)
CALL PPK_INIT ; INITIALIZE KEYBOARD DRIVER CALL PPK_INIT ; INITIALIZE KEYBOARD DRIVER
#ENDIF #ENDIF
@ -150,6 +154,10 @@ TMS_VDAQRY:
RET RET
TMS_VDARES: TMS_VDARES:
#IF (CPUFAM == CPU_Z180)
CALL TMS_Z180IO
#ENDIF
TMS_VDARES1: ; ENTRY POINT TO AVOID TMS_Z180IO RECURSION
LD DE,0 ; ROW = 0, COL = 0 LD DE,0 ; ROW = 0, COL = 0
CALL TMS_XY ; SEND CURSOR TO TOP LEFT CALL TMS_XY ; SEND CURSOR TO TOP LEFT
LD A,' ' ; BLANK THE SCREEN LD A,' ' ; BLANK THE SCREEN
@ -175,6 +183,9 @@ TMS_VDASCS:
CALL PANIC ; NOT IMPLEMENTED (YET) CALL PANIC ; NOT IMPLEMENTED (YET)
TMS_VDASCP: TMS_VDASCP:
#IF (CPUFAM == CPU_Z180)
CALL TMS_Z180IO
#ENDIF
CALL TMS_CLRCUR CALL TMS_CLRCUR
CALL TMS_XY ; SET CURSOR POSITION CALL TMS_XY ; SET CURSOR POSITION
CALL TMS_SETCUR CALL TMS_SETCUR
@ -190,6 +201,9 @@ TMS_VDASCO:
RET RET
TMS_VDAWRC: TMS_VDAWRC:
#IF (CPUFAM == CPU_Z180)
CALL TMS_Z180IO
#ENDIF
CALL TMS_CLRCUR ; CURSOR OFF CALL TMS_CLRCUR ; CURSOR OFF
LD A,E ; CHARACTER TO WRITE GOES IN A LD A,E ; CHARACTER TO WRITE GOES IN A
CALL TMS_PUTCHAR ; PUT IT ON THE SCREEN CALL TMS_PUTCHAR ; PUT IT ON THE SCREEN
@ -198,6 +212,9 @@ TMS_VDAWRC:
RET RET
TMS_VDAFIL: TMS_VDAFIL:
#IF (CPUFAM == CPU_Z180)
CALL TMS_Z180IO
#ENDIF
CALL TMS_CLRCUR CALL TMS_CLRCUR
LD A,E ; FILL CHARACTER GOES IN A LD A,E ; FILL CHARACTER GOES IN A
EX DE,HL ; FILL LENGTH GOES IN DE EX DE,HL ; FILL LENGTH GOES IN DE
@ -207,6 +224,9 @@ TMS_VDAFIL:
RET RET
TMS_VDACPY: TMS_VDACPY:
#IF (CPUFAM == CPU_Z180)
CALL TMS_Z180IO
#ENDIF
CALL TMS_CLRCUR CALL TMS_CLRCUR
; LENGTH IN HL, SOURCE ROW/COL IN DE, DEST IS TMS_POS ; LENGTH IN HL, SOURCE ROW/COL IN DE, DEST IS TMS_POS
; BLKCPY USES: HL=SOURCE, DE=DEST, BC=COUNT ; BLKCPY USES: HL=SOURCE, DE=DEST, BC=COUNT
@ -220,6 +240,9 @@ TMS_VDACPY:
RET RET
TMS_VDASCR: TMS_VDASCR:
#IF (CPUFAM == CPU_Z180)
CALL TMS_Z180IO
#ENDIF
CALL TMS_CLRCUR CALL TMS_CLRCUR
TMS_VDASCR0: TMS_VDASCR0:
LD A,E ; LOAD E INTO A LD A,E ; LOAD E INTO A
@ -689,6 +712,39 @@ TMS_BLKCPY3:
; ;
RET RET
; ;
;----------------------------------------------------------------------
; Z180 LOW SPEED I/O CODE BRACKETING
;----------------------------------------------------------------------
;
#IF (CPUFAM == CPU_Z180)
;
TMS_Z180IO:
; HOOK CALLERS RETURN TO RESTORE DCNTL
EX (SP),HL ; SAVE HL & HL := RET ADR
LD (TMS_Z180IOR),HL ; SET RET ADR
LD HL,TMS_Z180IOX ; HL := SPECIAL RETURN ADR
EX (SP),HL ; RESTORE HL, INS NEW RET ADR
; SET Z180 MAX I/O WAIT STATES
PUSH AF ; SAVE AF
IN0 A,(Z180_DCNTL) ; GET CURRENT Z180 DCNTL
LD (TMS_DCNTL),A ; SAVE IT
OR %00110000 ; NEW DCNTL VALUE (MAX I/O W/S)
OUT0 (Z180_DCNTL),A ; IMPLEMENT IT
POP AF ; RESTORE AF
; BACK TO CALLER
TMS_Z180IOR .EQU $+1
JP $0000 ; BACK TO CALLER
;
TMS_Z180IOX:
; RESTORE ORIGINAL DCNTL
PUSH AF ; SAVE AF
LD A,(TMS_DCNTL) ; ORIG DCNTL
OUT0 (Z180_DCNTL),A ; IMPLEMENT IT
POP AF ; RESTORE AF
RET ; DONE
;
#ENDIF
;
;================================================================================================== ;==================================================================================================
; TMS DRIVER - DATA ; TMS DRIVER - DATA
;================================================================================================== ;==================================================================================================
@ -751,6 +807,10 @@ TMS_INIT9918:
; ;
TMS_INIT9918LEN .EQU $ - TMS_INIT9918 TMS_INIT9918LEN .EQU $ - TMS_INIT9918
; ;
#IF (CPUFAM == CPU_Z180)
TMS_DCNTL .DB $00 ; SAVE Z180 DCNTL AS NEEDED
#ENDIF
;
;================================================================================================== ;==================================================================================================
; TMS DRIVER - INSTANCE DATA ; TMS DRIVER - INSTANCE DATA
;================================================================================================== ;==================================================================================================

BIN
Source/Images/Common/CLRDIR.COM

Binary file not shown.

BIN
Source/Images/Common/ZDE.COM

Binary file not shown.

BIN
Source/Images/d_bp/u0/LDDS.COM

Binary file not shown.

BIN
Source/Images/d_bp/u0/LDNZT.COM

Binary file not shown.

BIN
Source/Images/d_bp/u0/LDP2D.COM

Binary file not shown.

BIN
Source/Images/d_bp/u0/SUBMIT.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/Images/d_zsdos/u0/CLOCKS.DAT

Binary file not shown.

BIN
Source/Images/d_zsdos/u0/LDDS.COM

Binary file not shown.

BIN
Source/Images/d_zsdos/u0/LDNZT.COM

Binary file not shown.

BIN
Source/Images/d_zsdos/u0/LDP2D.COM

Binary file not shown.

BIN
Source/RomDsk/ROM_1024KB/CLOCKS.DAT

Binary file not shown.

BIN
Source/RomDsk/ROM_1024KB/CLRDIR.COM

Binary file not shown.

BIN
Source/RomDsk/ROM_1024KB/LDDS.COM

Binary file not shown.

BIN
Source/RomDsk/ROM_1024KB/LDNZT.COM

Binary file not shown.

BIN
Source/RomDsk/ROM_1024KB/LDP2D.COM

Binary file not shown.

BIN
Source/RomDsk/ROM_1024KB/ZDE.COM

Binary file not shown.

BIN
Source/RomDsk/ROM_512KB/CLRDIR.COM

Binary file not shown.

BIN
Source/RomDsk/ROM_512KB/LDDS.COM

Binary file not shown.

BIN
Source/RomDsk/ROM_512KB/LDP2D.COM

Binary file not shown.

BIN
Source/RomDsk/ROM_512KB/ZDE.COM

Binary file not shown.

2
Source/ZPM3/loader.asm

@ -207,7 +207,7 @@ PR_SIG .DB $5A,$A5 ; SIGNATURE GOES HERE
PR_WP .DB 0 ; (1) WRITE PROTECT BOOLEAN PR_WP .DB 0 ; (1) WRITE PROTECT BOOLEAN
PR_UPDSEQ .DW 0 ; (2) PREFIX UPDATE SEQUENCE NUMBER (DEPRECATED?) PR_UPDSEQ .DW 0 ; (2) PREFIX UPDATE SEQUENCE NUMBER (DEPRECATED?)
PR_VER .DB RMJ,RMN,RUP,RTP ; (4) OS BUILD VERSION PR_VER .DB RMJ,RMN,RUP,RTP ; (4) OS BUILD VERSION
PR_LABEL .DB "Unlabeled Drive ","$" ; (17) DISK LABEL (EXACTLY 16 BYTES!!!)
PR_LABEL .DB "Unlabeled$$$$$$$","$" ; (17) DISK LABEL (EXACTLY 16 BYTES!!!)
.DW 0 ; (2) DEPRECATED .DW 0 ; (2) DEPRECATED
PR_LDLOC .DW SYS_LOC ; (2) ADDRESS TO START LOADING SYSTEM PR_LDLOC .DW SYS_LOC ; (2) ADDRESS TO START LOADING SYSTEM
PR_LDEND .DW SYS_END ; (2) ADDRESS TO STOP LOADING SYSTEM PR_LDEND .DW SYS_END ; (2) ADDRESS TO STOP LOADING SYSTEM

2
Source/ZSDOS/Clock/Build.cmd

@ -11,4 +11,4 @@ set ZXBINDIR=%TOOLS%/cpm/bin/
set ZXLIBDIR=%TOOLS%/cpm/lib/ set ZXLIBDIR=%TOOLS%/cpm/lib/
set ZXINCDIR=%TOOLS%/cpm/include/ set ZXINCDIR=%TOOLS%/cpm/include/
zx ZMAC -HBCLK -/P
zx ZMAC -WBWCLK -/P

BIN
Source/ZSDOS/Clock/CLOCKS.DAT

Binary file not shown.

BIN
Source/ZSDOS/Clock/LDDS.COM

Binary file not shown.

BIN
Source/ZSDOS/Clock/LDNZT.COM

Binary file not shown.

BIN
Source/ZSDOS/Clock/LDP2D.COM

Binary file not shown.

24
Source/ZSDOS/Clock/ReadMe.txt

@ -1,9 +1,23 @@
This directory contains the source and assembled versions of the ZSystem Clock Drivers for N8VEM HBIOS.
This directory contains the source and assembled versions of the
ZSystem Clock Drivers for RomWBW HBIOS.
The hbclk.z80 source file can be compiled using Build.cmd which will produce a relocatable binary (hbclk.rel).
The wbwclk.z80 source file can be compiled using Build.cmd which will
produce a relocatable binary (hbclk.rel).
The relocatable binary should be added/updated in the stamps.dat libary. The stamps.dat file is just a standard LU type library and is easily updated using NULU. The members are the relocatable binaries, but with the .REL extension removed.
The relocatable binary should be added/updated in the STAMPS.DAT
library. The STAMPS.DAT file is just a standard LU type library and
is easily updated using NULU. The members are the relocatable
binaries, but with the .REL extension removed.
SETUPZST is used to create runnable executable (.COM) files. An executable has been created for DateStamper (LDDS.COM) and P2DOS (LDP2D.COM). The executables are all configured for operation as an RSX (resident system extension).
SETUPZST is used to create runnable executable (.COM) files. An
executable has been created for DateStamper (LDDS.COM), P2DOS
(LDP2D.COM), and NZTime (LDNZT.COM) . The executables are all
configured for operation as an RSX (resident system extension).
The STAMPS.DAT file here is a version that I cobbled together. Using the STAMPS.DAT file included in the ZSDOS distribution results in a load file that does not work. It claims to load, but is not present. I found a "fixed" version of STAMPS.DAT on the Walnut Creek CD-ROM which works, but was missing the NZ and NZP2 stamp variants. So, I added those variants to the working version of STAMPS.DAT which is included here.
The STAMPS.DAT file here is a version that I cobbled together. Using
the STAMPS.DAT file included in the ZSDOS distribution results in a
load file that does not work. It claims to load, but is not
present. I found a "fixed" version of STAMPS.DAT on the Walnut Creek
CD-ROM which works, but was missing the NZ and NZP2 stamp variants.
So, I added those variants to the working version of STAMPS.DAT which
is included here.

2
Source/ZSDOS/Clock/preclock.lib

@ -10,6 +10,8 @@ TSTRD: JR TSTRD0 ; Jump around address store
TSTRD0: LD (CKCLK+1),DE ; Patch GETTIM address in TSTRD0: LD (CKCLK+1),DE ; Patch GETTIM address in
CALL CKCLK ; Get time to start with CALL CKCLK ; Get time to start with
DEC A ; WBW: 1 -> 0
JR NZ,BAD ; WBW: NO GOOD
LD A,(HL) ; Get seconds LD A,(HL) ; Get seconds
CP 60H ; Check for valid digit CP 60H ; Check for valid digit
JR NC,BAD ; >= 60h JR NC,BAD ; >= 60h

20
Source/ZSDOS/Clock/hbclk.z80 → Source/ZSDOS/Clock/wbwclk.z80

@ -1,15 +1,15 @@
TITLE "N8VEM HBIOS Clock Interface"
TITLE "ROMWBW HBIOS Clock Interface"
SUBTTL "Description of Clock Module" SUBTTL "Description of Clock Module"
;=================================================================== ;===================================================================
; HBCLK.Z80
; HBIOS Clock driver for N8VEM Z80 Series Computer
; WBWCLK.Z80
; HBIOS Clock driver for RomWBW System Software
; Wayne Warthen ; Wayne Warthen
; Version: 18 Apr 2014
; Version: 31 Mar 2020
;=================================================================== ;===================================================================
VERS EQU 10
VERS EQU 11
.Z80 .Z80
NAME HBIOS
NAME WBWCLK
MACLIB CLOCK.LIB MACLIB CLOCK.LIB
@ -17,10 +17,10 @@ VERS EQU 10
DESCST: DEFW 0 ; Pointer to static year value if required DESCST: DEFW 0 ; Pointer to static year value if required
CLKNAM: DEFB 'N8VEM HBIOS Clock ' ; Exactly 24 chars in name
CLKNAM: DEFB 'RomWBW HBIOS Clock ' ; Exactly 24 chars in name
DEFB VERS/10+'0','.',VERS MOD 10 +'0',0 DEFB VERS/10+'0','.',VERS MOD 10 +'0',0
DESCR: DEFB 'N8VEM Z80 Series HBIOS Clock',0
DESCR: DEFB 'RomWBW Series HBIOS Clock',0
IF [$-DESCST] > 256 IF [$-DESCST] > 256
OVER2 OVER2
@ -55,9 +55,9 @@ GETTIM: PUSH HL ; Save final buffer pointer
LD HL,TIMBUF ; Point to temp buf for HBIOS read LD HL,TIMBUF ; Point to temp buf for HBIOS read
LD B,20H ; HBIOS Read Clock function = $20 LD B,20H ; HBIOS Read Clock function = $20
RST 08 ; Call HBIOS to get time RST 08 ; Call HBIOS to get time
JR NZ,ERRRET ; Error return
LD HL,TIMBUF ; Source is start of temp buf LD HL,TIMBUF ; Source is start of temp buf
POP DE ; Destination is buffer provided originally POP DE ; Destination is buffer provided originally
JR NZ,ERRRET ; Error return
LD BC,5 ; Copy just the first 5 bytes LD BC,5 ; Copy just the first 5 bytes
LDIR ; Do it LDIR ; Do it
LD A,(DE) ; Save the original seconds value LD A,(DE) ; Save the original seconds value
@ -80,7 +80,7 @@ WRCLK: LD DE,TIMBUF ; Copy to temp buf
LD A,1 ; Signal success LD A,1 ; Signal success
RET ; Done RET ; Done
; ;
ERRRET: XOR A ; Error
ERRRET: OR 0FFH ; Error
RET ; Done RET ; Done
; ;
TIMBUF DEFS 6 ; Temp date/time buffer TIMBUF DEFS 6 ; Temp date/time buffer

2
Source/ZSDOS/loader.asm

@ -207,7 +207,7 @@ PR_SIG .DB $5A,$A5 ; SIGNATURE GOES HERE
PR_WP .DB 0 ; (1) WRITE PROTECT BOOLEAN PR_WP .DB 0 ; (1) WRITE PROTECT BOOLEAN
PR_UPDSEQ .DW 0 ; (2) PREFIX UPDATE SEQUENCE NUMBER (DEPRECATED?) PR_UPDSEQ .DW 0 ; (2) PREFIX UPDATE SEQUENCE NUMBER (DEPRECATED?)
PR_VER .DB RMJ,RMN,RUP,RTP ; (4) OS BUILD VERSION PR_VER .DB RMJ,RMN,RUP,RTP ; (4) OS BUILD VERSION
PR_LABEL .DB "Unlabeled Drive ","$" ; (17) DISK LABEL (EXACTLY 16 BYTES!!!)
PR_LABEL .DB "Unlabeled$$$$$$$","$" ; (17) DISK LABEL (EXACTLY 16 BYTES!!!)
.DW 0 ; (2) DEPRECATED .DW 0 ; (2) DEPRECATED
PR_LDLOC .DW SYS_LOC ; (2) ADDRESS TO START LOADING SYSTEM PR_LDLOC .DW SYS_LOC ; (2) ADDRESS TO START LOADING SYSTEM
PR_LDEND .DW SYS_END ; (2) ADDRESS TO STOP LOADING SYSTEM PR_LDEND .DW SYS_END ; (2) ADDRESS TO STOP LOADING SYSTEM

4
Source/ver.inc

@ -1,5 +1,5 @@
#DEFINE RMJ 3 #DEFINE RMJ 3
#DEFINE RMN 0 #DEFINE RMN 0
#DEFINE RUP 0
#DEFINE RUP 1
#DEFINE RTP 0 #DEFINE RTP 0
#DEFINE BIOSVER "3.0"
#DEFINE BIOSVER "3.0.1"

4
Source/ver.lib

@ -1,7 +1,7 @@
rmj equ 3 rmj equ 3
rmn equ 0 rmn equ 0
rup equ 0
rup equ 1
rtp equ 0 rtp equ 0
biosver macro biosver macro
db "3.0"
db "3.0.1"
endm endm

Loading…
Cancel
Save