From 72a60958e982c9c667df6fcf9edb268bf4be0b63 Mon Sep 17 00:00:00 2001 From: FeralChild64 Date: Fri, 27 Sep 2019 16:40:58 +0200 Subject: [PATCH] reduced amount of VICE label conflicts --- 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/aliases/,aliases_hardware.s | 8 ++--- c64/aliases/,aliases_ram_lowmem.s | 6 ++-- c64/basic/,aliases.s | 24 ------------- c64/basic/basic_main_loop.s | 2 +- c64/basic/cmd_list.s | 10 +++--- c64/basic/tokenise_line.s | 16 ++++----- c64/kernal/,aliases.s | 22 ------------ c64/kernal/blink_cursor.s | 8 ++--- c64/kernal/chrin_real.s | 10 +++--- c64/kernal/chrout_real.s | 16 ++++----- c64/kernal/cint_real.s | 10 +++--- c64/kernal/e544.clear_screen.s | 2 +- c64/kernal/f13e.getin.s | 2 +- c64/kernal/fda3.ioinit.s | 8 ++--- c64/kernal/scnkey.s | 56 +++++++++++++++--------------- 21 files changed, 77 insertions(+), 123 deletions(-) diff --git a/bin/basic_generic.rom b/bin/basic_generic.rom index 966d794a1402a3a82ca753a7d6d084d97a429ce9..826cc63b74271c7c7984edff63250f4ca1365257 100644 GIT binary patch literal 8192 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 diff --git a/bin/basic_ultimate64.rom b/bin/basic_ultimate64.rom index 482ff3978570e8dde9fcd0250a7babe2bb528d23..da45a31a69082def1d35ffb1fa9b3ecc92b5f48d 100644 GIT binary patch literal 8192 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 EAI5>Em;e9( diff --git a/bin/kernal_generic.rom b/bin/kernal_generic.rom index 32bd602ec614b975f2cfc92d4dbc92222ff89903..1765f7d2d3978d643e4d735dde15639fefdec66b 100644 GIT binary patch delta 3205 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 diff --git a/bin/kernal_mega65.rom b/bin/kernal_mega65.rom index f6b0fd858ff347c1e522618c468bf30f94124f0a..5660cad64f9f1d1a4a673fff592c5698adac74dd 100644 GIT binary patch delta 3069 zcmc&#e^3&!gGpmj8sK6>`fMuQM)csZATOaiv#j9m_8ej?H;RK=%3%y zc0^q%BQ+Oi4WRrW>d;ZA?qM(r67hEjd=xF)l|4QanaXfl5OoeoX)1#c4NIwVoYmrI z@b8AXcKp|%mwHB8Os+yVqKX8nbGw>~uINfK`g@erK+!$;_y7wBh}1EAdwX_Q?m`u#+)ct!z3N-o4K-RyN3{FAsA#*Wk0nJvTd0wa4^Eg1!%7|+A7IU6X zi>E5xO96*S)fS0#?OL%2y(mZ?wHxl`O@!0HVkcl%YcKxuFsKCoOrLH!(tH$mfVadW z=mISxB?f&O#05c_Qe)&omA0`CR;sr%__{AR zf;bEA%>)GnpkQH3;ef6r$i-2`)Brv_OitJpte<+Ws!5OvxHVEC_X_&-oK$34t1!4p z5GeFf3%D6}i);tX+!1N*0g5{+&~T*-G*{3=#zIi>7wO`;|NhPn2}5&~6GOi@_8s0i zN_3tleBE;KoCNE07r^O0jfYRCu?XW-hkBrS$>11c*z@MZjNT_oTr^} zm1vQM{-~jUgwSubT>RA-FIX0(v!K~N%{HG_6OP$qzurSDlTZtMiY=87nYXSwtm6$M z+&x2q)F?CR^9X7F6zLv1uY1zazOh`_c~`50okMuNe(9~4eg<)$*924Q1wVMt*&=}y4SMg_>lh}Ws&t0%0 z!Edg)Tie%sx22EYyWpkeS4aG>2KLe9QcK|Iz&o_eLJ5CAf!jltf!QNa7av%V69+fQ zD^{miesICIn7}xN_v!rVgfOEV6X0_e$@flzq_9i71+jyt7OO6=$elfW3*YY)$w$y&siRk+VlRUFnEiO0y9#3)SC4=^lrl%5I8ymf~7j_ z1&NAM-OC#HGcYoTjhWX{v#N$>(4$C{+z=H)UNRTxk_S96h_Z+l@KKR|U(_2b(XTay zsi3M+jgCIlQJs$dpzp4rgwsxxG+u|m$1j49Ws_=`X>}#s7~u1>UQYyT{5Il+^pM{Q zM6QA7)0Q0op>Lu>{UCH7+H4S*)czmEZfX8&M65*fw-d2O8$LC`wxTwz4leJF#twC9 z=;qj5{{L-6)FFuZ*4SPJD&XOmQ3WTLI?LL_=!aPJRTy6m%e0b-U_D1d-Lrc@A=|1a zGcWmkbeoIJ&NFS1s5De7;oBJIbF)|RPtt9_sjLxdn>cYdTiGnMG)VwR9%*js0V|tH zUy-x@PYEsFn)i@Uqwt==Fq^|H6vU5-KL87<9n3WQKBig8!-|#;ruu<3q%gh81pnTm zEdJ`EoGPfJU(S_?IUFs-Lo-lJ=+F!lKO}oJm7qir{$6`_UCcG(4Ua4DJAF1LF@sUf zt_mCD!kcG^X>nj!ycLG1wWP98Rs_1sV8j!HJ|BS@tu|0S3u|1jGHEA$0c^T-(3WOeH!&q$Rucs(@G*_tQ$5!&D-$fV$84w1 zP3Oh7y7Ja#?VoDx*gvVxZ@KZ^aay&UIZTh_xdby__iB}FUrgYje9d+$|#?9`cBYx zTAAncn%yU8mkXCpyKwpRrTT<-O_?^)E=2Gx(msu(F}!ZP0xVyYfEME5Ftiud?0~-F zV#OCa4n_EUTQTx37k|c?YAK)XPM+$v-SIid?6~8tawqn?6Cdz$R@Um(8mP5S&(#OK z3=pHih?oN8d}}gP3CbCV=pj7}J7TPta>Db$r!ReOQQxpDmun^+T57hjMuR17fZx7! zX;tj#?h0B+)EW4(0(Je0nks$)FK5s7D>lXCfUL}z#P83L%8aWNSJj#Xs=iBnxz?1+ zj&?yjO7zid3WL|^@Iarj{uJKD#2p(;%GNu#Y}<@Bm6jpOP&(gG3KiFbZ_g0UX^AHd za&tIw*T%9foAv-Zh2wN0k4sB7kR^FzHpgk6&wqv$4iqZ+&n*T|~)O&y<&;O!Bd7Qu@nc=b3g(QtYQH)*(D z!xdAwb_7p_aq~EC)9}qPd`rVY4Zoq`qQ`tkcJ?xhhLg04T&5zQsaVP2@(?c9@s5zt PFH$T;jce;BeiHgO+N;*k delta 3261 zcmcIme^gV~9lv=m0mMcF4H`t?Qm}*{N~+TGLok9Zv0eq#B6JmBD?N*rZatiKhqCPi zjs|FpgHi?LH&48uMxh3pGbDcdH^FpTtCA^Ze$ zX>g>MFLGe_QdnkzTed^M7xfmxm*23;3E2wB3w_3MEoK1!NI9T03W9NTc+3IZQH~-v zrD6&g{+NbFw}#AsYau-F@R+@RfgiYcIt->Iv3*1Jk(u#7%L<^QN_DxB;;WLgeG#2wk#tqOo#FxlQoiy==SSo?mA-jnA64idG zv4t<)4~)O$O3V~-!B}`nd>0Wd;Dg2HAOG^qx%XD^7dMAQ>RtZFJeHo@L~hLohRE`l z|E1)|?Ekl!;hv}eyNO44Rc_z0WfR)D`LQRewv|`ZmDT7nYIkSKw^rw-tDjtxvpPGk zzO-ZmkWiSGVp=9XQ8-!_gJp(AG?vBEc=3H$9=!xFRm9C@#kpMdJ#yP4*fcKblDfB!!1v=87X6EwZm9++46u>nk-YVrg? zS50LFI7puU`b#f(O0TEZ0?&)zLeKgKk>W3vwYv!LvBc_kos=5$D%4&DW?dqV0wofzq^WDv>;tqx^}@;s2F54#C=|`I<+08QT%Edy5 zkz$VMPUvEq;n_*pD!>;*ut`v(8xyQqw%lL?H?xEeaFba8SznM@)?IN)#~*h_PaRk3 zjlX47@b=`?arF75s0)5LNz_?YEkncb9;}Gt7X`I zaR;FB+@XQ?!Eh)b7GR-I^hR`q_^Cp7C)qu*X)DlEewZo{Pl)<}cahd;L03IGam%ba zJ}1^8wG;J@RQtE=p7{LCPQhL_u#XZQUrEFUo~IlPX}N+Q4SHo`^RB^D>_B{4453>$ zqMzPjzl`4=bCeD*KD5L)f6nnU;aF!YqAxqiNl#3Or_Fb}<02ay4L}~- z!?(;4mQvbut7iDYtnZvO`aA%)2Kd2C2;GVZxroqp zaxIP%Cb#RJ*js}Af+(gH?1Q4%NfkQoXPPbM-X5MLOdoOS2#JCgfP~=oBw88}sWHvmx^{^f96Qgge575XW~R=&X*3d;y5OYIm4J%j zUstSxogwza6u7G)AWmm_mYhjvNM7^kjxCSXZP{J{(8++ffGRg_7N-Qm$97b1gBgIo z0Lw9d9+B7Uit{32SLOH1gvPE<&1An`rV>k9Gb=WT5#y)mYmZ%e=+pKQ%cs2~VnMs5 z1;l54IH43-*GNjuL$U0|8VV;qLo#&%yU|y|y@DGf1b)y#IiqaQ1J}AFIn5)ph}RaXM_B^Zn+r@yhcGbcxm`u zr=KC;XQ?_{2bC4wr_b7$d?462bb#$iTqYT2&m|T=dp&5yMys*U_$G%tDVG@>rCmpX z>)#TW^KtZb&7BLEFxGq_*vtM;cr8JSwnNg%SHm zQYz87J1IZ0VOD2*mC{ho#X76B<5fzpM^DV^QNwKivDgEWOcnXEyAxA;Xt@2NIn@+9 zprnsod_^&%X5P8jt)#=qoXDx!F=;u;sn#vHZwu}Otye&+dvOP7<;qb-L1Mhpc)m&(G#lu@Qm|cRzru}WnRT;k4jygGMBZDOs#PpOI$WG z7I#oLQMNGO!pJ2>t`Cckiz6wOtxzo`oeZY=$jw478bacttw2YvGIm)?`tm-XUTw69 z_XTfJG2wO%zY$DqRZ0p}P1ZJ2W-%|d?jX~wv#Dr#BJGyy8&$L(RfJf$Ot(Xg;dC@9 zA@l$yXP5-Zd|?SbG*2TdBH3+9%369RLN?CLkD+(wBGTl;UgYZ!v4hLjJ%hXx7cX2X z&|K&6$!5_bx)HR(Ll_>$@Cb%&xV90P-RLJ6y)lPM=1{^MS}}(n_93l+kbwRnpbrGp z6h!TlC>TH^ljxR!Zg|mK0*dpZX9aY{!w#jUW<2RZ-}oEVbYnK%m`kI2FDjTrO2O>n N00Y3ULi=#K_djpJw#5Jd diff --git a/bin/kernal_ultimate64.rom b/bin/kernal_ultimate64.rom index a52e636eb1dba625032c932dde3a6bf4111c34a0..f853f83675f0015b12656ee331a5eab09b1aa973 100644 GIT binary patch delta 2515 zcmZ8jeQXow89(2}u^pP$VM*qY55Hk(b;!rE(t@jE2+Id%dLb;KU1$s32Gg7@?5~RE zuO+O$l%`E&>oOIxAGyl2y) zN!Go;_kEuC`FNi%chz*&G>9&@xXmq^oeL>I<7#j$ZTFeo@I)idC%?SLNZhc{o>q z7IXcsDKXFQS~L%uu2S@(Y0B>sO@A@V%B0!GUOYe_qj`VUUpv_VHR6&@Q}Cf}tdlj5 zwEBN_LXJY0`H1c!toCVF>{eN(s^lOH zTA>9yCL{Wq4z_*w9fbqK) zwj&rAJSz$0#!E5B>8W0N-zE_diCS1MzaE~>9qtsz${x!M-ld^GCB?CnEw!3NrECHA<4Mrlr~z#_rXz{fz0)yj zOQhCY3$R9`gQE(~jiaY`*U=Zr)Ip<${*V%ehROP}Ci)J+!+eg4iFkNAmzHw+E^*o| z_RFTlew&B;9cx366N~-0arvYhJsaym@cJ*n>qiVqb%a(bz+r%u>3C#=rC}R+g#0M~ zL0)+)aQ`#KJqz6TB9!tOP?gzl`TN!Ib;55~!((vB4cKu1G7Gkpsl*ZjNF4NXW6dqz z8{HEDyU#S5%lIe4#*v9rxy%XcLkG+EmAIS6R?vS;==KV}v=X7^LInFKM`$8VgA+nl ze1&DtollXuM0!n*BvQAb-w?j~72aXr)G7L{8IlHlQ=(XS1AJ>CkafbEAjVa%vK`() z_gPM8VIvt~$mWPW{D>sCp2#dz#kbjiA2x#VD$_M*jmpflth;Hk67Td>^O-Ijr-y$_ zvwg?uK3GUu9fE)#)Jvu-T8Ic=~O6agq&~+QJMv#$PLV#n8h)Dk$1@ zCN5FEy>!ShTgF5TvQaRhV{r&fmSE`XrBgdbVX*RuusjpV02Z3Cn4hqa9gz7$>&igp zd+UzwY>f-%&}+29AVAj8t7&8l?MovRYEC0Zs40!ALqAC)XK1gEcvqnvBpxVysUUyV z9eSUxrsXwmDWms&+T+2dRS(Wzz39)nVkoo;)qw;yuE5LbDfv`7@~$k@j6a*t))@G) zdIP97{e3?zKO{po-NVNh1X5cYttRN+4(O(&<=+#ufez$UWu~3#LS7BMtDzpKc&(+K z3h*Blf1l~ip5r6M#lPIT4418|q$ZUNClsS675Cx<43e)BzD#6PVMS+SFcSom82m98 z3}?cKz>Xvt9*`eEYEDdB=N-BsR`ay{u$r`WutV>%#14LMNlB-owzSg$aSURV5&Dp3 zMIVg)8<&-wk&mZtT(-#uC#2)!1b!z;TAsN>*wk$ZQ2udYOSi$nE{;PicW8^(Wd^?j zW;gMxvk zEe@p6O){uX!GDzjR>5y*_@e~go4|Pqye@$^$FN<+`BD6qiub8_LmYQ6;P?vOxr~pf z_~sJsSMhKRzm>$U2mDpLeZv|RUs-5(Fzp+e_6i0cjN*eDZjJ_K1&XDppxT{SAN?=f C_mR2) delta 2781 zcmb_ddu&tJ8NWW)PK+UqlLl~j<*p`JL}|ycOOG4_P=WE+_X+xA%>hBSv15cYkNWrC=n(o z)(05eg`zl?gPBosbR^2iIni<%*|;)JYH_k;K_I}0^`L`~jzsp)=`-@~sK@_^rL%wk zsH=b9s0*yQD3+Ik{d%x}w7q;pi&>%-8NcxmSu;Wp2#)C9JY6VJA47@PIjO$vO9Njo zz5XS`0|$s>EZ~yX^Bbgc{@b{6K-y^9r0;>{MqD!x(d8R$hm2sh=@6KS8v_Uc^6M|s z-*PzQnSgWP;m_Lxf4sk=eeRjBD=a$wu+qok2Ol^GOz@?j-t79Y&ey`ddLPTz;_iQV zJ5%{fRFbE$@Xv)9zSZ5~?zC~ZRGnjpk`#s(?=bD2BwORcR#U~Y`D!zdxF*+em$?p~ zjbpEhe?E&3t9EjIObD13d&103huX~C{Px0DrY<4MirkMOpc2ygL~wkgnnm&A$*In6T5^m2q6?~9sI^J$ai`VAPRgLnDxGfq8#*wI!XGHrjaZ(d`jpoTxkY*XfyfgxbQ{c&YbsC4B0#> zJp1Sl4;%%3iMv((M5!0=qgPXs_=zc;r;wvM%o&=Uc^Gn%Nz8Fq@VIO_*1H$s^BU<( zxjXRM6nP|-&2!dU~ntiVLk;ebV+0Ut82{6vW5+c>B{xGIL| ze-ok~HOS5=lAnTL0Qqz_A9(;XVxs{fs_^E*H6GBumC?Qd+Sg#Dje=CZabLe%jSN!# z3N_LPn|zy%v`%t$!9e>v64X#9U}=K5gfe->r&N4B$px4TXXPUC&oHAdUN~!u8Ok6i zx8o#Vp;B|5xVF&{U|Pu#xl49eelh!A&Z#HlDw&$z2xTpAQzn8h#d`tLpng>RLt_DC&OV@QK{A;fSHRB}5VupG0dX}LLP=!_ZW zuaK`MBF2U*jl;n!?Zb2?$i_0bqg$^@tK%wEWtOCqgSMgGI~)}I94(W7sP}tz1O!rF z6vd2T&s&I-{26On+`0oe`+*sx7rHa|?|V^fioRd^_<^xfO2-P6^@Ht-$%>>uxBCd{ z`YqyoN01K|e{NR;>i!+#-fTcVSZE)03_M0U>X8>C!IhI56U z;|*@E&J{A!wP%@ap&@T(T6#~;3oyNJAuI@+iWe=bneObbnUWW@fAr7aBiVHFS19oj z7s#!F7Puh%tayXrn$T6etm>=j5Yya@!iF0THfo5O#9Vw~8X{>C4ZdcS;aDiKO*2$w zLDUE;h^m<9R44~xp4qB;CBl35ItHT+VRvV~vFQaHRjOWDKKS;`sy zewHc=zo1jX-6bX9F@Nd0;)64;@Egd9V)NnF&2J#Lo4hpRCI@GFS}Zk&)i!wA$IW{h zE;ODGl=v;ZMQqFYW7a7YBEX1rBeXO-q-yq6fSJinRoiUD5( zB4V17ULZN)-Q`aTe_6iVS*m8|AG~nz_5@R60n}2dH6NxRUYUYd2_7ksh`Axg1<#;> zavopYnR46tAbo43ppDZ*X>L?<%mhs{S4IkBTlZKCIduo}0On#`5chh8Jnk-C{C28_(id3kC zsN}CI8BodLY0?-c(+U}mlUpjeo+RBWDM*r^sN~Xw&|gxr>IW0#&Sb5ftu1A1pJK`W XBq>XiA~kSBWH^TT_3Q!d@#KF1c1$5{ diff --git a/c64/aliases/,aliases_hardware.s b/c64/aliases/,aliases_hardware.s index 343fb5db..73abfd8c 100644 --- a/c64/aliases/,aliases_hardware.s +++ b/c64/aliases/,aliases_hardware.s @@ -10,7 +10,7 @@ // VIC-II registers - .label VIC_BASE = $D000 // base address of the chip + .label __VIC_BASE = $D000 // base address of the chip .label VIC_SP0X = $D000 .label VIC_SP0Y = $D001 @@ -64,7 +64,7 @@ // SID registers - .label SID_BASE = $D400 // base address of the chip + .label __SID_BASE = $D400 // base address of the chip .label SID_FRELO1 = $D400 .label SID_FREHI1 = $D401 @@ -101,7 +101,7 @@ // CIA #1 registers - .label CIA1_BASE = $DC00 // base address of the chip + .label __CIA1_BASE = $DC00 // base address of the chip .label CIA1_PRA = $DC00 .label CIA1_PRB = $DC01 @@ -125,7 +125,7 @@ // CIA #2 registers - .label CIA2_BASE = $DD00 // base address of the chip + .label __CIA2_BASE = $DD00 // base address of the chip .label CIA2_PRA = $DD00 // VIC bank switching and IEC port .label CIA2_PRB = $DD01 diff --git a/c64/aliases/,aliases_ram_lowmem.s b/c64/aliases/,aliases_ram_lowmem.s index 8a18c4af..0c63eaa0 100644 --- a/c64/aliases/,aliases_ram_lowmem.s +++ b/c64/aliases/,aliases_ram_lowmem.s @@ -166,13 +166,13 @@ .label HIBASE = $288 // high byte of start of screen .label XMAX = $289 // max keyboard buffer size .label RPTFLG = $28A // -- NOT IMPLEMENTED -- - .label KOUNT = $28B // -- NOT IMPLEMENTED -- + .label KOUNT = $28B // key repeat counter .label DELAY = $28C // -- NOT IMPLEMENTED -- .label SHFLAG = $28D // bucky keys (SHIFT/CTRL/C=) flags .label LSTSHF = $28E // last bucky key flags - .label KEYLOG = $28F // $28F-$290 -- NOT IMPLEMENTED -- + .label KEYLOG = $28F // $28F-$290 -- NOT IMPLEMENTED -- keyboard decoding pointer .label MODE = $291 // flag, is case switch allowed - .label AUTODN = $292 // -- NOT IMPLEMENTED -- + .label AUTODN = $292 // -- NOT IMPLEMENTED -- screen scroll disable .label M51CRT = $293 // -- NOT IMPLEMENTED -- mock 6551 .label M51CDR = $294 // -- NOT IMPLEMENTED -- mock 6551 .label M51AJB = $295 // $295-$296 -- NOT IMPLEMENTED -- mock 6551 diff --git a/c64/basic/,aliases.s b/c64/basic/,aliases.s index e2a02afb..ef91afa0 100644 --- a/c64/basic/,aliases.s +++ b/c64/basic/,aliases.s @@ -60,7 +60,6 @@ // We also use the following for temp colour pointer when scrolling .label load_save_verify_end_address = $AE - .label cassette_buffer_ptr = $B2 .label current_logical_filenum = $B8 .label current_secondary_address = $B9 .label current_device_number = $BA @@ -80,7 +79,6 @@ .label keyboard_input_ready = $D0 .label current_screen_line_ptr = $D1 .label current_screen_x = $D3 - .label quote_mode_flag = $D4 .label logical_line_length = $D5 .label current_screen_y = $D6 .label last_printed_character_ascii = $D7 @@ -91,28 +89,6 @@ .label current_screen_line_colour_ptr = $F3 .label keyboard_decoding_table_ptr = $F5 - .label basic_input_buffer = BUF - - // "Compute's Mapping the 64" book - .label keyboard_buffer = $0277 - .label text_colour = $0286 // p55 - .label colour_under_cursor = $0287 // p56 - .label key_buffer_size = $0289 // p57 - - // 0 = cursor keys, insert, delete and space repeat, but nothing else - // 128 = all keys repeat - // 64 = no keys repeat - .label key_repeat_flags = $028A // p58 - // https://www.c64-wiki.com/wiki/Page_2 - .label key_repeat_counter = $028B - .label key_first_repeat_delay = $028C - // bit 0 = shift, 1 = Vendor Key, 2 = Control - .label key_bucky_state = $028D - .label key_last_bucky_state = $028E - .label keyboard_decoding_ptr = $028F - .label enable_case_switch = $0291 - .label screen_scroll_disable = $0292 - #if CONFIG_MEMORY_MODEL_60K // BASIC uses some extra bytes for memory access under ROMs located at $2A7 onwards diff --git a/c64/basic/basic_main_loop.s b/c64/basic/basic_main_loop.s index ef5c56dd..bfee34e6 100644 --- a/c64/basic/basic_main_loop.s +++ b/c64/basic/basic_main_loop.s @@ -24,7 +24,7 @@ read_line_loop: ldx #22 jmp basic_do_error !: - sta basic_input_buffer,x + sta BUF,x inx jmp read_line_loop diff --git a/c64/basic/cmd_list.s b/c64/basic/cmd_list.s index 7c56e38e..b2e6e2a6 100644 --- a/c64/basic/cmd_list.s +++ b/c64/basic/cmd_list.s @@ -66,7 +66,7 @@ list_single_line: // entry point needed by DOS wedge // Iterate through printing out the line // contents lda #0 - sta quote_mode_flag + sta QTSW ldy #4 list_print_loop: @@ -82,14 +82,14 @@ list_print_loop: beq list_end_of_line cmp #$22 bne list_not_quote - lda quote_mode_flag + lda QTSW eor #$ff - sta quote_mode_flag + sta QTSW lda #$22 jmp list_is_literal list_not_quote: // Check quote mode, and display as literal if required - ldx quote_mode_flag + ldx QTSW bne list_is_literal cmp #$7f @@ -128,7 +128,7 @@ list_not_quote: // REM command locks quote flag on until the end of the line, allowing // funny characters in REM statements without problem. inc $0427 - sta quote_mode_flag // Any value other than $00 or $FF will lock quote mode on, so the token value of REM is fine here + sta QTSW // Any value other than $00 or $FF will lock quote mode on, so the token value of REM is fine here // FALL THROUGH list_not_rem: diff --git a/c64/basic/tokenise_line.s b/c64/basic/tokenise_line.s index 38e412b0..df2314af 100644 --- a/c64/basic/tokenise_line.s +++ b/c64/basic/tokenise_line.s @@ -17,7 +17,7 @@ tokenise_line: lda #$00 sta $0110 sta $0112 - sta quote_mode_flag + sta QTSW lda tokenise_work1 sta $0113 @@ -40,7 +40,7 @@ tokenise_char: // Clear quote mode flag that is also used by KERNAL for screen display lda #$00 - sta quote_mode_flag + sta QTSW rts !: // More to do @@ -60,9 +60,9 @@ tokenise_char_loop: bne tk_not_quote // Quote - lda quote_mode_flag + lda QTSW eor #$ff - sta quote_mode_flag + sta QTSW jmp tk_literal_char tk_not_quote: @@ -82,7 +82,7 @@ tk_not_quote: tk_might_be_keyword: // Don't tokenise in quote mode - lda quote_mode_flag + lda QTSW bne tk_literal_char // Pack string @@ -137,9 +137,9 @@ found_token_in_line: // If it is REM, then lock us in quote mode to the end of the line cmp #$8f bne not_rem - sta quote_mode_flag -not_rem: - + sta QTSW +not_rem: + // Now skip over the length of the token lda $0110 clc diff --git a/c64/kernal/,aliases.s b/c64/kernal/,aliases.s index da75162a..286d92da 100644 --- a/c64/kernal/,aliases.s +++ b/c64/kernal/,aliases.s @@ -5,7 +5,6 @@ // XXX get rid of this file, use ,aliases_ram_lowmem.s instead - .label kernal_load_or_verify_flag = $93 .label current_file_num = $98 .label input_device_number = DFLTN .label cassette_buffer_bytes_used = $A6 @@ -30,7 +29,6 @@ .label keyboard_input_ready = $D0 .label current_screen_line_ptr = $D1 .label current_screen_x = $D3 - .label quote_mode_flag = $D4 .label logical_line_length = $D5 .label current_screen_y = $D6 .label last_printed_character_ascii = $D7 @@ -40,26 +38,6 @@ .label screen_line_link_table = $D9 .label current_screen_line_colour_ptr = $F3 .label keyboard_decoding_table_ptr = $F5 - - // "Compute's Mapping the 64" book - .label keyboard_buffer = $0277 - .label text_colour = $0286 // p55 - .label colour_under_cursor = $0287 // p56 - .label key_buffer_size = $0289 // p57 - - // 0 = cursor keys, insert, delete and space repeat, but nothing else - // 128 = all keys repeat - // 64 = no keys repeat - .label key_repeat_flags = $028A // p58 - // https://www.c64-wiki.com/wiki/Page_2 - .label key_repeat_counter = $028B - .label key_first_repeat_delay = $028C - // bit 0 = shift, 1 = Vendor Key, 2 = Control - .label key_bucky_state = $028D - .label key_last_bucky_state = $028E - .label keyboard_decoding_ptr = $028F - .label enable_case_switch = $0291 - .label screen_scroll_disable = $0292 #if CONFIG_MEMORY_MODEL_60K diff --git a/c64/kernal/blink_cursor.s b/c64/kernal/blink_cursor.s index 3135b4bd..1f64e898 100644 --- a/c64/kernal/blink_cursor.s +++ b/c64/kernal/blink_cursor.s @@ -3,7 +3,7 @@ // cursor_blink_countdown // cursor_saved_character // cursor_is_visible -// colour_under_cursor +// GDCOL (colour under cursor) show_cursor_if_enabled: lda cursor_blink_disable @@ -48,8 +48,8 @@ draw_cursor: sta (current_screen_line_ptr),y // Also set cursor colour lda (current_screen_line_colour_ptr),y - sta colour_under_cursor - lda text_colour + sta GDCOL + lda COLOR sta (current_screen_line_colour_ptr),y lda #1 @@ -63,7 +63,7 @@ undraw_cursor: lda cursor_saved_character ldy current_screen_x sta (current_screen_line_ptr),y - lda colour_under_cursor + lda GDCOL sta (current_screen_line_colour_ptr),y lda #0 diff --git a/c64/kernal/chrin_real.s b/c64/kernal/chrin_real.s index fed6552d..741534e5 100644 --- a/c64/kernal/chrin_real.s +++ b/c64/kernal/chrin_real.s @@ -90,7 +90,7 @@ read_from_keyboard: lda keys_in_key_buffer beq chrin_repeat - lda keyboard_buffer + lda KEYD cmp #$0d bne not_enter @@ -145,7 +145,7 @@ empty_line: not_enter: // Print character - lda keyboard_buffer + lda KEYD jsr CHROUT jsr pop_keyboard_buffer @@ -160,11 +160,11 @@ pop_keyboard_buffer: sei ldx #$00 ldy #$01 -!: lda keyboard_buffer,y - sta keyboard_buffer,x +!: lda KEYD,y + sta KEYD,x inx iny - cpy key_buffer_size + cpy XMAX bne !- dec keys_in_key_buffer cli diff --git a/c64/kernal/chrout_real.s b/c64/kernal/chrout_real.s index 190a4067..03d2b849 100644 --- a/c64/kernal/chrout_real.s +++ b/c64/kernal/chrout_real.s @@ -110,7 +110,7 @@ not_0a: bne not_0d // RETURN clears quote and insert modes lda #$00 - sta quote_mode_flag + sta QTSW sta insert_mode jmp screen_advance_to_next_line not_0d: @@ -235,7 +235,7 @@ done_delete: not_14: // Check for quote mode - ldx quote_mode_flag + ldx QTSW bne is_quote_mode ldx insert_mode bne is_quote_mode @@ -274,7 +274,7 @@ not_quote_mode: colour_check_loop: cmp colour_codes,x bne !+ - stx text_colour + stx COLOR jmp chrout_done !: dex bpl colour_check_loop @@ -415,14 +415,14 @@ output_literal_char: bne not_quote // Toggle quote flag if required - lda quote_mode_flag + lda QTSW eor #$80 - sta quote_mode_flag + sta QTSW not_quote: // Set colour - lda text_colour + lda COLOR sta (current_screen_line_colour_ptr),y // Advance the column, and scroll screen down if we need @@ -556,7 +556,7 @@ no_copy_down: // Erase newly inserted line ldy #79 !: - lda text_colour + lda COLOR sta (current_screen_line_colour_ptr),y lda #$20 sta (current_screen_line_ptr),y @@ -659,7 +659,7 @@ scroll_copy_loop2: // Fill in scrolled up area ldx load_or_scroll_temp_pointer+0 scroll_copy_loop3: - lda text_colour + lda COLOR sta (current_screen_line_colour_ptr),y lda #$20 sta (current_screen_line_ptr),y diff --git a/c64/kernal/cint_real.s b/c64/kernal/cint_real.s index 97a4d701..23452e08 100644 --- a/c64/kernal/cint_real.s +++ b/c64/kernal/cint_real.s @@ -79,17 +79,17 @@ cint_brk: // entry for BRK and STOP+RESTORE - XXX, where should it start? // But require key to be held for ~1/3sec before // repeating (Compute's Mapping the 64 p58) ldx #22-2 // Fudge factor to match speed - stx key_first_repeat_delay + stx DELAY // Set current colour for text (Compute's Mapping the 64 p215) ldx #$01 // default is light blue ($0E), but we use a different one - stx text_colour + stx COLOR // Set maximum keyboard buffer size (Compute's Mapping the 64 p215) ldx #10 - stx key_buffer_size - // Put non-zero value in enable_case_switch - stx enable_case_switch + stx XMAX + // Put non-zero value in MODE to enable case switch + stx MODE // Set default I/O devices (see SCINIT description at http://sta.c64.org/cbm64krnfunc.html) jsr clrchn_reset diff --git a/c64/kernal/e544.clear_screen.s b/c64/kernal/e544.clear_screen.s index d0e0e639..e699f2ec 100644 --- a/c64/kernal/e544.clear_screen.s +++ b/c64/kernal/e544.clear_screen.s @@ -47,7 +47,7 @@ clearscreen_l2: // Clear colour RAM // (Compute's Mapping the 64 p216) - lda text_colour + lda COLOR clearscreen_l3: sta $d800,y sta $d900,y diff --git a/c64/kernal/f13e.getin.s b/c64/kernal/f13e.getin.s index 485535b0..c5f6b713 100644 --- a/c64/kernal/f13e.getin.s +++ b/c64/kernal/f13e.getin.s @@ -22,7 +22,7 @@ GETIN: rts !: - lda keyboard_buffer + lda KEYD pha jsr pop_keyboard_buffer diff --git a/c64/kernal/fda3.ioinit.s b/c64/kernal/fda3.ioinit.s index bdffec29..00fbf343 100644 --- a/c64/kernal/fda3.ioinit.s +++ b/c64/kernal/fda3.ioinit.s @@ -53,15 +53,15 @@ IOINIT: #endif // CONFIG_SID_D4XX || CONFIG_SID_D5XX #if CONFIG_SID_2ND - lda SID_SIGVOL - SID_BASE + CONFIG_SID_2ND_ADDRESS + lda SID_SIGVOL - __SID_BASE + CONFIG_SID_2ND_ADDRESS and #$F0 - sta SID_SIGVOL - SID_BASE + CONFIG_SID_2ND_ADDRESS + sta SID_SIGVOL - __SID_BASE + CONFIG_SID_2ND_ADDRESS #endif // CONFIG_SID_2ND #if CONFIG_SID_3RD - lda SID_SIGVOL - SID_BASE + CONFIG_SID_3RD_ADDRESS + lda SID_SIGVOL - __SID_BASE + CONFIG_SID_3RD_ADDRESS and #$F0 - sta SID_SIGVOL - SID_BASE + CONFIG_SID_3RD_ADDRESS + sta SID_SIGVOL - __SID_BASE + CONFIG_SID_3RD_ADDRESS #endif // CONFIG_SID_3RD // Initialize CIAs diff --git a/c64/kernal/scnkey.s b/c64/kernal/scnkey.s index 6bf96d90..31a587a4 100644 --- a/c64/kernal/scnkey.s +++ b/c64/kernal/scnkey.s @@ -74,9 +74,9 @@ SCNKEY: sta BufferQuantity // Decrement key repeat timeout if non-zero - ldx key_repeat_counter + ldx KOUNT beq sk_start - dec key_repeat_counter + dec KOUNT sk_start: // Call main keyboard scanning routine @@ -110,7 +110,7 @@ accept_key: // Convert matrix position to key code // XXX - Add offset of $40, $80 or $C0 if shift, CONTROL or C= are held down pha - lda key_bucky_state + lda SHFLAG and #$7 tax pla @@ -123,9 +123,9 @@ accept_key: // Stash key into keyboard buffer ldx keys_in_key_buffer - cpx key_buffer_size + cpx XMAX beq sk_nokey - sta keyboard_buffer,x + sta KEYD,x inc keys_in_key_buffer sk_nokey: @@ -204,10 +204,10 @@ ReturnNoKeys: NoActivityDetected: // So cancel all bucky keys - lda key_bucky_state - sta key_last_bucky_state + lda SHFLAG + sta LSTSHF lda #$00 - sta key_bucky_state + sta SHFLAG jmp ReturnNoKeys @@ -239,7 +239,7 @@ JoystickActivity: // Clear bucky key status lda #$00 - sta key_bucky_state + sta SHFLAG lda $dc01 and #$03 @@ -254,7 +254,7 @@ JoystickActivity: // Up // Mark shift as pressed ldx #$01 - stx key_bucky_state + stx SHFLAG ldx #$07 // UP/DOWN jsr KeyFound !: @@ -278,7 +278,7 @@ JoystickActivity: cmp #$08 bne !+ ldx #$01 - stx key_bucky_state + stx SHFLAG ldx #$02 jsr KeyFound // LEFT/RIGHT !: @@ -332,20 +332,20 @@ next_row: // Store de-bounce data for bucky keys // (Compute's Mapping the 64, p58-59) - lda key_bucky_state - sta key_last_bucky_state + lda SHFLAG + sta LSTSHF // Build bucky state lda #$00 - sta key_bucky_state + sta SHFLAG lda ScanResult+6 eor #%10000000 and #%10000000 // Left shift rol rol and #$01 - ora key_bucky_state - sta key_bucky_state + ora SHFLAG + sta SHFLAG // Right shift lda ScanResult+1 @@ -355,15 +355,15 @@ next_row: lsr lsr and #$01 - ora key_bucky_state - sta key_bucky_state + ora SHFLAG + sta SHFLAG // Control lda ScanResult+0 eor #$04 and #$04 - ora key_bucky_state - sta key_bucky_state + ora SHFLAG + sta SHFLAG // Vendor key lda ScanResult+0 @@ -373,17 +373,17 @@ next_row: lsr lsr and #$02 - ora key_bucky_state - sta key_bucky_state + ora SHFLAG + sta SHFLAG // Chick for shift + Vendor cmp #$03 bne no_case_toggle - lda key_last_bucky_state + lda LSTSHF cmp #$03 beq no_case_toggle - lda enable_case_switch + lda MODE beq no_case_toggle lda $D018 @@ -509,15 +509,15 @@ KeyHeld: // Different key held sta last_key_matrix_position pha - lda key_first_repeat_delay - sta key_repeat_counter + lda DELAY + sta KOUNT pla BuckyHeld: jmp ConsiderNextKey SameKeyHeld: pha - lda key_repeat_counter + lda KOUNT bmi KeyCanRepeat bne KeyRepeatWait // Count down ended, so repeat key now @@ -526,7 +526,7 @@ KeyCanRepeat: // (Compute's Mapping the 64 p58) pha lda #6-2 // Fudge factor to match speed - sta key_repeat_counter + sta KOUNT pla pla