From 3e5c80bbf1af641b1e8243b911e3f3609d949730 Mon Sep 17 00:00:00 2001 From: FeralChild64 Date: Thu, 10 Oct 2019 18:34:28 +0200 Subject: [PATCH] case switch fixes, support missing PETSCII control codes --- bin/basic_generic.rom | Bin 8192 -> 8192 bytes bin/basic_mega65.rom | Bin 8192 -> 8192 bytes bin/basic_ultimate64.rom | Bin 8192 -> 8192 bytes bin/kernal_generic.rom | Bin 8192 -> 8192 bytes bin/kernal_mega65.rom | Bin 8192 -> 8192 bytes bin/kernal_ultimate64.rom | Bin 8192 -> 8192 bytes c64/kernal/cint_real.s | 2 ++ c64/kernal/scnkey_tww_ctr.s | 6 ++--- c64/kernal/screen/chrout_screen_control.s | 26 +++++++++++----------- 9 files changed, 18 insertions(+), 16 deletions(-) diff --git a/bin/basic_generic.rom b/bin/basic_generic.rom index 8e22472dac293024eb992a7cdfc388064ba02fbb..11b0d17c71c181a77417ca610bdc78d22188aec0 100644 GIT binary patch delta 46 ucmZp0XmHqYh=s}K>*gaY^O=G431F#!OvP7%@o delta 46 ucmZp0XmHqYh=s}a)#f8C^O=G431F#!Or8xf!Y diff --git a/bin/basic_mega65.rom b/bin/basic_mega65.rom index 53c01b59a32a93ad85feade40751860dd16f21bb..fe3ebcf3ef2fcefc2696624f5098bde1feb278a4 100644 GIT binary patch delta 91 zcmZp0XmHqYh=r-`>EZ6CSygqR-vovbJq4m4$QmE2(v&tCo@0Q#pZmjD0& delta 91 zcmZp0XmHqYh=s}a)#f8CzZtnIo-N&=Q1MK`_SNK*Y`>*!U#+xPxb#0`m4f7cg}DEV o6hXA@D{KSx zk<+qBG|)R&8=9-N^HAtPQxU-n zAE0xS^m|3;g6NG;t->q*=eq@~zZ6A3<$nN-K*qrFmVT!u(xqR&vLY<%(A^kF)WJ{G zu|9ST*9N#L{mYwc18!f}7^xCYDS9iaUA7Tq^*d<16fi5S8+{n{(m0|L$>K-*ByU7<=<*=M6aWjrKgc#S$q7147aRc~J;T*OWBW zt8$a3KjedI_gL?w&O+k}zi4lt)S*c~hfN1^Y6GrnPc!8VipV+Ia;;bnT&iDLkdk?1 zR`{oq;nMYfLZQN0&cWmtDPMPARc4eGU4#Gmh*Aulhp3rB;xZoa(&)`uuAlh{^_y8P z$~?3E;H;=?ZKXUZQzf*NA{%%kFi4b~#;3HkQi&O@(0Jgn#yW_^SmKVEgF$|Q71v`pjGOXvmFn<b zbXxLw9r{d-Z#4H@fzlkpKM!eyZ}}{N1AQxj%ooE)=+~QK{=n8L~~ovph^ zLZ=}mY~75QL0~r;o`;>dCfva5Tq(VWC@A{bp<5qOa&U04hSYDSzi(X+A<_g@F#g1G z76N93^CMbvHlTDB{aHo7kMh|b-SkFF*08LiXM?CyMbQPI@J3Nr1x(yj?z)uDlX-b1 zkY<}9&7>5iOrn(1-dYWAN+w=_-hPd=NA>mr zKik3JQwxF<$|we@F6zjQ{t;`LE3L({Ofq6L{0W>1e7i^*nq1B2SiXidxLsZ61iprQ zl3(~!OUb`mb<-M?*-|pDL1@fcx|$XIMEwpEuwLkc9!HBYA~*P9)`{+q!qobo}q1+t4_`5sDj+ac&BJU z>*LXYm>f}yL4t5g&KB;-8PI1&*gMeYAQ?tTH=0$CgEz%QQA0^<)g?XS$dW1@nbICF zU1ukf-AgldmE=rSyrpPuXD<|_suUh&iirWQrCn+Oz7ik4G z-d#du8gtR((nGIVy5=xIkhd>!PmNocy)$m#wH=N$*xykg{(R(JfkTfLd{+qFu`{qAgmL@J7M?ChPX5Leb!+Wv!eb34o+m zhb@n4;tsW#hUG{Z4Gx8Qv_`ZYI98lXkai|J`VjO9Sr!AonUW*5mFvldumbm(vXP4amgvC2|nv%xQieF zQns9tyqVyEp)GXE>B5-7r%>Q{m=?)~nK;O4l=Y%rPL)o|Q2ikL=#rEv8{v*OQ?glV zlhXl~XxBYZ_^j#O^KxoiGX;}jOF%NqCU{~vwJAIrOrkxBbKx%XJHpIwixE zF^4_y!h!Oe;A0&P=%6Zd^=peu_o%p9#SlSv0RAS7O%c3b x#jnlb9rN6^wX2`YRq<-IzL>7xNY|Irc+(5IM|8HLrz*9z!}T(Muua_RdN;Qjoc^;P%4v5B zt~|saaFRY-h0Pk@@;HVzZJ730aGoL}&0|tuNJUiK)MGMWZaxx{0FGqem&BgtN=1jJP0186&bueJ;f+Dj z0S)N+TkQ7Sln{RT!(wrjXKAZg>?y?I4~1_55Yz+^WrjXXTL!3|xtpRh{Ih|%OYQZD>$fqSt7X7a@aZibvTQl2|D{Xp zuVlFXUfsX>mo+aTCdAiiR#b}}5|UY4go-9A=}asM`cf#_J^EBu$hMG4`|&~a(H{|Q zJct^h!*7OhC=kP9vf67ssif8yX>aX7@`Roi(<7xPOYxR5T<(LGJQp-+7M%Wb-og(K zzW4r#lTFQk`o?^1N(pBrJA?c@{kN-IaargHe&n&;051>W zH^y*&r~qtM;k9A$W~;==EO{~}rN+8+c?S6X6*tIzL4H0W9hcYO@)2pXoO-s+C1FK{ zS{BDdyk;15XY1SiPP4zh&E+&#yXw2$@?-Cy4VztnY#Eeam9pdwEpB;^bs)Mx&j8F3 zZ*XorIRXgyu)4c%DD&!_ZLWH=%h~3yH~XF4H{{2vZPiYXTeb9+tOaW$@6cNci&q{cc_4ai=dPs)_Fwi<8%+?ID(gx@GBm5orMlKnwewL zJx7YvY0?;~VQ2iRd8?mUGi-HtZZWC5aKniL);iFBi_x(}8n)Fm-C|%f{BM)?*I!e!g~8ba8&MzxY4(NMAX~jZ-`^jZa7L zXoS2yYD*{m5&n{9{v!OFQ4>q1d?`vavcTIkuNv-25>-$!)zfotr}iZ+D2N#KG(Ez? zpAsQ_rK_*F2zX^EQ6?$>Fn8B?xtnTiCyUJzE3?Gp1sXUq#GCkR#FUNiO&1u?8e5C$ zQ;A#+JQc;8ddgj>{af8dO47&qjLed>pN+>TdlM+j7tUR2!2k0&Hni_Ts?i0&k@kH^ zqHsmO@RAOnCdLT|3#{NfG8bvz4BOTNPx%L#-%rX8Qo@D#7iO330A3S-K<_Ygcteo`Vf9mrJMkF zUkV_8>74v^>qAD)syZoJ^%WFYKGT0h-S!IDwv?b0Nk}Pd-=T`n#T`kS6($I$_UT(h2R9OpmC%BlW)0KXLwJ7UgV z4M0kaItQoxnwpJVs;0b>ZWI*nlg5e-$%^ zf35Zx1ELA;{{jAM0CJ^z7oP_#sr9;PT4lAgoDqczYGJxBC>d=Ro!uAoazZgIyknY_ z1=QSSVa%7Q_p-v0D*6V zG-8)pG%gcpl27UG3d@KX;Qx@7|N08{>!7{|aiHdZLkL2NN{J2#X`u8}v?gE}GdxzC zsP<%OG+V0&d?iA1g2uD>JAN|L4?H`rUM$2;xsP}07ca+Ky?C`B%<5RODhQFFCv-X* z{#6(Sg$QVt=(G?m1)x?_GH;)~ay!FavqglYQ#|U`O>yUitj1$VNPz4nq&6N#jb?eEVuIh8yawHw;14Fx-=s{~n1%*qPZ%<= zQi7}zv;cr|nF7WV1!~@tY*3BrQhr>mB-{1!Ce)yp z?b{LTjKv)jLbClwC?@IbKa5Ly`w!w0wwK4H0{gbORAk>8mx}FM;u8AQ1_tx`c%&5c z9Y;!j-+M^Ov!3r{O)R-H(R2biYx$9sWpj5=mD-P@A|%f!wIwzjMMfj3m@<;xQ|HX7 zyHT>Ctvmq?@D0l1!kd!X3!mGo$Afmod zT%08KbG_s8kg^cD?IVvoq|i$~^N`6P(fat#g$tf>KO`FhdkfgT dOW3`IEcvOA)Okp%$1)@^lwsC+cSVLC{vUmMc7Ff> diff --git a/bin/kernal_mega65.rom b/bin/kernal_mega65.rom index a0e4a3bf0fadb515fc04e42b019cb75d00af6a6d..1dbda167cfeb6e53ccc0ae3d75117a05d5341e69 100644 GIT binary patch delta 2767 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 diff --git a/bin/kernal_ultimate64.rom b/bin/kernal_ultimate64.rom index e1db9442a32e63df05694585c239c6742faa927a..bc015e103378dcd1e14cf78af7bea938edd935f0 100644 GIT binary patch delta 2695 zcmY*beNa@_6<_Y#WdQ}259MJ%uVWk`;)vF!*l2@ErdgfqN3}`8w#iMMB#T4;$k?e& zCL?RhTL}hc*Jr9=jmvf)<6~TBcTC5Eaf-;`K1RaBRlu*QlW`G=t&iP>w~)g2yxnc4 zWtew==brmzk2EZDN%=S#Ylr&r_+f#F2IeD>Ja}x|HF;dA$Oo-gqnquioOC@&s!+22-+Dk z7fM$+H~x6R%aA83l}z?ji7Kdqvi$3YZ7A@Vw;48;U+*2PC{L?u=(AmSuCN=s@)^f< zufcb{HJ@oTMN23ZBGP?%RtQTyN(TPdG=Dek_eXEum%%$G_yGH3^v(pIUHHQGLldH|xfyv<9+WatifnKhVS$9?3|C4^ zGfGH|!jQhF+LFbR9+n_&N!ovxXcDOTLxrWsd1s>a6!JIlhnKDYVDhQia~zc;d68MvHy=k93%UQ)LMESLw1CgW@MMe}ndJV~ z&}HkU5PNC2oN?YaEMf4KpL4EBK>Xe~=*~C#!hT1%(Kqae!1o2@=i_5q4q)M>BN>CK zMK`7`EafgYd}X^r$+l@RliZ4VbPr1_m08Mn<{fyG8*MV5Hm3<~5+gHY-5g%4db5O4 zd_HE+F0q`qbXL&#Kx~otD2%eyeOk$AEH~b*Msk#;6_osHhR?~ZT;!d>Sz$6Xi!X%v zf2Xf{<-?FL%!P$p75{8RY|R)Kp?G1+`&!olq}@`4*7aTqSs#!n)G9XRj} zJ`^d0<01T3xR|?1g;pg8k^@U@5&q)xRrTM_kINA3Ez?53a^G_pNtyDG@Y)4@V;Zkt zfb>ejEp9+#qQ9}6jZ;(gH~7UAPIl@nojwVFJI_)}Co5)B*o_CKU?-`Xu5;;}DP4yV zl>dbP=BG#w_xD%P+KtTjUF;ELp1QLV4M*HvCa&S`P=3?WO-u?m$k!|_e#ND0aUfhY zOWp{cHUsmTG?E(O;rc{k{ zY>m~9YW`04&q;bOv|VY1cTUp+C;y@8p&@HrO;^YRHICPSK*3j`8+scf#;9PYuFakf z1T@-2fJTO^jP>E=AYWPVlX|=H;!$+r4~VuLMJ+JcjTaiw#XlnYSp#Z;0ZK}IH(5pG zS(IwEjbk&oJq%y+RTT7z?82p(yco3`iq8Fc`HC-&e*ULZr(4_3{I9-}bCZu3>c-3- zmdPw+6uqUE-<4WcAMY1+m{oDJir<~W^=b*6EZmfHgdsT-STx8DK_>$W4AM?Ksy0Dz z#YAaCVQXb|+8pm7TD-5vNJrFi9{(Urvcj>FevKg2X=8F{UtN zrP>jYP3{q8L;na6Sh&LlKn2Jh=)0pVYxMhu8y&-bU%1f`_V?Y9pKC1FnrnXm+N&0Y zI?a6u!tWMbIdN;U!5X|WjL)ceb_O&qqo^~(qPTL-a?tGL`48FTXR%!vsF~9 zqtVV%Dnol;Xp$az)1@A}p|l<-#6LG~X5Slk2YU9{Gr*MqshY*rAzT+F(^Hom8K0mu z);aGgCs%`faq*_TA8I$1f0sym@q8UvW>3ZY=3&GyYc{!zf_n$&_NIb~q+wn&9@qh@ z*vx?GaaBC1rnCV$TFyXFA+7vhihufkdsuqGo-I|{v!q{onHnpVtX_t#sictf%Kkyq z7D)VRu*)6r4Rc>_w>pM>;pSr~@ghj!hU5a#%H0%(lsw^Ucfc|1Ii@`obli}b4;(Sa zN%|4LYdNl8H&a!MoZy5h>BN>O-mJBBlV%T?%Mv=@1U+aGY`@KoaW^0$Qa*(4vsvM` zA(7T5$suP5fr_Wl-65k=j+~k7_3&QNCeF%>gb_nPL6Auhi)F)j9OTx^deJJUN+)DU z9GuP1Nm;THUJU6-PM2EbMF2~+#{+0w*$<6TIkm-xKo~HEq;xqA9xM(`geORvXiefg z__T3_r+Yu2@?g{z#Si+7%^bJ5{nxB{x)ZStZdYq&-6R zg~;(B8CA)>5K&c95GBPx# delta 2743 zcmYjT4^&gv8GpHtkbojVQR5%rdT=vw>_DCCQjdR9+j_9QRwmA2_wQEM8Js&iXWf}} z-4Wb)6#qbzJv)WXHe`9saGIVl?Xh4zMMaiJWxNnYw76Q2$$+}!BOwXkAp2etdX|&( z?sxC^yWjWS@87*O<{Gp02--B(UUL({!0%zVD?smNR1?7j+zP)a0)ah>>q;BS3hR*nT19OkM>k&8L zVmM#xpxyA{9UZclozcJM69y_7ZlG89CI6iIS=18d>(uM2#WW8xQL(@?O+}rRCDBlZ zOl}77mou)Pa87(|*29tov(&12zZQM)2SiWSqDC03nh%bm_kWLQ<5AQI1K{yTf#iNn zHU^z%v- z=qqcisPYq{8nHOC@4YcAr8m|g0QTxa;zCK|ssa1qRDT4rnn}_*l1}jJD-EE#cOo?ciA0;vDR_!{}Hdj<{-??l52z|9bkt z!l_aFPIn!$g_X0{cNwG*rNV^xnKUJY#V$D$+`^Bjf3pZIpeYfqokgxS+%3viEGsrX zNF6P8R4Vv&i+cujX`pxzH;tyY0L5Qlw1vejqx=sS78Yv81Roa`22B5{NBYVkZi3=B z$MJh{JQgQM##~usAkJS_uULhDHD+bWG^F!f8W#kW6i*ka3>mMd=Z|FerEf9BEqa<2 zXW>tYW46j^Z*38vw1gY7iVFSk0dxAeeo*34aec5ZZS3jOnS_2R9}dRn={S1zC-xHka#g(BnzxYjPVZ^zMP&GrDW|a|Ma3AYoLUYo!Kl{1OG^IVl;$bijcRIV?jcZ!T^6DXMYJ4^n&nlMeRCJE2`uY5y?dzdlmAVDMPYw zanPfOHGD0=pIq{drvd%1BzhRoLn0%80bF_bD||fQxvJocVxCS|vp)+aR^$7ICgmK`dmm*-KPvI2@6O@Z4VxFM!g4yKwb`-`?sI@~z+!g%)v#a=2 zB)Q;=;GZRh;h!txrHEiPn&k)h?~!T{55D{)0)8)fqO@CM417=RO!q}Or~Q(*`=VY_ znLzR08L}gy^esDMyF!CkWR_fu1g}agxg60`;jAv#!QfxV5*stxFF{-PlDde(c;d(w zco{jC0^4DLk8l-7XM`&RKH9UodyZlvMEKw37VcTcewE+%A&!aus;$CXBY1ZV&yV44 zF#~kjGo^_>obZ2~q(?31@VCNbffC45O0q$y%R_S$2s1ykc>Qk3R9D=QewIhQx@qo$ zBe(G+a;TtZIWilMp++0Rn`g=M0VS2I6jh+Ge8!Oj4q2N*qtHOo`f@r=6_ zflJmC@J6SIB-RzDg7vG*io)p~>dS1+z1L^?H-zL4? z7o-Rk<8nc%y8#(BZ5HE}yd#rsmyg8c`K>*Vjv-ln_Am4alt;HnO5hQadyN07EjtDGew&VM~xbmbGrZv>i3*CHMCcSjOT{CmmY%9+aeX?(d~2y?b|x!tU}EWpM9GQ6=v0rYMuU zEJdLYT_7;Ok4Lhh?-Y^?``$rvzVkvC3km&bvgtJP*7Bnn#mlOuOWh|>36kcOy3!g> zAd7`mPFqOT^m$w69;DUVXB;JD>lmMxw|-Y!7~-pYlDxf|JS^2ua$>Ng;R2x32Med zCre+1pO{%$0wrNFW-HVXwDUyMtilI^2_b8B8b~q&2vIUzXj1we3(p3jIZ54B61vI7 za?P|f@#-+~FXvVRqhcOd zuP1ayXp(b4D7fu{#2api^L<3wSA>s4L@ z-ue=K;^`6d)_URIknD`5tzE>MA>pCyTv-%$<6dPa>6oo@Fm_ePVFWoi;=OSUN#UNJ z3M#Jfr0FZoR5W{3RQv%)_NN|j(V?-0;y9!pW_CF-Aj2|+vht{%(idgdF5UC50 S%z%B^!BB>IHn=}N{P2Hz7*d`9 diff --git a/c64/kernal/cint_real.s b/c64/kernal/cint_real.s index 9111700a..21a5490f 100644 --- a/c64/kernal/cint_real.s +++ b/c64/kernal/cint_real.s @@ -96,7 +96,9 @@ cint_brk: // entry for BRK and STOP+RESTORE - XXX, where should it start? // Set maximum keyboard buffer size (Compute's Mapping the 64 p215) ldx #10 stx XMAX + // Put non-zero value in MODE to enable case switch + ldx #$00 stx MODE // Set default I/O devices (see SCINIT description at http://sta.c64.org/cbm64krnfunc.html) diff --git a/c64/kernal/scnkey_tww_ctr.s b/c64/kernal/scnkey_tww_ctr.s index 899ecf94..a678082e 100644 --- a/c64/kernal/scnkey_tww_ctr.s +++ b/c64/kernal/scnkey_tww_ctr.s @@ -367,11 +367,11 @@ next_row: beq no_case_toggle lda MODE - beq no_case_toggle + bne no_case_toggle - lda $D018 + lda VIC_YMCSB eor #$02 - sta $d018 + sta VIC_YMCSB no_case_toggle: diff --git a/c64/kernal/screen/chrout_screen_control.s b/c64/kernal/screen/chrout_screen_control.s index d028d077..440ace12 100644 --- a/c64/kernal/screen/chrout_screen_control.s +++ b/c64/kernal/screen/chrout_screen_control.s @@ -110,17 +110,19 @@ chrout_try_MODE_TXT: cmp #$0E bne !+ - // XXX - - jmp chrout_screen_done + lda VIC_YMCSB + ora #$02 // to lower case + bne mode_l1 // branch always !: chrout_try_MODE_GFX: cmp #$8E bne !+ - // XXX - + lda VIC_YMCSB + and #$02 // to upper case +mode_l1: + sta VIC_YMCSB jmp chrout_screen_done !: chrout_try_COLOR: @@ -140,7 +142,8 @@ chrout_try_SHIFT_ENABLE: cmp #$09 bne !+ - // XXX + lda #$00 // enable SHIFT+VENDOR combination + sta MODE jmp chrout_screen_done !: @@ -149,7 +152,8 @@ chrout_try_SHIFT_DISABLE: cmp #$08 bne !+ - // XXX + lda #$80 // disable SHIFT+VENDOR combination + sta MODE jmp chrout_screen_done !: @@ -167,16 +171,12 @@ chrout_try_CLR: bne !+ jsr clear_screen +clr_l1: jmp chrout_screen_done !: chrout_try_INS: cmp #$94 - bne !+ + bne clr_l1 // unknown code or key does not need handling jmp chrout_screen_ins -!: -chrout_screen_control_done: - - // unknown code or key does not needs - jmp chrout_screen_done