VDU5 can now handle VDU08 (cursor left)

This commit is contained in:
Bobbi Webber-Manners 2023-01-10 19:44:20 -05:00
parent b0761a0e8f
commit 21421d1737
3 changed files with 54 additions and 1 deletions

Binary file not shown.

View File

@ -543,7 +543,14 @@ VDU08 LDA VDUTEXTX ; COL
DEC VDUTEXTY ; ROW
LDA TXTWINRGT
STA VDUTEXTX ; COL
:S3 RTS
:S3 LDA VDUSTATUS
AND #$20 ; Bit 5 -> VDU5 mode
BEQ VDU08DONE
BIT VDUSCREEN
BVC VDU08DONE ; Not SHR, skip
>>> XF2MAIN,SHRVDU08
VDU08RET >>> ENTAUX
VDU08DONE RTS
* Move cursor right
VDU09 LDA VDUSTATUS

View File

@ -339,6 +339,52 @@ SHRVDU5CH >>> ENTMAIN
*:PIXELS EQU TMPZP+6 ; Pixels per char row
* Handle cursor left in VDU5 mode
SHRVDU08 >>> ENTMAIN
PHP ; Disable interrupts
SEI
CLC ; 65816 native mode
XCE
REP #$30 ; 16 bit M & X
MX %00 ; Tell Merlin
LDA SHRPIXELS ; Pixels per byte
AND #$00FF
CMP #$02 ; 2 is 320-mode (MODE 1)
BNE :MODE0
LDX #16 ; 16 pixels per char in MODE 1
BRA :S0
:MODE0 LDX #8 ; 8 pixels per char in MODE 0
:S0 STX :PIXELS
LDA SHRXPIXEL
SEC
SBC :PIXELS ; Move to previous column
CMP SHRWINLFT
BMI :PREVLINE
STA SHRXPIXEL
BRA :DONE
:PREVLINE LDA SHRWINRGT
SEC
SBC :PIXELS
STA SHRXPIXEL
LDA SHRYPIXEL
CLC ; Add 8 rows (go up)
ADC #$08
CMP SHRWINTOP
BMI :BOTTOMROW
STA SHRYPIXEL
BRA :DONE
:BOTTOMROW LDA SHRWINBTM
CLC
ADC #$08 ; Go up one row from bottom
STA SHRYPIXEL
:DONE SEC ; 65816 emulation mode
XCE
MX %11 ; Tell Merlin
PLP
>>> XF2AUX,VDU08RET
:PIXELS DW :PIXELS
* Handle cursor right in VDU5 mode
SHRVDU09 >>> ENTMAIN
PHP ; Disable interrupts