This commit is contained in:
Wayne Warthen
2019-11-17 21:31:07 -08:00
parent dc6ecfd9e3
commit bd8d059f32
4 changed files with 46 additions and 13 deletions

View File

@@ -27,7 +27,6 @@
; ToDo:
; 1) Do something to prevent assigning slices when device does not support them
; 2) ASSIGN C: causes drive map to be reinstalled unnecessarily
; 3) Need to find a way to verify RomWBW under CP/M 3
;_______________________________________________________________________________
;
;===============================================================================
@@ -106,7 +105,6 @@ init:
ld (cpmver),hl ; save it
ld a,l ; low byte
cp $30 ; CP/M 3.0?
jp nc,initcpm3 ; handle CP/M 3.0 or greater
;
; get location of config data and verify integrity
ld hl,stamp ; HL := adr or RomWBW zero page stamp
@@ -146,6 +144,11 @@ init:
inc hl ; ... into DE to get
ld d,(hl) ; ... DPB map pointer
ld (dpbloc),de ; and save it
;
; test for CP/M 3 and branch if so
ld a,(cpmver) ; low byte of cpm version
cp $30 ; CP/M 3.0?
jp nc,initcpm3 ; handle CP/M 3.0 or greater
;
; make a local working copy of the drive map
ld hl,(maploc) ; copy from CBIOS drive map

View File

@@ -131,7 +131,7 @@ STPSIZ .EQU $ - STPIMG
;
; The following section contains key information and addresses for the
; RomWBW CBIOS. A pointer to the start of this section is stored with
; with the ZPX data in page zero at $44 (see above).
; with the CBX data in page zero at $44 (see above).
;
CBX:
DEVMAPADR .DW DEVMAP ; DEVICE MAP ADDRESS

View File

@@ -12,6 +12,8 @@
extrn dph0
extrn @dtbl,@ctbl
include ver.inc
bdos equ 5
if banked
@@ -25,14 +27,11 @@ tpa$bank equ 0
?init:
call ?mvinit
; Clear reserved area in page zero
xor a
ld hl,40h
ld b,10h
init$1:
ld (hl),a
inc hl
djnz init$1
; Install RomWBW CBIOS stamp in page zero
ld hl,stpimg
ld de,stploc
ld bc,stpsiz
ldir
if banked
@@ -382,12 +381,13 @@ read:
ld c,20
jp bdos
signon$msg db 13,10,'CP/M v3.0'
if banked
db ' [BANKED]'
endif
db ' for RomWBW HBIOS v2.9.2',13,10,13,10,0
db ' on HBIOS v'
biosver
db 13,10,13,10,0
ccp$msg db 13,10,'BIOS Err on '
ccp$msg$drv db '?'
@@ -401,4 +401,27 @@ fcb$nr db 0,0,0
@bootdu db 0
hdspv db 2 ; slices per volume for hard disks (must be >= 1)
; RomWBW CBIOS page zero stamp starts at $40
; $40-$41: Marker ('W', ~'W')
; $42-$43: Version bytes: major/minor, update/patch
; $44-$45: CBIOS Extension Info address
;
stploc equ 40h
stpimg db 'W',~'W' ; marker
db rmj << 4 | rmn ; first byte of version info
db rup << 4 | rtp ; second byte of version info
dw cbx ; address of cbios ext data
stpsiz equ $ - stpimg
;
; The following section contains key information and addresses for the
; RomWBW CBIOS. A pointer to the start of this section is stored with
; with the CBX data in page zero at $44 (see above).
;
cbx:
devmapadr dw 0 ; device map address
drvtbladr dw @dtbl ; drive map address (filled in later)
dphtbladr dw dph0 ; dpb map address
cbxsiz equ $ - cbx
;
end

7
Source/CPM3/ver.inc Normal file
View File

@@ -0,0 +1,7 @@
rmj equ 2
rmn equ 9
rup equ 2
rtp equ 0
biosver macro
db "2.9.2-pre.21"
endm