mirror of
https://github.com/wwarthen/RomWBW.git
synced 2026-02-06 14:11:48 -06:00
ECB-VDU, NASCOM updates
Implement HBIOS cursor setting function VDU_VDASCS for ECB-VDU
This commit is contained in:
@@ -5,7 +5,7 @@
|
||||
; REVISED/ENHANCED BY DAN WERNER -- 11/7/2009
|
||||
; ROMWBW ADAPTATION BY: WAYNE WARTHEN -- 11/9/2012
|
||||
; 80X25, 80X30 AND MODE INFO AT BOOT ADDED BY: PHIL SUMMERS -- 2/3/2019
|
||||
; ADD CURSOR STYLE OPTIONS: PHIL SUMMERS -- 19/10/2019
|
||||
; ADD CURSOR STYLE OPTIONS, IMPLEMENT VDU_VDASCS FUNCTION : PHIL SUMMERS -- 19/10/2019
|
||||
;======================================================================
|
||||
;
|
||||
; VDU-DW.ZIP IS THE DEFAULY 10X8 FONT THAT SUITS 80X25 AND 80X26 MODE.
|
||||
@@ -15,7 +15,6 @@
|
||||
;
|
||||
; TODO:
|
||||
; - ADD REMAINING REGISTERS TO INIT
|
||||
; - IMPLEMENT SET CURSOR STYLE (VDASCS) FUNCTION
|
||||
; - IMPLEMENT ALTERNATE DISPLAY MODES?
|
||||
;
|
||||
;======================================================================
|
||||
@@ -34,7 +33,6 @@ VDU_PPIB .EQU VDU_BASE + $05 ; PPI PORT B
|
||||
VDU_PPIC .EQU VDU_BASE + $06 ; PPI PORT C
|
||||
VDU_PPIX .EQU VDU_BASE + $07 ; PPI CONTROL PORT
|
||||
;
|
||||
;
|
||||
VDU_NOBL .EQU 00000000B ; NO BLINK
|
||||
VDU_NOCU .EQU 00100000B ; NO CURSOR
|
||||
VDU_BFAS .EQU 01000000B ; BLINK AT X16 RATE
|
||||
@@ -47,7 +45,7 @@ VDU_CSTY .EQU VDU_BLOK ; DEFAULT CURSOR STYLE
|
||||
VDU_BLNK .EQU VDU_NOBL ; DEFAULT BLINK RATE
|
||||
;
|
||||
TERMENABLE .SET TRUE ; INCLUDE TERMINAL PSEUDODEVICE DRIVER
|
||||
|
||||
;
|
||||
#IF (VDUSIZ=V80X24)
|
||||
DLINES .EQU 24
|
||||
DROWS .EQU 80
|
||||
@@ -84,7 +82,6 @@ VDU_R10 .EQU (VDU_BLNK + DSCANL-1)
|
||||
VDU_R11 .EQU DSCANL-1
|
||||
#ENDIF
|
||||
;
|
||||
;
|
||||
;======================================================================
|
||||
; VDU DRIVER - INITIALIZATION
|
||||
;======================================================================
|
||||
@@ -187,10 +184,24 @@ VDU_VDADEV:
|
||||
RET
|
||||
|
||||
VDU_VDASCS:
|
||||
; CURSOR START := TOP NIBBLE OF D
|
||||
; CURSOR FINISH := BOTTOM NIBBLE OF D
|
||||
LD A,D ; GET CURSOR FINISH.
|
||||
AND 00001111B ; BOTTOM NIBBLE OF D
|
||||
LD L,A ; SAVE IN E FOR R11
|
||||
|
||||
CALL PANIC ; NOT IMPLEMENTED (YET)
|
||||
LD A,D ; GET CURSOR START.
|
||||
AND 11110000B ; TOP NIBBLE IF D
|
||||
RRCA
|
||||
RRCA
|
||||
RRCA ; COMBINE CURSOR START
|
||||
RRCA ; AND CURSOR STYLE AND
|
||||
OR VDU_CSTY ; SAVE IN D FOR R10
|
||||
LD H,A
|
||||
|
||||
LD C,10
|
||||
CALL VDU_WRREGX ; UPDATE CURSOR
|
||||
|
||||
XOR A
|
||||
RET
|
||||
|
||||
VDU_VDASCP:
|
||||
CALL VDU_XY
|
||||
@@ -261,7 +272,7 @@ VDU_WAITRDY:
|
||||
;----------------------------------------------------------------------
|
||||
; UPDATE SY6845 REGISTERS
|
||||
; VDU_WRREG WRITES VALUE IN A TO VDU REGISTER SPECIFIED IN C
|
||||
; VDU_WRREGX WRITES VALUE IN DE TO VDU REGISTER PAIR IN C, C+1
|
||||
; VDU_WRREGX WRITES VALUE IN HL TO VDU REGISTER PAIR IN C, C+1
|
||||
;----------------------------------------------------------------------
|
||||
;
|
||||
VDU_WRREG:
|
||||
@@ -336,14 +347,7 @@ VDU_CRTINIT1:
|
||||
INC HL ; POINT TO NEXT VALUE
|
||||
INC C ; POINT TO NEXT REGISTER
|
||||
DJNZ VDU_CRTINIT1 ; LOOP
|
||||
|
||||
LD HL,VDU_INIT6845+10 ; SAVE
|
||||
LD A,(HL) ; DEFAULT
|
||||
LD (VDU_CS),A ; CURSOR
|
||||
INC HL ; SCANLINE
|
||||
LD A,(HL) ; START AND
|
||||
LD (VDU_CE),A ; FINISH
|
||||
RET ; POSITION
|
||||
RET
|
||||
;
|
||||
;----------------------------------------------------------------------
|
||||
; CONVERT XY COORDINATES IN DE INTO LINEAR INDEX IN HL
|
||||
@@ -585,8 +589,8 @@ VDU_INIT6845:
|
||||
; B2=0 RAM STRAIGHT BINARY ADDRESSING
|
||||
; B1,B0=0 NON-INTERLACE
|
||||
.DB DSCANL-1 ; R9 SCAN LINE (LINES PER CHAR AND SPACING -1)
|
||||
VDU_CS: .DB VDU_R10 ; R10 CURSOR START RASTER
|
||||
VDU_CE: .DB VDU_R11 ; R11 CURSOR END RASTER
|
||||
.DB VDU_R10 ; R10 CURSOR START RASTER
|
||||
.DB VDU_R11 ; R11 CURSOR END RASTER
|
||||
.DB 00H ; R12 START ADDRESS HI
|
||||
.DB 00H ; R13 START ADDRESS LO
|
||||
.DB 00H ; R14 CURSOR ADDRESS HI
|
||||
@@ -614,8 +618,8 @@ VDU_INIT6845:
|
||||
; ; B2=0 RAM STRAIGHT BINARY ADDRESSING
|
||||
; ; B1,B0=0 NON-INTERLACE
|
||||
.DB DSCANL-1 ; R9 SCAN LINE (LINES PER CHAR AND SPACING -1)
|
||||
VDU_CS: .DB VDU_R10 ; R10 CURSOR START RASTER
|
||||
VDU_CE: .DB VDU_R11 ; R11 CURSOR END RASTER
|
||||
.DB VDU_R10 ; R10 CURSOR START RASTER
|
||||
.DB VDU_R11 ; R11 CURSOR END RASTER
|
||||
.DB 00H ; R12 START ADDRESS HI
|
||||
.DB 00H ; R13 START ADDRESS LO
|
||||
.DB 00H ; R14 CURSOR ADDRESS HI
|
||||
@@ -643,8 +647,8 @@ VDU_INIT6845:
|
||||
; ; B2=0 RAM STRAIGHT BINARY ADDRESSING
|
||||
; ; B1,B0=0 NON-INTERLACE
|
||||
.DB DSCANL-1 ; R9 SCAN LINE (LINES PER CHAR AND SPACING -1)
|
||||
VDU_CS: .DB VDU_R10 ; R10 CURSOR START RASTER
|
||||
VDU_CE: .DB VDU_R11 ; R11 CURSOR END RASTER
|
||||
.DB VDU_R10 ; R10 CURSOR START RASTER
|
||||
.DB VDU_R11 ; R11 CURSOR END RASTER
|
||||
.DB 00H ; R12 START ADDRESS HI
|
||||
.DB 00H ; R13 START ADDRESS LO
|
||||
.DB 00H ; R14 CURSOR ADDRESS HI
|
||||
@@ -672,8 +676,8 @@ VDU_INIT6845:
|
||||
; ; B2=0 RAM STRAIGHT BINARY ADDRESSING
|
||||
; ; B1,B0=0 NON-INTERLACE
|
||||
.DB DSCANL-1 ; R9 SCAN LINE (LINES PER CHAR AND SPACING -1)
|
||||
VDU_CS: .DB VDU_R10 ; R10 CURSOR START RASTER
|
||||
VDU_CE: .DB VDU_R11 ; R11 CURSOR END RASTER
|
||||
.DB VDU_R10 ; R10 CURSOR START RASTER
|
||||
.DB VDU_R11 ; R11 CURSOR END RASTER
|
||||
.DB 00H ; R12 START ADDRESS HI
|
||||
.DB 00H ; R13 START ADDRESS LO
|
||||
.DB 00H ; R14 CURSOR ADDRESS HI
|
||||
@@ -701,8 +705,8 @@ VDU_INIT6845:
|
||||
; ; B2=0 RAM STRAIGHT BINARY ADDRESSING
|
||||
; ; B1,B0=0 NON-INTERLACE
|
||||
.DB DSCANL-1 ; R9 SCAN LINE (LINES PER CHAR AND SPACING -1)
|
||||
VDU_CS: .DB VDU_R10 ; R10 CURSOR START RASTER
|
||||
VDU_CE: .DB VDU_R11 ; R11 CURSOR END RASTER
|
||||
.DB VDU_R10 ; R10 CURSOR START RASTER
|
||||
.DB VDU_R11 ; R11 CURSOR END RASTER
|
||||
.DB 00H ; R12 START ADDRESS HI
|
||||
.DB 00H ; R13 START ADDRESS LO
|
||||
.DB 00H ; R14 CURSOR ADDRESS HI
|
||||
|
||||
Reference in New Issue
Block a user