Browse Source

BPBIOS Updates

pull/90/head
Wayne Warthen 6 years ago
parent
commit
3da911edf4
  1. 2
      Source/BPBIOS/@WBW Z3ENV.txt
  2. 3
      Source/BPBIOS/hbios.z80
  3. 20
      Source/BPBIOS/romwbw-mk4.lib
  4. 20
      Source/BPBIOS/romwbw-sim.lib
  5. 4
      Source/HBIOS/asci.asm
  6. 3
      Source/HBIOS/hbios.asm

2
Source/BPBIOS/@WBW Z3ENV.txt

@ -75,7 +75,7 @@ should be consulted to understand these. The build process used here
produces several different configurations which can be loaded at runtime. produces several different configurations which can be loaded at runtime.
The original distributed memory segment configuration occupies the top The original distributed memory segment configuration occupies the top
of memory which, unfortunately, conflicts with the RomWBW HBIOS need to of memory which, unfortunately, conflicts with the RomWBW HBIOS need to
occupt this space.
occupy this space.
Although RomWBW HBIOS is implemented in it's own dedicated memory bank, it Although RomWBW HBIOS is implemented in it's own dedicated memory bank, it
requires a small proxy at the top of memory which acts as a mechansim to requires a small proxy at the top of memory which acts as a mechansim to

3
Source/BPBIOS/hbios.z80

@ -194,6 +194,9 @@ HBX_ROM:
IF MK4 IF MK4
RLCA RLCA
JR NC,HBX_BNKSEL1
XOR 00100001B
HBX_BNKSEL1:
RLCA RLCA
RLCA RLCA
OUT0 (CPU_BBR),A OUT0 (CPU_BBR),A

20
Source/BPBIOS/romwbw-mk4.lib

@ -26,15 +26,15 @@ HBCLK EQU YES ; HBIOS clock driver
; ;
; Set HB_IODEV to appropriate console device ; Set HB_IODEV to appropriate console device
; ;
HB_IODEV EQU 0
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 appropriate hard disk driver
; ;
HB_HDDEV EQU 2
HB_HDDEV EQU 2 ; Assumes disk device #2 is first hard disk device
; ;
; Set HB_MDDEV to appropriate memory disk driver ; Set HB_MDDEV to appropriate memory disk driver
; ;
HB_MDDEV EQU 0
HB_MDDEV EQU 0 ; Assumes disk device #0 is ROM disk device
; ;
; RAM/ROM disk sizes expressed as count of 2K blocks ; RAM/ROM disk sizes expressed as count of 2K blocks
; ;
@ -66,3 +66,17 @@ MEMTOP EQU 0FFE0H - 1 ; Start of HBIOS 32 byte control block
ELSE ELSE
MEMTOP EQU HBLOC - 1 ; Start of HBIOS 512 byte proxy MEMTOP EQU HBLOC - 1 ; Start of HBIOS 512 byte proxy
ENDIF ENDIF
IF INTPXY
HB_EI MACRO
ENDM
HB_DI MACRO
ENDM
ELSE
HB_EI MACRO
EI
ENDM
HB_DI MACRO
DI
ENDM
ENDIF

20
Source/BPBIOS/romwbw-sim.lib

@ -26,15 +26,15 @@ HBCLK EQU YES ; HBIOS clock driver
; ;
; Set HB_IODEV to appropriate console device ; Set HB_IODEV to appropriate console device
; ;
HB_IODEV EQU 0
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 appropriate hard disk driver
; ;
HB_HDDEV EQU 2
HB_HDDEV EQU 2 ; Assumes disk device #2 is first hard disk device
; ;
; Set HB_MDDEV to appropriate memory disk driver ; Set HB_MDDEV to appropriate memory disk driver
; ;
HB_MDDEV EQU 0
HB_MDDEV EQU 0 ; Assumes disk device #0 is ROM disk device
; ;
; RAM/ROM disk sizes expressed as count of 2K blocks ; RAM/ROM disk sizes expressed as count of 2K blocks
; ;
@ -66,3 +66,17 @@ MEMTOP EQU 0FFE0H - 1 ; Start of HBIOS 32 byte control block
ELSE ELSE
MEMTOP EQU HBLOC - 1 ; Start of HBIOS 512 byte proxy MEMTOP EQU HBLOC - 1 ; Start of HBIOS 512 byte proxy
ENDIF ENDIF
IF INTPXY
HB_EI MACRO
ENDM
HB_DI MACRO
ENDM
ELSE
HB_EI MACRO
EI
ENDM
HB_DI MACRO
DI
ENDM
ENDIF

4
Source/HBIOS/asci.asm

@ -520,8 +520,10 @@ ASCI_INITGO:
INC C ; ... STAT REG, B IS STILL 0 INC C ; ... STAT REG, B IS STILL 0
#IF (INTMODE > 0) #IF (INTMODE > 0)
LD A,$08 ; SET RIE BIT ON LD A,$08 ; SET RIE BIT ON
OUT (C),A ; WRITE STAT REG
#ELSE
XOR A ; CLEAR RIE/TIE
#ENDIF #ENDIF
OUT (C),A ; WRITE STAT REG
LD A,$0E ; BUMP TO LD A,$0E ; BUMP TO
ADD A,C ; ... ASEXT REG ADD A,C ; ... ASEXT REG
LD C,A ; PUT IN C FOR I/O, B IS STILL 0 LD C,A ; PUT IN C FOR I/O, B IS STILL 0

3
Source/HBIOS/hbios.asm

@ -775,6 +775,7 @@ HB_START:
; MASK OFF TIMER INTERRUPTS ; MASK OFF TIMER INTERRUPTS
XOR A XOR A
OUT0 (Z180_TCR),A OUT0 (Z180_TCR),A
OUT0 (Z180_ITC),A
; SET DEFAULT CPU CLOCK MULTIPLIERS (XTAL / 2) ; SET DEFAULT CPU CLOCK MULTIPLIERS (XTAL / 2)
; ;
@ -905,7 +906,7 @@ HB_START1: ; BNKCALL ARRIVES HERE, BUT NOW RUNNING IN RAM BANK
LD ($0039),HL LD ($0039),HL
#ELSE #ELSE
; RETI ($ED, $4D) IF NON-INTERRUPT MODE ; RETI ($ED, $4D) IF NON-INTERRUPT MODE
LD HL,($0038)
LD HL,$0038
LD (HL),$ED LD (HL),$ED
INC HL INC HL
LD (HL),$4D LD (HL),$4D

Loading…
Cancel
Save