|
|
@ -18,17 +18,34 @@ |
|
|
; |
|
|
; |
|
|
CVDU_BASE .EQU $E0 |
|
|
CVDU_BASE .EQU $E0 |
|
|
; |
|
|
; |
|
|
|
|
|
#IF (CVDUMODE == CVDUMODE_ECB) |
|
|
CVDU_KBDDATA .EQU CVDU_BASE + $02 ; KBD CTLR DATA PORT |
|
|
CVDU_KBDDATA .EQU CVDU_BASE + $02 ; KBD CTLR DATA PORT |
|
|
CVDU_KBDST .EQU CVDU_BASE + $0A ; KBD CTLR STATUS/CMD PORT |
|
|
CVDU_KBDST .EQU CVDU_BASE + $0A ; KBD CTLR STATUS/CMD PORT |
|
|
CVDU_STAT .EQU CVDU_BASE + $04 ; READ M8563 STATUS |
|
|
CVDU_STAT .EQU CVDU_BASE + $04 ; READ M8563 STATUS |
|
|
CVDU_REG .EQU CVDU_BASE + $04 ; SELECT M8563 REGISTER |
|
|
CVDU_REG .EQU CVDU_BASE + $04 ; SELECT M8563 REGISTER |
|
|
CVDU_DATA .EQU CVDU_BASE + $0C ; READ/WRITE M8563 DATA |
|
|
CVDU_DATA .EQU CVDU_BASE + $0C ; READ/WRITE M8563 DATA |
|
|
|
|
|
#ENDIF |
|
|
|
|
|
; |
|
|
|
|
|
#IF (CVDUMODE == CVDUMODE_MBC) |
|
|
|
|
|
CVDU_KBDDATA .EQU CVDU_BASE + $02 ; KBD CTLR DATA PORT |
|
|
|
|
|
CVDU_KBDST .EQU CVDU_BASE + $03 ; KBD CTLR STATUS/CMD PORT |
|
|
|
|
|
CVDU_STAT .EQU CVDU_BASE + $04 ; READ M8563 STATUS |
|
|
|
|
|
CVDU_REG .EQU CVDU_BASE + $04 ; SELECT M8563 REGISTER |
|
|
|
|
|
CVDU_DATA .EQU CVDU_BASE + $05 ; READ/WRITE M8563 DATA |
|
|
|
|
|
#ENDIF |
|
|
; |
|
|
; |
|
|
CVDU_ROWS .EQU 25 |
|
|
CVDU_ROWS .EQU 25 |
|
|
CVDU_COLS .EQU 80 |
|
|
CVDU_COLS .EQU 80 |
|
|
; |
|
|
; |
|
|
#DEFINE USEFONT8X16 |
|
|
|
|
|
#DEFINE CVDU_FONT FONT8X16 |
|
|
|
|
|
|
|
|
#IF (CVDUMON == CVDUMON_CGA) |
|
|
|
|
|
#DEFINE USEFONTCGA |
|
|
|
|
|
#DEFINE CVDU_FONT FONTCGA |
|
|
|
|
|
#ENDIF |
|
|
|
|
|
; |
|
|
|
|
|
#IF (CVDUMON == CVDUMON_EGA) |
|
|
|
|
|
#DEFINE USEFONT8X16 |
|
|
|
|
|
#DEFINE CVDU_FONT FONT8X16 |
|
|
|
|
|
#ENDIF |
|
|
; |
|
|
; |
|
|
TERMENABLE .SET TRUE ; INCLUDE TERMINAL PSEUDODEVICE DRIVER |
|
|
TERMENABLE .SET TRUE ; INCLUDE TERMINAL PSEUDODEVICE DRIVER |
|
|
; |
|
|
; |
|
|
@ -775,9 +792,56 @@ CVDU_POS .DW 0 ; CURRENT DISPLAY POSITION |
|
|
; |
|
|
; |
|
|
; |
|
|
; |
|
|
CVDU_INIT8563: |
|
|
CVDU_INIT8563: |
|
|
#IF 1 |
|
|
|
|
|
; EGA 720X368 9-BIT CHARACTERS |
|
|
|
|
|
|
|
|
; |
|
|
|
|
|
#IF (CVDUMON == CVDUMON_CGA) |
|
|
|
|
|
; |
|
|
|
|
|
; CGA 640x200 8-BIT CHARACTERS |
|
|
|
|
|
; - requires 16.000Mhz oscillator frequency |
|
|
|
|
|
; |
|
|
|
|
|
.DB $7E ; 0: hor. total - 1 |
|
|
|
|
|
.DB $50 ; 1: hor. displayed |
|
|
|
|
|
.DB $66 ; 2: hor. sync position 85 |
|
|
|
|
|
.DB $49 ; 3: vert/hor sync width or 0x4F -- MDA |
|
|
|
|
|
.DB $20 ; 4: vert total |
|
|
|
|
|
.DB $E0 ; 5: vert total adjust |
|
|
|
|
|
.DB $19 ; 6: vert. displayed |
|
|
|
|
|
.DB $1D ; 7: vert. sync postition |
|
|
|
|
|
.DB $FC ; 8: interlace mode |
|
|
|
|
|
.DB $E7 ; 9: char height - 1 |
|
|
|
|
|
.DB $A0 ; 10: cursor mode, start line |
|
|
|
|
|
.DB $E7 ; 11: cursor end line |
|
|
|
|
|
.DB $00 ; 12: display start addr hi |
|
|
|
|
|
.DB $00 ; 13: display start addr lo |
|
|
|
|
|
.DB $07 ; 14: cursor position hi |
|
|
|
|
|
.DB $80 ; 15: cursor position lo |
|
|
|
|
|
.DB $12 ; 16: light pen vertical |
|
|
|
|
|
.DB $17 ; 17: light pen horizontal |
|
|
|
|
|
.DB $0F ; 18: update address hi |
|
|
|
|
|
.DB $D0 ; 19: update address lo |
|
|
|
|
|
.DB $08 ; 20: attribute start addr hi |
|
|
|
|
|
.DB $20 ; 21: attribute start addr lo |
|
|
|
|
|
.DB $78 ; 22: char hor size cntrl 0x78 |
|
|
|
|
|
.DB $E8 ; 23: vert char pixel space - 1, increase to 13 with new font |
|
|
|
|
|
.DB $20 ; 24: copy/fill, reverse, blink rate; vertical scroll |
|
|
|
|
|
.DB $47 ; 25: gr/txt, color/mono, pxl-rpt, dbl-wide; horiz. scroll |
|
|
|
|
|
.DB $F0 ; 26: fg/bg colors (monochr) |
|
|
|
|
|
.DB $00 ; 27: row addr display incr |
|
|
|
|
|
.DB $2F ; 28: char set addr; RAM size (64/16) |
|
|
|
|
|
.DB $E7 ; 29: underline position |
|
|
|
|
|
.DB $4F ; 30: word count - 1 |
|
|
|
|
|
.DB $07 ; 31: data |
|
|
|
|
|
.DB $0F ; 32: block copy src hi |
|
|
|
|
|
.DB $D0 ; 33: block copy src lo |
|
|
|
|
|
.DB $7D ; 34: display enable begin |
|
|
|
|
|
.DB $64 ; 35: display enable end |
|
|
|
|
|
.DB $F5 ; 36: refresh rate |
|
|
|
|
|
#ENDIF |
|
|
|
|
|
; |
|
|
|
|
|
#IF (CVDUMON == CVDUMON_EGA) |
|
|
|
|
|
; |
|
|
|
|
|
; EGA 720X350 9-BIT CHARACTERS |
|
|
; - requires 16.257Mhz oscillator frequency |
|
|
; - requires 16.257Mhz oscillator frequency |
|
|
|
|
|
; |
|
|
.DB $61 ; 0: hor. total - 1 |
|
|
.DB $61 ; 0: hor. total - 1 |
|
|
.DB $50 ; 1: hor. displayed |
|
|
.DB $50 ; 1: hor. displayed |
|
|
.DB $5A ; 2: hor. sync position 85 |
|
|
.DB $5A ; 2: hor. sync position 85 |
|
|
@ -815,44 +879,6 @@ CVDU_INIT8563: |
|
|
.DB $06 ; 34: display enable begin |
|
|
.DB $06 ; 34: display enable begin |
|
|
.DB $56 ; 35: display enable end |
|
|
.DB $56 ; 35: display enable end |
|
|
.DB $00 ; 36: refresh rate |
|
|
.DB $00 ; 36: refresh rate |
|
|
#ELSE |
|
|
|
|
|
.DB $7E ; 0: hor. total - 1 |
|
|
|
|
|
.DB $50 ; 1: hor. displayed |
|
|
|
|
|
.DB $66 ; 2: hor. sync position 85 |
|
|
|
|
|
.DB $49 ; 3: vert/hor sync width or 0x4F -- MDA |
|
|
|
|
|
.DB $20 ; 4: vert total |
|
|
|
|
|
.DB $E0 ; 5: vert total adjust |
|
|
|
|
|
.DB $19 ; 6: vert. displayed |
|
|
|
|
|
.DB $1D ; 7: vert. sync postition |
|
|
|
|
|
.DB $FC ; 8: interlace mode |
|
|
|
|
|
.DB $E7 ; 9: char height - 1 |
|
|
|
|
|
.DB $A0 ; 10: cursor mode, start line |
|
|
|
|
|
.DB $E7 ; 11: cursor end line |
|
|
|
|
|
.DB $00 ; 12: display start addr hi |
|
|
|
|
|
.DB $00 ; 13: display start addr lo |
|
|
|
|
|
.DB $07 ; 14: cursor position hi |
|
|
|
|
|
.DB $80 ; 15: cursor position lo |
|
|
|
|
|
.DB $12 ; 16: light pen vertical |
|
|
|
|
|
.DB $17 ; 17: light pen horizontal |
|
|
|
|
|
.DB $0F ; 18: update address hi |
|
|
|
|
|
.DB $D0 ; 19: update address lo |
|
|
|
|
|
.DB $08 ; 20: attribute start addr hi |
|
|
|
|
|
.DB $20 ; 21: attribute start addr lo |
|
|
|
|
|
.DB $78 ; 22: char hor size cntrl 0x78 |
|
|
|
|
|
.DB $E8 ; 23: vert char pixel space - 1, increase to 13 with new font |
|
|
|
|
|
.DB $20 ; 24: copy/fill, reverse, blink rate; vertical scroll |
|
|
|
|
|
.DB $47 ; 25: gr/txt, color/mono, pxl-rpt, dbl-wide; horiz. scroll |
|
|
|
|
|
.DB $F0 ; 26: fg/bg colors (monochr) |
|
|
|
|
|
.DB $00 ; 27: row addr display incr |
|
|
|
|
|
.DB $2F ; 28: char set addr; RAM size (64/16) |
|
|
|
|
|
.DB $E7 ; 29: underline position |
|
|
|
|
|
.DB $4F ; 30: word count - 1 |
|
|
|
|
|
.DB $07 ; 31: data |
|
|
|
|
|
.DB $0F ; 32: block copy src hi |
|
|
|
|
|
.DB $D0 ; 33: block copy src lo |
|
|
|
|
|
.DB $7D ; 34: display enable begin |
|
|
|
|
|
.DB $64 ; 35: display enable end |
|
|
|
|
|
.DB $F5 ; 36: refresh rate |
|
|
|
|
|
#ENDIF |
|
|
#ENDIF |
|
|
; |
|
|
; |
|
|
;================================================================================================== |
|
|
;================================================================================================== |
|
|
|