Browse Source

ROM Fonts Z280 Fix

The HBX_PEEK function does not handle invocation from system mode.  Implemented a workaround for this.
pull/578/head
Wayne Warthen 7 months ago
parent
commit
4e49a0fede
No known key found for this signature in database GPG Key ID: 8B34ED29C07EEB0A
  1. 33
      Source/HBIOS/hbios.asm
  2. 1
      Source/HBIOS/vrc.asm

33
Source/HBIOS/hbios.asm

@ -8305,6 +8305,8 @@ FNT_BNKID .EQU BID_BIOS
#ENDIF
;
FNT_SELECT:
;;;CALL PC_SPACE ; ** DEBUG ***
;;;CALL PRTHEXBYTE ; ** DEBUG ***
LD E,A ; DESIRED FONT ID TO E
LD A,FNT_BNKID ; FONT BANK ID TO A
LD (FNT_BID),A ; SAVE IN WORKING VARIABLE
@ -8335,6 +8337,17 @@ FNT_SELECT1:
CALL FNT_BYTE ; HI BYTE OF ADDRESS
LD D,A ; PUT IN D
EX DE,HL ; FULL ADDRESS TO HL
;;;#IF ROMFONTS
;;; CALL PC_SPACE ; ** DEBUG ***
;;; LD A,'R' ; ** DEBUG ***
;;; CALL COUT ; ** DEBUG ***
;;;#ELSE
;;; CALL PC_SPACE ; ** DEBUG ***
;;; LD A,'H' ; ** DEBUG ***
;;; CALL COUT ; ** DEBUG ***
;;;#ENDIF
POP AF ; RECOVER FONT ID
AND $80 ; COMPRESSED FONT DATA?
JR Z,FNT_SELECT2 ; IF NOT, SKIP DECOMP
@ -8349,14 +8362,10 @@ FNT_SELECT1:
; ANY FONT THAT MUST BE RELOADED AFTER BOOT WILL NEED TO BE SAVED IN
; DECOMPRESSED STATE! SPECIFICALLY THE 6X8 TMS FONT.
;
;;;CALL PC_SPACE ; ** DEBUG ***
;;;LD A,'C' ; ** DEBUG ***
;;;CALL COUT ; ** DEBUG ***
;
#IF ROMFONTS
;;;LD A,'R' ; ** DEBUG ***
;;;CALL COUT ; ** DEBUG ***
;
; COPY THE COMPRESSED DATA FROM ROM TO RAM BUFFER
LD A,(FNT_BID) ; GET ROM FONT BANK ID
LD (HB_SRCBNK),A ; SETUP SOURCE BANK
@ -8419,6 +8428,21 @@ FNT_NEXT:
; ALL OTHER REGSITERS UNCHANGED.
;
FNT_BYTE:
#IF (MEMMGR == MM_Z280)
; HBX_PEEK FOR Z280 DOES NOT WORK WHEN INVOKED WHILE IN
; SYSTEM MODE. THIS SHOULD BE REVISITED.
LD A,(FNT_BID)
PUSH BC
PUSH DE
PUSH HL
LD B,$00
CALL Z280_BNKSEL
POP HL
POP DE
POP BC
LDUP A,(HL)
RET
#ELSE
PUSH DE
LD A,(FNT_BID)
LD D,A
@ -8428,6 +8452,7 @@ FNT_BYTE:
LD A,E
POP DE
RET
#ENDIF
;
FNT_BID .DB 0 ; BANK CONTAINING FONT DATA
FNT_PTR .DW 0 ; POINTER TO NEXT BYTE OF DATA

1
Source/HBIOS/vrc.asm

@ -25,6 +25,7 @@ VRC_COLS .EQU 64
#DEFINE VRC_FONT FONT8X8
;
VRC_FONTID .EQU FONTID_8X8
;VRC_FONTID .EQU FONTID_6X8
;
TERMENABLE .SET TRUE ; INCLUDE TERMINAL PSEUDODEVICE DRIVER
KBDENABLE .SET TRUE ; INCLUDE KBD KEYBOARD SUPPORT

Loading…
Cancel
Save