Browse Source

Merge pull request #66 from b1ackmai1er/master

Add 80x43 video mode to VGA3 driver
patch
Wayne Warthen 6 years ago
committed by GitHub
parent
commit
3c01f5b037
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      Source/HBIOS/ansi.asm
  2. 2
      Source/HBIOS/cfg_master.asm
  3. 2
      Source/HBIOS/cfg_mk4.asm
  4. 2
      Source/HBIOS/cfg_n8.asm
  5. 2
      Source/HBIOS/cfg_sbc.asm
  6. 2
      Source/HBIOS/cvdu.asm
  7. 260
      Source/HBIOS/font8043.asm
  8. 1
      Source/HBIOS/font_hi.asm
  9. 28
      Source/HBIOS/hbios.asm
  10. 1
      Source/HBIOS/std.asm
  11. 70
      Source/HBIOS/vga.asm

2
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

2
Source/HBIOS/cfg_master.asm

@ -142,7 +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]
VGASIZ .EQU V80X25 ; VGA: DISPLAY FORMAT [V80X25|V80X30|V80X43]
;
SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM)
;

2
Source/HBIOS/cfg_mk4.asm

@ -97,7 +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]
VGASIZ .EQU V80X25 ; VGA: DISPLAY FORMAT [V80X25|V80X30|V80X43]
;
SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM)
;

2
Source/HBIOS/cfg_n8.asm

@ -100,7 +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]
VGASIZ .EQU V80X25 ; VGA: DISPLAY FORMAT [V80X25|V80X30|V80X43]
;
SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM)
;

2
Source/HBIOS/cfg_sbc.asm

@ -100,7 +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]
VGASIZ .EQU V80X25 ; VGA: DISPLAY FORMAT [V80X25|V80X30|V80X43]
;
SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM)
;

2
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:

260
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

1
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

28
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

1
Source/HBIOS/std.asm

@ -284,6 +284,7 @@ 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
;

70
Source/HBIOS/vga.asm

@ -21,6 +21,17 @@ 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
@ -31,6 +42,21 @@ 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
;
@ -76,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
@ -136,7 +162,7 @@ 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
@ -299,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
;
@ -471,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
@ -839,7 +865,7 @@ VGA_RUB .DB 0 ; REVERSE/UNDERLINE/BLINK (-----RUB)
;
#IF (VGASIZ=V80X25)
;===============================================================================
; 80x25 REGISTER VALUES
; 80x25 70hz REGISTER VALUES
;===============================================================================
;
REGS_VGA:
@ -852,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
@ -864,7 +890,7 @@ REGS_VGA:
#ENDIF
#IF (VGASIZ=V80X30)
;===============================================================================
; 80x30 REGISTER VALUES
; 80x30 60hz REGISTER VALUES
;===============================================================================
;
REGS_VGA:
@ -877,8 +903,32 @@ REGS_VGA:
.DB 6,30 ; VERT DISP
.DB 7,30 + 0 ; VERT DISP + VERT FP ROWS
.DB 9,16 - 1 ; CHAR HEIGHT - 1
.DB 10,109 ; 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,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

Loading…
Cancel
Save