Browse Source

Merge pull request #75 from wwarthen/master

BPBIOS Updates
pull/78/head
b1ackmai1er 6 years ago
committed by GitHub
parent
commit
f039b3b77e
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  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.
The original distributed memory segment configuration occupies the top
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
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
RLCA
JR NC,HBX_BNKSEL1
XOR 00100001B
HBX_BNKSEL1:
RLCA
RLCA
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
;
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
;
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
;
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
;
@ -66,3 +66,17 @@ MEMTOP EQU 0FFE0H - 1 ; Start of HBIOS 32 byte control block
ELSE
MEMTOP EQU HBLOC - 1 ; Start of HBIOS 512 byte proxy
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
;
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
;
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
;
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
;
@ -66,3 +66,17 @@ MEMTOP EQU 0FFE0H - 1 ; Start of HBIOS 32 byte control block
ELSE
MEMTOP EQU HBLOC - 1 ; Start of HBIOS 512 byte proxy
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
#IF (INTMODE > 0)
LD A,$08 ; SET RIE BIT ON
OUT (C),A ; WRITE STAT REG
#ELSE
XOR A ; CLEAR RIE/TIE
#ENDIF
OUT (C),A ; WRITE STAT REG
LD A,$0E ; BUMP TO
ADD A,C ; ... ASEXT REG
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
XOR A
OUT0 (Z180_TCR),A
OUT0 (Z180_ITC),A
; 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
#ELSE
; RETI ($ED, $4D) IF NON-INTERRUPT MODE
LD HL,($0038)
LD HL,$0038
LD (HL),$ED
INC HL
LD (HL),$4D

Loading…
Cancel
Save