mirror of
https://github.com/bobbimanners/Applecorn.git
synced 2025-04-12 00:37:18 +00:00
VDU5 is now basically working
This commit is contained in:
parent
75333d5638
commit
4fe3d4debc
BIN
applecorn.po
BIN
applecorn.po
Binary file not shown.
@ -224,5 +224,5 @@ BYTE00 BEQ BYTE00A ; OSBYTE 0,0 - generate error
|
||||
RTS ; %000x1xxx host type, 'A'pple
|
||||
BYTE00A BRK
|
||||
DB $F7
|
||||
HELLO ASC 'Applecorn MOS 2022-01-08'
|
||||
HELLO ASC 'Applecorn MOS 2022-01-09'
|
||||
DB $00 ; Unify MOS messages
|
||||
|
24
auxmem.vdu.s
24
auxmem.vdu.s
@ -398,6 +398,7 @@ PUTCURSOR TAX ; Preserve character
|
||||
TXA
|
||||
JMP PUTCHRC
|
||||
:SHR TXA ; Recover character
|
||||
* TODO: Add code for XOR cursor in SHR mode
|
||||
RTS
|
||||
|
||||
|
||||
@ -409,6 +410,7 @@ PUTCOPYCURS TAX ; Preserve character
|
||||
JMP OUTCHARCP
|
||||
:SHR TXA ; Recover character
|
||||
JMP OUTCHARCP2
|
||||
* TODO: Add code for XOR copy cursor in SHR mode
|
||||
RTS
|
||||
|
||||
|
||||
@ -523,10 +525,17 @@ SCROLL JSR SCROLLER
|
||||
* Move cursor down
|
||||
VDU10 LDA VDUTEXTY ; ROW
|
||||
CMP TXTWINBOT
|
||||
BEQ :TOSCRL ; JGH
|
||||
BEQ VDU10SCRL
|
||||
INC VDUTEXTY ; ROW
|
||||
RTS
|
||||
:TOSCRL JMP SCROLL ; JGH
|
||||
LDA VDUSTATUS
|
||||
AND #$20 ; Bit 5 -> VDU5 mode
|
||||
BEQ VDU10DONE
|
||||
BIT VDUSCREEN
|
||||
BVC VDU10DONE ; Not SHR, skip
|
||||
>>> XF2MAIN,SHRVDU10
|
||||
VDU10RET >>> ENTAUX
|
||||
VDU10DONE RTS
|
||||
VDU10SCRL JMP SCROLL
|
||||
|
||||
* Move cursor up
|
||||
VDU11 LDA VDUTEXTY ; ROW
|
||||
@ -548,7 +557,14 @@ VDU13 LDA #$BF
|
||||
JSR CLRSTATUS ; Turn copy cursor off
|
||||
LDA TXTWINLFT
|
||||
STA VDUTEXTX ; COL
|
||||
RTS
|
||||
LDA VDUSTATUS
|
||||
AND #$20 ; Bit 5 -> VDU5 mode
|
||||
BEQ VDU13DONE
|
||||
BIT VDUSCREEN
|
||||
BVC VDU13DONE ; Not SHR, skip
|
||||
>>> XF2MAIN,SHRVDU13
|
||||
VDU13RET >>> ENTAUX
|
||||
VDU13DONE RTS
|
||||
|
||||
* Move to (0,0)
|
||||
VDU30 LDA TXTWINTOP
|
||||
|
@ -234,13 +234,26 @@ SHRVDU5CH320 >>> ENTMAIN
|
||||
ADC #SHRFONTXPLD
|
||||
STA A1L
|
||||
|
||||
LDA SHRYPIXEL ; See if we are too close to bttm
|
||||
CMP #16
|
||||
BCC :NEWPAGE1 ; Less than 16 rows left
|
||||
LDA SHRYPIXEL ; y coordinate
|
||||
SEC
|
||||
SBC #8 ; Height of this row
|
||||
CMP SHRWINBTM
|
||||
BMI :NEWPAGE
|
||||
LDA SHRYPIXEL
|
||||
CMP SHRWINTOP
|
||||
BEQ :S1
|
||||
BPL :NEWPAGE
|
||||
:S1 LDA SHRXPIXEL ; x coordinate
|
||||
CMP SHRWINLFT
|
||||
BMI :NEWPAGE
|
||||
CMP SHRWINRGT
|
||||
BEQ :S0
|
||||
BPL :NEWPAGE
|
||||
BRA :S0
|
||||
:NEWPAGE1 LDA #199
|
||||
:NEWPAGE LDA SHRWINTOP
|
||||
STA SHRYPIXEL
|
||||
STZ SHRXPIXEL
|
||||
LDA SHRWINLFT
|
||||
STA SHRXPIXEL
|
||||
|
||||
:S0 SEP #$30 ; 8 bit M & X
|
||||
MX %11 ; Tell Merlin
|
||||
@ -294,24 +307,15 @@ SHRVDU5CH320 >>> ENTMAIN
|
||||
LDA SHRXPIXEL
|
||||
CLC
|
||||
ADC #16 ; Advance to next column
|
||||
CMP #639-16
|
||||
CMP SHRWINRGT
|
||||
BCS :NEWLINE ; X-pos >= limit
|
||||
STA SHRXPIXEL
|
||||
BRA :DONE
|
||||
:NEWLINE STZ SHRXPIXEL
|
||||
LDA SHRYPIXEL
|
||||
CMP #16
|
||||
BCC :NEWPAGE2 ; Less than 16 rows left
|
||||
SEC
|
||||
SBC #$08
|
||||
STA SHRYPIXEL
|
||||
BRA :DONE
|
||||
:NEWPAGE2 LDA #199
|
||||
STA SHRYPIXEL
|
||||
:DONE SEC ; 65816 emulation mode
|
||||
:NEWLINE JSR SHRVDU5LF
|
||||
:DONE SEC ; 65816 emulation mode
|
||||
XCE
|
||||
MX %11 ; Tell Merlin
|
||||
PLP
|
||||
|
||||
>>> XF2AUX,SHRPRCH320RET
|
||||
* Zero page
|
||||
:CTR1 EQU TMPZP+0
|
||||
@ -324,6 +328,59 @@ SHRVDU5CH640 >>> ENTMAIN
|
||||
>>> XF2AUX,SHRPRCH640RET
|
||||
|
||||
|
||||
* Handle linefeed in VDU5 mode
|
||||
SHRVDU10 >>> ENTMAIN
|
||||
PHP ; Disable interrupts
|
||||
SEI
|
||||
CLC ; 65816 native mode
|
||||
XCE
|
||||
REP #$30 ; 16 bit M & X
|
||||
MX %00 ; Tell Merlin
|
||||
JSR SHRVDU5LF
|
||||
:DONE SEC ; 65816 emulation mode
|
||||
XCE
|
||||
MX %11 ; Tell Merlin
|
||||
PLP
|
||||
>>> XF2AUX,VDU10RET
|
||||
|
||||
|
||||
* Handle linefeed in VDU5 mode
|
||||
* Called in 65816 native mode, 16 bit M & X
|
||||
SHRVDU5LF MX %00 ; Tell Merlin
|
||||
LDA SHRWINLFT
|
||||
STA SHRXPIXEL
|
||||
LDA SHRYPIXEL
|
||||
SEC
|
||||
SBC #16 ; Height of this+next row
|
||||
CMP SHRWINBTM
|
||||
BMI :NEWPAGE ; Less than 16 rows left
|
||||
LDA SHRYPIXEL
|
||||
SEC
|
||||
SBC #$08
|
||||
STA SHRYPIXEL
|
||||
BRA :DONE
|
||||
:NEWPAGE LDA SHRWINTOP
|
||||
STA SHRYPIXEL
|
||||
:DONE RTS
|
||||
MX %11 ; 8 bit again
|
||||
|
||||
|
||||
* Handle carriage return in VDU5 mode
|
||||
SHRVDU13 >>> ENTMAIN
|
||||
PHP ; Disable interrupts
|
||||
SEI
|
||||
CLC ; 65816 native mode
|
||||
XCE
|
||||
REP #$30 ; 16 bit M & X
|
||||
MX %00 ; Tell Merlin
|
||||
JSR SHRVDU5LF
|
||||
:DONE SEC ; 65816 emulation mode
|
||||
XCE
|
||||
MX %11 ; Tell Merlin
|
||||
PLP
|
||||
>>> XF2AUX,VDU13RET
|
||||
|
||||
|
||||
* Plot actions: PLOT k,x,y
|
||||
* k is in SHRVDUQ+4
|
||||
* x is in SHRVDUQ+5,SHRVDUQ+6
|
||||
@ -423,10 +480,12 @@ SHRPOINT REP #$30 ; 16 bit M & X
|
||||
BMI :OUT
|
||||
CMP SHRWINTOP
|
||||
BEQ :S1
|
||||
BPL :OUT
|
||||
:S1 LDA A1L ; x coordinate
|
||||
CMP SHRWINLFT
|
||||
BMI :OUT
|
||||
CMP SHRWINRGT
|
||||
BEQ SHRPOINT2
|
||||
BPL :OUT
|
||||
BRA SHRPOINT2
|
||||
:OUT SEP #$30 ; 8 bit M & X
|
||||
|
Loading…
x
Reference in New Issue
Block a user