From d5ed809dc71145038f8d1428dc0c42d89b33a234 Mon Sep 17 00:00:00 2001 From: Dennis Ranke Date: Wed, 10 Apr 2024 00:03:54 +0200 Subject: [PATCH] minimal text scale docs + reset on cls() --- platform/bin/platform.uw8 | Bin 4133 -> 4127 bytes platform/src/platform.cwa | 1 + site/content/docs.md | 14 +++++++++++--- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/platform/bin/platform.uw8 b/platform/bin/platform.uw8 index 69d78ee97fba3746d5470db72584040c209909e8..e8a9a3a2f888092c446cc8c89200836ac0b7c738 100644 GIT binary patch literal 4127 zcmV+)5a90uA>YjH_`Rg$t=*mhYZsb%Iy*}mHynXDs!At_2xbJu$%4>mO4*kMPRvo# zAWRiG+#;E&LRF1?^sB&)Jxl{`^Gt&v9RAd5(y@)p3gi)6T;cDI8NV&-FVYGtE*<`- zg;F_N?4n{KTsccGUipm-KW&Z8JRl*zcf5doxSuu!uZy=?-zL^GwAZVh=%#IkhO@~ZX-Vd-11H=^Rc6XmpEYuqNSC+tAoa? zDY~Y4Ur+!%l@_WZk5u}6ssPA{-?G3j`mG!&yd-Tw$Sknw-%o$E%dM>BjMGOwu1F z>EZ`P#};Onzu~k#p{vJh13P1Xi{Aj;H&DvFzq4PP@@Spw4&df$ZNeOR>sH#UTQUVI z#z>Ota4;^lIDENwSiM!-6-9Ika1OzOT&UTE3aY$*cQ*x@CsC1+7I zz1m`S(=)$YupBCV^QnyuJ?blo)^7u;8=a(9*(Pbtd{5Xo+ra*NB3AQZhSm~h8DIDG zSwshzac?16Ak#}M2hG53Jc`w}3|agI{LYO3Pr3`b2ZvGP0k-f(`rb5J9jE^I z-i0VrDg~ow|BSIZ92Uo_?&VWka{B){klUr$gyl%=0Ea8{MXv6}^ ziH|rU$?nwP67uq}-;qaEMVAfr%TSy&T8atz+((}YF_d6mc+s6%jWZ`CUfd`zuo#Ay z5V@QHMdFcI1i=mTbaj9R?FsIuqpCuA-d)9lv+}# zMR78lyOuTUah^~)wKJvmNqpB6N|;QKd%Lag`EUANe`ywmLQNsk@4b28>4n?n6FBQ2|fqf()lk|)%P@tE#MhOaWTq6!<^(|O>k z6?oM!Bz?X40vjVD{j;6C*!pkkw2CzU%N9hZNgM4Hnm6d7N4`QD{_2t+AIqAVnAQ_F z5kcgy{pKTk&<1?PoC=uZ3GSxB%-HykxAK>4#m{7cEJdqJ7;G7N28^E0CSr+%yZm7T zQ)VdnyMcaCV0;+}Rc9HU-_2tZ&I#H3A8#q7vq?(}&|xCrqbu~o+syT^vatSnJ?(|= zkjKHS+NInWA@hme$*7|y+-5S{nCiCo3lrD`6g0%ae^|`HehuFARPh~X z<%Y$imu30yqm+5TXB;S*bjHA>36t)J>I&rKhe+fr;o_U;tz5ik>5obd+1f(5h#C&f zEBok!!PE8?2@sDW*(gu=IA5;Kw0%>K#(8So7fJsGM|Dm#1A(M1Qga$ z=Vm4v_;Bm5IKt_YLX1RBR1Soshh4e8sX#=A21$xcPBm8`e*nj8Y=!TZD&$$k1u=-O zk49HhXqMT9hF=R&R}fqr zUd+ZrCpT?VXPB6xWy!FZO|HQFi<6f>3w8>X)udWicM??ih8+6m2LoPA_z$SvCYFGF zHyDV-R>1^G@&SpDntD%;D7^Q@Vz2X0)i)S2-+cEf8xLpAMKB8o`!oCRBCvxg6RFm# zFGQ)4G;t^OO#!IM&ZI?eT#2N#yZO(b{U$qSnO=@1pDQME#J=!0gi72wQfZBN4cZ2U zE!@|fTZdqxP)ijO=;x)Gvf~ePNV5K7ZSG~#u5hB8JcUWQvlU+xG?tT;#WlGd6V(6B|Qut!+Av5AQZSyRI zGLjQ|kA!S;8PCQJ!p4CuoiO@PgbbtfKntK~G2o{#8Tk6d9loS`voG-_T$lBqg}6(c zNk||5rT=(}CGE014ETI<7ac53ZBKDi*dCc%<{*HWIb&8QvN*x_baYfx*nDO*=L90J zi2ytM)VW#{TH3hmxbjB)?}8iIW5aj)#tHxMuwM=q*bCY@HyI?kkJeEYJe;x5xi2ZZ zE%08koz$rc_~vwW6e~P&6?L~lggD2E@%pv108W6Be(B?M=>X+r&0X;E9boOex2iIA_|jK>haXOMxH^TE zf)Kj5^pS`bC{Vsk>#ZS3%T(0A*N5YX#dsg;cpGsi@s{mWvPg2pmHEviQ?Q@% z5VWJ{)KG$hF>`9X<6k|EQ>~X1i2E)SpWf0a>YbMmJq^E%$bxrOWTtX?@yZC-C{^{@ z9v?B_tpgZREID`NOHB7#l*9HFB!G>bTU`=#>7UcmYhAk1*^?N6&IS1Nf1t<{({cpj z?W-)ZjW`SWKQSD^A21jE*C29Arq~0r=0Y{+tr@tFsB~w}mT(_qET4 zoD8sU4|J+|g1<4tSwo2;H5vH{i0o3(RF2GL77SL$uV%q(zdbIjd+#!3&5PX<&|(lX z7E1KuKuW<+B=qnfh(+Q@?y# zt0n5W9?^dP_?^zEal@V|Ne1ZP2Ya{BNN&)coMQ5J-TCVB`!pEpiSAdOwEmQB1I2 z8RaNW19+(1Ln?3W70y3yRbC0yLWV2LL$BX)xb#YMX!q7^M+h0ypV}T>`)C)h)87^Y zrB24dNF(ptm7WEf7$k_9#kjn!lD_-jMiL@dNi`2m`{|P7`$k`=|9GuxHAXZQzfD#d z$BnCsPk=vXwY(uTe}i* zU@L8RL+B(&U$ct@WMvCCpb$02xSRVa!}0{g1Zo7-tm0Y4oq;+kFR;_NzI!6k4M+ksf#h&?Y@>ize9$zmq2te2m9%c0XPhEJ1|z{Yji+(Wy(aY z=Qn^S6>tz z#}Rz%d{<}va$Oe_LIH9x_8Pw&p{+|N*fE&1n)mHLp*-*unT7`O6|nvahraLohu_JX z%am_y7>F?k$pBusauI9xBcE9Bq^Qx1u+NQg9$h<e3-PQ_Nu5lll z|KiQb{SN-ypd7)C<<0V^YX{>zlXSN)uHBqiCg(uvRLK-6LWO6qi4QkUva~b>viWP|2ny)CG~24jnEEw+ z7Je7~hRA@hG7`7_ceKo!EBJSq6FNlXw>d8 zWdc=H-$6@qw%gengHOa^r8ua13}g6dDM#(SjxN<_Q9yOU?w1`JD6b%%Gn!op8>^^g zk~oH=n4%&^%ouAopwZyrg7d}j)WN1N@Sw%LiDMSM+4kzw4=Z8x$}s<#B}LHt?>Z3= zY$nA@To3TS>yOuSd}^EG6zb#SnGfV_K`P=$THN&sWxdg&T}NJrE7ejLh#qc)E&<19 zfv`A|TuMJn=x1-0i}eP5JwE0$jdg|FruS|Wh3u_+<;ugG)j`uVMG$3}A4-|oTTCOs ziln!O*i@qU4P=b=X6A)<8EYOdY&P51ABX`{yIQWMHKov5wa0GBvkqeLa@Es5K@y%O zF5ht;(DR|t1uF=^+}zU(MirQ@(V15sb(O+` z{l_9Q)e{ukFm@f~gIZ1l`C>y@(WR@s1D+~@`lezNVz@gz4)zp!;CFxL%o>rt+tt-; zX@If9m9CA za`%dr%oqyngN9VcfrQArtBJPf?6Q}`0@a3TpMxW;$#WAOd2^^BsvKf5$-qYQ#qwcM zv;DH!nt6|WXQfdTDu5rG6`<44u%9IItp<>H^76uX#yN5c zgJ?_iq>^K*(zTEDD#hTIOK|+#Lbj$n(=hd&vs`zS;bY@^C^`tfejNlr-u($t-HzLs zjrB2;L;?$2ok;93w_0?cv&kPFAo$f+A zCa|T1shw#s^`=;6$kc*XeL?njmTS1~1+PVVt)ZzaWIofVXz*uMnB4A$(}a=xgp^?3 zNe3pWUR8(`>ib(HT+Kg%)02o@9zZ1{;DVJ$k0~9#RY$qxN*;o;%ld&2Etjzv#4xu0# zCzp26am_}EnCmzRT)^8HnC11{C~l%g6XA(1oIGuOc=WU`9?uaZm@s%98Qn5#&OFQJc-Jnoe>iF+%prKD+cl;;vSGl&-bVbIiN%?s)B|6C`Dy4c4^+bYaZwE6 z9M(1lFq){{n^c4we5UyJo`SM`Q0eGZW}vK&b9|r@BO)n|(B|vaeXhe(T3oA_{%Egr z!1iHtR+YlNGp{4&EUVwq+(svXVBDzm4KnlzBabd!;m^ZQ!bA}uyZWWPcu~VHMz~O(0D+zuHv^QSVlW=GaJh`#HZ5#@^J~tG3Qf_sThRJRlu;5_bBn5o?w;+kIIQ?? z9@7JtmfV9DXp^3pu3uLN`{G}qgP;7I!G*`?$Dt66g#D=YJ|)TZq@5VLyNGzX&E@6T zsVe5lRHykYPh@bP94tks)NxmXN{64rzdMsx1~pu+9;%YGkBkE!?!`zk+bhg76}b!| zyR4pzHN` z=5RD_@GH19P@CdNBM4g;roxK!DDTfD01^xaP*B77<59Ha(k#_3**jfknJzu0R#h==ZFwR$I6_e(SkosxE(KT)V9lddq-ZT`pq>UgU zeAQ~FpB7y`POToB=i2Su>M@ZU**#+D^E zMnvka>Sf4%UPVgI9`Q}UXtXRL*}OQ3rR%MMO2GzGCA#3{uirdEjYBiG46UdRHe)BQNQ8ckT?8XjuudS^ov>;NgjE!9m5_4skm%z4bi4P*ty!Y zRc`MBg1F>U=aBib-ul*L!s-YsUII#xc8rK zkT>^P{Sd5$c-JJSYHPXxV}~=rg*Ah^AndH{V(FsSyKM>}I&rf%dInqmXeKhY+Z05H zm5|U)jP8;1Lfo?h7anu6`CL7_Gyh3VC)6i`Q_$e3?K`!1%fsbD z#BsD>GLovlZ7Twq=WXeYV~zAbHCqJ)+YU1XmwEeWg;H$77#_hO@-|ly6{VNacBI9J z#RP{ke;&rhRM*v{Xy{NhBzVhjfG}sNG2!w_GgVdL;TqtPY0{j7>i8QxWRabCh4}N* zZm}AA1=9VfI4~A|k?-xoyaxaxc4In=R%^hoF3Zv?zK7;VCtNSgWTh%9wcwq4MSgFb z*1nGTWL2$%9k4rsc&2b^32{=fA3+!R5AaDwq@15lmx1z^sAUUQFR)#Bp6HKnI)Z zxZVB%zofmAWwvHlQTY;IjTUBygs79f@xs%Fejhx7-PjAGL5um#`ZCsQjYzCsJ1dinJ2V2;g=Z3?NCNl(OO2a6RY zv-;eeR>q)I{`AzU)n@j>I0uf2gc*?9yldCW7l?2MkE0eyMyt^w)xf z@i~*@smO!nF5t)?Ej|XscY=(GxQxSyw^nYKWHMNKn8dmno_c1OJ{vQjAi)tIAgE&R zJTD9$GghuuV+K+VlVJIiG7=NAha5w{z4rbFKG2$vBP|~5&h_}mGkU+sKNcyxA+Z)k z8Bk+lZzOXGdni#;64r{ap~7k~ov%w+SXUE^WP;k>EYD7)d?te4&RajYT%m=@X8J$t%(mvM1-JHRggu3_$>w8irb46bNhawm$l6>sM11#U^0g9bu@dJLgrb?ng?GC>m=P^_jTpor^FD z=(P+|a?y4oS`CeX01D1Dhm0Uu86`#)&pLcz4lBR~g>KH*wa<47*AEC+$XPK$(zCv( z>LSm`nY)u8KV0J{J2YaCwHxoT7|TFC#~v|=i8?PDN~?V#m*h_^UB&kB;?fS(>*3_f zt{>axG&Bux3di;qCS~56WqS+^M5Q}N;|N;6E*AHk$gFqAZ<#L5JdTO{%5EwG(2Z)RP^(R+@JG!BIkqv6?}Y zp^Bz@eKC7s@=zDe#i0EMnxnG}vIVYy9pVHV)t{J8*)Qeo!%gpy3ia4Bf#Z~@s;0<`PEdaczIGVP{&$8jE0Y0x)u!jbp-3qDxrxF8@X z3^2G3Khws66uDR?vCG7o*c^c z(w`CMHDVVM7`{$H?Ha*JH{F0%)rdftjA) zZTQJtgpjZbsUPp=)v#~ai<%T zEfICgU1rk)n!`C|9U+eA$tF-sy{xXrT;13^Y4|9 zDUs9T`ahtG8i211&kY}^#gQc{q_#vBM`YD(1;%rmX4^;bhz0y{>sv|cBcbDDF)%n*SHyfRG1P! zB&wYpoTz0<>#E42=X4tM0B5eCa<`29Log6Gx{O{$Wuwi}$?99?jdspboUVJ9AneH! zXxwiIgMRv&$S#VNkCztj-b+J_%@o*p#9XhsPpoFN<5F-r4-viF{gsv!9H0N88~$Py znQ7keHFs$RsiF^I4{XZ*&XYDED2(A8`>o{4V&c2GK>w|fjV=#|`iuRF0Q+$WSRhS; z6c()n79$)Ak2VsfX2nqqk(nM2 zN+67bI*GYVCB0FCT&VK}5lX0MD1nzr6kBlU?X{mlZlSeSHtD%>Itd$@rSKeM>p8KS zF6xS87H^^&-_V5q&FzH5^Fi%hSR>-!;OEu{c(LMQ>fZgF=ocWu!k|^D1K6ZXj0FxO zLYEMX&MefDWqLj3{!?EmO*@Zzqa@TX$D5E^P2q$LL7@4PTsV;sR&F^pJ!N?j1 zzlv0(0=t~${m~P1q?*!nvG{&FUKm41&e)$4R}G;zK#Q*=qR_D1$U&P5kd>%$B7RCn zqU;T9%_Br_pVlDH?wn?RwLT#~3r2WKG}-U{FD#r7)TJAeZ@12U2yTfs8f3A zL-~tO0EZ1;-L0YQr4PKXB!fY4hXZ#HskV;Iloq0%zsAW0G6a4^PZF5K3ox83mONON jl}Po=ZeH6l3!r`_s?+N8{`;)ugA!Er{`H&(%snPhKd2WJ diff --git a/platform/src/platform.cwa b/platform/src/platform.cwa index 73bb3dd..5f48b08 100644 --- a/platform/src/platform.cwa +++ b/platform/src/platform.cwa @@ -62,6 +62,7 @@ export fn cls(col: i32) { textCursorX = 0; textCursorY = 0; outputChannel = 0; + textScale = 1; memory.fill(120, col, 320*240); } diff --git a/site/content/docs.md b/site/content/docs.md index dae2ac1..5fa0e59 100644 --- a/site/content/docs.md +++ b/site/content/docs.md @@ -238,6 +238,13 @@ When printing characters only the foreground pixels are set, the background is " Moving/printing past any border does not cause any special operation, the cursor just goes off-screen. +### Text scale + +An integer text scale factor in the range 1x-16x can be set with control char 30. An attempt to +set a scale outside that range will reset the scale to 1x. + +After startup and `cls` the scale is initialized to 1x. + ### Control chars Characters 0-31 are control characters and don't print by default. They take the next 0-2 following characters as parameters. @@ -262,7 +269,8 @@ Avoid the reserved control chars, they are currently NOPs but their behavior can | 15 | color | Set the text color | | 16-23 | - | Reserved | | 24 | - | Swap text/background colors | -| 25-30 | - | Reserved | +| 25-29 | - | Reserved | +| 30 | scale | Set text scale (1-16) | | 31 | x, y | Set cursor position (*) | (*) In graphics mode, the x coordinate is doubled when using control char 31 to be able to cover the whole screen with one byte. @@ -271,7 +279,7 @@ Avoid the reserved control chars, they are currently NOPs but their behavior can Control code 6 switches all text output (except codes 4 and 5 to switch output back to the screen) to the console. Where exactly this ends up (if at all) is an implementation detail of the runtimes. The native dev-runtime writes the debug output to `stdout`, the web runtime to -the debug console using `console.log`. Both implementation buffer the output until they encounter a newline character (10) in the output stream. +the debug console using `console.log`. Both implementations buffer the output until they encounter a newline character (10) in the output stream. There may be future runtimes that ignore the debug output completely. @@ -626,4 +634,4 @@ Pressing F9 opens a download dialog with a screenshot. ## Devkit mode Append `#devkit` to the web runtime url in order to switch to devkit mode. In devkit mode, standard web assembly modules -are loaded bypassing the loader, removing all size restrictions. At the same time, the memory limit is increased to 1GB. \ No newline at end of file +are loaded bypassing the loader, removing all size restrictions. At the same time, the memory limit is increased to 1GB.