Reverse scrolling now works in MODE1 / HGR.

This commit is contained in:
Bobbi Webber-Manners 2022-09-19 13:21:07 -04:00
parent 63de6efbc2
commit 7830603320
3 changed files with 58 additions and 4 deletions

View File

@ -35,6 +35,7 @@ PRCHRSOFT CMP #$A0 ; Convert to screen code
PUTCHRET >>> ENTAUX
RTS
* Forwards scroll one line
HSCR1LINE >>> WRTMAIN
LDX TXTWINLFT
STX MTXTWINLFT
@ -45,6 +46,17 @@ HSCR1LINE >>> WRTMAIN
HSCR1RET >>> ENTAUX
RTS
* Reverse scroll one line
HRSCR1LINE >>> WRTMAIN
LDX TXTWINLFT
STX MTXTWINLFT
LDX TXTWINRGT
STX MTXTWINRGT
>>> WRTAUX
>>> XF2MAIN,HGRRSCR1L
HRSCR1RET >>> ENTAUX
RTS
HSCRCLREOL LDA VDUTEXTY
ASL
TAX

View File

@ -727,7 +727,10 @@ CLREOLGS BIT $C01F
SCROLLER LDA TXTWINTOP
:L1 PHA
JSR SCR1LINE
PLA
BIT VDUSCREEN
BPL :S0
JSR SCR1SOFT ; Scroll graphics screen
:S0 PLA
INC
CMP TXTWINBOT
BNE :L1
@ -745,7 +748,10 @@ RSCROLLER DEC TXTWINTOP
DEC A
:L1 PHA
JSR RSCR1LINE
PLA
BIT VDUSCREEN
BPL :S0
JSR RSCR1SOFT ; Scroll graphics screen
:S0 PLA
DEC A
CMP TXTWINTOP
BNE :L1
@ -827,8 +833,6 @@ DOSCR1LINE INC TXTWINRGT
BMI :L2
SCR1LNDONE DEC TXTWINRGT
PLA
BIT VDUSCREEN
BMI SCR1SOFT ; Scroll graphics screen
RTS
SCR1LINEGS LDX TXTWINLFT
BIT $C01F
@ -867,6 +871,9 @@ SCR1LINEGS LDX TXTWINLFT
* Copy text line A+1 to line A for HGR bitmap gfx mode
SCR1SOFT JMP HSCR1LINE
* Copy text line A to line A+1 for HGR bitmap gfx mode
RSCR1SOFT JMP HRSCR1LINE
* VDU 16 - CLG, clear graphics window
VDU16 JMP HSCRCLEAR

View File

@ -178,6 +178,41 @@ HGRSCR1L >>> ENTMAIN
BNE :L1
>>> XF2AUX,HSCR1RET
* Copy text line A to line A+1
HGRRSCR1L >>> ENTMAIN
INC MTXTWINRGT
ASL ; Source addr->A1L,A1H
TAX
LDA MHGRTAB,X
STA A1L
LDA MHGRTAB+1,X
STA A1H
INX ; Dest addr->A4L,A4H
INX
LDA MHGRTAB,X
STA A4L
LDA MHGRTAB+1,X
STA A4H
LDX #$00
:L1 LDY MTXTWINLFT
:L2 LDA (A1L),Y
STA (A4L),Y
INY
CPY MTXTWINRGT
BNE :L2
INC A1H ; Advance source 1024 bytes
INC A1H
INC A1H
INC A1H
INC A4H ; Advance dest 1024 bytes
INC A4H
INC A4H
INC A4H
INX
CPX #8 ; 8 pixel rows in character
BNE :L1
>>> XF2AUX,HRSCR1RET
* Clear one text line on HGR screen,
* from current cursor col to text window right limit
HCLREOL >>> ENTMAIN