|
|
|
@ -31,21 +31,32 @@ VGA_ULIN .EQU 1 ; UNDERLINE CURSOR |
|
|
|
; |
|
|
|
VGA_CSTY .EQU VGA_BLOK ; DEFAULT CURSOR STYLE |
|
|
|
VGA_BLNK .EQU VGA_NOBL ; DEFAULT BLINK RATE |
|
|
|
VGA_9BIT .EQU $0101 ; 9 BIT MSK-CFG |
|
|
|
VGA_8BIT .EQU $0000 ; 8 BIT MSK-CFG |
|
|
|
; |
|
|
|
#IF (VGASIZ=V80X25) |
|
|
|
VGA_ROWS .EQU 25 |
|
|
|
VGA_COLS .EQU 80 |
|
|
|
VGA_SCANL .EQU 16 |
|
|
|
VGA_89BIT .EQU VGA_8BIT |
|
|
|
#ENDIF |
|
|
|
#IF (VGASIZ=V80X30) |
|
|
|
VGA_ROWS .EQU 30 |
|
|
|
VGA_COLS .EQU 80 |
|
|
|
VGA_SCANL .EQU 16 |
|
|
|
VGA_89BIT .EQU VGA_8BIT |
|
|
|
#ENDIF |
|
|
|
#IF (VGASIZ=V80X43) |
|
|
|
VGA_ROWS .EQU 43 |
|
|
|
VGA_COLS .EQU 80 |
|
|
|
VGA_SCANL .EQU 11 |
|
|
|
VGA_89BIT .EQU VGA_8BIT |
|
|
|
#ENDIF |
|
|
|
#IF (VGASIZ=V80X60) |
|
|
|
VGA_ROWS .EQU 60 |
|
|
|
VGA_COLS .EQU 80 |
|
|
|
VGA_SCANL .EQU 8 |
|
|
|
VGA_89BIT .EQU VGA_8BIT |
|
|
|
#ENDIF |
|
|
|
; |
|
|
|
#IF VGA_CSTY=VGA_BLOK |
|
|
|
@ -167,13 +178,13 @@ VGA_VDARES: |
|
|
|
|
|
|
|
LD DE,0 ; ROW = 0, COL = 0 |
|
|
|
CALL VGA_XY ; SEND CURSOR TO TOP LEFT |
|
|
|
LD A,' ' ; BLANK THE SCREEN |
|
|
|
LD DE,(VGA_ROWS*VGA_COLS) ; FILL ENTIRE BUFFER |
|
|
|
LD A,'X' ; BLANK THE SCREEN |
|
|
|
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 |
|
|
|
|
|
|
|
LD HL,$0404 ; SET VIDEO ENABLE BIT |
|
|
|
LD HL,$0404 | VGA_89BIT; SET VIDEO ENABLE BIT |
|
|
|
CALL VGA_SETCFG ; DO IT |
|
|
|
|
|
|
|
XOR A |
|
|
|
@ -450,7 +461,7 @@ VGA_PROBE: |
|
|
|
;---------------------------------------------------------------------- |
|
|
|
; |
|
|
|
VGA_CRTINIT: |
|
|
|
LD HL,$FF00 ; ZERO ALL CFG BITS |
|
|
|
LD HL,$FF00 | VGA_89BIT ; INITIAL CFG BITS |
|
|
|
CALL VGA_SETCFG ; DO IT |
|
|
|
|
|
|
|
CALL VGA_RES ; RESET CRTC (ALL REGS TO ZERO) |
|
|
|
@ -493,7 +504,7 @@ VGA_CRTCDUMP1: |
|
|
|
;---------------------------------------------------------------------- |
|
|
|
; |
|
|
|
VGA_LOADFONT: |
|
|
|
LD HL,$7000 ; CLEAR FONT PAGE NUM |
|
|
|
LD HL,$7000 | VGA_89BIT ; CLEAR FONT PAGE NUM |
|
|
|
CALL VGA_SETCFG |
|
|
|
|
|
|
|
LD DE,$7000 ; PAGE 7 OF VIDEO RAM |
|
|
|
@ -506,7 +517,7 @@ VGA_LOADFONT1: |
|
|
|
LD A,D |
|
|
|
CP $80 ; CHECK FOR END |
|
|
|
JR NZ,VGA_LOADFONT1 ; LOOP |
|
|
|
LD HL,$7070 ; SET FONT PAGE NUM TO 7 |
|
|
|
LD HL,$7070 | VGA_89BIT ; SET FONT PAGE NUM TO 7 |
|
|
|
CALL VGA_SETCFG |
|
|
|
RET ; DONE |
|
|
|
; |
|
|
|
@ -865,18 +876,18 @@ VGA_RUB .DB 0 ; REVERSE/UNDERLINE/BLINK (-----RUB) |
|
|
|
; |
|
|
|
#IF (VGASIZ=V80X25) |
|
|
|
;=============================================================================== |
|
|
|
; 80x25 70hz REGISTER VALUES |
|
|
|
; 80x25x8 70hz 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 1,VGA_COLS ; HORZ DISP |
|
|
|
.DB 2,VGA_COLS + 2 ; HORZ DISP + HORZ FP |
|
|
|
.DB 3,(2 << 4) | (12 & $0F) ; VERT SW, HORZ SW |
|
|
|
.DB 4,28 - 1 ; VERT TOT - 1 |
|
|
|
.DB 5,1 ; VERT TOT ADJ |
|
|
|
.DB 6,25 ; VERT DISP |
|
|
|
.DB 7,25 + 0 ; VERT DISP + VERT FP ROWS |
|
|
|
.DB 6,VGA_ROWS ; VERT DISP |
|
|
|
.DB 7,VGA_ROWS + 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 |
|
|
|
@ -890,7 +901,7 @@ REGS_VGA: |
|
|
|
#ENDIF |
|
|
|
#IF (VGASIZ=V80X30) |
|
|
|
;=============================================================================== |
|
|
|
; 80x30 60hz REGISTER VALUES |
|
|
|
; 80x30x8 60hz REGISTER VALUES |
|
|
|
;=============================================================================== |
|
|
|
; |
|
|
|
REGS_VGA: |
|
|
|
@ -914,7 +925,7 @@ REGS_VGA: |
|
|
|
#ENDIF |
|
|
|
#IF (VGASIZ=V80X43) |
|
|
|
;=============================================================================== |
|
|
|
; 80x43 60hz REGISTER VALUES |
|
|
|
; 80x43x8 60hz REGISTER VALUES |
|
|
|
;=============================================================================== |
|
|
|
; |
|
|
|
REGS_VGA: |
|
|
|
@ -936,6 +947,30 @@ REGS_VGA: |
|
|
|
.DB 30,$01 | $08 ; CTL 1, 2 WINDOWS & ENABLE R27 VSYNC FINE ADJ |
|
|
|
.DB $FF ; END MARKER |
|
|
|
#ENDIF |
|
|
|
#IF (VGASIZ=V80X60) |
|
|
|
;=============================================================================== |
|
|
|
; 90x60X8 60hz REGISTER VALUES |
|
|
|
;=============================================================================== |
|
|
|
; |
|
|
|
REGS_VGA: |
|
|
|
.DB 0,100 - 1 ; HORZ TOT - 1 |
|
|
|
.DB 1,VGA_COLS ; HORZ DISP |
|
|
|
.DB 2,VGA_COLS + 2 ; HORZ DISP + HORZ FP |
|
|
|
.DB 3,44 ; VERT SW, HORZ SW |
|
|
|
.DB 4,66 - 1 ; VERT TOT - 1 |
|
|
|
.DB 5,0 ; VERT TOT ADJ |
|
|
|
.DB 6,VGA_ROWS ; VERT DISP |
|
|
|
.DB 7,VGA_ROWS + 0 ; VERT DISP + VERT FP ROWS |
|
|
|
.DB 9,8 - 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 |
|
|
|
;================================================================================================== |
|
|
|
|