Browse Source

Final Video Hardware Reset Changes

- Modified TMS driver to always imbed an uncompressed font.  This is because I have found no reasonable way to decompress a font while an OS is still active without mangling some of the OSes RAM.
work v3.5.0-dev.27
Wayne Warthen 2 years ago
parent
commit
8c4a3d2b3d
  1. 3
      Source/HBIOS/Config/DUO_std.asm
  2. 2
      Source/HBIOS/cfg_duo.asm
  3. 12
      Source/HBIOS/hbios.asm
  4. 17
      Source/HBIOS/tms.asm
  5. 4
      Source/HBIOS/vga.asm
  6. 2
      Source/ver.inc
  7. 2
      Source/ver.lib

3
Source/HBIOS/Config/DUO_std.asm

@ -38,10 +38,11 @@ BATCOND .SET TRUE ; ENABLE LOW BATTERY WARNING MESSAGE
ROMSIZE .SET 512 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!)
RAMSIZE .SET 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
;
PCFENABLE .SET TRUE ; ENABLE PCF8584 I2C CONTROLLER
PCFENABLE .SET FALSE ; ENABLE PCF8584 I2C CONTROLLER
;
MDFFENABLE .SET FALSE ; MD: ENABLE FLASH FILE SYSTEM
;
UARTINTS .SET FALSE ; UART: INCLUDE INTERRUPT SUPPORT UNDER IM1/2/3
;
CHENABLE .SET TRUE ; CH: ENABLE CH375/376 USB SUPPORT
ESPENABLE .SET TRUE ; ESP: ENABLE ESP32 IO BOARD DRIVER (ESP.ASM)

2
Source/HBIOS/cfg_duo.asm

@ -237,7 +237,7 @@ SDTRACE .EQU 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
SDCSIOFAST .EQU FALSE ; SD: ENABLE TABLE-DRIVEN BIT INVERTER IN CSIO MODE
SDMTSWAP .EQU TRUE ; SD: SWAP THE LOGICAL ORDER OF THE SPI PORTS OF THE MT011
;
CHENABLE .EQU TRUE ; CH: ENABLE CH375/376 USB SUPPORT
CHENABLE .EQU FALSE ; CH: ENABLE CH375/376 USB SUPPORT
CHTRACE .EQU 1 ; CH: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
CHUSBTRACE .EQU 1 ; CHUSB: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
CHSDTRACE .EQU 1 ; CHSD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)

12
Source/HBIOS/hbios.asm

@ -6544,7 +6544,10 @@ ORG_FONTS .EQU $
;
#IFDEF USEFONT8X8
FONT8X8:
#IF USELZSA2
;
; FOR NOW, WE NEVER COMPRESS THE 8X8 FONT. SEE TMS DRIVER.
;
#IF USELZSA2 & FALSE
#INCLUDE "font8x8c.asm"
#ELSE
#INCLUDE "font8x8u.asm"
@ -8044,7 +8047,7 @@ SLACK .EQU BNKTOP - $
;
; DIAGNOSE HBIOS BANK OVERFLOW
;
#IF (SLACK<0)
#IF (SLACK < 0)
.ECHO "*** ERROR: HBIOS too big!!!\n"
!!! ; FORCE AN ASSEMBLY ERROR
#ENDIF
@ -8059,6 +8062,11 @@ SLACK .EQU BNKTOP - $
!!! ; FORCE AN ASSEMBLY ERROR
#ENDIF
;
;;;#IF (SLACK < (1024 * 3))
;;; .ECHO "*** ERROR: Low HEAP space!!!\n"
;;; !!! ; FORCE AN ASSEMBLY ERROR
;;;#ENDIF
;
#IFDEF ROMBOOT
#IF (ROMSIZE > 0)
.FILL SLACK

17
Source/HBIOS/tms.asm

@ -352,15 +352,11 @@ TMS_VDARES:
CALL TMS_Z180IO
#ENDIF
CALL TMS_CRTINIT1A
#IF (!USELZSA2)
; WE WANT TO RELOAD THE FONT ON RESET, BUT THIS IS NOT CURRENTLY
; POSSIBLE WHEN FONT COMPRESSION IS IN USE.
CALL TMS_CLRCUR ; CLEAR CURSOR
CALL TMS_LOADFONT ; RELOAD FONT
LD A,$FF ; REMOVE
LD (TMS_CURSAV),A ; ... SAVED CURSOR CHAR
CALL TMS_SETCUR ; RESTORE CURSOR
#ENDIF
XOR A
RET
@ -672,8 +668,15 @@ TMS_LOADFONT:
; SET WRITE ADDRESS TO TMS_FNTVADDR
LD HL,TMS_FNTVADDR
CALL TMS_WR
#IF USELZSA2
;
; THE USE OF COMPRESSED FONT STORAGE FOR THE TMS DRIVER IS DISABLED
; SO THAT WE CAN RELOAD THE FONT DATA ON USER RESET. THE TMS CHIP
; IS FREQUENTLY REPROGRAMMED BY GAMES, ETC., SO IT IS NECESSARY TO
; REINIT AND RELOAD FONTS. RELOADING A COMPRESSED FONT AFTER
; SYSTEM INITIALIZATION REQUIRES A LARGE DECOMPRESSION BUFFER THAT WE
; HAVE NO WAY TO ACCOMMODATE WITHOUT TRASHING OS/APP MEMORY.
;
#IF USELZSA2 & FALSE
LD (TMS_STACK),SP ; SAVE STACK
LD HL,(TMS_STACK) ; AND SHIFT IT
LD DE,$2000 ; DOWN 4KB TO
@ -701,7 +704,7 @@ TMS_LOADFONT1:
OR E
JR NZ,TMS_LOADFONT1
;
#IF USELZSA2
#IF USELZSA2 & FALSE
LD HL,(TMS_STACK) ; ERASE DECOMPRESS BUFFER
LD SP,HL ; BY RESTORING THE STACK
RET ; DONE

4
Source/HBIOS/vga.asm

@ -546,7 +546,7 @@ VGA_LOADFONT:
LD HL,$7000 | VGA_89BIT ; CLEAR FONT PAGE NUM
CALL VGA_SETCFG
#IF USELZSA2
#IF USELZSA2 & (VGASIZ != V80X60)
LD (VGA_STACK),SP ; SAVE STACK
LD HL,(VGA_STACK) ; AND SHIFT IT
LD DE,$2000 ; DOWN 4KB TO
@ -583,7 +583,7 @@ VGA_LOADFONT2:
LD HL,$7070 | VGA_89BIT ; SET FONT PAGE NUM TO 7
CALL VGA_SETCFG
#IF USELZSA2
#IF USELZSA2 & (VGASIZ != V80X60)
LD HL,(VGA_STACK) ; ERASE DECOMPRESS BUFFER
LD SP,HL ; BY RESTORING THE STACK
RET ; DONE

2
Source/ver.inc

@ -2,7 +2,7 @@
#DEFINE RMN 5
#DEFINE RUP 0
#DEFINE RTP 0
#DEFINE BIOSVER "3.5.0-dev.26"
#DEFINE BIOSVER "3.5.0-dev.27"
#define rmj RMJ
#define rmn RMN
#define rup RUP

2
Source/ver.lib

@ -3,5 +3,5 @@ rmn equ 5
rup equ 0
rtp equ 0
biosver macro
db "3.5.0-dev.26"
db "3.5.0-dev.27"
endm

Loading…
Cancel
Save