|
|
|
@ -50,6 +50,17 @@ DLINES .EQU 30 |
|
|
|
DROWS .EQU 80 |
|
|
|
DSCANL .EQU 8 |
|
|
|
#ENDIF |
|
|
|
#IF (VDUSIZ=V80X25B) |
|
|
|
DLINES .EQU 25 |
|
|
|
DROWS .EQU 80 |
|
|
|
DSCANL .EQU 12 |
|
|
|
#ENDIF |
|
|
|
#IF (VDUSIZ=V80X24B) |
|
|
|
DLINES .EQU 24 |
|
|
|
DROWS .EQU 80 |
|
|
|
DSCANL .EQU 12 |
|
|
|
#ENDIF |
|
|
|
; |
|
|
|
; |
|
|
|
;====================================================================== |
|
|
|
; VDU DRIVER - INITIALIZATION |
|
|
|
@ -333,7 +344,7 @@ VDU_XY: |
|
|
|
JP VDU_WRREGX ; DO IT AND RETURN |
|
|
|
; |
|
|
|
;---------------------------------------------------------------------- |
|
|
|
; WRITE VALULE IN A TO CURRENT VDU BUFFER POSTION, ADVANCE CURSOR |
|
|
|
; WRITE VALUE IN A TO CURRENT VDU BUFFER POSTION, ADVANCE CURSOR |
|
|
|
;---------------------------------------------------------------------- |
|
|
|
; |
|
|
|
VDU_PUTCHAR: |
|
|
|
@ -345,7 +356,7 @@ VDU_PUTCHAR: |
|
|
|
ADD HL,DE |
|
|
|
INC DE ; INC |
|
|
|
LD (VDU_POS),DE ; SAVE NEW SCREEN POSITION |
|
|
|
LD C,18 ; UPDATE ADDRESS REGISTER PAIR ???????????????????? |
|
|
|
LD C,18 ; UPDATE ADDRESS REGISTER PAIR |
|
|
|
CALL VDU_WRREGX ; DO IT |
|
|
|
INC HL ; NEW CURSOR POSITION |
|
|
|
LD C,14 ; CURSOR POSITION REGISTER PAIR |
|
|
|
@ -530,7 +541,7 @@ VDU_INIT6845: |
|
|
|
.DB DROWS ; R1 NUMBER OF HORIZONTAL CHARACTERS DISPLAYED (80 COLUMNS) |
|
|
|
.DB 060H ; R2 HORIZONTAL SYNC POSITION |
|
|
|
.DB 00CH ; R3 SYNC WIDTHS |
|
|
|
.DB 01EH ; R4 VERTICAL TOTAL (TOTAL CHARS IN A FRAME -1) |
|
|
|
.DB 01EH ; R4 VERTICAL TOTAL (TOTAL CHARS IN A FRAME 30-1) |
|
|
|
.DB 002H ; R5 VERTICAL TOTAL ADJUST ( |
|
|
|
.DB DLINES ; R6 VERTICAL DISPLAYED (24 ROWS) |
|
|
|
.DB 01AH ; R7 VERTICAL SYNC |
|
|
|
@ -559,7 +570,7 @@ VDU_INIT6845: |
|
|
|
.DB DROWS ; R1 NUMBER OF HORIZONTAL CHARACTERS DISPLAYED =80 |
|
|
|
.DB 060H ; R2 HORIZONTAL SYNC POSITION |
|
|
|
.DB 00CH ; R3 SYNC WIDTHS |
|
|
|
.DB 01EH ; R4 VERTICAL TOTAL (TOTAL CHARS IN A FRAME -1) |
|
|
|
.DB 01EH ; R4 VERTICAL TOTAL (TOTAL CHARS IN A FRAME 30-1) |
|
|
|
.DB 002H ; R5 VERTICAL TOTAL ADJUST ( |
|
|
|
.DB DLINES ; R6 VERTICAL DISPLAYED (25 ROWS) |
|
|
|
.DB 01BH ; R7 VERTICAL SYNC |
|
|
|
@ -608,6 +619,64 @@ VDU_INIT6845: |
|
|
|
.DB 00H ; R15 CURSOR ADDRESS LO |
|
|
|
; |
|
|
|
#ENDIF |
|
|
|
#IF (VDUSIZ=V80X25B) |
|
|
|
;================================================================================================== |
|
|
|
; VDU DRIVER - SY6845 REGISTER INITIALIZATION -80x25 12x8 TO SUIT BLOCK GRAPHICS |
|
|
|
;================================================================================================== |
|
|
|
VDU_INIT6845: |
|
|
|
.DB 07FH ; R0 TOTAL NUMBER OF HORIZONTAL CHARACTERS (DETERMINES HSYNC) |
|
|
|
.DB DROWS ; R1 NUMBER OF HORIZONTAL CHARACTERS DISPLAYED =80 |
|
|
|
.DB 060H ; R2 HORIZONTAL SYNC POSITION |
|
|
|
.DB 00CH ; R3 SYNC WIDTHS |
|
|
|
.DB 19H ; R4 VERTICAL TOTAL (TOTAL CHARS IN A FRAME -1) (312/DLINES)-1 |
|
|
|
.DB 00H ; R5 VERTICAL TOTAL ADJUST (312-(R4+1)*DSCANL) |
|
|
|
.DB DLINES ; R6 VERTICAL DISPLAY |
|
|
|
.DB 019H ; R7 VERTICAL SYNC (DLINES .. R4) |
|
|
|
.DB 078H ; R8 MODE B7=0 TRANSPARENT UPDATE DURING BLANKING |
|
|
|
; ; B6=1 PIN 34 IS UPDATE STROBE |
|
|
|
; ; B5=1 DELAY CURSOR 1 CHARACTER |
|
|
|
; ; B4=1 DELAY DISPLAY ENABLE 1 CHARACTER |
|
|
|
; ; B3=1 TRANSPARENT MEMORY ADDRESSING |
|
|
|
; ; B2=0 RAM STRAIGHT BINARY ADDRESSING |
|
|
|
; ; B1,B0=0 NON-INTERLACE |
|
|
|
.DB DSCANL-1 ; R9 SCAN LINE (LINES PER CHAR AND SPACING -1) |
|
|
|
.DB 060H ; R10 CURSOR START RASTER |
|
|
|
.DB DSCANL-1 ; R11 CURSOR END RASTER |
|
|
|
.DB 00H ; R12 START ADDRESS HI |
|
|
|
.DB 00H ; R13 START ADDRESS LO |
|
|
|
.DB 00H ; R14 CURSOR ADDRESS HI |
|
|
|
.DB 00H ; R15 CURSOR ADDRESS LO |
|
|
|
; |
|
|
|
#ENDIF |
|
|
|
#IF (VDUSIZ=V80X24B) |
|
|
|
;================================================================================================== |
|
|
|
; VDU DRIVER - SY6845 REGISTER INITIALIZATION -80x24 12x8 TO SUIT BLOCK GRAPHICS |
|
|
|
;================================================================================================== |
|
|
|
VDU_INIT6845: |
|
|
|
.DB 07FH ; R0 TOTAL NUMBER OF HORIZONTAL CHARACTERS (DETERMINES HSYNC) |
|
|
|
.DB DROWS ; R1 NUMBER OF HORIZONTAL CHARACTERS DISPLAYED =80 |
|
|
|
.DB 060H ; R2 HORIZONTAL SYNC POSITION |
|
|
|
.DB 00CH ; R3 SYNC WIDTHS |
|
|
|
.DB 19H ; R4 VERTICAL TOTAL (TOTAL CHARS IN A FRAME -1) (312/DLINES)-1 |
|
|
|
.DB 00H ; R5 VERTICAL TOTAL ADJUST (312-(R4+1)*DSCANL) |
|
|
|
.DB DLINES ; R6 VERTICAL DISPLAY |
|
|
|
.DB 018H ; R7 VERTICAL SYNC (DLINES .. R4) |
|
|
|
.DB 078H ; R8 MODE B7=0 TRANSPARENT UPDATE DURING BLANKING |
|
|
|
; ; B6=1 PIN 34 IS UPDATE STROBE |
|
|
|
; ; B5=1 DELAY CURSOR 1 CHARACTER |
|
|
|
; ; B4=1 DELAY DISPLAY ENABLE 1 CHARACTER |
|
|
|
; ; B3=1 TRANSPARENT MEMORY ADDRESSING |
|
|
|
; ; B2=0 RAM STRAIGHT BINARY ADDRESSING |
|
|
|
; ; B1,B0=0 NON-INTERLACE |
|
|
|
.DB DSCANL-1 ; R9 SCAN LINE (LINES PER CHAR AND SPACING -1) |
|
|
|
.DB 060H ; R10 CURSOR START RASTER |
|
|
|
.DB DSCANL-1 ; R11 CURSOR END RASTER |
|
|
|
.DB 00H ; R12 START ADDRESS HI |
|
|
|
.DB 00H ; R13 START ADDRESS LO |
|
|
|
.DB 00H ; R14 CURSOR ADDRESS HI |
|
|
|
.DB 00H ; R15 CURSOR ADDRESS LO |
|
|
|
; |
|
|
|
#ENDIF |
|
|
|
; CCIR 625/50 VERSION (USED IN MOST OF THE WORLD) |
|
|
|
; JUMPER K1 2-3, K2 1-2 FOR 2MHz CHAR CLOCK |
|
|
|
; |
|
|
|
|