mirror of
https://github.com/wwarthen/RomWBW.git
synced 2026-02-06 14:11:48 -06:00
Merge pull request #51 from b1ackmai1er/master
ECB-VDU: Add cursor style options
This commit is contained in:
@@ -5,12 +5,13 @@
|
|||||||
; REVISED/ENHANCED BY DAN WERNER -- 11/7/2009
|
; REVISED/ENHANCED BY DAN WERNER -- 11/7/2009
|
||||||
; ROMWBW ADAPTATION BY: WAYNE WARTHEN -- 11/9/2012
|
; ROMWBW ADAPTATION BY: WAYNE WARTHEN -- 11/9/2012
|
||||||
; 80X25, 80X30 AND MODE INFO AT BOOT ADDED BY: PHIL SUMMERS -- 2/3/2019
|
; 80X25, 80X30 AND MODE INFO AT BOOT ADDED BY: PHIL SUMMERS -- 2/3/2019
|
||||||
|
; ADD CURSOR STYLE OPTIONS: PHIL SUMMERS -- 19/10/2019
|
||||||
;======================================================================
|
;======================================================================
|
||||||
;
|
;
|
||||||
; VDU-DW.ZIP IS THE DEFAULY 10X8 FONT THAT SUITS 80X25 AND 80X26 MODE.
|
; VDU-DW.ZIP IS THE DEFAULY 10X8 FONT THAT SUITS 80X25 AND 80X26 MODE.
|
||||||
; IN 80X30 MODE THE DESCENDERS ARE MISSING. AN ALTERNATE 8x8 FONT MAY
|
; IN 80X30 MODE THE DESCENDERS ARE MISSING. AN ALTERNATE 8x8 FONT MAY
|
||||||
; DISPLAY BETTER. THIS CAN BE ADDED TO THE ECB-VDU FONT EPROM AND
|
; DISPLAY BETTER. THIS CAN BE ADDED TO THE ECB-VDU FONT EPROM AND
|
||||||
; SELECTED VIA ONBOARD JUMPERS.THE FONT ROM CAN CONTAIN EIGHT 2Kb FONTS.
|
; SELECTED VIA ONBOARD JUMPERS. THE FONT ROM CAN CONTAIN EIGHT 2Kb FONTS.
|
||||||
;
|
;
|
||||||
; TODO:
|
; TODO:
|
||||||
; - ADD REMAINING REGISTERS TO INIT
|
; - ADD REMAINING REGISTERS TO INIT
|
||||||
@@ -33,6 +34,18 @@ VDU_PPIB .EQU VDU_BASE + $05 ; PPI PORT B
|
|||||||
VDU_PPIC .EQU VDU_BASE + $06 ; PPI PORT C
|
VDU_PPIC .EQU VDU_BASE + $06 ; PPI PORT C
|
||||||
VDU_PPIX .EQU VDU_BASE + $07 ; PPI CONTROL PORT
|
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
|
||||||
|
VDU_BSLO .EQU 01100000B ; BLINK AT X32 RATE
|
||||||
|
;
|
||||||
|
VDU_BLOK .EQU 0 ; BLOCK CURSOR
|
||||||
|
VDU_ULIN .EQU 1 ; UNDERLINE CURSOR
|
||||||
|
;
|
||||||
|
VDU_CSTY .EQU VDU_BLOK ; DEFAULT CURSOR STYLE
|
||||||
|
VDU_BLNK .EQU VDU_NOBL ; DEFAULT BLINK RATE
|
||||||
|
;
|
||||||
TERMENABLE .SET TRUE ; INCLUDE TERMINAL PSEUDODEVICE DRIVER
|
TERMENABLE .SET TRUE ; INCLUDE TERMINAL PSEUDODEVICE DRIVER
|
||||||
|
|
||||||
#IF (VDUSIZ=V80X24)
|
#IF (VDUSIZ=V80X24)
|
||||||
@@ -61,6 +74,16 @@ DROWS .EQU 80
|
|||||||
DSCANL .EQU 12
|
DSCANL .EQU 12
|
||||||
#ENDIF
|
#ENDIF
|
||||||
;
|
;
|
||||||
|
#IF VDU_CSTY=VDU_BLOK
|
||||||
|
VDU_R10 .EQU (VDU_BLNK + $00)
|
||||||
|
VDU_R11 .EQU DSCANL-1
|
||||||
|
#ENDIF
|
||||||
|
;
|
||||||
|
#IF VDU_CSTY=VDU_ULIN
|
||||||
|
VDU_R10 .EQU (VDU_BLNK + DSCANL-1)
|
||||||
|
VDU_R11 .EQU DSCANL-1
|
||||||
|
#ENDIF
|
||||||
|
;
|
||||||
;
|
;
|
||||||
;======================================================================
|
;======================================================================
|
||||||
; VDU DRIVER - INITIALIZATION
|
; VDU DRIVER - INITIALIZATION
|
||||||
@@ -164,6 +187,9 @@ VDU_VDADEV:
|
|||||||
RET
|
RET
|
||||||
|
|
||||||
VDU_VDASCS:
|
VDU_VDASCS:
|
||||||
|
; CURSOR START := TOP NIBBLE OF D
|
||||||
|
; CURSOR FINISH := BOTTOM NIBBLE OF D
|
||||||
|
|
||||||
CALL PANIC ; NOT IMPLEMENTED (YET)
|
CALL PANIC ; NOT IMPLEMENTED (YET)
|
||||||
|
|
||||||
VDU_VDASCP:
|
VDU_VDASCP:
|
||||||
@@ -310,7 +336,14 @@ VDU_CRTINIT1:
|
|||||||
INC HL ; POINT TO NEXT VALUE
|
INC HL ; POINT TO NEXT VALUE
|
||||||
INC C ; POINT TO NEXT REGISTER
|
INC C ; POINT TO NEXT REGISTER
|
||||||
DJNZ VDU_CRTINIT1 ; LOOP
|
DJNZ VDU_CRTINIT1 ; LOOP
|
||||||
RET
|
|
||||||
|
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
|
||||||
;
|
;
|
||||||
;----------------------------------------------------------------------
|
;----------------------------------------------------------------------
|
||||||
; CONVERT XY COORDINATES IN DE INTO LINEAR INDEX IN HL
|
; CONVERT XY COORDINATES IN DE INTO LINEAR INDEX IN HL
|
||||||
@@ -344,7 +377,7 @@ VDU_XY:
|
|||||||
JP VDU_WRREGX ; DO IT AND RETURN
|
JP VDU_WRREGX ; DO IT AND RETURN
|
||||||
;
|
;
|
||||||
;----------------------------------------------------------------------
|
;----------------------------------------------------------------------
|
||||||
; WRITE VALUE IN A TO CURRENT VDU BUFFER POSTION, ADVANCE CURSOR
|
; WRITE VALUE IN A TO CURRENT VDU BUFFER POSITION, ADVANCE CURSOR
|
||||||
;----------------------------------------------------------------------
|
;----------------------------------------------------------------------
|
||||||
;
|
;
|
||||||
VDU_PUTCHAR:
|
VDU_PUTCHAR:
|
||||||
@@ -530,7 +563,6 @@ VDU_POS .DW 0 ; CURRENT DISPLAY POSITION
|
|||||||
VDU_OFFSET .DW 0 ; CURRENT DISPLAY POSITION
|
VDU_OFFSET .DW 0 ; CURRENT DISPLAY POSITION
|
||||||
VDU_BUF .FILL 256,0 ; COPY BUFFER
|
VDU_BUF .FILL 256,0 ; COPY BUFFER
|
||||||
;
|
;
|
||||||
|
|
||||||
#IF (VDUSIZ=V80X24)
|
#IF (VDUSIZ=V80X24)
|
||||||
;==================================================================================================
|
;==================================================================================================
|
||||||
; VDU DRIVER - SY6845 REGISTER INITIALIZATION -80x24 10x8
|
; VDU DRIVER - SY6845 REGISTER INITIALIZATION -80x24 10x8
|
||||||
@@ -553,8 +585,8 @@ VDU_INIT6845:
|
|||||||
; B2=0 RAM STRAIGHT BINARY ADDRESSING
|
; B2=0 RAM STRAIGHT BINARY ADDRESSING
|
||||||
; B1,B0=0 NON-INTERLACE
|
; B1,B0=0 NON-INTERLACE
|
||||||
.DB DSCANL-1 ; R9 SCAN LINE (LINES PER CHAR AND SPACING -1)
|
.DB DSCANL-1 ; R9 SCAN LINE (LINES PER CHAR AND SPACING -1)
|
||||||
.DB 060H ; R10 CURSOR START RASTER
|
VDU_CS: .DB VDU_R10 ; R10 CURSOR START RASTER
|
||||||
.DB DSCANL-1 ; R11 CURSOR END RASTER
|
VDU_CE: .DB VDU_R11 ; R11 CURSOR END RASTER
|
||||||
.DB 00H ; R12 START ADDRESS HI
|
.DB 00H ; R12 START ADDRESS HI
|
||||||
.DB 00H ; R13 START ADDRESS LO
|
.DB 00H ; R13 START ADDRESS LO
|
||||||
.DB 00H ; R14 CURSOR ADDRESS HI
|
.DB 00H ; R14 CURSOR ADDRESS HI
|
||||||
@@ -582,8 +614,8 @@ VDU_INIT6845:
|
|||||||
; ; B2=0 RAM STRAIGHT BINARY ADDRESSING
|
; ; B2=0 RAM STRAIGHT BINARY ADDRESSING
|
||||||
; ; B1,B0=0 NON-INTERLACE
|
; ; B1,B0=0 NON-INTERLACE
|
||||||
.DB DSCANL-1 ; R9 SCAN LINE (LINES PER CHAR AND SPACING -1)
|
.DB DSCANL-1 ; R9 SCAN LINE (LINES PER CHAR AND SPACING -1)
|
||||||
.DB 060H ; R10 CURSOR START RASTER
|
VDU_CS: .DB VDU_R10 ; R10 CURSOR START RASTER
|
||||||
.DB DSCANL-1 ; R11 CURSOR END RASTER
|
VDU_CE: .DB VDU_R11 ; R11 CURSOR END RASTER
|
||||||
.DB 00H ; R12 START ADDRESS HI
|
.DB 00H ; R12 START ADDRESS HI
|
||||||
.DB 00H ; R13 START ADDRESS LO
|
.DB 00H ; R13 START ADDRESS LO
|
||||||
.DB 00H ; R14 CURSOR ADDRESS HI
|
.DB 00H ; R14 CURSOR ADDRESS HI
|
||||||
@@ -611,8 +643,8 @@ VDU_INIT6845:
|
|||||||
; ; B2=0 RAM STRAIGHT BINARY ADDRESSING
|
; ; B2=0 RAM STRAIGHT BINARY ADDRESSING
|
||||||
; ; B1,B0=0 NON-INTERLACE
|
; ; B1,B0=0 NON-INTERLACE
|
||||||
.DB DSCANL-1 ; R9 SCAN LINE (LINES PER CHAR AND SPACING -1)
|
.DB DSCANL-1 ; R9 SCAN LINE (LINES PER CHAR AND SPACING -1)
|
||||||
.DB 060H ; R10 CURSOR START RASTER
|
VDU_CS: .DB VDU_R10 ; R10 CURSOR START RASTER
|
||||||
.DB DSCANL-1 ; R11 CURSOR END RASTER
|
VDU_CE: .DB VDU_R11 ; R11 CURSOR END RASTER
|
||||||
.DB 00H ; R12 START ADDRESS HI
|
.DB 00H ; R12 START ADDRESS HI
|
||||||
.DB 00H ; R13 START ADDRESS LO
|
.DB 00H ; R13 START ADDRESS LO
|
||||||
.DB 00H ; R14 CURSOR ADDRESS HI
|
.DB 00H ; R14 CURSOR ADDRESS HI
|
||||||
@@ -640,8 +672,8 @@ VDU_INIT6845:
|
|||||||
; ; B2=0 RAM STRAIGHT BINARY ADDRESSING
|
; ; B2=0 RAM STRAIGHT BINARY ADDRESSING
|
||||||
; ; B1,B0=0 NON-INTERLACE
|
; ; B1,B0=0 NON-INTERLACE
|
||||||
.DB DSCANL-1 ; R9 SCAN LINE (LINES PER CHAR AND SPACING -1)
|
.DB DSCANL-1 ; R9 SCAN LINE (LINES PER CHAR AND SPACING -1)
|
||||||
.DB 060H ; R10 CURSOR START RASTER
|
VDU_CS: .DB VDU_R10 ; R10 CURSOR START RASTER
|
||||||
.DB DSCANL-1 ; R11 CURSOR END RASTER
|
VDU_CE: .DB VDU_R11 ; R11 CURSOR END RASTER
|
||||||
.DB 00H ; R12 START ADDRESS HI
|
.DB 00H ; R12 START ADDRESS HI
|
||||||
.DB 00H ; R13 START ADDRESS LO
|
.DB 00H ; R13 START ADDRESS LO
|
||||||
.DB 00H ; R14 CURSOR ADDRESS HI
|
.DB 00H ; R14 CURSOR ADDRESS HI
|
||||||
@@ -669,8 +701,8 @@ VDU_INIT6845:
|
|||||||
; ; B2=0 RAM STRAIGHT BINARY ADDRESSING
|
; ; B2=0 RAM STRAIGHT BINARY ADDRESSING
|
||||||
; ; B1,B0=0 NON-INTERLACE
|
; ; B1,B0=0 NON-INTERLACE
|
||||||
.DB DSCANL-1 ; R9 SCAN LINE (LINES PER CHAR AND SPACING -1)
|
.DB DSCANL-1 ; R9 SCAN LINE (LINES PER CHAR AND SPACING -1)
|
||||||
.DB 060H ; R10 CURSOR START RASTER
|
VDU_CS: .DB VDU_R10 ; R10 CURSOR START RASTER
|
||||||
.DB DSCANL-1 ; R11 CURSOR END RASTER
|
VDU_CE: .DB VDU_R11 ; R11 CURSOR END RASTER
|
||||||
.DB 00H ; R12 START ADDRESS HI
|
.DB 00H ; R12 START ADDRESS HI
|
||||||
.DB 00H ; R13 START ADDRESS LO
|
.DB 00H ; R13 START ADDRESS LO
|
||||||
.DB 00H ; R14 CURSOR ADDRESS HI
|
.DB 00H ; R14 CURSOR ADDRESS HI
|
||||||
|
|||||||
Reference in New Issue
Block a user