Browse Source

Z280 Workaround for VGARC

Z280 is having an issue with OTDR instruction when loading the font for VGARC.  For now, the use of OTDR has been eliminated.
pull/351/head v3.3.0-dev.11
Wayne Warthen 3 years ago
parent
commit
9358299f14
  1. 1
      Doc/ChangeLog.txt
  2. 5
      Source/Doc/UserGuide.md
  3. 5
      Source/Fonts/Build.cmd
  4. 9
      Source/Fonts/Makefile
  5. BIN
      Source/Fonts/fontvgarcu.bin
  6. 3
      Source/HBIOS/Makefile
  7. 10
      Source/HBIOS/hbios.asm
  8. 29
      Source/HBIOS/vrc.asm
  9. 2
      Source/ver.inc
  10. 2
      Source/ver.lib

1
Doc/ChangeLog.txt

@ -5,6 +5,7 @@ Version 3.3
- A?C: Support for SD PIO - A?C: Support for SD PIO
- A?C: Support for Z80-Retro SD interface - A?C: Support for Z80-Retro SD interface
- WBW: Support per-drive floppy configuration - WBW: Support per-drive floppy configuration
- WBW: Support for Bill Shen's VGARC
Version 3.2.1 Version 3.2.1
------------- -------------

5
Source/Doc/UserGuide.md

@ -3808,6 +3808,7 @@ the RomWBW HBIOS configuration.
- WDC Floppy Disk Controller w/ 3.5" HD Drives - WDC Floppy Disk Controller w/ 3.5" HD Drives
- Onboard IDE Hard Disk Interface Module - Onboard IDE Hard Disk Interface Module
- PPIDE Hard Disk Interface Module - PPIDE Hard Disk Interface Module
- VGARC Video & Keyboard Module
- Serial baud rate is usually determined by hardware for ACIA and - Serial baud rate is usually determined by hardware for ACIA and
SIO interfaces SIO interfaces
@ -3831,6 +3832,7 @@ the RomWBW HBIOS configuration.
- WDC Floppy Disk Controller w/ 3.5" HD Drives - WDC Floppy Disk Controller w/ 3.5" HD Drives
- Onboard IDE Hard Disk Interface Module - Onboard IDE Hard Disk Interface Module
- PPIDE Hard Disk Interface Module - PPIDE Hard Disk Interface Module
- VGARC Video & Keyboard Module
- Serial baud rate is usually determined by hardware for ACIA and - Serial baud rate is usually determined by hardware for ACIA and
SIO interfaces SIO interfaces
@ -3854,6 +3856,7 @@ the RomWBW HBIOS configuration.
- WDC Floppy Disk Controller w/ 3.5" HD Drives - WDC Floppy Disk Controller w/ 3.5" HD Drives
- Onboard IDE Hard Disk Interface Module - Onboard IDE Hard Disk Interface Module
- PPIDE Hard Disk Interface Module - PPIDE Hard Disk Interface Module
- VGARC Video & Keyboard Module
- Serial baud rate is usually determined by hardware for ACIA and - Serial baud rate is usually determined by hardware for ACIA and
SIO interfaces SIO interfaces
@ -3923,6 +3926,6 @@ may be discovered by RomWBW in your system.
| USB-FIFO | Char | FT232H-based ECB USB FIFO | | USB-FIFO | Char | FT232H-based ECB USB FIFO |
| VDU | Video | MC6845 Family Video Display Controller | | VDU | Video | MC6845 Family Video Display Controller |
| VGA | Video | HD6445CP4-based 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 | | YM | Audio | YM2612 Programmable Sound Generator |
| Z2U | Char | Zilog Z280 CPU Built-in Serial Ports | | Z2U | Char | Zilog Z280 CPU Built-in Serial Ports |

5
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 font8x8u.bin font8x8c.bin || exit /b
lzsa -f2 -r font8x11u.bin font8x11c.bin || exit /b lzsa -f2 -r font8x11u.bin font8x11c.bin || exit /b
lzsa -f2 -r font8x16u.bin font8x16c.bin || exit /b lzsa -f2 -r font8x16u.bin font8x16c.bin || exit /b
lzsa -f2 -r fontcgau.bin fontcgac.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 font8x8u.bin > font8x8u.asm || exit /b
fonttool font8x11u.bin > font8x11u.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 font8x8c.bin > font8x8c.asm || exit /b
fonttool font8x11c.bin > font8x11c.asm || exit /b fonttool font8x11c.bin > font8x11c.asm || exit /b
fonttool font8x16c.bin > font8x16c.asm || exit /b fonttool font8x16c.bin > font8x16c.asm || exit /b
fonttool fontcgau.bin > fontcgau.asm || exit /b fonttool fontcgau.bin > fontcgau.asm || exit /b
fonttool fontcgac.bin > fontcgac.asm || exit /b fonttool fontcgac.bin > fontcgac.asm || exit /b
fonttool fontvgarcu.bin > fontvgarcu.asm || exit /b
fonttool fontvgarcc.bin > fontvgarcc.asm || exit /b

9
Source/Fonts/Makefile

@ -1,8 +1,8 @@
OBJECTS = \ 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 TOOLS = ../../Tools
@ -26,5 +26,8 @@ font8x16c.bin: font8x16u.bin
fontcgac.bin: fontcgau.bin fontcgac.bin: fontcgau.bin
$(BINDIR)/lzsa -f2 -r $< $@ $(BINDIR)/lzsa -f2 -r $< $@
fontvgarcc.bin: fontvgarcu.bin
$(BINDIR)/lzsa -f2 -r $< $@
%.asm: %.bin %.asm: %.bin
$(BINDIR)/bin2asm $< > $@ $(BINDIR)/bin2asm $< > $@

BIN
Source/Fonts/fontvgarcu.bin

Binary file not shown.

3
Source/HBIOS/Makefile

@ -24,7 +24,8 @@ endif
include $(TOOLS)/Makefile.inc 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) ifeq ($(CPUFAM),2)
TASM=$(BINDIR)/uz80as -t hd64180 TASM=$(BINDIR)/uz80as -t hd64180

10
Source/HBIOS/hbios.asm

@ -6225,6 +6225,16 @@ FONTCGA:
.ECHO " CGA" .ECHO " CGA"
#ENDIF #ENDIF
; ;
#IFDEF USEFONTVGARC
FONTVGARC:
#IF USELZSA2
#INCLUDE "fontvgarcc.asm"
#ELSE
#INCLUDE "fontvgarcu.asm"
#ENDIF
.ECHO " VGARC"
#ENDIF
;
SIZ_FONTS .EQU $ - ORG_FONTS SIZ_FONTS .EQU $ - ORG_FONTS
.ECHO " occupy " .ECHO " occupy "
.ECHO SIZ_FONTS .ECHO SIZ_FONTS

29
Source/HBIOS/vrc.asm

@ -21,8 +21,8 @@ VRC_KBDST .EQU $F5
VRC_ROWS .EQU 48 VRC_ROWS .EQU 48
VRC_COLS .EQU 64 VRC_COLS .EQU 64
; ;
#DEFINE USEFONT8X8
#DEFINE VRC_FONT FONT8X8
#DEFINE USEFONTVGARC
#DEFINE VRC_FONT FONTVGARC
; ;
TERMENABLE .SET TRUE ; INCLUDE TERMINAL PSEUDODEVICE DRIVER TERMENABLE .SET TRUE ; INCLUDE TERMINAL PSEUDODEVICE DRIVER
; ;
@ -283,9 +283,14 @@ VRC_LOADFONT:
LD HL,VRC_FONT ; START OF FONT DATA LD HL,VRC_FONT ; START OF FONT DATA
#ENDIF #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 LD DE,0+(128*8)-1 ; LENGTH OF FONT DATA - 1
ADD HL,DE ; ADD TO HL ADD HL,DE ; ADD TO HL
; LD HL,ENDFONT-1
LD BC,VRC_FONTBASE+3 ; WORK BACKWARDS LD BC,VRC_FONTBASE+3 ; WORK BACKWARDS
OTDR ; DO 4 PAGES OTDR ; DO 4 PAGES
DEC C DEC C
@ -295,6 +300,24 @@ VRC_LOADFONT:
DEC C DEC C
OTDR OTDR
DEC C 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 #IF USELZSA2
LD HL,(VRC_STACK) ; ERASE DECOMPRESS BUFFER LD HL,(VRC_STACK) ; ERASE DECOMPRESS BUFFER

2
Source/ver.inc

@ -2,7 +2,7 @@
#DEFINE RMN 3 #DEFINE RMN 3
#DEFINE RUP 0 #DEFINE RUP 0
#DEFINE RTP 0 #DEFINE RTP 0
#DEFINE BIOSVER "3.3.0-dev.10"
#DEFINE BIOSVER "3.3.0-dev.11"
#define rmj RMJ #define rmj RMJ
#define rmn RMN #define rmn RMN
#define rup RUP #define rup RUP

2
Source/ver.lib

@ -3,5 +3,5 @@ rmn equ 3
rup equ 0 rup equ 0
rtp equ 0 rtp equ 0
biosver macro biosver macro
db "3.3.0-dev.10"
db "3.3.0-dev.11"
endm endm

Loading…
Cancel
Save