From 750db866587982989309765c5e37675dd2f507c8 Mon Sep 17 00:00:00 2001 From: Jeremy Penner Date: Sat, 7 Mar 2020 18:55:18 -0500 Subject: [PATCH] finish level 5, some Jorth improvements, add timed switches --- boot.jim | Bin 1380 -> 1360 bytes boot.jor | 10 ++--- defs.jim | Bin 2145 -> 2184 bytes defs.jor | 5 +++ end.jim | Bin 60 -> 60 bytes entity.jim | Bin 1696 -> 1664 bytes footer.jim | Bin 1717 -> 1683 bytes game.jim | Bin 4348 -> 4869 bytes game.jor | 109 +++++++++++++++++++++++++++++++++++---------------- input.jim | Bin 542 -> 532 bytes jiles.jim | Bin 1575 -> 1549 bytes job.jim | Bin 1149 -> 1113 bytes jopl.jim | Bin 5172 -> 0 bytes jorth.c | 6 +++ lev00001.jim | Bin 1048 -> 0 bytes lev00002.jim | Bin 1140 -> 0 bytes lev00003.jim | Bin 2358 -> 0 bytes lev00004.jim | Bin 674 -> 0 bytes lev00005.jim | Bin 411 -> 1485 bytes lev00005.jor | 83 ++++++++++++++++++++++++++++++++++++--- lev00005.map | Bin 264 -> 264 bytes map.jim | Bin 1130 -> 1112 bytes neuttowr.exe | Bin 115804 -> 117184 bytes neuttowr.prj | Bin 5721 -> 5750 bytes state.jim | Bin 277 -> 271 bytes testbed.c | 3 ++ timer.jim | Bin 440 -> 453 bytes timer.jor | 3 +- 28 files changed, 173 insertions(+), 46 deletions(-) delete mode 100755 jopl.jim delete mode 100755 lev00001.jim delete mode 100755 lev00002.jim delete mode 100755 lev00003.jim delete mode 100755 lev00004.jim diff --git a/boot.jim b/boot.jim index d6b484fba2529a661bad11734fc1848ae6f524a6..897643da48288fb39cc5d2c687759b2d1a0c57f6 100755 GIT binary patch literal 1360 zcmYjRU1%It6ux`sp82^m+b&`Vr369*b_+%=Twwp>}+g&#P#HA>k>})c+nHgqg zv$7=GiN=QznxHR*Q2G$xqg7!+kQ6NGL&2v~Xv#taCFnyyL_#UzIkQPumW6wMzVCeZ zerNao_>R`LzG0W(zLsKV*xx;j?cnJZJf+xgnqX6Qt%d<-`x+!c$d)q)+8HH=XIMUU z%{_%>$&Tq11Qev%Nu9IM$74Sm(oJ^hgUeU0jAbvMe`^eL*V(JO#N6BCW5sv##Vn>+ z>P`sd89g?3UXV1d#(zApMi zjvr`4sBslrq8Z!8mQEptJNgovw5Od;E{1y;H)fn#hvxtM5A`otVEcACdOl%Y98HK} zAA#lRazc~^nopvR8B470Mh>a($ffL{p|G0M;mIC$jv6r=!mf5I3oo+;r3CL7FM>k5bT*jHU(Dz7SMed2GhZ5uY?P3`aoeED8elremUi02ZMkuM_RG-4jfudr(yF){ogC98Sm%CO`5b@EBVrq~qsWJ|P! zMD;s|4Pg{G?ld-JVL$Z;VhR0B3g&vAkLegrn7}G_^>EaA{xfbRzN<-Z@RF(HN?{fK z#pVO8U+F{q1yd5lah=HV=+ac^!NPl{$~>2ZvD=veGeEfSg;A0q2@B?oN!)bGnU(K^>zcQfG70BNL{AD)rm$Rtmc)v2iL%xFE z9hkdX3|}K_Se~=HtVOjmJ;&EXQT>z`RU5yAUl&6Pox0Jwm{VhTYW8%M4LjB0x*vI! zazrYd;-Ojs*Vy=20XTwGpp7O6aN&f7`7}usa8Ax1r6v+lduVE i93SgMI>(oAAvVRTMJutTJ^|g@gBxZ6PNr!Gh~ht}qj28< literal 1380 zcmY*ZU1%It6ux`sp82_V79$!0qOfeMn>++d&<71#LN-cZ+bkQaWwDe^b~YW|%q%;z zSzKb`gswsn8bl-ziVrHj6e23JR+QF<*h0X*2nL%zC~Clmz9>?p>Nzv9i!2Ls&Ue1= zeD|I+^YqAd<5&A5R)#MP!RDQMo&7$@*>wZrAYkVPc8w!i1bc?Yaw9oJN7yYa&AsSR zAlYAW(4-*EOp~*qfsYwBXe##1>FHy~rt;Gh&rM!R5upSq@J;cMDDYil z7(K6GQFzAjuqXi{c+c#zIcLF5auIxnar=y0PlW#8W7~Y4HJyf23Ga5<6l8*WMDQb0 zD+`raDi7p=jHRqDYk8qdXGly_cF2m@FlKJ1{xn|I%J8@q!KkINx|?X{57-ly!CbHI zdd_mpZ)3iH=o5%8CorNH%?JX^WQX%JlQV^x<9MCt2D;W7dy=>n>n)2qzk`Y8@mMTE zu~lsRAvVrsX<%7)3E?1%@CGl#4_3u0!k$&&H&Y$)wN=%+g6_4deTANHTUYRud)9iK zy8^^W%T;9DD?8#O4sY8^qx;ZlHkwY@_M27IJz{>VZSYy`8&nvVW4s7YN%D1{yr*C5 zwHD_bS_0BMC8yEkQ901ZTi(l_-=>*efHthiqwE44$K#)tip~3r4V>RWyI*)ml;M5( zuq?u-a$P)ud-JiJjiXRTa26SNEygYHN5-Sb`Ch(_RacRNTOlQ@`<3db>or<5AqiVz zOKi)Y=n0ALZyXc^Vbk>%upke&QokXW*mtC0p6@p>9l-+%Skv36x~5i znYdtx;=HkV*T`tJSd&T;#r53K_36+A3?figI`cg;#@-z`qynTj{2+`IWMM_QinQse zsK#(2Ys!ib;x1MesKt)q>a>5im8<{vEAT32epcgpM$77Sgk-`+_(OH@U0Tx%JfofD z0e=&xcL&uOi{JxP4k}AdU%8|w4hno-l=M|z(jEMh!loG3=&2uViX}aQf7D>#-Kbj| zZ8bu_S_#Q%M|`K3A+Rs&JMf9x$IW}iPJGdTyY?7<3R37}(zg2peaWXK+JPao@^?HB z(D(78->@aaoeZ4jl2fC(4Cz~9jQ0efi;K1qyGY1w_{qjSw9l&uzOW;>W}7iuOTH0p ocqC2cPT8|~Y1wpvcX2Vc#D-0)aaq3sX?q{et0Eju(=L$2zkt$eZ~y=R diff --git a/boot.jor b/boot.jor index 003c392..c42d0c5 100755 --- a/boot.jor +++ b/boot.jor @@ -1,8 +1,8 @@ +0 const 0 +1 const 1 2 const cell : cells cell * ; -key ) const ')' - 10 const '\n' 13 const '\r' key const sp @@ -23,8 +23,8 @@ key const sp : again ' GOTO_ , , ; immediate : until ' BZ_ , , ; immediate -: ( begin key ')' = until ; immediate : lit ' LIT_ , , ; +: ( begin key [ key ) lit ] = until ; immediate : inline| ' INLINEDATA_ , here 0 , ; : |inline [ ' then , ] ; @@ -33,10 +33,8 @@ key const sp : :| inline| $DOCOLON , ; immediate : |; ' ret , |inline ; immediate -key " const '"' - : s" state if inline| else here then - begin key dup '"' != over 0 != and while b, repeat drop 0 b, + begin key dup [ key " lit ] != over 0 != and while b, repeat drop 0 b, state if |inline else dup here! then ; immediate : interpretword F_IMMEDIATE & state not or if execute else , then ; diff --git a/defs.jim b/defs.jim index ebeda2cd1c4827499e16315a79ccaf9f0b3be111..c9f7d4ccaa0e32c486d441cc4e16a8e692b01044 100755 GIT binary patch literal 2184 zcmZ8iZD<>H82|V3e{$)|T`u>+K&Z6)(2b2w&Bh!P>pJekgo0s{F~X2tlk0jk&1IK# zY2(W{*37NQ=y0H}lqpD^C}aw{`=U~GzJPTfRv1%Q7a5{d<`)s!2j}zLC38r~<$u5D z`9Cke=Oy1B*w}rUxyDP0e(6?EoRuqicdEkX6cY^ijrVdN`X$bWJeR;FzJ$Oo1k(Ab z5(0HzN8nimwnspN@0XVOuoNJiMR-RWZVPVmNF4A5R5>QaSkWO%3w$2m&r1SJKaH;q z^z?FUfd}~fJm$l@60mf+YLRLqv_CBQ@R<~6Mf<2#u@P>H3w$%GUPqhOXc>_jZ;JI; z7XFcLq4KX%2YUrk6Yk$%Lp>%7Y^)!FVX1*Z8E7>NgYu172A+`P^0inHrmv9N9#mUE zm1}tKNg3E!(XG(cI$~=WCh@cn755NW3vCf}L{6}&vh7t}FOPzC(H6cD4kk9pK9uD+ zv!_c=fkJ;%$ijPa02z2+P76Mql|{C@=oYO>l8y)$I|Eql@ZkfzRCOxjV?;w0Zp(8D z#M8otIC1xJj}KpBY?kL)Gbq=EVd1hEfDd=@TF$d0nh1Ue;bthhC-<;1r|6W&A1K(u zP2q2`FGdL%$vVrsc6lfa!vxOaiN4t0P7?-_0hnkz3T#I*!M0Z1s^#U0_&T3L+Fwkr zqnQkxz+WoN;p9m+=6WbMp}_;VmN21)za}h)&wMO^HN;5fgP-)76Y7%GhemQ1YdszH zX7JE82P3(M*XBcPB~<<*d76!4#uIIS1e-w5rbywFkM##9AAU~)n{n&{mFXrX-m7p- zyh!w~U>7wwfrCn&J=H=@*r`Oh?^R}*ZRN&Ml`^7e*AhM)LU_{k$bt!*P?utiqH`69 zq6?j^@G2}RbIK-Vr{Y6eAWv9VR&a_FMCK;N;5B{#2@RBazEim?oQv0Z7Jfv@+wly1 z-$IuW`%77bD%@52*dqGOz-^4)hYyt)n{9i6Kq;PKlV;TIONp-Q@xSg9QxlWPl4#^Rr-Gc$xLI5Z5ONIS8 zHIVeNnGAkNsB!9EgO~ASf)IAB!C%9hvDTSJ>?6zqt=b;Z0!drAf~HK^s*)iCqm?RqaU2;~h=x*hVaclhCH=aXp%eEjkfI4SXKwDg&y%5>|UiKZ9#|k4`i*UF@Jt z%G-$O6D^`&*K52-uY#@brm?H>3z~s{i>q2>_*E1eST$?#~1l5dOJdZAX*sFKp zrm=Dr=XkWB>wH%0Mc=Dh9Zk{cPdt5sCyL<>{WN<>`M-gnt+u378EGl|@U;$Xh@!<% zFKE#}TyHq5?dAT5jzoJigJru&Yp;M!VqoL!Fet#Ln1NkJFJBjZNEw~1YB`nvYi5n@ us5OFGKI}F)YZ-bJ4fybaAu`X-+0Jq5{)`xzr!{siyyhF^t|=~sOXXilJTe&o literal 2145 zcmZ8iZ)h837=LqlpCs*i$t8D(GOTnc!)Y(uvChar^W5Laa2;wKjrh6UL^$lRO*sR;YFB5W#%UsRaC=PsE;LX!7>&;Q^1 zJkJfSduY|?V$|H3TCcA3C4^tAxHC0zTq}@CzsPt4I+@&tb?P?ov8Ss`a+!ZX#NZgk5P-&=fQFYkUyqv@Hf~tu8Gk9zv(t-HA zY~%MrJfP215_!K~V%1jYf4dscMKvL+_TEy>23#N^=H(+${uy3NdwgIG$!IfPq*dt^ z82q8e#G9e+ojW(6siqY%wg$jeRH;^iGwG)cN3^qbv3{9m|V#c?&ql1Bz)RW*vKyuWT6vJgG?#Q00rb z9QIU8GW?v@6i;{X0*z`B3%j+$!Y-A^q0Du0&R0_b`GBWfFY47{=yIk}j<~@n$1vPw zS*IoKxHhbfY60aHj&ueZlTLMlX&u%~*^sY*+8?wzIja4tyqjpqBK--;>4Zfq9drp; zHoHJ|>d6j>1sc{Y`WyKNbV-YgDW?iwyHviSb=heC%q;NI{t)M>8R_5~vm`dGnRcU@ zGBKP3ac-R_Am{$rmPK#PmM3lQ{T7nrSvtXYpPdWoT7sHIi&@6IBl!uQB6Lo2Qg$|p zAfcPk3s2-)Yye&r)7gNE2x#GZHrp%8<92ys+I6bj14d?t((TDM*-D!Z;>%YW&uz_M z%OL2hN<(rto6^UrKuXxbrhEsM@y?lt?iwnASKDK9jEt?EhpPhZ2pyTo^08d6nD%T; z^ggG$7fM_Xmt3UT97k&5W6|E+oXjhH11ED)30&%d92aWkQe78OGw|XH=>1$ztYVkl zsm?wyl$+QHLg&uhrSib>wezr5!0bN=_9;p!(yiPA8s4Jc5%L)AMpH%8b`j6~3FvH& z1n(cdK3n--;cN;e1|MfGxL(p>vW_Pofo^$vrN&Lzl3Co&sJg`4bz% zwS6SXd7-2(>hn@Ml8kbQWMg_NvheN-6|93ucu4P!gnq45p6J-d?}|UtS9NVW@^kv@ zotPK&WNZ_c6*h9Wu0A7b>4d=*McvoJU|4hubunM7jbqrc4;akMPw>Ij_?wuUgB@;M zqaknVbs8}Sd2Slg(@nhT&gqfsGQ=jR=6 l?5~ipAu}mFyKFoAxOJ^$Aq>I0=#9{lazy! latest codepointer swap redefine ; + +: dbg" [ ' s" , ] :| type bl .s cr |; expile ; immediate + ( tasks ) : mailbox 2 cells + ; : task-ip task-user-size cells + ; diff --git a/end.jim b/end.jim index bb50e46a23e63f6b2dc06b3c47fd74adc179b9f5..60741491edb3e9455b31eba284be469e45eed561 100755 GIT binary patch literal 60 zcmX>R92>mC&MDY{AvU;6pqw>3I5jUtFE_D(VVAxOD?5V=D>p;7yqME31s7H}Add&g L(+2XA0~=WZ8BP!u literal 60 zcmcE1JR7KJzbVjw;cQ@+K!-;;>)pWAycE6M!~%x5`Yx>O3@)tP3_kK+PPY|YSlNI) M9w09s$ZKQ;06n@8(EtDd diff --git a/entity.jim b/entity.jim index caa7cdb48278c605eaf1e68ea240685068a5ec41..f0c5ecd3527bde269a4804abda3f2f6abb5e6602 100755 GIT binary patch literal 1664 zcmZ`(O>7%Q6n^&3cpW=VLWCosD&EtDFO*q{2aoY*>#!=verBA zd*6KX{$}r8)S}7f{x+P@ZsPLf);o3od)=g|(p zL81@sOEWzr2>*)hli7LnOAu2yKR4ys1WqYje17&-^invZL;^SLdbyZ(tg;EWhjNs_ zA5w?(-Yz|d6z)t5o=@5LDg5oyMTG>;)a(X2w+NFaV@$yBAe{8zpJE-tpZ67)exyX9 zP%hh!S#>ODT`0E64&}d9h5x(s3#AW=X6cx5IPf*@e4s?&t-9H$+0~+1htUy$Uy%3| zxjpnmiDN+j;1S;5v&{xFd0rGkVJ5kBh=qH;H9s5AG4a&l1ts}ArdXu6qiA_zLEp8+ zV!kWgsMRfpm+&u{NpbRG(536Fujeh==;@FaxkA5TVKy0SktfP1;XMA%)9+ZDv@!IL zStQ_vp7u)DBIj6~bjTe3yYzb&_1$ODt)l1_*+j-D`bW|K8;kP7m8}MrS7d%TkfXf3 zE{&)%nAdA{dyVI}Nj_sPJ*@`d4IBl4S8z3js{rJ1HG``l%;4%Gt|YjuQka>|P0yi4 zU>TLL6vq)})SJ>3`k~s!xj8!8lU>>(7X)?(u>;vd<^{5Y$ezr3E?pAHJ#|k$kn{8h zd~;?E)iJrWSL_zDH&Oj}+}9@aYMyG^p4>zPv^H51c8@cRNah5CX%~c5R$aQQhM-hf zv8q=w`A?Nc2pJmT5O3NhR`?Oy!Y8G5NJZ50C9T)@WU=8OX`6J>6(?`2UD1>s(UkKF zpXvoI3KjdhnLM7^me1uq-$v24Xkwmzg+X?3Kfh!{@Pf37Q@|vC;kL+|375X7Q7F|5 z6&_ZXdOw%m*D!pJHgN8veKPHjghPhL5@WimBqx#+!_N#2{;Y+8&mmq9Z?=Q5FCA)3 zVp0l+Bdm*C)o==qwSww&uuF3^tDhcpX^O;kmyY`ktdjT~cnni8cm`Z$TJMLlZLci1=v3ay%@saLmLiR*M|X>Tu17`pg@JvJic& z(_jGJxuu*KT2!X6lzU6k+Y>KnT4H_JXJ>*c`TwC)F zroUo{-iIf-Y%gO;T3E3dRB)(rbQnI6?qXdtW0SEt{3b7s@G*NHcwe3cey7r7ylY$7 G)c*j4in*-- literal 1696 zcmZ`(U1%It6h1R^Z#LP@CTVE`P07xknN4U(Hz`U{A#SYMpp9*I)kGm;b(5VfV>dft zf0}e-(Ro-ODwKT?d{|I?Swz%;AOuP)c~FGvlSmN@eGo}R5DE%DSk`my%%<@{hMBqN zJKsJ3_a;wRkwZuSj=$Hn6|2WM%)T_A&cL68?e9zpnQ{&d%>M9`t>HJHODw@LI_(uersXU4oGzfNzob5V$=#s*>g*li@sOdw%Qy-E$8a@^D+NYzHIFM5CUNy5t~7YU;4q&~oqYi%1~Wzo zuoU|d8pc&^iC2vV&P}_W;s746v2lsMD^UeH=xK?5BvC-L-S+sj#J)6$li~_w_|0HV zmYzp%m~7H7ehqy9)Y0EBXrsYS8ySAgB&>?qUx-ahxf%XBhS|jZbod6~lvc;-5E>oC7E8xG{-((x zU&^jhSUcQ*JpPS|;S*ZM^APC?@!oKESKJh_QOnR1CleP&cBmildd{hvB+*3oCnObT0Y|-q^_@8n)v=y*VP!*Yv30 IyB0S0UrCd$!2kdN diff --git a/footer.jim b/footer.jim index 64226a0ef6ef7f001914d062611025966162a0f8..6d2834d523a77e07eaf8bf953052e114902ac14c 100755 GIT binary patch literal 1683 zcmah}Uuaup6hGqKKo+Jt%`c72Lzh#Em|Ped!Q<+=B}~jM0Y;98>q;Jm0-(JD&{P@84IQ}f}s<3j%x<6JR2hr2h=QjfwDPVk|X2 zl^_{mgGZdmOmj;=+#)GGHj$ViNrWAek}W9!cet*VE(rHyes1aIYllC%vXw9deu+W$ z)Htv5Ip~rCkUmJ+0WV5^m`SD6nQ798VMIche*M%GZ=(|uQae=5#p;k@l`Na+=!6W} zb7-+nOk81Sr6`*vF5Z!XFmKsaTQ63*W>;KibCQE~NrXyOuhuFYO`;z>{Bz3VhH*K* z+LAoRuTw0ptIV5bp1f*@bNIWI#5`p29=+SZ!JnuPZc{SPRoxKxrO-Z5(f5))mU@|k zPo(g^&L~(#!*pv2fT!-3{ZKCPXaql|hOUuU65C-*lF0jIIRM47;Z?gDxkd)NV!zNJ z6A3N|Is8E84q055*Vt>aE;~3S3m~77iNiCnBJVL^Q1}LGu+QWrVVxZcED1l8_m8eu z7Jri)Y>==V?hwLdo#IB>7Cj!%72^2|+2f{KoHO}A0GchNO!a#ihABr54=I;rUS}4M zC~MTlAJj&rWG%G%d>{|@HP|p2=9LHXD}BF8M}?-iL9SaYPetUE4dzoeNh)?`ag;*r zuw!BtUvh)>DCjdvrfyS9{0f|w&JqO+_?^=Ke?Q<9aCR@zD7)OVk52CYU+($j3Q7nn z1?!pROX5-B-kI1;pM$@UzEI4Y2g}(M53~Yf zs+Fq;ZmW@|sHJD>M-sv)>nKikKcRly)pQu-euk&h@Ez?vU zs(hr04jvF(q4b^v&T0NY$#bb&DV;B5ll)$67U y1VMlj0kf8!cL4zqmg49uTUMEWZuU0hYMd{Ky99g<0-WZXa=3^ zIkdP$Ok8JY!~`25F7jdo=B%<^&J}I0(J%mO%oH80iXo`jIeWh1;Xxn2Oqtw3F3Vs0 zlE?XX6piaDbB0l%Xp@JscvsZ006N~M-v)5-XX=F8l#H{s8{&Z&-3KbUda^ySlR5a0 z*tD<9&sfF0;no-iPu(sB!7TA;1n*Hx8|0;7Bis~4@_tSVL($B8)vm-h$bk3PEmY}O zg!hFkUX-|tjw@1)4M_#b!AVH~>9j;Vo`zMa&Ox3MR9Tf>mM#cujD;@ewyU zsFhu6rBbpM{9bpYC%dYwpG;@v9qCBdAL3y_Lx6R1-(m$SBrmVCpu9;^wOPj#6l9wX zgmiqy4c8-MAYU?aWonDBLPk78G%VmZa`*pzfYZP^zCr_Sb)Q}IN%3UW)7Zm9ouN72a=+QcWA&t-h*tpO|``cw1Hy>=I2! zP`&ZK6629{45>A?9_O+CqF4_8qQoGdGrjcgrL4rcFRx) z@HI68X70`XD7=t?&|JqSiC*=4zW3AsZ%M;PkCqjYy-ga;)jZhO(Cd{nZKTQK-!9rf z%ap|pmkgQey{ZQNNl`l*mJ~huxx!N|6T45lb3Uiuph8orTgngJmfyR H>FMCVEvKh8 diff --git a/game.jim b/game.jim index 21d925e9e9a563e887e5fc8fbef34c0f2cd80f91..719de3dd7b407e561115d1f7b9534d48502a9aa7 100755 GIT binary patch literal 4869 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 literal 4348 zcmZWsdu&_P89#~d$)kxA^KdkkCUHX078B_`LsTf(u1Sl+nt>{QQB%kLTpQ??nO6M)vE0GoogpS z`{Ua8eBXDz_v_x*{if2<=TZJ)>vbL5%GqQhr|)6U+iq^?b=5I7tEcs}niqh6S1r>< zcB)A|&stj;+vZwBXQv?A!)9zB)jBM8$>5`|#;VCoVvm~Jkk=Es3TlZx=4xVP;ABpn zN~Lpx$+ulKRgu`XK-AAJ+pE}*aE!)0;edi;HT#*XwrapV6zw0rA7_c3HqZXppcm&l z_7TVfL&{)`Zrj)*(1aTb5V?b00XnNCGwDfaS8~1M+RbFn`+;=Ra}3)ur&Cx{r4m{8=Iz({d>yD!D!dNt|DDuaK8q zk~`FN3fKPZeiqjj-9`K^fgQo){F*x@&I*{l=5DSyJDJGt(x!x#*eeD|0*cre9&{k=CUc=3&us< z9C6ttirzsFz5U)slqJsz>7-O}5&e^(I|2F`&%8wUvN-RM+dM&ftmI^aZ}42l^2u>z zAO&Zogr@m#JTtai?|!<|;ID6m@ty`ID9qA<*>mt?cl$k_BBcJybFuA!L*bV_X5c8Z zx|%e&)9ZZ+y19iFE^kqqlT*<6cDzL$cDSu51+7s>t27TC6~4tw(3f1TLfKxGu*;F37Y_}4{e#@+I_Iq zl)m94{U-X)dHOmiC&^9pzu?#*pLY=DMt3Xpt`axsZ19@?2Bu}5BIomIU5I}eu#~m} zt5mfnjP2_kY2?gVWQ)O<`mHNyQWJsGOO;UDy1}i4g@hpQ@H!=4=R5{qdUv*RqG58Ffm{h{1Ej-%#~% zK`p3d*o^JCpTxf6Zzy+2r=CtuK(TE%ea~KUeNdhqSN$c|Wel`FRQnbG-M1Y1lj`iY_yQcIEgVdyfr{WKF&u2 zb24%E@L;#0P01)IAF#y&R+}cz=>uF{18}~DevQc!F6#!_yBjzne->{BFI@l$dmsG z^q_r7?1FtQ^j>IbZ%N&P`4X_RlscNu!boR%X>*RN37XT4RR?eUf9#}gZe)&NU1iPN z0&m>d9Ihry=Q;hZ3${v|@p$>pU~jX*?b3)Sl6!*k>ImULZKx>xAeR?{hf|h#EaF4-{1{+snXkN@pKMrn`9z~a*4>qHn=O?vnO3jIzgkNl* zl}-l@{z0%FePs-jekzdxd_V3`5Sv3ZF%14$kQx)=%QBB)3Z4|qt3vbmr!ipg8$wMh zLWr_M$f%&VgzDLjl$I-ujHsr!z80!s<>QQPEJT?z79uMrK>7%AfT^_75iZVO2));( z@E?Y@bQ%1KPy-vuB(f9Bz2aI^xcUSJq?aEI9c`Znmt!HT@GBODWva#YDrDmA)tJe^ zCUYvac{9e4^G2vB?S(`B61uU1qriZ{DiSj&L?(snAt0}-Sv5zt&WaGN4>z*$L^g%J zNy}=Zqd*)(oz}I}Xv~Do(H#jX{7AScU1=leP!gU(;SM)Z zl+_&NW=hj?6vwk*GVG?^dXsZ8NL%yKuod%D%Q-9RfvPCI8jkZ%!sk4joa>x}VS~RD zmIM`$S3_R@VR$oue+}c)Wp`Sq>p--Ir+F$uw?7Qi{gH^dUk_Oh%Crl_BZt;c^ZO%# zFYa<=HQiBOR~)q0I!4s-bT+ktZSBUSiR5TuE$s&!v;{Us$JZ65VW$VK8g~95VrqRFS|_z# zlLdqT;U({1?V%cKi#Atu)YXhSspV)uSA<>dp}53(A$kERwlNy#`KY-QDS(l-z0ta5 z#<=(fOrhG}8=U6vF6(VhrI(@Q70m7xTPo~-86}IZ_FU{442Pno#?#SSY|Du(ado more - entities each EVTICK entity>do more + ticking-objects @ if + ticking-objects @ links + each dup obj-entity EVTICK entity>do more + then + +( entities each EVTICK entity>do more party each EVTICK entity>do more Neut EVTICK entity>do ) @@ -210,6 +219,11 @@ defer reset-level userword r@ entity.dir @ sprite sprite-bob draw-sprite ; +0 const rubber-on? +: rubber rubber-on? not ' rubber-on? redefine ; +: {tileent} rubber-on? if {duck} else {blank} then ; +: visible-objects@ rubber-on? if objects else visible-objects then @ ; + var glitchlevel var quaking @@ -225,8 +239,8 @@ var quaking party each dup Jaye != if draw-entity else drop then more Jaye draw-entity player.state HASNEUT f@ if Neut draw-entity then - objects @ if - objects @ links each dup obj-entity draw-entity more + visible-objects@ if + visible-objects@ links each dup obj-entity draw-entity more then entities each draw-entity more @@ -239,15 +253,23 @@ var quaking var defining-objects-head var defining-objects-ptr -: objects: create here 0 , +: objects: create here 0 , 0 , 0 , 0 defining-objects-head ! defining-objects-ptr ! -does> @ objects ! ; +does> + dup @ objects ! + dup cell + @ ticking-objects ! + dup 2 cells + @ visible-objects ! ; + +: obj-link-head! ( index -- ) + cells defining-objects-ptr @ + defining-objects-head @ swap ! ; : link-object ( entity -- ) - here defining-objects-head @ , swap , - dup defining-objects-head ! - defining-objects-ptr @ ! ; + here defining-objects-head @ , swap , defining-objects-head ! + 0 obj-link-head! ; + +: obj-ticking! 1 obj-link-head! ; +: obj-visible! 2 obj-link-head! ; : entity>tile ( entity -- tile ) entity>pos world>tile tile ; : entity>tile? ( entity expected - b ) swap entity>tile b@ = ; @@ -259,16 +281,20 @@ does> @ objects ! ; : respondertile! ( tile -- ) responder entity>tile b! invalidate-map ; -var _dorubber -: rubber _dorubber @ not _dorubber ! ; -: {tileent} _dorubber @ if {duck} else {blank} then ; - : blankentity array here >r N ' {tileent} allotentity count ( e -- count ) entity.user cell + @ ; userword +: timer.start ( e -- p ) entity.user 2 cells + ; userword +: timer>donewaiting? ( e -- b ) + dup timer>count swap timer.start @ still-waiting? not ; userword + : create-object blankentity dup link-object ; : create-linked-object blankentity swap , dup link-object ; +: create-timed-object blankentity swap , swap , 0 , + dup link-object obj-ticking! ; + : listener! ( entity listener ) swap ! ; : handle-onoff ( ev on off -- ) @@ -288,7 +314,7 @@ var _dorubber : exitdoor create-linked-object :| dup door-listener entering-door? if - player.state HASGORD f@ not gord-present? and if + gord-follow? not gord-present? and if jaye say" I'm not leaving Gord behind." else responder entity.user @ queue-level @@ -304,14 +330,31 @@ var _dorubber linked-entity swap entity>do else drop then ; -: switch create-linked-object - :| dup EVTOUCH = isneut? and if move-player then - dup EVTOUCH = isrexx? not and if - responder EVTOG entity>do - isjaye? if wait-for-arrow-up then - then - dup SWITCH-ON SWITCH-OFF handle-onoff - SWITCH-ON handle-link |; listener! ; +: handle-switch-touch ( ev -- ) + dup EVTOUCH = isneut? and if move-player then + dup EVTOUCH = isrexx? not and if + responder EVTOG entity>do + isjaye? if wait-for-arrow-up then + then + dup SWITCH-ON SWITCH-OFF handle-onoff + SWITCH-ON handle-link ; + +: switch create-linked-object ' handle-switch-touch listener! ; + +: timedswitch create-timed-object + :| dup EVTICK = if SWITCH-ON responder>tile? if + drop responder timer>donewaiting? if + EVDEACT + else ret then + then then + dup EVTOUCH = over EVACT = or if SWITCH-ON responder>tile? if + dup EVTOUCH = isneut? and if move-player then + drop EVNOP + then then + dup handle-switch-touch + statechange? if SWITCH-ON responder>tile? if + ticks responder timer.start ! + then then |; listener! ; : computer-on? ( entity -- b ) COMP-ON entity>tile? ; @@ -339,7 +382,7 @@ var _dorubber SCAN-ON handle-link |; listener! ; : defrexx array here >r S ' {rexx} allotentity smUaA}+x$Ctz%8Sg%4`o|RKS$ia0ul7oe{l~suwa4MVG{Prf22Io8sopQ}p z>egpCp6t@^QJs|7Po4;A?2@0-9{YxQ&$Ra4G7c0X18o20eVS#XQJ*f5S@I_|OEmTm z-2&;cTmBNNp5s^zS1CJ=-DzR$kl#d0Y+htp05tYS{0@EfO%hEIO$yB~a^ky>=qS3J z@A|$o(1p=`@?DRO_|)^WcWmeR7R77gJ=3B~r^OJT_(jMK4u#yn6cf;Ntain7UAqDC z7{Hl`fLp8971OHNUZZMZ_%b#SaU8!8W3Z9m(pC8v0r>GB)!d zmBDQ!gc}XT^gDtVxQ`A{CtoxQgbJflpqwcdazrsiWfUP!fn>Cxlr_)C&M&l=H0IO^3mZ4uIgrCo-pDc_kHH=S=zhl>(b~8xz dY5QMl5VZy!XxGVg_#b7l9zRkM-e*_T{|~$ViQ51G diff --git a/jiles.jim b/jiles.jim index 681679a18b0672a7c0a2941635e67a12e681f457..c9785c60b66f3701899f7a3407f14e08f358b51c 100755 GIT binary patch literal 1549 zcmc&!-)mcS6hG^|rzu9(bZv5@wwNuTlrCNF&+WmM&0Xs%Y>jrUHn6eS+^pG>+;9_{ zET9<6hL#~g=zIu$*}&0}TZ1EqVA4cwE+D7uHdh?2<|_#o_|p6~aYmi`9@lKc65 zzUQ3p=X=ig=HB!Hf9!={tv%gg^+~)Na`SG^^(He3B4{96okepW^ka5&{U_>091y86|Wu7sz4SO8m;*Wvt0Q)OLuWXFlk}9}sZ>Wr?-f}^x5RSjK^ceirp&%| zJgN7H_39{fmiy3qw^lkiXQAj~oN9>Ex-8Js5gGPn$$ zCO7~!1}6yahszAUL$Dtj3?3&q3QY!Q2_Ay441}|Z^D{+alWcO&M{gMSYuai1BbSzOb9<1AuooUx2gI~hmz zF|EnjCuZ9> zrkyj`$`@vh=FKWxbauS`TFnXL#6GD z(3O_psPvc8qRQ9#%43t=u}x!0zQs9Mn?_J(+JSIhy~?$K#kfZNOU@&lA18jF^HIx2 zgfZ<7XRi@^MyL3QpCUnQYm4R2Qv4d%-nZJmZ6(T;Wow3ZwK4PJlz*I~IYLq8kI<8m zXG&lA-_Uo1b$qllFn*7g181mg5`VFx%1!=8AEp+uGAE(sJE5=<*?5ZMb6P(gTKv0y sZlRbvy<}p0{W-vBC5yzohiji&n?~0I7q4N&o-= literal 1575 zcmc&!-)mcS6hH0#p0*fS)2+#MuE9*FxVp^VUupNSvFSyv(3;sfwhSv>a@$?akLyh| zT|_hwfpweE$3YwLL9rqd6&Y?&X`kGf;)BSTV?GFqqCQkt5PXQ|d~aI%9~emP=kxiV z^ZB0h{hr)Idmjq*?HnB5)it3FYF&`a6mvx%V$oihAnI?>Fr3yxQ1X1Y?6`%jGfN== zuWH-Cccy)(bS6=7oUD_Ta$W1*kl}pT#tyio#Y7DkN%wr`b=RrLIQU;bpHqLbz1>t~ zQ&h#Oh=@0pG-mX9kwRBr6)~}-eM5ymq4&UJLGv73)6(kYzM2*hbGW3{Ft6VWS%0dM z@TPK3x$MZM0c`Apz&A^--|9`;!N%u+e--#u8C1U@rP`aq4{1l<=i;VO`;_?f*l7C} zqhm&s3;?dET1i~v{EV57r|jh!$=zegah1lkC(Flj5=(q<8V zwTt*(-vRmJYb7UBEc)3))V2h&sm}JU=M45t;YE5Xu%^^7ZS)3NUa`bE^q>siSP=ZJ z;k?lktk0h1g$vR5WSKSm#0a$$-B~9W+{Lo-3>D9(wnptO8wb?j91QYNP!wG^9 zz-5NV2=>D&!>0)DhOZeuPjCm^WcVb({qPgR;{+dvKTU+m)XWPWu~GOZV0MAnQRuR| zX`;QeB|jr;=(p}^S1haLQ@8PLs4ELJK>YlYPI$(;I&ga+jVG;18lhXpb;)L|ykwkl zuAMQ`k(U`w>q2xv%*!cWQ>r4!U!eRkJ%tTxUIZQ=lLsqJQoLP_NE(+d8(Xca{+47n zh;=|!|G?z6+ZNwCdweGO?~=2_vgDy;1zXm{k>jJ|PsgEwXjVl7$9vAG*W~)%#9hh9l5r~{SQGaxY2QihMH$mi{71?2l0Qs5Y;lEe zByB`;?38Sd*uT`vY1vDISgXZ;BNYFR)IKGx12(j7sohF0nh`p=XYWsi>Jl9!gzB~E z_I-EMzttb2?+?^)&*sI+c{(4yM8;`+bQslNbT-^c2gNpH^lktcRQa-O9B;FRz8+;g vcvBGiKi@$B!tG+R*%d8FUppM2i$_kE||$x4}t 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 +#include #include #include #include @@ -1072,6 +1073,10 @@ void f_taskusersize() { PUSHU(TASK_USER_SIZE); } +void f_rand() { + PUSHI(rand()); +} + void f_init(char *exe) { f_calc_imagemagic(exe); @@ -1202,6 +1207,7 @@ void f_init(char *exe) { CDEF("stacksize", f_stacksize); CDEF("rstacksize", f_rstacksize); CDEF("task-user-size", f_taskusersize); + CDEF("rand", f_rand); PCONST("$DOCREATE", f_docreate); PCONST("$DOVAR", f_dovar); PCONST("$DODEFERRED", f_dodeferred); diff --git a/lev00001.jim b/lev00001.jim deleted file mode 100755 index 40210bde303f62955ac0be2f6be18d3b2b81936e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1048 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 diff --git a/lev00004.jim b/lev00004.jim deleted file mode 100755 index fa97c8d868a70368cb7f7b6a52933c0dce6d9bac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 674 zcmYk2!D|yi6o+4v3_TR;qO^!m9ieKgO`F()2T|J+p~l!`-UJUJVA5o=*_vd-?$$K7 ztRPAbB1MGaL2n{ng7^pY;Kf5g@KA~hBH~G*C|Eq{yabDLd%thqH^1GBlXv9tOEvi@ z&=oJm03;zXx*ESOyCML^D2$D6CpNAIAP2hu@LB9oeD=S%1K-4Nu}ksnemoCPA&3SJ zqK?;fJaUaB^ICCN9Klm~6hnY&ozPP9=Xel0+CPhncn$}l5Dj~I$Al+FMy9l(Ks6pN zlcA%FWHEsj<_J)cKHy-0iEDTpn*^xJKTy};K0d|`4O~)v>8WzC1$*KdzQPv-NYw`h z)L|I6u#2w=P{%%q==vvc2fyM+4OU3?q4!-6;4QT92mZld1W45f5&a+b#E?8J4@eED zRUhQ^8=u6ujLHcDbNisBRhxK0#%0@R;mmS|t;!arSVeB4&lcn`lq|>f!lvyM!>;A& zMS!+(Z|R+Au+!rXTmt&#lXBuorKKFYuzxUAwBhvQ;y)CC9GPcA=cN zoT=W`LcYf9+UjP#vf>$jQ#DEFvl#O)r-mAAAze|oBKpitSMzoFJ`-aHA;vf diff --git a/lev00005.jim b/lev00005.jim index c912c693304a8cc25b7d915bbccba108f088714e..83f1e3dab6471d5200b001c74847b1e69a9b4006 100755 GIT binary patch literal 1485 zcmZuwUuauZ96s&6r|DZ!=Z<=&oX>+rjb8gbof=O=LhBdh{ zH!(|DAM!Aq6-u3hB95+1p~?mu4CcSBH0Z++q!T7gVMu)tG|GG!Q-)A~C%18X@Fo|| z`M%%zec%1gIXCE?*vE%IidOLy_0uM#q0z4O*P8hvy-v?L@6##Tj0zTVb@{b+wHYlV zUsHy@jKnif-=H#zq>dj4`m}y;zl3rKH7(Nj=@P|tVi1_eqk{3l(hunsx(@w}X8_(B z6a8LCH_>(a4Xp}TRDT||W!BIwx=n8j_}NFQ!>C68rgsJW+>o9qs|B?#fnCVY_n4f-p)&la8Aj&=7Xd0wu{hBSd+;?Dq0cZ6{}UzWd>EBFuAit@!oVlGuk&!xn!?rC@KJIo(LV@fQ-{r=G)y4NWo z#`mIpJZqR4yBaMz-*qJTkQCxVqJpRS9+ZcT_vB0q$QAk{d9|m4--1qc*hpCgz|Zg% znjxL?iQZGdu5u?z##se-TZ4wN+uo?JS4ES;V4 z6mz2bA~)Sd4+Xx)F)EnF7_HR2XxK($e>2%&I zc#Rw0n zY%&~-jA)TDGQvkkNkCPOgfz<3VM2$M(5|U+R6Up>=`1OvbD)zW)@(eNa+8EfrccHWKuA$V zL?n*Pvb^mm*5mpiwl+M}dm$>q*@+tQxROp=v|KK`i4j*6Rkg;)?NCsksB6@|6q`}? z6v+h1xK_*)B}+@Gd}PuPVZz_^nIhN5N(L*%D^!lginGL=1cG}FR(q>LJclW7-oO)noah+ni9$JDgj{-XNLN=aBS_l7WsHk(^ z2rVeH)Oo_eHR^_}{F`Q5Icc`Ut#4w~!Gdi1!$~ujm%L0ZvFh`%O@B(dr=&t6p3#z7 z%hvvj=l?=69$+v0SaI-*`XOWGH9M8qPi1zrg5616P>r8!QRz1cA#W8DyOLH}mA%nD z-6dSYG diff --git a/lev00005.jor b/lev00005.jor index 0b4b087..0c97f69 100755 --- a/lev00005.jor +++ b/lev00005.jor @@ -2,25 +2,96 @@ objects: O +lazy 60 over 19 9 timedswitch ts + 16 7 defrexx Rexx +9 3 defrexx Rexx2 + +13 6 door d1 +10 9 door d2 +5 6 door d3 >lazy! +10 2 door d4 +end.jor 5 12 exitdoor dx + +lazy dup 11 3 computer c1 +' c1 7 11 computer c2 >lazy! +lazy dup 7 5 computer c3 +' c3 2 11 computer c4 >lazy! + +' d2 10 10 scanner s1 +' dx 4 12 scanner sx + +' d4 7 1 switch b1 +' d1 19 3 switch b2 :noname 0 MAXTILE for i tileflags + b@ RUBBLE & if i b, then next ; array rubbletiles execute here rubbletiles - 1 - const MAXRUBBLE -: randomrubble ticks MAXRUBBLE % rubbletiles + b@ ; +: randomrubble rand MAXRUBBLE % rubbletiles + b@ ; : rexx-pos ( -- x y ) Rexx entity>pos world>tile ; : rexx-dest ( -- x y ) rexx-pos Rexx entity.dir @ dir>pos +pos ; -: can-drop-rubble? ( -- b ) rexx-pos tile b@ CARPET = ; +: can-drop-rubble? ( -- b ) + rexx-pos tile b@ CARPET = + rexx-dest tile b@ CARPET = and ; + : not-picking-up? ( -- b ) rexx-dest RUBBLE mapflag? not ; : touch ( x y -- b ) - drop drop - not-picking-up? can-drop-rubble? and isrexx? and if - randomrubble rexx-pos tile b! invalidate-map - then 0 ; + drop 13 <= isrexx? and posessed-rexx @ Rexx = and if + 3 glitchlevel ! + rexx say" PaRiTy ErrRor!!" + 0 glitchlevel ! + 1 + else + not-picking-up? can-drop-rubble? and isrexx? and if + randomrubble rexx-pos tile b! invalidate-map + then 0 + then ; + +var first-rexx-touch +Rexx :noname + dup EVTOUCH = isneut? and first-rexx-touch @ not and if + 1 first-rexx-touch ! + rexx say" bOSssS..." + rexx say" i doN'T fEEl so\gooOO00dddDdDd..." + then chain-listener ; + +var first-rexx2-touch +Rexx2 :noname + dup EVTOUCH = isneut? and first-rexx2-touch @ not and if + 1 first-rexx2-touch ! + neut say" REXX UNIT\PERFORM FULL DIAGNOSTIC SCAN" + rexx say" I'm in tip-top shape, boss!" + neut say" ACTIVATING RELIEF SUBROUTINE" + then chain-listener ; + +: mr ( dir -- ) Rexx entity.dir ! Rexx move-entity ; + +d2 :noname + dup entering-door? + isjaye? and + gord-follow? not and + Rexx entity>pos drop 0 > and + if + move-player + W mr + rexx say" daaAiisSyyy, daAAIIsYY..." hide-footer + W mr + W mr + rexx say" gIVe mE YOur AnSwerR\doOO0OO0o0oooOO..." hide-footer + N mr + N mr + rexx say" uh oh" hide-footer + Rexx entity>pos world>tile -1 -1 +pos + dup 3 + for dup over 3 + i >rot for i over ( x y ) + tile randomrubble swap b! invalidate-map 1 sleep + next drop next drop + -100 -100 Rexx entity.pos! + drop EVNOP + then chain-listener ; :noname O diff --git a/lev00005.map b/lev00005.map index 645c44b517aacd428841d32383efb6e8be93611d..3720bf19ce0a3642d9b178ce1cc58716c907f9ac 100755 GIT binary patch literal 264 zcmYjL2@b;`3=1~PKoxYOsQv#>mq5p6;l#>ix)c!!#)+j0fP&5Fc~Hh+(n*(eeS%V%JHyjZ~u$q`RCi$ TTtKYWjQriRU7&w`hxv&QVtfR_ literal 264 zcmWe(;ALQ7U<6_afU|g+n3&Ko0~0e8AQ+4YCR~z%7tVw+II-zP5(8QW0SLVit>Vng YObB%_<8X+znh1v7VQ?b#V8)C`$+NNRW>o&Vr}B4+FCD$W@8suQ{32Mp@;Q> zkBao*$>>oGlTeA zyQw9i?s|^zc+PkodQ^bd+FEeWOqD&iQm#A3>GC98Uq7ebRs;4`Q{Z&%obOE6&U%%} znopI7s-|Au8nC}wqE+K^geUZVLO19b>W32Z*e9mNSv4&NY^NTF5o_?El^x8(?@j@- z1PtYm3`al=O1cF0k!-7uP|*{iQq?P;^us}80>l6igjkHeC;(Cr^K}^xS);=Pp>7v6 zNG505#r!a}5#cel$rTP2jl%x@1Ry*oehV0)oWWb2L9X8#uql(_i=Kjgg@SG51`DP9 zKEe|4y^R%$`JoU?!aqF;rICT*Tz@2-f(|3G0&(dzu)~N$DQ68ul#Q^*kRyN-I^h5j z?EL7cQ7rIQT`)obEr7pyFIi|QyY&nPdRolj2QqQOSVNwSpW;h$DsG)9pS4arxaCFX z7<*(a%e~^!Fn&gHT3nJhcRbKz9iO!xeAoS>dyIWDIDebIThHQ8?Mt`NGsb=!e06r% ziZdH{ja_5qc)+e0DHyL!p6Bg+=OlGoKwF7*SW1&N%lF#A#g*tjigLjI7)jx*N2rQEVx;GOIT5smZZE@u_Kr`8TDF@W@uqk#=9E8FIK6tI;BLUVYkBW&y_) z?oZ2x6PX({3)kk~BJ(Kk4Rii&KYvfA_569V;HMU_H)dS$%TsM%yQBtwWpgy9E!onX z$`>*vF)3h|GI7DHl`D}8ocNBpk}KH?CtZ+ktDN?PXjRwqBHEJ7HCBgC_3?OCZDLx? Mt_-yt4aEog57o>lPyhe` literal 1130 zcmYjPPiPZ)6n>L=ze$>Q)QX*=HW=_y$^6M-_29wXG>O_;laRJp8`u(>iOxDP#fcR| zFC&QmE(O6$5HBjYm$F_gD=Y+0io0I+whDp=FXCPnL<+0#O(xaL@ZR_P=6m1od%q(G z_74v4j;4Rc52@c$acDWN?b)uq)PjTt@FBGgobxMH*Qr%ow$Z3A!_6HHZB_Hdmy`;P z=0(rG)V$!nUxJbIJ>gg3eAESGk7p*!)J5Tc zeGqcRV%f+}7iaQ0!UkZ-2(e-*UkI=`B#k)CoSK}?9uI{F;Rj=23u5UZIA+9PCYvdQ zlwEMzh=u?YM&K7Bl=JiRMybf7MxjjrEr9R*BSko+&gmB3*ORh^uPDS@#t>z)bdHx~ z*PIqnHd7;L?Y%p)AYK_cA;GwOIOyI4T~f{ofP=#?^u+LHDuKU`{WG>8z8L&hPM^~! zaHsx!>|eqXCNHoO3}j{pZ-^VB5c9>abp55~@?{?C*=K0xI#$%g@RZu6{qlA@xUp3| zL^ zRsL-bNZwhe-eSNaK$ zDjj?+8f3Jrl$D0Yt65Qm;)^F%OmdsmT9^bAUkXQYl#0rvE6S?Iw6{d7JFXkj*fOhp X+saRAt{1f~Cgq7OTgi0K7F+rXXJ8{_ diff --git a/neuttowr.exe b/neuttowr.exe index c395399f54c20fce9701766206e91569137dd4ad..445aa394012df7f8d9495d6ea52e71710aa0bc26 100755 GIT binary patch delta 37608 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 ?Y47s%2XPeu&WN*+~#KM%T7g>FIjfg`-hTz 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

>GnjsYkjr?h&=f8MQsiYrYc}L_z3eH& ztWY(RIS?F-&ke0TGgZcNk#eb%@7sxVAu5_fW2J2JN%hrS2IRH+cF28aC(-!cDmG7NG&8)`JRm#^ zaopVu#-9(D4pTrjgm*?f`_JO))^O=O2*`zS2ND>c&DG1{_Qx=D7|nsk_xfatCY|r} zWLiKezFt!(vOyYmzM9>xH?Shr_tF%~?VZlhCWfXotlg~Yh6>K$OM_((ft8 zGa0XDCjy#6Pl846=P{FO4U?Z?l&w$l#MzQAJb^Px?5!)ifUP z#5tu&XPAAHswg+f!hM}$!^$R#C+7E>EP_Oi`WYi9n!NG^=YO(|T;DxzMtQ#MsZ17; z?^92s>ZAf55DMn*zANu8-xvtvX-`;}S!~ zqgGOqQb3|wXQ0w|mZKShUv#D$Xf0iC`76(^lUmou(BQ~3Teq!0jCBj+vs<^SKRk$U zl4oKB&(y~FYw}cZjGMpx6()up&3Z0ZugN3)m{j~EmoD>s4`KXQd6-}4!pl@bdW_)) z4mSKF@BG-nYu1H+-O0FB!6D^AsZs>K7sZUvP?$JOm)XHtpUX?sReUTZIiWa$>3p0@ z8UIwVKiHD<_mx__%>Lz!&s3^0TXd;>RZazn8UgxrcivK8&ALS!fGyjU?{WTN^yXDzg3o(n$1)fdGn_8-i8MZ){^ANKJ+&y__9iChMxho-4tsg#^F zjc}Wfu_VJZ%*DnN9meP|g<^ z@1Jy%LqEySjxjH3DhKd|_z5!J4(uhB#cR+_>m-i z5Bdf>jms#fA*|1nI?c$ZK|H{G){kXu=SP|lKfA^!89olR4D6vPnI#y`_#*b1o+;fX z15%UuA&m|R_cLvr&pb?{cmtNQk9Sg5?d@t|c0gawh9%jxmzN{iFJT%FAcgtXWJ}a4 z0m;!v`IS|STl9f5Tmqiug*Zth5{@2vvtO5rwR#U`^1u=m$3}fAUJ4OjKOM(5ea;i7 zd%QX)$p&`%Lm!Gc+(43l^!+iHC$WjEA%s0+Zgt_yArzn;-OFV9;U#>(z`e zHY8wS5Py#s^cJzcjqwi+-rDctIYT@a^8h>8aEVv(mIikzjOkd;hiNC{VY~>pDu|~W zqp_OxU5p!zZ8$14aME=*4#oyP-V%vNUt@1n2k~P@4$fp;V)FRZ_&m1rB=$+ypVPde z_gFgTNY6rGP7h`g%CSC%F*#>Gc5{P+j8D&b`3W9w%ETTX;4tHjO{pA;$_k6kG#dLE zKf={QrT{t=#1EQ`ILwoNm+>Q}tj7;}ysJ%tf!}AtU#8lD4NM1hgd2RwxXoPpWMH4U zy|6B*wJ~$M?Tfjd~1bd_EU!}vi9)nQt`7@;;`aJdG`O!+TE{9 zg~JxOqh4mb$X45bS6g605|>DKudQ}QLv3<@<7;dfVe9myqs74nHyB^`lz(+_fNvS! z{?q{bY({_E?-@T}tG#pHwRQ00HyM9m3+y4@e&zwQ2WBb}j00Z$GXC zFM7Y^ReN!R4fojaAa5N9N)yw#F`ra^AOB3HVp;xI_=y|*!T6f|FK~-}{$%}PehhB& zi7Dw#3-nL?hZh9iv>q}(svxjOC8MukBnMs-zkM=IP{GikKW~4SBe2E)vLW0N`lO?# zL7Z7_(Bdh)jicP}!(*epLwbV<$Oy+Ox)Tz?ub+GgcP!@K0>c09iUYklx}Wi;&b-Gk zx;gn_N80}q`EXAszx4%Wp)*5bkwZA+%bc~>hL4;UgfQNK@fxS$u{$D)TpUFn!ta!P zD2oc7;601RAxtLYS4X~E7D+r@0Xb829t|09#<=%VQ4J!v)8<@>ES~<@2iuB2LNi$% ze*I%!tKtvPR7U*D$9Jug%qKphO3pBuT`0fWF-cX)Cr@yj%Y^nkq1KESx@!Grx*GX? z+A==d6(Q;V^AF2hffKMj8&NUSoMI%XtAt zl4Pm96xGRZ78@Qbu?Y!Z0jy2Tk** zlSn(q($&+KH!IAaQxZsXY0b$kf~gJm^4FN((>VD-N)HN`b>czmAVD^g2dj&}(tJHKT+Oeeoe#`k&27Xe@)ICb*XEF-13K)!Vw`L%n^ zdaCa$-oP|^zxir5kdf;8hHWO7@9Hv2^f}kCaluBKDfW|Z*9x-Je&2JO=qed~hRxKT zEWYP9Qy)&SS0-TkmeoiXR3x3BrAx09I9D&!j#Aw1^F^0dMg5O^* z2!2_)DDA;7xv2U|(*BqEF68-o1wWuv%HvQlGC?bT% zZNT@rs)o`H>i@kVdchlFP>9D{k|TIaOoF$>EO<+-;^{3paAPa=uj{AIKVaEOhw4Q1 z>piAFDhBo+GiLBm--A6gPC1%2hJt1P%1Tu98$No>@Ug=NPe6rKjv3Ctff0LY3pMIL zCeXuZe-Hf+G<}OkgocjqJE-@liZKVK9-%Ko4)l4S#!ySC!-_E&F=kZ1!2<@c*0*wa z-yyy$AJBSXHTlMWNao0VrwwK0jzU`z%58;(C}+UpDffN&A>F8JE4P};ZN801>G1ym DMm(t} delta 36280 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

-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 L>Dxfe5!&-V_GhCR diff --git a/neuttowr.prj b/neuttowr.prj index e45e016bd39a45a2c2b86853c1ee8e0984cb918f..2a1aa1ede87fc7f03fb7947e765b0c417047c00e 100755 GIT binary patch delta 299 zcmcbq^G#=iIvcav%Jj`zY$w=wg;%BrSSm9xd`o6vcsBVzPb4GD$M zl~<-ue#xKA$TZnk;CB577JUW=hB}rF%vV^Bvt%%@Wa(o0|KF3Plv$9uh$WomA@d!E zz04<=Q&|=>UuNcDnZ|6$@{_@qMVwKT#gtK(*^2o$^E>7QhBb^k8SgULGI27MGPyIa zWV*^2$yCAU!k7RwU4%iF;p>X@0Coliju{bd$?1_p*imdVW9Syr)lGxxCMvi$$A!xF*#g(;N9iscCN z|Nje^S2KICv@vgEe$8CTEW&b!L4oBL!w+T&MgeA7=6lQ+nG+cL8Rsw_U{YXu!x+J& z#oWWRgVBaboiUm*0cg4igDk_H9>)N71_h27F%B@v0w$%|z?9_V&4SKi9tsK!Neq+n zfjSrz982o`8i5SQ$&Nx|lP!hR`9LOwxCVzfxw_~%GfZA2WWvqBz`-ES&|YKX&px?c bNS^JW?8g5J9Gfo*y=PRti-J=`QCt;QPkjyJ||;9kiWZbn5Szv!xvEo22lep1~(r^cU@=yP`?nM5F>-S z0V_jVPGWj7gRB^Xl>rBYQ<9&?&?QjC;=; z6<=q-#h6i=o0z9tmYG@()KJd))Sx6YC$(5FJ*|S_jM#f^WrICH1C9X=C@9KLN2ud7 L%tKeW1gH=IKqgGg literal 277 zcmcE1ROS|x)H38`^fF*K;A9L4@^{w_^K=bo_#(={;AOzY;O67#uIua{>K6hOVq}Oh zU}Z?lNlY(hkQHOdH{gJ9O7hbfx&*3NTv$06ESM_|6qsj&*$&Jutc(n^Sza(Vvep=| zLlmbe0@ZdJsPHwit~6j}1exXl7V!p(>@{F#EKV%}2?E6+y0;oMvYrPzE;%PPu?Q~1 z05lgQ^W1=oF{3m$F;BNFGqoJ3shm~8up~1lwOB7bt%6~ln2=6{!B?O{MxZYXit^JD O>O2ke&=uYWDg*!_s7WgT diff --git a/testbed.c b/testbed.c index b117807..5b16a84 100755 --- a/testbed.c +++ b/testbed.c @@ -3,6 +3,8 @@ #include #include #include +#include +#include #include "video.h" #include "kbd.h" @@ -742,6 +744,7 @@ int main(int argc, char *argv[]) { if (argc > 1) { bootjor = argv[1]; } + randomize(); ser_init(SER_COM2, BAUD_19200, SER_8N1); game_init(); game_f_init(argv[0], bootjor); diff --git a/timer.jim b/timer.jim index 7cc4849fd89230a452e3154b7dcd8760e631af6a..7272b3bddd5f65b761cd45bbffb4d057ce5a87b9 100755 GIT binary patch literal 453 zcmX|-F-XHe6oyawu2m$WLkp$8qdG{JO2Ji>f`bTxR9s4z&>kU>rX>w6WRXKeaL~+l zQlyhmaH?+Iy42O7lQ=p%>${}NE$_bnfB(C8lhe)RV)jYAETr*!J;~~h*=(2C^=ieq zNmO|WLpb4w7{EtL-w)^>Qmt8^D#g>7WP6_J+bwFkgg)d+_(>>!M8fW$V34yOJ6%gg z&H{P-*zS89t)o&j?WuNwv%@7sEGPV!mfv zmh@zUlmLd12Cc`dt%(puumxYVOqS{prnH#ipA_b{dK*z#ACO+26N}7jbWOJ|H4f%E z0Su^L@okY}%~n?yefN-gbsO)o~`&VKs|Y_ literal 440 zcmX|-F-rqM5QR6~OrprCDGZ42q9_szK?qn#xJE%pmBz+29?5zHlDl|@NUmGt8WFih zo3s*8gtX~2rA11Afj>lN_Y&D=_j_;N%&fD&vy@+t#e2r$Kbu)rZ@KNxA-i9#*^kx* z3Z6g}k9h>A$e1QaL=yATd_Z@F7SA##bi2)f3S$_+G6}zy!ZHcvxnPs?Jazh>G|nP< zu2Rn&Z4v5oWGxwXLNblunvdatbuz4qEA&cWYL-*@O@V%JyKMpoz-jutSYU3W=lXT2aWu<{ zU`QDXcSVl1gPuI->VHUkRcxnlXMgbt1q>mA3Dq>{8~dVSmvU9Ci7E9=kHQmy?4~7U VXVx?}v&Qg76|X}3pUjL3{{ZZGY*_#R diff --git a/timer.jor b/timer.jor index 31fa9f0..c0e5004 100755 --- a/timer.jor +++ b/timer.jor @@ -33,5 +33,6 @@ >rot suspend repeat rdrop drop drop drop drop ; +: still-waiting? ( count ticks-start -- ) ticks udelta u> ; : sleep ( count -- ) - ticks swap begin over ticks udelta over u< while suspend repeat drop drop ; + ticks begin 2dup still-waiting? while suspend repeat drop drop ;