From 2e0e9def00acb0e5eec5ace43795b565789b1d67 Mon Sep 17 00:00:00 2001 From: Bobbi Webber-Manners Date: Mon, 9 Jan 2023 17:44:38 -0500 Subject: [PATCH] SHR: XOR cursor sorta working. Has issues with copy cursor atm. --- applecorn.po | Bin 819200 -> 819200 bytes auxmem.shr.s | 37 +++++++++++++++++++++++++++++++++++++ auxmem.vdu.s | 4 ++-- mainmem.shr.s | 5 +++-- 4 files changed, 42 insertions(+), 4 deletions(-) diff --git a/applecorn.po b/applecorn.po index 3f2093926293f8f51227e748367be8075953d170..7ff9bda4c2b3038c15d915a36c9c1e3c44cafa27 100644 GIT binary patch delta 13174 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 Qksm4OZM(LjPWl!94`G^Q$460 ; $460 is seven rows + STA VDUADDR+1 + LDY #$00 + PLA ; Recover character + CMP #'_' + BEQ :CURSORON + CMP CURSORED + BEQ :CURSORON + BRA :CURSOROFF +:CURSORON LDA :CURSTATE + ROR A + BCS :DONE ; Already on + BRA :L1 +:CURSOROFF LDA :CURSTATE + ROR A + BCC :DONE ; Already off +:L1 LDAL [VDUADDR],Y ; XOR last row + EOR #$FF + STAL [VDUADDR],Y + INY + CPY #$04 + BNE :L1 + INC :CURSTATE +:DONE RTS +:CURSTATE DB $00 ; Cursor state + + * Write character to SHR screen in 320 pixel mode SHRPRCH320 SEC SBC #32 diff --git a/auxmem.vdu.s b/auxmem.vdu.s index f935bf2..07d3283 100644 --- a/auxmem.vdu.s +++ b/auxmem.vdu.s @@ -398,7 +398,7 @@ PUTCURSOR TAX ; Preserve character TXA JMP PUTCHRC :SHR TXA ; Recover character -* TODO: Add code for XOR cursor in SHR mode + JMP SHRCURSOR RTS @@ -410,7 +410,7 @@ PUTCOPYCURS TAX ; Preserve character JMP OUTCHARCP :SHR TXA ; Recover character JMP OUTCHARCP2 -* TODO: Add code for XOR copy cursor in SHR mode + JMP SHRCURSOR RTS diff --git a/mainmem.shr.s b/mainmem.shr.s index cdfbb4c..9c89e77 100644 --- a/mainmem.shr.s +++ b/mainmem.shr.s @@ -215,6 +215,7 @@ SHRCHAR640 PHY ; Preserve Y * VDU5 plot char at graphics cursor position +* TODO: Need to do bitshifting for x-position SHRVDU5CH320 >>> ENTMAIN PHP ; Disable interrupts SEI @@ -324,7 +325,7 @@ SHRVDU5CH320 >>> ENTMAIN * VDU5 plot char at graphics cursor position SHRVDU5CH640 >>> ENTMAIN -* TODO +* TODO: Write me! >>> XF2AUX,SHRPRCH640RET @@ -344,7 +345,7 @@ SHRVDU10 >>> ENTMAIN >>> XF2AUX,VDU10RET -* Handle linefeed in VDU5 mode +* Handle linefeed in VDU5 mode - does the actual work * Called in 65816 native mode, 16 bit M & X SHRVDU5LF MX %00 ; Tell Merlin LDA SHRWINLFT