Browse Source

Resurrect BPBIOS Build

- Corrected to handle latest changes in RomWBW HBIOS bank layout.
pull/378/head
Wayne Warthen 2 years ago
parent
commit
a5de77438b
  1. 5
      Source/Apps/Build.cmd
  2. 4
      Source/BPBIOS/Build.cmd
  3. 4
      Source/BPBIOS/ZCPR33/Build.cmd
  4. 9
      Source/BPBIOS/deblock.z80
  5. 4
      Source/BPBIOS/def-ww-z33.lib
  6. 4
      Source/BPBIOS/def-ww-z33bnk.lib
  7. 4
      Source/BPBIOS/def-ww-z34.lib
  8. 4
      Source/BPBIOS/def-ww-z34bnk.lib
  9. 4
      Source/BPBIOS/def-ww-z41bnk.lib
  10. 1
      Source/BPBIOS/hard-ww.z80
  11. 13
      Source/BPBIOS/hbios.z80
  12. 11
      Source/BPBIOS/romwbw.lib
  13. 2
      Source/ver.inc
  14. 2
      Source/ver.lib

5
Source/Apps/Build.cmd

@ -1,13 +1,10 @@
@echo off
setlocal
set TOOLS=../../Tools
set TOOLS=..\..\Tools
set APPBIN=..\..\Binary\Apps
set PATH=%TOOLS%\tasm32;%TOOLS%\zxcc;%PATH%
set TASMTABS=%TOOLS%\tasm32
set CPMDIR80=%TOOLS%/cpm/
call :asm syscopy || exit /b

4
Source/BPBIOS/Build.cmd

@ -3,8 +3,8 @@ setlocal
pushd ZCPR33 && call Build || exit /b & popd
set PATH=%PATH%;..\..\Tools\zxcc;..\..\Tools\cpmtools;
set TOOLS=..\..\Tools
set PATH=%PATH%;%TOOLS%\zxcc;%TOOLS%\cpmtools;
set CPMDIR80=%TOOLS%/cpm/
call :makebp 33

4
Source/BPBIOS/ZCPR33/Build.cmd

@ -1,8 +1,8 @@
@echo off
setlocal
set PATH=%PATH%;..\..\..\Tools\zxcc;..\..\..\Tools\cpmtools;
set TOOLS=..\..\..\Tools
set PATH=%PATH%;%TOOLS%\zxcc;%TOOLS%\cpmtools;
set CPMDIR80=%TOOLS%/cpm/
copy ..\z3base.lib . || exit /b

9
Source/BPBIOS/deblock.z80

@ -268,10 +268,11 @@ MATCH: LD A,(SECMSK) ; Get the sector mask
;
; Modified to use HBIOS host buffer
;
; HSTBUF is always in HBIOS bank where I/O is done
LD A,(TPABNK) ; TPA BANK
DEC A ; HBIOS bank is one below
LD C,A
; HSTBUF is always in HBIOS bank where I/O is actually done
; We need to refer to HBIOS bank using BPBIOS bank id
LD A,(HB_BNKEND) ; Undo the bank adjustment
SUB 80h ; ... and refer to HBIOS bank id
LD C,A ; Set Read Source Bank
IF BANKED
LD A,(DMABNK) ; Set Read Destination Bank
ELSE

4
Source/BPBIOS/def-ww-z33.lib

@ -133,8 +133,8 @@ BNK1 EQU BID_COM ; Second TPA Bank (Common Bank) 48000H
BNK2 EQU BID_SYS ; System Bank (BIOS, DOS, CPR) 50000H
BNKU EQU 00H ; User Area Bank 58000H
; (set to 0 to disable)
BNK3 EQU BID_RAMD ; First Bank for RAM disk 60000H
BNKM EQU BID_RAMM ; Maximum Bank # F8000H
BNK3 EQU BID_BUF ; First Bank for RAM disk 60000H
BNKM EQU BID_BUF ; Maximum Bank # F8000H
IF NO ; REMOVE CODE - NOT NEEDED WITH HBIOS makes a
; nice resource for Z180 programing in general

4
Source/BPBIOS/def-ww-z33bnk.lib

@ -133,8 +133,8 @@ BNK1 EQU BID_COM ; Second TPA Bank (Common Bank) 48000H
BNK2 EQU BID_SYS ; System Bank (BIOS, DOS, CPR) 50000H
BNKU EQU 00H ; User Area Bank 58000H
; (set to 0 to disable)
BNK3 EQU BID_RAMD ; First Bank for RAM disk 60000H
BNKM EQU BID_RAMM ; Maximum Bank # F8000H
BNK3 EQU BID_BUF ; First Bank for RAM disk 60000H
BNKM EQU BID_BUF ; Maximum Bank # F8000H
IF NO ; REMOVE CODE - NOT NEEDED WITH HBIOS makes a
; nice resource for Z180 programing in general

4
Source/BPBIOS/def-ww-z34.lib

@ -133,8 +133,8 @@ BNK1 EQU BID_COM ; Second TPA Bank (Common Bank) 48000H
BNK2 EQU BID_SYS ; System Bank (BIOS, DOS, CPR) 50000H
BNKU EQU 00H ; User Area Bank 58000H
; (set to 0 to disable)
BNK3 EQU BID_RAMD ; First Bank for RAM disk 60000H
BNKM EQU BID_RAMM ; Maximum Bank # F8000H
BNK3 EQU BID_BUF ; First Bank for RAM disk 60000H
BNKM EQU BID_BUF ; Maximum Bank # F8000H
IF NO ; REMOVE CODE - NOT NEEDED WITH HBIOS makes a
; nice resource for Z180 programing in general

4
Source/BPBIOS/def-ww-z34bnk.lib

@ -133,8 +133,8 @@ BNK1 EQU BID_COM ; Second TPA Bank (Common Bank) 48000H
BNK2 EQU BID_SYS ; System Bank (BIOS, DOS, CPR) 50000H
BNKU EQU 00H ; User Area Bank 58000H
; (set to 0 to disable)
BNK3 EQU BID_RAMD ; First Bank for RAM disk 60000H
BNKM EQU BID_RAMM ; Maximum Bank # F8000H
BNK3 EQU BID_BUF ; First Bank for RAM disk 60000H
BNKM EQU BID_BUF ; Maximum Bank # F8000H
IF NO ; REMOVE CODE - NOT NEEDED WITH HBIOS makes a
; nice resource for Z180 programing in general

4
Source/BPBIOS/def-ww-z41bnk.lib

@ -133,8 +133,8 @@ BNK1 EQU BID_COM ; Second TPA Bank (Common Bank) 48000H
BNK2 EQU BID_SYS ; System Bank (BIOS, DOS, CPR) 50000H
BNKU EQU 00H ; User Area Bank 58000H
; (set to 0 to disable)
BNK3 EQU BID_RAMD ; First Bank for RAM disk 60000H
BNKM EQU BID_RAMM ; Maximum Bank # F8000H
BNK3 EQU BID_BUF ; First Bank for RAM disk 60000H
BNKM EQU BID_BUF ; Maximum Bank # F8000H
IF NO ; REMOVE CODE - NOT NEEDED WITH HBIOS makes a
; nice resource for Z180 programing in general

1
Source/BPBIOS/hard-ww.z80

@ -183,7 +183,6 @@ HDSK_RW1:
POP BC ; RESTORE INCOMING FUNCTION, DEVICE/UNIT
RET NZ ; ABORT IF SEEK RETURNED AN ERROR W/ ERROR IN A
LD HL,(HB_DSKBUF) ; GET BUFFER ADDRESS
;LD D,BID_HB ; BUFFER IN HBIOS BANK
LD A,(HB_BNKBIOS) ; BUFFER IN HBIOS BANK
LD D,A ; PUT IN D
LD E,1 ; ONE SECTOR

13
Source/BPBIOS/hbios.z80

@ -48,10 +48,12 @@ HBX_CPYLEN EQU 0FFE8H
; ------------ -------------- --------------
; -1: <COMMON> BID_COM 90h - 1 = 8Fh
; -2: TPABNK BID_USR 90h - 2 = 8Eh
; -3: <HBIOS> BID_BIOS 90h - 3 = 8Dh
; -4: SYSBNK BID_AUX 90h - 4 = 8Ch
; -9: BNKM BID_AUX-5 90h - 9 = 87h
; -16: RAMBNK RAMD0 90h - 16 = 80h
; -3: SYSBNK BID_SYS 90h - 3 = 8Dh
; -4: RAMBNK BID_BUF 90h - 4 = 8Ch
; -4: MAXBNK BID_BUF 90h - 4 = 8Ch
; -5: BID_RAMM 90h - 5 = 8BH
; -15: BID_RAMD 90h - 15 = 81h (varies w/ memory size)
; -16: BID_HB 90h - 16 = 80h (varies w/ memory size)
HB_SELMEM:
PUSH AF
@ -71,7 +73,8 @@ HB_SELMEM:
CALL HBX_INVOKE ; DO IT, D=BID_BIOS, E=BID_USER
LD A,D ; BID_BIOS
LD (HB_BNKBIOS),A ; SET HB_BNKBIOS
ADD A,3 ; HBIOS + 3
LD A,E ; BID_USER
ADD 2 ; ... + 2
LD (HB_BNKEND),A ; ... is the ending RAM bank
IF BANKED
LD (BNKADJ+1),A ; Dynamically update SELBNK

11
Source/BPBIOS/romwbw.lib

@ -48,7 +48,7 @@ DRV_P SET NO ; YES if system has flopy drives
;
; RAM/ROM Bank Reserve
;
HB_RAMRESV EQU 8 ; RAM reserve is 8 banks
HB_RAMRESV EQU 5 ; RAM reserve is 8 banks
HB_ROMRESV EQU 4 ; ROM reserve is 4 banks
;
; Layout of RAM banks
@ -56,10 +56,11 @@ HB_ROMRESV EQU 4 ; ROM reserve is 4 banks
; TODO: Query system via HBIOS API to determine the actual bank
; assignments, then adjust BPBIOS operation accordingly.
;
BID_RAMD EQU -16 ; 90h - 16 = 80h
BID_RAMM EQU -9 ; 90h - 9 = 87h
BID_SYS EQU -4 ; 90h - 4 = 8Ch
BID_HB EQU -3 ; 90h - 3 = 8Dh
BID_HB EQU -16 ; 90h - 16 = 80h
BID_RAMD EQU -15 ; 90h - 15 = 81h
BID_RAMM EQU -5 ; 90h - 5 = 8Bh
BID_BUF EQU -4 ; 90h - 4 = 8Ch
BID_SYS EQU -3 ; 90h - 3 = 8Dh
BID_USR EQU -2 ; 90h - 2 = 8Eh
BID_COM EQU -1 ; 90h - 1 = 8Fh
;

2
Source/ver.inc

@ -2,7 +2,7 @@
#DEFINE RMN 4
#DEFINE RUP 0
#DEFINE RTP 0
#DEFINE BIOSVER "3.4.0-dev.27"
#DEFINE BIOSVER "3.4.0-dev.28"
#define rmj RMJ
#define rmn RMN
#define rup RUP

2
Source/ver.lib

@ -3,5 +3,5 @@ rmn equ 4
rup equ 0
rtp equ 0
biosver macro
db "3.4.0-dev.27"
db "3.4.0-dev.28"
endm

Loading…
Cancel
Save