Browse Source

Merge pull request #10 from wwarthen/master

update to master
pull/99/head
Phillip Stevens 6 years ago
committed by GitHub
parent
commit
0c70aadd46
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 1
      Doc/ChangeLog.txt
  2. 2
      Source/HBIOS/ansi.asm
  3. 1
      Source/HBIOS/cfg_master.asm
  4. 1
      Source/HBIOS/cfg_mk4.asm
  5. 1
      Source/HBIOS/cfg_n8.asm
  6. 1
      Source/HBIOS/cfg_sbc.asm
  7. 6
      Source/HBIOS/ctc.asm
  8. 2
      Source/HBIOS/cvdu.asm
  9. 260
      Source/HBIOS/font8043.asm
  10. 1
      Source/HBIOS/font_hi.asm
  11. 28
      Source/HBIOS/hbios.asm
  12. 15
      Source/HBIOS/std.asm
  13. 101
      Source/HBIOS/vga.asm

1
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
-------------

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

1
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)
;

1
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)
;

1
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)
;

1
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)
;

6
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

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

15
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
;

101
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
;==================================================================================================

Loading…
Cancel
Save