diff --git a/Doc/ChangeLog.txt b/Doc/ChangeLog.txt index d055febe..bcc3a86e 100644 --- a/Doc/ChangeLog.txt +++ b/Doc/ChangeLog.txt @@ -35,6 +35,7 @@ Version 2.9.2 - WBW: Overhaul disk image creation - WBW: Added support for Dyno platform (based on work by Steve Garcia) - S?G: Added support for BQ4845 RTC (bqrtc.asm) +- PMS: Added 80x30 video mode to VGA3 driver Version 2.9.1 ------------- diff --git a/Source/HBIOS/ansi.asm b/Source/HBIOS/ansi.asm index 77435b24..1f2d5f8a 100644 --- a/Source/HBIOS/ansi.asm +++ b/Source/HBIOS/ansi.asm @@ -287,7 +287,7 @@ ANSI_C0DISP: CP $0A ; LF: LINEFEED JP Z,ANSI_LF CP $0B ; VT: VERTICAL TAB - JP Z,ANSI_LF ; TREAD AS LINEFEED + JP Z,ANSI_LF ; TREAT AS LINEFEED CP $0C ; FF: FORMFEED JP Z,ANSI_LF ; TREAT AS LINEFEED CP $0D ; CR: CARRIAGE RETURN diff --git a/Source/HBIOS/cfg_master.asm b/Source/HBIOS/cfg_master.asm index f98c0220..41395a09 100644 --- a/Source/HBIOS/cfg_master.asm +++ b/Source/HBIOS/cfg_master.asm @@ -142,6 +142,7 @@ NECENABLE .EQU FALSE ; NEC: ENABLE NEC UPD7220 VIDEO/KBD DRIVER (NEC.ASM) TMSENABLE .EQU FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM) TMSMODE .EQU TMSMODE_NONE ; TMS: DRIVER MODE: TMSMODE_[SCG/N8] VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM) +VGASIZ .EQU V80X25 ; VGA: DISPLAY FORMAT [V80X25|V80X30|V80X43] ; SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM) ; diff --git a/Source/HBIOS/cfg_mk4.asm b/Source/HBIOS/cfg_mk4.asm index 876e6978..a614407f 100644 --- a/Source/HBIOS/cfg_mk4.asm +++ b/Source/HBIOS/cfg_mk4.asm @@ -97,6 +97,7 @@ NECENABLE .EQU FALSE ; NEC: ENABLE NEC UPD7220 VIDEO/KBD DRIVER (NEC.ASM) TMSENABLE .EQU FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM) TMSMODE .EQU TMSMODE_SCG ; TMS: DRIVER MODE: TMSMODE_[SCG/N8] VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM) +VGASIZ .EQU V80X25 ; VGA: DISPLAY FORMAT [V80X25|V80X30|V80X43] ; SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM) ; diff --git a/Source/HBIOS/cfg_n8.asm b/Source/HBIOS/cfg_n8.asm index b6acfc8f..22498548 100644 --- a/Source/HBIOS/cfg_n8.asm +++ b/Source/HBIOS/cfg_n8.asm @@ -100,6 +100,7 @@ NECENABLE .EQU FALSE ; NEC: ENABLE NEC UPD7220 VIDEO/KBD DRIVER (NEC.ASM) TMSENABLE .EQU TRUE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM) TMSMODE .EQU TMSMODE_N8 ; TMS: DRIVER MODE: TMSMODE_[SCG/N8] VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM) +VGASIZ .EQU V80X25 ; VGA: DISPLAY FORMAT [V80X25|V80X30|V80X43] ; SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM) ; diff --git a/Source/HBIOS/cfg_sbc.asm b/Source/HBIOS/cfg_sbc.asm index bd6df768..54dcea5e 100644 --- a/Source/HBIOS/cfg_sbc.asm +++ b/Source/HBIOS/cfg_sbc.asm @@ -100,6 +100,7 @@ NECENABLE .EQU FALSE ; NEC: ENABLE NEC UPD7220 VIDEO/KBD DRIVER (NEC.ASM) TMSENABLE .EQU FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM) TMSMODE .EQU TMSMODE_SCG ; TMS: DRIVER MODE: TMSMODE_[SCG/N8] VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM) +VGASIZ .EQU V80X25 ; VGA: DISPLAY FORMAT [V80X25|V80X30|V80X43] ; SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM) ; diff --git a/Source/HBIOS/ctc.asm b/Source/HBIOS/ctc.asm index 7551bed9..814fd110 100644 --- a/Source/HBIOS/ctc.asm +++ b/Source/HBIOS/ctc.asm @@ -74,7 +74,7 @@ CTC_PREINIT: ; |||||+---- 1=TIME CONSTANT FOLLOWS ; ||||+----- 0=AUTO TRIGGER WHEN TIME CONST LOADED ; |||+------ 1=RISING EDGE TRIGGER - ; ||+------- 1=PRESCALER OF 16 (NOT USED) + ; ||+------- 0=PRESCALER OF 16 (NOT USED) ; |+-------- 1=COUNTER MODE ; +--------- 0=NO INTERRUPTS OUT (CTCPC),A ; SETUP PRESCALE CHANNEL @@ -87,7 +87,7 @@ CTC_PREINIT: ; |||||+---- 1=TIME CONSTANT FOLLOWS ; ||||+----- 0=AUTO TRIGGER WHEN TIME CONST LOADED ; |||+------ 1=RISING EDGE TRIGGER - ; ||+------- 1=PRESCALER OF 16 (NOT USED) + ; ||+------- 0=PRESCALER OF 16 (NOT USED) ; |+-------- 1=COUNTER MODE ; +--------- 1=ENABLE INTERRUPTS OUT (CTCTC),A ; SETUP TIMER CHANNEL @@ -116,8 +116,6 @@ CTC_PRTCFG: #IF (CTCMODE == CTCMODE_RC) PRTS("RC$") #ENDIF -; LD A,(IY) ; DEVICE NUM -; CALL PRTDECB ; PRINT DEVICE NUM PRTS(" IO=0x$") ; FORMATTING LD A,CTCBASE ; GET BASE PORT CALL PRTHEXBYTE ; PRINT BASE PORT diff --git a/Source/HBIOS/cvdu.asm b/Source/HBIOS/cvdu.asm index 29277d78..d117c412 100644 --- a/Source/HBIOS/cvdu.asm +++ b/Source/HBIOS/cvdu.asm @@ -360,7 +360,7 @@ CVDU_LOADFONT: LD C,18 ; UPDATE ADDRESS REGISTER PAIR CALL CVDU_WRX ; DO IT - LD HL,FONT_HI ; POINTER TO FONT DATA + LD HL,CVDU_FONT ; POINTER TO FONT DATA LD DE,$2000 ; LENGTH OF FONT DATA LD C,31 ; DATA REGISTER CVDU_LOADFONT1: diff --git a/Source/HBIOS/font8043.asm b/Source/HBIOS/font8043.asm new file mode 100644 index 00000000..406db88c --- /dev/null +++ b/Source/HBIOS/font8043.asm @@ -0,0 +1,260 @@ +; Zap font zap-vga-09 (c) John Zaitseff released under GNU General Public Licence. Refer www.gnu.org/licenses/ +; + .DB $7E, $C3, $99, $F3, $E7, $FF, $E7, $7E, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $00, $00, $7F, $E6, $66, $66, $C3, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $0C, $18, $FC, $30, $FC, $60, $C0, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $18, $30, $60, $30, $18, $00, $7C, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $60, $30, $18, $30, $60, $00, $F8, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $00, $00, $3C, $3C, $3C, $3C, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $10, $38, $7C, $FE, $7C, $38, $10, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $C3, $C6, $CC, $D8, $36, $6E, $D6, $BF, $06, $00, $00, $00, $00, $00, $00, $00 + .DB $C3, $C6, $CC, $D8, $36, $6B, $C6, $8C, $0F, $00, $00, $00, $00, $00, $00, $00 + .DB $E1, $33, $66, $34, $EA, $36, $6A, $DF, $82, $00, $00, $00, $00, $00, $00, $00 + .DB $18, $18, $18, $18, $00, $18, $18, $18, $18, $00, $00, $00, $00, $00, $00, $00 + .DB $6C, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $00, $00, $00, $00, $00, $00, $0C, $78, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $0E, $1B, $18, $3C, $18, $18, $D8, $70, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $18, $18, $7E, $18, $18, $18, $18, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $18, $18, $7E, $18, $7E, $18, $18, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $00, $CC, $D8, $30, $60, $DB, $9B, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $F1, $5B, $55, $51, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $00, $00, $00, $00, $00, $DB, $DB, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $00, $0C, $18, $30, $18, $0C, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $00, $30, $18, $0C, $18, $30, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $CC, $CC, $66, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $66, $66, $CC, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $00, $00, $00, $00, $00, $66, $66, $CC, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $00, $00, $00, $00, $00, $CC, $CC, $66, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $00, $00, $00, $00, $00, $18, $18, $0C, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $C6, $7C, $7E, $C0, $CE, $C6, $7E, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $C6, $7C, $00, $76, $CC, $7C, $0C, $F8, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $30, $00, $78, $30, $30, $30, $78, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $00, $00, $70, $30, $30, $30, $78, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $78, $C4, $70, $38, $8C, $78, $0C, $78, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $00, $7C, $C0, $78, $0C, $F8, $0C, $78, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $30, $78, $78, $30, $30, $00, $30, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $6C, $6C, $28, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $6C, $6C, $FE, $6C, $FE, $6C, $6C, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $10, $7C, $D0, $7C, $16, $7C, $10, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $00, $C6, $CC, $18, $30, $66, $C6, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $38, $6C, $38, $76, $DC, $CC, $76, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $18, $18, $30, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $18, $30, $60, $60, $60, $30, $18, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $60, $30, $18, $18, $18, $30, $60, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $00, $6C, $38, $FE, $38, $6C, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $00, $30, $30, $FC, $30, $30, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $00, $00, $00, $00, $00, $18, $18, $30, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $00, $00, $00, $FC, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $00, $00, $00, $00, $00, $30, $30, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $06, $0C, $18, $30, $60, $C0, $80, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $7C, $C6, $C6, $D6, $C6, $C6, $7C, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $30, $70, $30, $30, $30, $30, $FC, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $78, $CC, $0C, $38, $60, $CC, $FC, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $78, $CC, $0C, $38, $0C, $CC, $78, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $1C, $3C, $6C, $CC, $FE, $0C, $1E, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $FC, $C0, $F8, $0C, $0C, $CC, $78, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $38, $60, $C0, $F8, $CC, $CC, $78, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $FC, $CC, $0C, $18, $30, $30, $30, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $78, $CC, $CC, $78, $CC, $CC, $78, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $78, $CC, $CC, $7C, $0C, $18, $70, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $00, $30, $30, $00, $00, $30, $30, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $00, $30, $30, $00, $00, $30, $30, $60, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $18, $30, $60, $C0, $60, $30, $18, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $00, $00, $FC, $00, $FC, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $60, $30, $18, $0C, $18, $30, $60, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $78, $CC, $0C, $18, $30, $00, $30, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $7C, $C6, $DE, $DE, $DC, $C0, $78, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $38, $6C, $C6, $C6, $FE, $C6, $C6, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $FC, $66, $66, $7C, $66, $66, $FC, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $3C, $66, $C0, $C0, $C0, $66, $3C, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $F8, $6C, $66, $66, $66, $6C, $F8, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $FE, $62, $68, $78, $68, $62, $FE, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $FE, $62, $68, $78, $68, $60, $F0, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $3C, $66, $C0, $C0, $CE, $66, $3E, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $C6, $C6, $C6, $FE, $C6, $C6, $C6, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $78, $30, $30, $30, $30, $30, $78, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $1E, $0C, $0C, $0C, $CC, $CC, $78, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $E6, $66, $6C, $78, $6C, $66, $E6, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $F0, $60, $60, $60, $62, $66, $FE, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $C6, $EE, $FE, $FE, $D6, $C6, $C6, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $C6, $E6, $F6, $DE, $CE, $C6, $C6, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $7C, $C6, $C6, $C6, $C6, $C6, $7C, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $FC, $66, $66, $7C, $60, $60, $F0, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $7C, $C6, $C6, $C6, $C6, $CE, $7C, $0E, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $FC, $66, $66, $7C, $6C, $66, $E6, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $78, $CC, $E0, $78, $1C, $CC, $78, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $FC, $B4, $30, $30, $30, $30, $78, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $C6, $C6, $C6, $C6, $C6, $C6, $7C, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $C6, $C6, $C6, $C6, $C6, $6C, $38, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $C6, $C6, $C6, $D6, $D6, $FE, $6C, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $C6, $C6, $6C, $38, $6C, $C6, $C6, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $CC, $CC, $CC, $78, $30, $30, $78, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $FE, $CC, $98, $30, $62, $C6, $FE, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $78, $60, $60, $60, $60, $60, $78, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $C0, $60, $30, $18, $0C, $06, $02, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $78, $18, $18, $18, $18, $18, $78, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $10, $38, $6C, $C6, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $00, $00, $00, $00, $00, $00, $00, $FE, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $30, $30, $18, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $00, $00, $78, $0C, $7C, $CC, $76, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $E0, $60, $60, $7C, $66, $66, $DC, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $00, $00, $78, $CC, $C0, $CC, $78, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $1C, $0C, $0C, $7C, $CC, $CC, $76, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $00, $00, $78, $CC, $FC, $C0, $78, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $38, $6C, $60, $F0, $60, $60, $F0, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $00, $00, $76, $CC, $CC, $7C, $0C, $F8, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $E0, $60, $6C, $76, $66, $66, $E6, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $30, $00, $70, $30, $30, $30, $78, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $0C, $00, $1C, $0C, $0C, $CC, $CC, $78, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $E0, $60, $66, $6C, $78, $6C, $E6, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $70, $30, $30, $30, $30, $30, $78, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $00, $00, $EC, $FE, $D6, $D6, $D6, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $00, $00, $DC, $66, $66, $66, $66, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $00, $00, $78, $CC, $CC, $CC, $78, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $00, $00, $DC, $66, $66, $7C, $60, $F0, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $00, $00, $76, $CC, $CC, $7C, $0C, $1E, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $00, $00, $DC, $76, $60, $60, $F0, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $00, $00, $7C, $C0, $78, $0C, $F8, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $10, $30, $FC, $30, $30, $36, $1C, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $00, $00, $CC, $CC, $CC, $CC, $76, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $00, $00, $C6, $C6, $C6, $6C, $38, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $00, $00, $C6, $D6, $D6, $FE, $6C, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $00, $00, $C6, $6C, $38, $6C, $C6, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $00, $00, $CC, $CC, $CC, $7C, $0C, $F8, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $00, $00, $FC, $98, $30, $64, $FC, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $1C, $30, $30, $E0, $30, $30, $1C, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $18, $18, $18, $18, $18, $18, $18, $18, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $E0, $30, $30, $1C, $30, $30, $E0, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $76, $DC, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $00, $00, $18, $3C, $3C, $18, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $C0, $60, $1C, $36, $63, $7F, $63, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $03, $06, $38, $6C, $C6, $FE, $C6, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $10, $28, $00, $7C, $C6, $FE, $C6, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $76, $DC, $00, $7C, $C6, $FE, $C6, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $6C, $00, $38, $6C, $C6, $FE, $C6, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $38, $6C, $38, $6C, $C6, $FE, $C6, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $3F, $6D, $CC, $FF, $CC, $CD, $CF, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $3C, $66, $C0, $C0, $66, $3C, $06, $3C, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $60, $30, $FE, $62, $78, $62, $FE, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $0C, $18, $FE, $62, $78, $62, $FE, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $10, $28, $FE, $62, $78, $62, $FE, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $6C, $00, $FE, $62, $78, $62, $FE, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $60, $30, $00, $78, $30, $30, $78, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $18, $30, $00, $78, $30, $30, $78, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $20, $50, $00, $78, $30, $30, $78, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $CC, $00, $78, $30, $30, $30, $78, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $F8, $6C, $66, $F6, $66, $6C, $F8, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $76, $DC, $00, $E6, $F6, $DE, $CE, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $60, $30, $00, $7C, $C6, $C6, $7C, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $0C, $18, $00, $7C, $C6, $C6, $7C, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $10, $28, $00, $7C, $C6, $C6, $7C, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $76, $DC, $00, $7C, $C6, $C6, $7C, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $6C, $00, $7C, $C6, $C6, $C6, $7C, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $00, $00, $6C, $38, $6C, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $3D, $67, $6E, $7E, $76, $E6, $BC, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $60, $30, $00, $C6, $C6, $C6, $7C, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $0C, $18, $00, $C6, $C6, $C6, $7C, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $10, $28, $00, $C6, $C6, $C6, $7C, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $6C, $00, $C6, $C6, $C6, $C6, $7C, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $18, $30, $CC, $CC, $78, $30, $78, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $F0, $60, $7C, $66, $7C, $60, $F0, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $78, $CC, $CC, $D8, $CC, $C6, $CC, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $AA, $55, $AA, $55, $AA, $55, $AA, $55, $AA, $00, $00, $00, $00, $00, $00, $00 + .DB $30, $00, $30, $30, $78, $78, $30, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $00, $10, $7C, $D6, $D0, $D6, $7C, $10, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $38, $6C, $64, $F0, $60, $66, $FC, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $1E, $31, $FC, $60, $F8, $33, $1E, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $CC, $CC, $78, $FC, $30, $FC, $30, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $28, $10, $7C, $C0, $78, $0C, $F8, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $3E, $61, $3C, $66, $66, $3C, $86, $7C, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $28, $10, $7C, $C0, $78, $0C, $F8, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $3C, $42, $99, $A1, $A1, $99, $42, $3C, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $3C, $6C, $6C, $3E, $00, $7E, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $00, $33, $66, $CC, $66, $33, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $00, $00, $00, $FC, $0C, $0C, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $00, $66, $3C, $66, $66, $3C, $66, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $3C, $42, $B9, $A5, $B9, $A5, $42, $3C, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $7C, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $38, $6C, $6C, $38, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $30, $30, $FC, $30, $30, $00, $FC, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $38, $6C, $18, $30, $7C, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $78, $0C, $38, $0C, $78, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $50, $20, $FC, $98, $30, $64, $FC, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $00, $00, $66, $66, $66, $66, $7B, $C0, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $7F, $DB, $DB, $7B, $1B, $1B, $1B, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $00, $00, $00, $30, $30, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $50, $20, $FC, $98, $30, $64, $FC, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $18, $38, $18, $18, $3C, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $38, $6C, $6C, $38, $00, $7C, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $00, $CC, $66, $33, $66, $CC, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $7F, $CD, $CC, $CF, $CC, $CD, $7F, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $00, $00, $7E, $DB, $DE, $D8, $7E, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $CC, $00, $CC, $CC, $78, $30, $78, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $30, $00, $30, $60, $C0, $CC, $78, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $00, $00, $00, $00, $FF, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $18, $18, $18, $18, $18, $18, $18, $18, $18, $00, $00, $00, $00, $00, $00, $00 + .DB $00, $00, $00, $00, $1F, $18, $18, $18, $18, $00, $00, $00, $00, $00, $00, $00 + .DB $00, $00, $00, $00, $F8, $18, $18, $18, $18, $00, $00, $00, $00, $00, $00, $00 + .DB $18, $18, $18, $18, $1F, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $18, $18, $18, $18, $F8, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $18, $18, $18, $18, $1F, $18, $18, $18, $18, $00, $00, $00, $00, $00, $00, $00 + .DB $18, $18, $18, $18, $F8, $18, $18, $18, $18, $00, $00, $00, $00, $00, $00, $00 + .DB $00, $00, $00, $00, $FF, $18, $18, $18, $18, $00, $00, $00, $00, $00, $00, $00 + .DB $18, $18, $18, $18, $FF, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $18, $18, $18, $18, $FF, $18, $18, $18, $18, $00, $00, $00, $00, $00, $00, $00 + .DB $88, $22, $88, $22, $88, $22, $88, $22, $88, $00, $00, $00, $00, $00, $00, $00 + .DB $FF, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $00, $00, $FF, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $00, $00, $00, $00, $00, $00, $FF, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $00, $00, $00, $00, $00, $00, $00, $00, $FF, $00, $00, $00, $00, $00, $00, $00 + .DB $00, $00, $00, $FF, $00, $FF, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $36, $36, $36, $36, $36, $36, $36, $36, $36, $00, $00, $00, $00, $00, $00, $00 + .DB $00, $00, $00, $3F, $30, $37, $36, $36, $36, $00, $00, $00, $00, $00, $00, $00 + .DB $00, $00, $00, $FE, $06, $F6, $36, $36, $36, $00, $00, $00, $00, $00, $00, $00 + .DB $36, $36, $36, $37, $30, $3F, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $36, $36, $36, $F6, $06, $FE, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $36, $36, $36, $37, $30, $37, $36, $36, $36, $00, $00, $00, $00, $00, $00, $00 + .DB $36, $36, $36, $F6, $06, $F6, $36, $36, $36, $00, $00, $00, $00, $00, $00, $00 + .DB $00, $00, $00, $FF, $00, $F7, $36, $36, $36, $00, $00, $00, $00, $00, $00, $00 + .DB $36, $36, $36, $F7, $00, $FF, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $36, $36, $36, $F7, $00, $F7, $36, $36, $36, $00, $00, $00, $00, $00, $00, $00 + .DB $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $00, $00, $00, $00, $00, $00, $00 + .DB $18, $3C, $7E, $18, $18, $18, $18, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $18, $18, $18, $18, $7E, $3C, $18, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $00, $18, $30, $7F, $30, $18, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $00, $18, $0C, $FE, $0C, $18, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $60, $30, $78, $0C, $7C, $CC, $76, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $18, $30, $78, $0C, $7C, $CC, $76, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $10, $28, $78, $0C, $7C, $CC, $76, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $76, $DC, $78, $0C, $7C, $CC, $76, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $6C, $00, $78, $0C, $7C, $CC, $76, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $38, $6C, $38, $0C, $7C, $CC, $76, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $00, $00, $7E, $1B, $7E, $D8, $6E, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $00, $78, $CC, $C0, $CC, $78, $0C, $78, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $60, $30, $78, $CC, $FC, $C0, $78, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $18, $30, $78, $CC, $FC, $C0, $78, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $10, $28, $78, $CC, $FC, $C0, $78, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $6C, $00, $78, $CC, $FC, $C0, $78, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $60, $30, $00, $70, $30, $30, $78, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $18, $30, $00, $70, $30, $30, $78, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $20, $50, $00, $70, $30, $30, $78, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $D8, $00, $70, $30, $30, $30, $78, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $34, $18, $2C, $7C, $CC, $CC, $78, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $76, $DC, $00, $DC, $66, $66, $66, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $60, $30, $00, $7C, $C6, $C6, $7C, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $0C, $18, $00, $7C, $C6, $C6, $7C, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $10, $28, $00, $7C, $C6, $C6, $7C, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $76, $DC, $00, $7C, $C6, $C6, $7C, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $00, $6C, $00, $7C, $C6, $C6, $7C, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $30, $30, $00, $FC, $00, $30, $30, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $00, $3D, $66, $6E, $76, $66, $BC, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $60, $30, $00, $CC, $CC, $CC, $76, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $18, $30, $00, $CC, $CC, $CC, $76, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $20, $50, $00, $CC, $CC, $CC, $76, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $CC, $00, $CC, $CC, $CC, $CC, $76, $00, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $18, $30, $CC, $CC, $CC, $7C, $0C, $F8, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $E0, $60, $7C, $66, $66, $7C, $60, $F0, $00, $00, $00, $00, $00, $00, $00, $00 + .DB $CC, $00, $CC, $CC, $CC, $7C, $0C, $F8, $00, $00, $00, $00, $00, $00, $00, $00 + + diff --git a/Source/HBIOS/font_hi.asm b/Source/HBIOS/font_hi.asm index d4750aae..4fbc2e7a 100644 --- a/Source/HBIOS/font_hi.asm +++ b/Source/HBIOS/font_hi.asm @@ -1,4 +1,3 @@ -FONT_HI: .DB $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 .DB $00,$00,$7E,$81,$A5,$81,$81,$BD,$99,$81,$81,$7E,$00,$00,$00,$00 .DB $00,$00,$7C,$FE,$FE,$D6,$FE,$FE,$BA,$C6,$FE,$7C,$00,$00,$00,$00 diff --git a/Source/HBIOS/hbios.asm b/Source/HBIOS/hbios.asm index ba334268..6b31ade4 100644 --- a/Source/HBIOS/hbios.asm +++ b/Source/HBIOS/hbios.asm @@ -2849,11 +2849,37 @@ SIZ_NEC .EQU $ - ORG_NEC .ECHO " bytes.\n" #ENDIF ; +; CVDU AND VGA3 CAN USE THE SAME FONT ROM UNLESS VGA3 MODE IS USING V80X43 MODE +; #IF (CVDUENABLE | VGAENABLE) ORG_FONTHI .EQU $ +#IF (VGAENABLE & CVDUENABLE) + #IF (VGASIZ=V80X43) +VGA_FONT: + #INCLUDE "font8043.asm" +CVDU_FONT: + #INCLUDE "font_hi.asm" + #ELSE +VGA_FONT: +CVDU_FONT: + #INCLUDE "font_hi.asm" + #ENDIF +#ELSE + #IF (VDUENABLE) +VGA_FONT: + #IF VGASIZ=(V80X43) + #INCLUDE "font8043.asm" + #ELSE + #INCLUDE "font_hi.asm" + #ENDIF + #ENDIF + #IF (CVDUENABLE) +CVDU_FONT: #INCLUDE "font_hi.asm" + #ENDIF +#ENDIF SIZ_FONTHI .EQU $ - ORG_FONTHI - .ECHO "FONTHI occupies " + .ECHO "FONTS occupy " .ECHO SIZ_FONTHI .ECHO " bytes.\n" #ENDIF diff --git a/Source/HBIOS/std.asm b/Source/HBIOS/std.asm index fa3db59a..4d0e2359 100644 --- a/Source/HBIOS/std.asm +++ b/Source/HBIOS/std.asm @@ -277,13 +277,14 @@ SER_7372800_8N1 .EQU SER_BAUD7372800 | SER_DATA8 | SER_PARNONE | SER_STOP1 ; TERMENABLE .EQU FALSE ; TERM PSEUDO DEVICE, WILL AUTO-ENABLE IF A VDA IS ENABLED ; -; ECB-VDU MODES -; -V80X24 .EQU 0 -V80X25 .EQU 1 -V80X30 .EQU 2 -V80X25B .EQU 3 -V80X24B .EQU 4 +; VIDEO MODES +; +V80X24 .EQU 0 ; ECB-VDU +V80X25 .EQU 1 ; ECB-VDU, ECB-VGA3 +V80X30 .EQU 2 ; ECB-VDU, ECB-VGA3 +V80X25B .EQU 3 ; ECB-VDU +V80X24B .EQU 4 ; ECB-VDU +V80X43 .EQU 5 ; ECB-VGA3 ; ; KEYBOARD LAYOUTS ; diff --git a/Source/HBIOS/vga.asm b/Source/HBIOS/vga.asm index 420afccc..e6875dbb 100644 --- a/Source/HBIOS/vga.asm +++ b/Source/HBIOS/vga.asm @@ -21,8 +21,42 @@ VGA_HI .EQU VGA_BASE + $05 ; BOARD RAM HI ADDRESS VGA_LO .EQU VGA_BASE + $06 ; BOARD RAM LO ADDRESS VGA_DAT .EQU VGA_BASE + $07 ; BOARD RAM BYTE R/W ; +VGA_NOBL .EQU 00000000B ; NO BLINK +VGA_NOCU .EQU 00100000B ; NO CURSOR +VGA_BFAS .EQU 01000000B ; BLINK AT X16 RATE +VGA_BSLO .EQU 01100000B ; BLINK AT X32 RATE +; +VGA_BLOK .EQU 0 ; BLOCK CURSOR +VGA_ULIN .EQU 1 ; UNDERLINE CURSOR +; +VGA_CSTY .EQU VGA_BLOK ; DEFAULT CURSOR STYLE +VGA_BLNK .EQU VGA_NOBL ; DEFAULT BLINK RATE +; +#IF (VGASIZ=V80X25) VGA_ROWS .EQU 25 VGA_COLS .EQU 80 +VGA_SCANL .EQU 16 +#ENDIF +#IF (VGASIZ=V80X30) +VGA_ROWS .EQU 30 +VGA_COLS .EQU 80 +VGA_SCANL .EQU 16 +#ENDIF +#IF (VGASIZ=V80X43) +VGA_ROWS .EQU 43 +VGA_COLS .EQU 80 +VGA_SCANL .EQU 11 +#ENDIF +; +#IF VGA_CSTY=VGA_BLOK +VGA_R10 .EQU (VGA_BLNK + $00) +VGA_R11 .EQU VGA_SCANL-1 +#ENDIF +; +#IF VGA_CSTY=VGA_ULIN +VGA_R10 .EQU (VGA_BLNK + VGA_SCANL-1) +VGA_R11 .EQU VGA_SCANL-1 +#ENDIF ; #DEFINE DEFREGS REGS_VGA ; @@ -68,7 +102,7 @@ VGA_INIT1: ; HARDWARE INITIALIZATION CALL VGA_CRTINIT ; SETUP THE VGA CHIP REGISTERS - CALL VGA_LOADFONT ; LOAD FONT DATA FROM ROM TO VGA STRORAGE + CALL VGA_LOADFONT ; LOAD FONT DATA FROM ROM TO VGA STORAGE CALL VGA_VDARES CALL KBD_INIT ; INITIALIZE KEYBOARD DRIVER @@ -128,13 +162,13 @@ VGA_VDAQRY: VGA_VDARES: LD A,$07 ; ATTRIBUTE IS STANDARD WHITE ON BLACK LD (VGA_ATTR),A ; SAVE IT - XOR A ; ZERO (REVEVERSE, UNDERLINE, BLINK) + XOR A ; ZERO (REVERSE, UNDERLINE, BLINK) LD (VGA_RUB),A ; SAVE IT LD DE,0 ; ROW = 0, COL = 0 CALL VGA_XY ; SEND CURSOR TO TOP LEFT LD A,' ' ; BLANK THE SCREEN - LD DE,$800 ; FILL ENTIRE BUFFER + LD DE,(VGA_ROWS*VGA_COLS) ; FILL ENTIRE BUFFER CALL VGA_FILL ; DO IT LD DE,0 ; ROW = 0, COL = 0 CALL VGA_XY ; SEND CURSOR TO TOP LEFT @@ -291,7 +325,7 @@ VGA_REGWR: VGA_REGWRX: LD A,H ; SETUP MSB TO WRITE CALL VGA_REGWR ; DO IT - INC C ; NEXT CVDU REGISTER + INC C ; NEXT VDU REGISTER LD A,L ; SETUP LSB TO WRITE JR VGA_REGWR ; DO IT & RETURN ; @@ -463,7 +497,7 @@ VGA_LOADFONT: CALL VGA_SETCFG LD DE,$7000 ; PAGE 7 OF VIDEO RAM - LD HL,FONT_HI ; START OF FONT DATA + LD HL,VGA_FONT ; START OF FONT DATA VGA_LOADFONT1: LD A,(HL) ; GET NEXT BYTE CALL VGA_MEMWR ; MEM(DE) := A @@ -514,7 +548,7 @@ VGA_XY2IDX1: RET ; RETURN ; ;---------------------------------------------------------------------- -; WRITE VALUE IN A TO CURRENT VDU BUFFER POSTION, ADVANCE CURSOR +; WRITE VALUE IN A TO CURRENT VDU BUFFER POSITION, ADVANCE CURSOR ;---------------------------------------------------------------------- ; VGA_PUTCHAR: @@ -829,8 +863,9 @@ VGA_RUB .DB 0 ; REVERSE/UNDERLINE/BLINK (-----RUB) ; BIT 1: FG GREEN ; BIT 0: FG BLUE ; +#IF (VGASIZ=V80X25) ;=============================================================================== -; DEFAULT REGISTER VALUES +; 80x25 70hz REGISTER VALUES ;=============================================================================== ; REGS_VGA: @@ -843,8 +878,8 @@ REGS_VGA: .DB 6,25 ; VERT DISP .DB 7,25 + 0 ; VERT DISP + VERT FP ROWS .DB 9,16 - 1 ; CHAR HEIGHT - 1 - .DB 10,(13 | $60) ; CURSOR START & CURSOR BLINK - .DB 11,14 ; CURSOR END + .DB 10,VGA_R10 ; CURSOR START & CURSOR BLINK + .DB 11,VGA_R11 ; CURSOR END .DB 12,($0000 >> 8) & $FF ; SCRN 1 START (HI) .DB 13,($0000 & $FF) ; SCRN 1 START (LO) .DB 18,-1 ; S2 ROW - 1 @@ -852,7 +887,55 @@ REGS_VGA: .DB 30,$01 | $08 ; CTL 1, 2 WINDOWS & ENABLE R27 VSYNC FINE ADJ .DB $FF ; END MARKER +#ENDIF +#IF (VGASIZ=V80X30) +;=============================================================================== +; 80x30 60hz REGISTER VALUES +;=============================================================================== ; +REGS_VGA: + .DB 0,100 - 1 ; HORZ TOT - 1 + .DB 1,80 ; HORZ DISP + .DB 2,80 + 2 ; HORZ DISP + HORZ FP + .DB 3,44 ; VERT SW, HORZ SW + .DB 4,33 - 1 ; VERT TOT - 1 + .DB 5,13 ; VERT TOT ADJ + .DB 6,30 ; VERT DISP + .DB 7,30 + 0 ; VERT DISP + VERT FP ROWS + .DB 9,16 - 1 ; CHAR HEIGHT - 1 + .DB 10,VGA_R10 ; CURSOR START & CURSOR BLINK + .DB 11,VGA_R11 ; CURSOR END + .DB 12,0 ; SCRN 1 START (HI) + .DB 13,0 ; SCRN 1 START (LO) + .DB 18,-1 ; S2 ROW - 1 + .DB 27,0 ; VERT SYNC POS ADJ + .DB 30,$01 | $08 ; CTL 1, 2 WINDOWS & ENABLE R27 VSYNC FINE ADJ + .DB $FF ; END MARKER +#ENDIF +#IF (VGASIZ=V80X43) +;=============================================================================== +; 80x43 60hz REGISTER VALUES +;=============================================================================== +; +REGS_VGA: + .DB 0,100 - 1 ; HORZ TOT - 1 + .DB 1,80 ; HORZ DISP + .DB 2,80 + 2 ; HORZ DISP + HORZ FP + .DB 3,44 ; VERT SW, HORZ SW + .DB 4,47 - 1 ; VERT TOT - 1 + .DB 5,8 ; VERT TOT ADJ + .DB 6,43 ; VERT DISP + .DB 7,43 + 0 ; VERT DISP + VERT FP ROWS + .DB 9,11 - 1 ; CHAR HEIGHT - 1 + .DB 10,VGA_R10 ; CURSOR START & CURSOR BLINK + .DB 11,VGA_R11 ; CURSOR END + .DB 12,0 ; SCRN 1 START (HI) + .DB 13,0 ; SCRN 1 START (LO) + .DB 18,-1 ; S2 ROW - 1 + .DB 27,0 ; VERT SYNC POS ADJ + .DB 30,$01 | $08 ; CTL 1, 2 WINDOWS & ENABLE R27 VSYNC FINE ADJ + .DB $FF ; END MARKER +#ENDIF ;================================================================================================== ; VGA DRIVER - INSTANCE DATA ;==================================================================================================