diff --git a/Doc/ChangeLog.txt b/Doc/ChangeLog.txt index 5d55b78c..0d7610d9 100644 --- a/Doc/ChangeLog.txt +++ b/Doc/ChangeLog.txt @@ -5,6 +5,7 @@ Version 3.3 - A?C: Support for SD PIO - A?C: Support for Z80-Retro SD interface - WBW: Support per-drive floppy configuration +- WBW: Support for Bill Shen's VGARC Version 3.2.1 ------------- diff --git a/Source/Doc/UserGuide.md b/Source/Doc/UserGuide.md index 294c7cf4..9424ed1f 100644 --- a/Source/Doc/UserGuide.md +++ b/Source/Doc/UserGuide.md @@ -3808,6 +3808,7 @@ the RomWBW HBIOS configuration. - WDC Floppy Disk Controller w/ 3.5" HD Drives - Onboard IDE Hard Disk Interface Module - PPIDE Hard Disk Interface Module + - VGARC Video & Keyboard Module - Serial baud rate is usually determined by hardware for ACIA and SIO interfaces @@ -3831,6 +3832,7 @@ the RomWBW HBIOS configuration. - WDC Floppy Disk Controller w/ 3.5" HD Drives - Onboard IDE Hard Disk Interface Module - PPIDE Hard Disk Interface Module + - VGARC Video & Keyboard Module - Serial baud rate is usually determined by hardware for ACIA and SIO interfaces @@ -3854,6 +3856,7 @@ the RomWBW HBIOS configuration. - WDC Floppy Disk Controller w/ 3.5" HD Drives - Onboard IDE Hard Disk Interface Module - PPIDE Hard Disk Interface Module + - VGARC Video & Keyboard Module - Serial baud rate is usually determined by hardware for ACIA and SIO interfaces @@ -3923,6 +3926,6 @@ may be discovered by RomWBW in your system. | USB-FIFO | Char | FT232H-based ECB USB FIFO | | VDU | Video | MC6845 Family Video Display Controller | | VGA | Video | HD6445CP4-based Video Display Controller | -| VRC | Video | VGARC Video Display Controller s | +| VRC | Video | VGARC Video Display Controller | | YM | Audio | YM2612 Programmable Sound Generator | | Z2U | Char | Zilog Z280 CPU Built-in Serial Ports | diff --git a/Source/Fonts/Build.cmd b/Source/Fonts/Build.cmd index d41f7a41..9032d1bb 100644 --- a/Source/Fonts/Build.cmd +++ b/Source/Fonts/Build.cmd @@ -11,8 +11,8 @@ echo Preparing compressed font files... lzsa -f2 -r font8x8u.bin font8x8c.bin || exit /b lzsa -f2 -r font8x11u.bin font8x11c.bin || exit /b lzsa -f2 -r font8x16u.bin font8x16c.bin || exit /b - lzsa -f2 -r fontcgau.bin fontcgac.bin || exit /b +lzsa -f2 -r fontvgarcu.bin fontvgarcc.bin || exit /b fonttool font8x8u.bin > font8x8u.asm || exit /b fonttool font8x11u.bin > font8x11u.asm || exit /b @@ -20,6 +20,7 @@ fonttool font8x16u.bin > font8x16u.asm || exit /b fonttool font8x8c.bin > font8x8c.asm || exit /b fonttool font8x11c.bin > font8x11c.asm || exit /b fonttool font8x16c.bin > font8x16c.asm || exit /b - fonttool fontcgau.bin > fontcgau.asm || exit /b fonttool fontcgac.bin > fontcgac.asm || exit /b +fonttool fontvgarcu.bin > fontvgarcu.asm || exit /b +fonttool fontvgarcc.bin > fontvgarcc.asm || exit /b diff --git a/Source/Fonts/Makefile b/Source/Fonts/Makefile index dae4a305..75b4e705 100644 --- a/Source/Fonts/Makefile +++ b/Source/Fonts/Makefile @@ -1,8 +1,8 @@ OBJECTS = \ - font8x8u.asm font8x11u.asm font8x16u.asm fontcgau.asm \ - font8x8c.asm font8x11c.asm font8x16c.asm fontcgac.asm + font8x8u.asm font8x11u.asm font8x16u.asm fontcgau.asm fontvgarcu.asm \ + font8x8c.asm font8x11c.asm font8x16c.asm fontcgac.asm fontvgarcc.asm -OTHERS = font8x8c.bin font8x11c.bin font8x16c.bin fontcgac.bin +OTHERS = font8x8c.bin font8x11c.bin font8x16c.bin fontcgac.bin fontvgarcc.bin TOOLS = ../../Tools @@ -26,5 +26,8 @@ font8x16c.bin: font8x16u.bin fontcgac.bin: fontcgau.bin $(BINDIR)/lzsa -f2 -r $< $@ +fontvgarcc.bin: fontvgarcu.bin + $(BINDIR)/lzsa -f2 -r $< $@ + %.asm: %.bin $(BINDIR)/bin2asm $< > $@ diff --git a/Source/Fonts/fontvgarcu.bin b/Source/Fonts/fontvgarcu.bin new file mode 100644 index 00000000..91b53d17 Binary files /dev/null and b/Source/Fonts/fontvgarcu.bin differ diff --git a/Source/HBIOS/Makefile b/Source/HBIOS/Makefile index f002e93b..504cfd13 100644 --- a/Source/HBIOS/Makefile +++ b/Source/HBIOS/Makefile @@ -24,7 +24,8 @@ endif include $(TOOLS)/Makefile.inc -FONTS := font8x11c.asm font8x11u.asm font8x16c.asm font8x16u.asm font8x8c.asm font8x8u.asm fontcgac.asm fontcgau.asm +FONTS := font8x11c.asm font8x11u.asm font8x16c.asm font8x16u.asm font8x8c.asm font8x8u.asm \ + fontcgac.asm fontcgau.asm fontvgarcc.asm fontvgarcu.asm ifeq ($(CPUFAM),2) TASM=$(BINDIR)/uz80as -t hd64180 diff --git a/Source/HBIOS/hbios.asm b/Source/HBIOS/hbios.asm index 90938132..8d8464ee 100644 --- a/Source/HBIOS/hbios.asm +++ b/Source/HBIOS/hbios.asm @@ -6225,6 +6225,16 @@ FONTCGA: .ECHO " CGA" #ENDIF ; +#IFDEF USEFONTVGARC +FONTVGARC: + #IF USELZSA2 + #INCLUDE "fontvgarcc.asm" + #ELSE + #INCLUDE "fontvgarcu.asm" + #ENDIF + .ECHO " VGARC" +#ENDIF +; SIZ_FONTS .EQU $ - ORG_FONTS .ECHO " occupy " .ECHO SIZ_FONTS diff --git a/Source/HBIOS/vrc.asm b/Source/HBIOS/vrc.asm index a436a9b1..d9751cdb 100644 --- a/Source/HBIOS/vrc.asm +++ b/Source/HBIOS/vrc.asm @@ -21,8 +21,8 @@ VRC_KBDST .EQU $F5 VRC_ROWS .EQU 48 VRC_COLS .EQU 64 ; -#DEFINE USEFONT8X8 -#DEFINE VRC_FONT FONT8X8 +#DEFINE USEFONTVGARC +#DEFINE VRC_FONT FONTVGARC ; TERMENABLE .SET TRUE ; INCLUDE TERMINAL PSEUDODEVICE DRIVER ; @@ -283,9 +283,14 @@ VRC_LOADFONT: LD HL,VRC_FONT ; START OF FONT DATA #ENDIF ; +#IF 0 + ; THIS APPROACH TO LOADING FONTS IS BEST (FASTEST), BUT IS + ; CAUSING ARTIFACTS ON THE DISPLAYED FONTS WHEN RUN ON A + ; Z280. IT IS NOT CLEAR WHAT THE PROBLEM IS (POSSIBLY + ; Z280 BUG), BUT FOR NOW WE AVOID THIS AND USE AN + ; ALTERNATIVE APPROACH BELOW. LD DE,0+(128*8)-1 ; LENGTH OF FONT DATA - 1 ADD HL,DE ; ADD TO HL -; LD HL,ENDFONT-1 LD BC,VRC_FONTBASE+3 ; WORK BACKWARDS OTDR ; DO 4 PAGES DEC C @@ -295,6 +300,24 @@ VRC_LOADFONT: DEC C OTDR DEC C +#ENDIF +; +#IF 1 + ; ALTERNATIVE APPROACH TO LOADING FONTS. THIS ONE AVOIDS + ; THE USE OF OTDR WHICH SEEMS TO CAUSE PROBLEMS ON Z280. + LD B,0 + LD C,VRC_FONTBASE +VRC_LOADFONT1: + LD A,(HL) + OUT (C),A + INC HL + INC B + JR NZ,VRC_LOADFONT1 + INC C + LD A,C + CP VRC_FONTBASE + 4 + JR NZ,VRC_LOADFONT1 +#ENDIF ; #IF USELZSA2 LD HL,(VRC_STACK) ; ERASE DECOMPRESS BUFFER diff --git a/Source/ver.inc b/Source/ver.inc index 4531ae07..714cc992 100644 --- a/Source/ver.inc +++ b/Source/ver.inc @@ -2,7 +2,7 @@ #DEFINE RMN 3 #DEFINE RUP 0 #DEFINE RTP 0 -#DEFINE BIOSVER "3.3.0-dev.10" +#DEFINE BIOSVER "3.3.0-dev.11" #define rmj RMJ #define rmn RMN #define rup RUP diff --git a/Source/ver.lib b/Source/ver.lib index 576e76d8..1af700cc 100644 --- a/Source/ver.lib +++ b/Source/ver.lib @@ -3,5 +3,5 @@ rmn equ 3 rup equ 0 rtp equ 0 biosver macro - db "3.3.0-dev.10" + db "3.3.0-dev.11" endm