From da26366c0bd496f4c77c49e0c1c7f89b5397ad42 Mon Sep 17 00:00:00 2001 From: b1ackmai1er Date: Fri, 10 Jan 2020 11:26:31 +0800 Subject: [PATCH 1/7] Add 80x43 video mode to VGA3 driver With associated font file --- Source/HBIOS/cvdu.asm | 2 +- Source/HBIOS/font8043.asm | 258 ++++++++++++++++++++++++++++++++++++++ Source/HBIOS/font_hi.asm | 1 - Source/HBIOS/hbios.asm | 28 ++++- Source/HBIOS/std.asm | 1 + Source/HBIOS/vga.asm | 35 +++++- 6 files changed, 319 insertions(+), 6 deletions(-) create mode 100644 Source/HBIOS/font8043.asm 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..0e50a62e --- /dev/null +++ b/Source/HBIOS/font8043.asm @@ -0,0 +1,258 @@ + .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..5110377a 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 cd62028e..4d0e2359 100644 --- a/Source/HBIOS/std.asm +++ b/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 ; diff --git a/Source/HBIOS/vga.asm b/Source/HBIOS/vga.asm index d88b55bb..50022544 100644 --- a/Source/HBIOS/vga.asm +++ b/Source/HBIOS/vga.asm @@ -31,6 +31,11 @@ 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 ; #DEFINE DEFREGS REGS_VGA ; @@ -471,7 +476,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 +844,7 @@ VGA_RUB .DB 0 ; REVERSE/UNDERLINE/BLINK (-----RUB) ; #IF (VGASIZ=V80X25) ;=============================================================================== -; 80x25 REGISTER VALUES +; 80x25 70hz REGISTER VALUES ;=============================================================================== ; REGS_VGA: @@ -864,7 +869,7 @@ REGS_VGA: #ENDIF #IF (VGASIZ=V80X30) ;=============================================================================== -; 80x30 REGISTER VALUES +; 80x30 60hz REGISTER VALUES ;=============================================================================== ; REGS_VGA: @@ -886,6 +891,30 @@ REGS_VGA: .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,109 ; CURSOR START & CURSOR BLINK + .DB 11,14 ; 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 ;================================================================================================== From be45e63e90509710fcab5cfa8e90d217aed2e51c Mon Sep 17 00:00:00 2001 From: b1ackmai1er Date: Fri, 10 Jan 2020 11:40:56 +0800 Subject: [PATCH 2/7] minors --- Source/HBIOS/cfg_master.asm | 2 +- Source/HBIOS/cfg_mk4.asm | 2 +- Source/HBIOS/cfg_n8.asm | 2 +- Source/HBIOS/cfg_sbc.asm | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Source/HBIOS/cfg_master.asm b/Source/HBIOS/cfg_master.asm index 6db57035..41395a09 100644 --- a/Source/HBIOS/cfg_master.asm +++ b/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) ; diff --git a/Source/HBIOS/cfg_mk4.asm b/Source/HBIOS/cfg_mk4.asm index 52be1615..a614407f 100644 --- a/Source/HBIOS/cfg_mk4.asm +++ b/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) ; diff --git a/Source/HBIOS/cfg_n8.asm b/Source/HBIOS/cfg_n8.asm index 37d9e548..22498548 100644 --- a/Source/HBIOS/cfg_n8.asm +++ b/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) ; diff --git a/Source/HBIOS/cfg_sbc.asm b/Source/HBIOS/cfg_sbc.asm index 81428605..54dcea5e 100644 --- a/Source/HBIOS/cfg_sbc.asm +++ b/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) ; From 5cda17b80075966b8c2c8b1ab3ae4966d0afdd73 Mon Sep 17 00:00:00 2001 From: b1ackmai1er Date: Fri, 10 Jan 2020 15:32:39 +0800 Subject: [PATCH 3/7] minors --- Source/HBIOS/font8043.asm | 2 ++ Source/HBIOS/hbios.asm | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/Source/HBIOS/font8043.asm b/Source/HBIOS/font8043.asm index 0e50a62e..406db88c 100644 --- a/Source/HBIOS/font8043.asm +++ b/Source/HBIOS/font8043.asm @@ -1,3 +1,5 @@ +; 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 diff --git a/Source/HBIOS/hbios.asm b/Source/HBIOS/hbios.asm index 5110377a..6b31ade4 100644 --- a/Source/HBIOS/hbios.asm +++ b/Source/HBIOS/hbios.asm @@ -2854,7 +2854,7 @@ SIZ_NEC .EQU $ - ORG_NEC #IF (CVDUENABLE | VGAENABLE) ORG_FONTHI .EQU $ #IF (VGAENABLE & CVDUENABLE) - #IF (VGASIZ=V80X43)) + #IF (VGASIZ=V80X43) VGA_FONT: #INCLUDE "font8043.asm" CVDU_FONT: From e6183cddece8d770902441623ae5a3d842b27c4f Mon Sep 17 00:00:00 2001 From: b1ackmai1er Date: Fri, 10 Jan 2020 17:22:31 +0800 Subject: [PATCH 4/7] minors --- Source/Apps/Tune/Tune.asm | 4 ++++ Source/HBIOS/ansi.asm | 2 +- Source/HBIOS/vga.asm | 6 +++--- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/Source/Apps/Tune/Tune.asm b/Source/Apps/Tune/Tune.asm index 54429c23..91a6173d 100644 --- a/Source/Apps/Tune/Tune.asm +++ b/Source/Apps/Tune/Tune.asm @@ -2172,6 +2172,8 @@ LOUT OUT (C),A #IF WBW DI CALL SLOWIO + LD A,8 ; sbc-v2-004 change to + OUT (112),A ; half clock speed LD DE,(CFG) ; D := RDAT, E := RSEL XOR A ; start with reg 0 LD C,E ; point to address port @@ -2190,6 +2192,8 @@ LOUT OUT (C),A ; select register LD C,D ; select data port OUT (C),A ; write value to register 13 LOUT2 + LD A,0 ; sbc-v2-004 change to + OUT (112),A ; full clock speed CALL NORMIO EI RET ; And done 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/vga.asm b/Source/HBIOS/vga.asm index 50022544..30203a39 100644 --- a/Source/HBIOS/vga.asm +++ b/Source/HBIOS/vga.asm @@ -81,7 +81,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 @@ -141,7 +141,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 @@ -304,7 +304,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 ; From 4f798e2454c02450e35e3fc688d0e08b5d02b74e Mon Sep 17 00:00:00 2001 From: b1ackmai1er Date: Fri, 10 Jan 2020 17:22:59 +0800 Subject: [PATCH 5/7] Revert "minors" This reverts commit e6183cddece8d770902441623ae5a3d842b27c4f. --- Source/Apps/Tune/Tune.asm | 4 ---- Source/HBIOS/ansi.asm | 2 +- Source/HBIOS/vga.asm | 6 +++--- 3 files changed, 4 insertions(+), 8 deletions(-) diff --git a/Source/Apps/Tune/Tune.asm b/Source/Apps/Tune/Tune.asm index 91a6173d..54429c23 100644 --- a/Source/Apps/Tune/Tune.asm +++ b/Source/Apps/Tune/Tune.asm @@ -2172,8 +2172,6 @@ LOUT OUT (C),A #IF WBW DI CALL SLOWIO - LD A,8 ; sbc-v2-004 change to - OUT (112),A ; half clock speed LD DE,(CFG) ; D := RDAT, E := RSEL XOR A ; start with reg 0 LD C,E ; point to address port @@ -2192,8 +2190,6 @@ LOUT OUT (C),A ; select register LD C,D ; select data port OUT (C),A ; write value to register 13 LOUT2 - LD A,0 ; sbc-v2-004 change to - OUT (112),A ; full clock speed CALL NORMIO EI RET ; And done diff --git a/Source/HBIOS/ansi.asm b/Source/HBIOS/ansi.asm index 1f2d5f8a..77435b24 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 ; TREAT AS LINEFEED + JP Z,ANSI_LF ; TREAD AS LINEFEED CP $0C ; FF: FORMFEED JP Z,ANSI_LF ; TREAT AS LINEFEED CP $0D ; CR: CARRIAGE RETURN diff --git a/Source/HBIOS/vga.asm b/Source/HBIOS/vga.asm index 30203a39..50022544 100644 --- a/Source/HBIOS/vga.asm +++ b/Source/HBIOS/vga.asm @@ -81,7 +81,7 @@ VGA_INIT1: ; HARDWARE INITIALIZATION CALL VGA_CRTINIT ; SETUP THE VGA CHIP REGISTERS - CALL VGA_LOADFONT ; LOAD FONT DATA FROM ROM TO VGA STORAGE + CALL VGA_LOADFONT ; LOAD FONT DATA FROM ROM TO VGA STRORAGE CALL VGA_VDARES CALL KBD_INIT ; INITIALIZE KEYBOARD DRIVER @@ -141,7 +141,7 @@ VGA_VDAQRY: VGA_VDARES: LD A,$07 ; ATTRIBUTE IS STANDARD WHITE ON BLACK LD (VGA_ATTR),A ; SAVE IT - XOR A ; ZERO (REVERSE, UNDERLINE, BLINK) + XOR A ; ZERO (REVEVERSE, UNDERLINE, BLINK) LD (VGA_RUB),A ; SAVE IT LD DE,0 ; ROW = 0, COL = 0 @@ -304,7 +304,7 @@ VGA_REGWR: VGA_REGWRX: LD A,H ; SETUP MSB TO WRITE CALL VGA_REGWR ; DO IT - INC C ; NEXT VDU REGISTER + INC C ; NEXT CVDU REGISTER LD A,L ; SETUP LSB TO WRITE JR VGA_REGWR ; DO IT & RETURN ; From 5bf4dbc30f7508399b51caf5e0f2365e58080144 Mon Sep 17 00:00:00 2001 From: b1ackmai1er Date: Fri, 10 Jan 2020 17:32:27 +0800 Subject: [PATCH 6/7] minors --- Source/HBIOS/ansi.asm | 2 +- Source/HBIOS/vga.asm | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) 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/vga.asm b/Source/HBIOS/vga.asm index 50022544..30203a39 100644 --- a/Source/HBIOS/vga.asm +++ b/Source/HBIOS/vga.asm @@ -81,7 +81,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 @@ -141,7 +141,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 @@ -304,7 +304,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 ; From 60f96f32441b850d073d80758b7c9211538fb91c Mon Sep 17 00:00:00 2001 From: b1ackmai1er Date: Fri, 10 Jan 2020 20:11:19 +0800 Subject: [PATCH 7/7] Add cursor support fo VGA 80x43 mode Align with VDU driver --- Source/HBIOS/vga.asm | 33 +++++++++++++++++++++++++++------ 1 file changed, 27 insertions(+), 6 deletions(-) diff --git a/Source/HBIOS/vga.asm b/Source/HBIOS/vga.asm index 30203a39..e6875dbb 100644 --- a/Source/HBIOS/vga.asm +++ b/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 @@ -37,6 +48,16 @@ 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 ; TERMENABLE .SET TRUE ; INCLUDE TERMINAL PSEUDODEVICE DRIVER @@ -857,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 @@ -882,8 +903,8 @@ 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 @@ -906,8 +927,8 @@ REGS_VGA: .DB 6,43 ; VERT DISP .DB 7,43 + 0 ; VERT DISP + VERT FP ROWS .DB 9,11 - 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