From 370d410830e3d47d8e23b0889bda32872236b949 Mon Sep 17 00:00:00 2001 From: Bobbi Webber-Manners Date: Tue, 10 Jan 2023 18:54:11 -0500 Subject: [PATCH] Pass VDU09 to SHR VDU5 handler code --- applecorn.po | Bin 819200 -> 819200 bytes auxmem.vdu.s | 15 ++++++++---- mainmem.shr.s | 64 ++++++++++++++++++++++++++++++++++++++------------ 3 files changed, 60 insertions(+), 19 deletions(-) diff --git a/applecorn.po b/applecorn.po index 90776b824f541ddc86d43a9aea42ec283d962a24..54c9b91d660faa8d1b205bc65a1a3e30e24d4113 100644 GIT binary patch delta 13188 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ϊ&~egWp$8|evr~F( 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 z zHn#Gi{x%tWU1c(iI-M@=_%<}sd^r8EE8Uvtq5>UL<)i6`zfHHsxu^iL|Do_KQ%Rg9 zt>gs@1ey18b0POu7Xd1XS)6(xK$oJOj}-Z>d|ukTH|DYP-j>Xkx#G)*Li_8Y9-$OJ zI27s>3lD{A#TO2T9*G~jMAk5_=iE=%F%Y3WyF_M~*oLuXG7U)#er*Z<)4d;wbJAd| zG>_1aalZ)#{L2vGh|`aR4mShUL_$cYbU+p9qv}PdDzJSC-k6DxF2P?d(ZgAIEL-l$ zRC-oddNN^`9$a0gakuhJp(m5oFM>~`XL&s*x5W{9#rr;r&tR%x> zPo{db^@ZOpP$g>q(XJNA$QNfG#^P_i+rRu-}$7TB1jT!f<$N4UHxOCeeCKvS0T-R!b0 z6MwkW+8w{Wlo0J{ha(<6>k9)fx5q+6UM`b9)m6$c8t$NKXoWX3)qEqVriE%-R7KZ(Hf;b8s@(C}b-= z&6S1Oa5Wd^8mff2UQ`0>`35~3%Wjv!3O1H!k|P};LqG*Nb)4nQhf4hiJ`YMMis-CB zfbLcL@a+{gvUAgFMEVxoc!q?;RzDlJ0AlU)csRaIE4yVSsZ#@O{&MJ z$+s`5$v5d7*wBNIc=o4IBiQhH(b_6_Qdp@PW53 z(+s;i;Etz{o3>FKe!P{V=pbL*k%L=vO>61=C_QV+kBaq&J8A8>$1?5xFkJQ09S@wO zHm~wl&W{~A%79X+zk@bphgX^J@h-lVqjD<+mcX#KAS9q{7iO2in?nQ~xpmot3{(b2 zr90?oWi8##YO^C_D?4)T-pbK2`iwp{3bvkQY@#Xc|41j z%Zrx-LJ7!kH?c<+Jwk=;%YX{rJ*PZ>&2jhin7_zzhj~hJ+*;4J9ANUdoFjOJJ5vf2 z@CtZ+^?0rlc=mWMKL-z9K^mJ;8XfLlhM!;IcnKFQ+Yqg|=aBR{oh}k$53=tzNZ#U; zxqNT6=H(`*zR5~i)lXC>7fxCqEd3TGi zBiX{leErJ$Tlz0JpS;ii?vDWrsg5^_NYV!`q=qfX-vh8P;|Y4Q!F6&b%Lx=hIj8WZI5 zOW{2OHJ6_Tcj+o*n?=E^=RS~Er3=I%7>O;O;-%sr825qStG? WWo)Cn1?|kxb`v##&)9~#E&pFC6vtx# diff --git a/auxmem.vdu.s b/auxmem.vdu.s index 97a743e..4d9c88b 100644 --- a/auxmem.vdu.s +++ b/auxmem.vdu.s @@ -546,10 +546,17 @@ VDU08 LDA VDUTEXTX ; COL :S3 RTS * Move cursor right -VDU09 LDA VDUTEXTX ; COL +VDU09 LDA VDUSTATUS + AND #$20 ; Bit 5 VDU 5 mode + BEQ VDU09SKIP + BIT VDUSCREEN + BVC VDU09SKIP ; Not SHR, skip + >>> XF2MAIN,SHRVDU09 +VDU09RET >>> ENTAUX +VDU09SKIP LDA VDUTEXTX ; COL CMP TXTWINRGT BCC :S2 -:T11 LDA TXTWINLFT + LDA TXTWINLFT STA VDUTEXTX ; COL LDA VDUTEXTY ; ROW CMP TXTWINBOT @@ -560,9 +567,9 @@ VDU09 LDA VDUTEXTX ; COL BRA :DONE SCROLL LDA VDUSTATUS AND #$20 ; Bit 5 VDU5 mode - BEQ :VDU4 + BEQ :S3 RTS ; No scroll in VDU5 -:VDU4 JSR SCROLLER +:S3 JSR SCROLLER LDA TXTWINLFT STA VDUTEXTX JSR CLREOL diff --git a/mainmem.shr.s b/mainmem.shr.s index 31fdd7d..8856669 100644 --- a/mainmem.shr.s +++ b/mainmem.shr.s @@ -242,7 +242,7 @@ SHRVDU5CH >>> ENTMAIN :MODE0 LDA #$02 ; 2 bytes per row in MODE 0 LDX #8 ; 8 pixels per char in MODE 0 :S0 STA :BYTES - STX :PIXELS +* STX :PIXELS CLC ; Add SHRFONTXPLD to A1L/H LDA A1L @@ -317,16 +317,16 @@ SHRVDU5CH >>> ENTMAIN CMP #$08 ; 8 rows BNE :L0 - REP #$30 ; 16 bit M & X - MX %00 ; Tell Merlin - LDA SHRXPIXEL - CLC - ADC :PIXELS ; Advance to next column - CMP SHRWINRGT - BCS :NEWLINE ; X-pos >= limit - STA SHRXPIXEL - BRA :DONE -:NEWLINE JSR SHRVDU5LF +* REP #$30 ; 16 bit M & X +* MX %00 ; Tell Merlin +* LDA SHRXPIXEL +* CLC +* ADC :PIXELS ; Advance to next column +* CMP SHRWINRGT +* BCS :NEWLINE ; X-pos >= limit +* STA SHRXPIXEL +* BRA :DONE +*:NEWLINE JSR SHRVDU5LF :DONE SEC ; 65816 emulation mode XCE MX %11 ; Tell Merlin @@ -336,10 +336,44 @@ SHRVDU5CH >>> ENTMAIN :COLCTR EQU TMPZP+0 :ROWCTR EQU TMPZP+2 :BYTES EQU TMPZP+4 ; Bytes per char row -:PIXELS EQU TMPZP+6 ; Pixels per char row +*:PIXELS EQU TMPZP+6 ; Pixels per char row -* Handle linefeed in VDU5 mode +* Handle cursor right in VDU5 mode +SHRVDU09 >>> 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 + CLC + ADC :PIXELS ; Advance to next column + CMP SHRWINRGT + BCS :NEWLINE ; X-pos >= limit + STA SHRXPIXEL + BRA :DONE +:NEWLINE LDA SHRWINLFT + STA SHRXPIXEL + JSR SHRVDU5LF +:DONE SEC ; 65816 emulation mode + XCE + MX %11 ; Tell Merlin + PLP + >>> XF2AUX,VDU09RET +:PIXELS DW $00 ; Pixels per char + + +* Handle cursor down / linefeed in VDU5 mode SHRVDU10 >>> ENTMAIN PHP ; Disable interrupts SEI @@ -358,8 +392,6 @@ SHRVDU10 >>> ENTMAIN * 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 - STA SHRXPIXEL LDA SHRYPIXEL SEC SBC #16 ; Height of this+next row @@ -384,6 +416,8 @@ SHRVDU13 >>> ENTMAIN XCE REP #$30 ; 16 bit M & X MX %00 ; Tell Merlin + LDA SHRWINLFT + STA SHRXPIXEL JSR SHRVDU5LF :DONE SEC ; 65816 emulation mode XCE