From 450b3aff887601464c4f39deab89384ab103ef99 Mon Sep 17 00:00:00 2001 From: Wayne Warthen Date: Thu, 29 Jul 2021 20:50:04 -0700 Subject: [PATCH] BPBIOS Doc Updates --- Source/BPBIOS/@WBW Issues.txt | 37 ++++++++++++++++++++++++++++------- Source/BPBIOS/romwbw-mk4.lib | 2 +- Source/BPBIOS/romwbw-sim.lib | 2 +- Source/BPBIOS/romwbw.lib | 2 +- Source/Build.cmd | 4 ++-- Source/HBIOS/cfg_mk4.asm | 2 +- 6 files changed, 36 insertions(+), 13 deletions(-) diff --git a/Source/BPBIOS/@WBW Issues.txt b/Source/BPBIOS/@WBW Issues.txt index f7d12f4c..98021418 100644 --- a/Source/BPBIOS/@WBW Issues.txt +++ b/Source/BPBIOS/@WBW Issues.txt @@ -1,8 +1,33 @@ -Loader uses CBIOS Disk I/O prior to CBOOT/WBOOT being run. As a -result, DIOBUF is not properly initialized. At present, it is -initialized to $7C00 which will work unless the location of the -physical disk buffer in HBIOS ever changes! - +In general, the BPBIOS for RomWBW is incomplete. This is +mostly just a proof of concept that it can work. As such, +it is not built or included in the default builds of +RomWBW. You *must* review and adjust the file romwbw.lib +before building BPBIOS. To include BPBIOS in the build +process, you need to uncomment the corresponding line +in the Build.cmd file in the Source directory. + +For now, BPBIOS does not understand the dynamic disk assignment +mechanism of RomWBW. This means that you need to explicitly +tell BPBIOS the console unit number and the disk unit number of +the first hard disk device. Floppy drives are basically not +supported. You should review and adjust the romwbw.lib file +as needed. The RomWBW ASSIGN command is not supported. BPBIOS +will boot from the first hard disk unit number you assign and +always from the first slice. + +As documented in "@WBW Z3ENV.txt", there are two general +configurations of BPBIOS for RomWBW. I strongly recomment +using the T configurations (external HBIOS proxy). This is +the long term direction for BPBIOS on RomWBW. The N +configurations (internal HBIOS proxy) will not work with +interrrupts of any kind. This means that to use the N +configurations, you *must* use a RomWBW ROM built with +interrupts disabled or chaos will ensue. + +BPBIOS does not yet understand the 1024 directory entry +hard disk format. You must use the 512 directory entry +format images. + The clock drivers supplied with BPBIOS (LDDS, LDP2D, and LDNZT) load into ZSYS user memory. If the user segment is not at the same location as the original BPBIOS ($E900), then the clock @@ -11,5 +36,3 @@ is OK because it does not relocate the user segment, but the T config fails because it uses a user segment at $E700. Note that this does not affect ZSDOS2 variants because they do not require a loadable clock driver. - -BPBIOS needs to assign disk units dynamically via discovery of disk type diff --git a/Source/BPBIOS/romwbw-mk4.lib b/Source/BPBIOS/romwbw-mk4.lib index e4dcf70f..bf3ba2b3 100644 --- a/Source/BPBIOS/romwbw-mk4.lib +++ b/Source/BPBIOS/romwbw-mk4.lib @@ -28,7 +28,7 @@ HBCLK EQU YES ; HBIOS clock driver ; HB_IODEV EQU 0 ; Assume we want to use first HBIOS serial device ; -; Set HB_HDDEV to appropriate hard disk driver +; Set HB_HDDEV to the first (boot) hard disk device unit number ; HB_HDDEV EQU 2 ; Assumes disk device #2 is first hard disk device ; diff --git a/Source/BPBIOS/romwbw-sim.lib b/Source/BPBIOS/romwbw-sim.lib index d666295f..4ac87cd5 100644 --- a/Source/BPBIOS/romwbw-sim.lib +++ b/Source/BPBIOS/romwbw-sim.lib @@ -28,7 +28,7 @@ HBCLK EQU YES ; HBIOS clock driver ; HB_IODEV EQU 0 ; Assume we want to use first HBIOS serial device ; -; Set HB_HDDEV to appropriate hard disk driver +; Set HB_HDDEV to the first (boot) hard disk device unit number ; HB_HDDEV EQU 2 ; Assumes disk device #2 is first hard disk device ; diff --git a/Source/BPBIOS/romwbw.lib b/Source/BPBIOS/romwbw.lib index d666295f..4ac87cd5 100644 --- a/Source/BPBIOS/romwbw.lib +++ b/Source/BPBIOS/romwbw.lib @@ -28,7 +28,7 @@ HBCLK EQU YES ; HBIOS clock driver ; HB_IODEV EQU 0 ; Assume we want to use first HBIOS serial device ; -; Set HB_HDDEV to appropriate hard disk driver +; Set HB_HDDEV to the first (boot) hard disk device unit number ; HB_HDDEV EQU 2 ; Assumes disk device #2 is first hard disk device ; diff --git a/Source/Build.cmd b/Source/Build.cmd index acbbb7bc..82506681 100644 --- a/Source/Build.cmd +++ b/Source/Build.cmd @@ -1,10 +1,10 @@ @echo off setlocal -REM call BuildDoc || exit /b +:: call BuildDoc || exit /b call BuildProp || exit /b call BuildShared || exit /b -REM call BuildBP || exit /b +:: call BuildBP || exit /b call BuildImages || exit /b call BuildROM %* || exit /b call BuildZRC || exit /b diff --git a/Source/HBIOS/cfg_mk4.asm b/Source/HBIOS/cfg_mk4.asm index 3f5fa49b..c36bfd21 100644 --- a/Source/HBIOS/cfg_mk4.asm +++ b/Source/HBIOS/cfg_mk4.asm @@ -227,7 +227,7 @@ SN7CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4 ; AY38910ENABLE .EQU FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER AY_CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4 -AYMODE .EQU AYMODE_NONE ; AY: DRIVER MODE: AYMODE_[SCG/N8/RCZ80/RCZ180] +AYMODE .EQU AYMODE_SCG ; AY: DRIVER MODE: AYMODE_[SCG/N8/RCZ80/RCZ180] ; SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM) ;