From 049d388365b07d619729c62759d24045187e4c05 Mon Sep 17 00:00:00 2001 From: Jeremy Penner Date: Wed, 13 Jan 2021 20:56:51 -0500 Subject: [PATCH] fix hot code reload --- NeutTower.dsk | Bin 143360 -> 143360 bytes ProDOS_Blank.dsk | Bin 143360 -> 143360 bytes asm/prodos.fnl | 1 - game/disk.fnl | 1 - game/init.fnl | 2 +- link/mame.fnl | 3 +-- 6 files changed, 2 insertions(+), 5 deletions(-) diff --git a/NeutTower.dsk b/NeutTower.dsk index e5f9a4d9b4ae3756fff8dec1ff065b5241eea9ed..abf5934fb545ec64a32b950211e0b8528a6fb82e 100644 GIT binary patch delta 11043 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 delta 9855 zcmZX43qTat`R~l^gJof1!3S%MaUiCF1S5%2R}>T#U2uIwjS)@aq=|7sQF=prZ*%|c zVC!0H8M@XcRU%;>UBVy(gHK>)58^A#R&d035)<>#pb;`rqo#@BerH$Hw0A@1aUS0} z=X?IXZ!EiHDZ6BmtOg@N5FYU&0A)NxLwGTh%TMaI4$7;&yILyKtCW+b$B9RJS%*+|r&# z>o(pHd?@9u@ge(NH*tx7JUAt#I@KJq-=Smgxi@8I{8--15}T+k+TAPU6+=k-hEXqS z--~wS9WN#z?*uWUopYw}q}50ER%RjV6Hh#m7R60Qe21SBxB8{ofs)H>y7tLJtZ!OfTOd5Kb7teJ0a8b_7bf12TSPy`_#q zBlo$?I2qdImt29;tAuw_p~0K=fQ<9<+6bKzOy`d~1S8OJtSI%C0wM8p`Dm%0?rNNa zbZemWV!y1LL)u-BlkspWs_vHsg6l-V+cNh)5_;$oBwcYZ^!MAPnXan_u0>|?Fg!U~ zJRswp9FT#AW*1dNFWy1d@bFM*^nDQ0df_R3I?fMD zJD59Q!tQq%Fj6*Q2$d1tK z`bgG3`eKT9UO(v&Ka#!K8>ZwI!xC%sR6KP>HusU-3HK@W4^}*nSF;wH!W0ZwrZ^b! zoa~(>o(FOGiS?Q5CpTV@dz&*iP43jbyOMQfQb@bObe)rZQGM(=*-;GRCY3j5do#z&dY*e+N z@DS+zM0Q?Yqel520y)9(HH8FjFTGq+NOoP2rEp^@&CF(S-98FuC_t!l_eY3!yq;H5twX)*NcHS~=dsf8}7VO(&KwxE$z6E$m)HIeFh z&ESzrJ=d;XgM+2#BKsrYhKxtY>KQ7h?F@`n2L#TyjlNsMaZmI677v2Fr+G%W;vhG*JZ(G#0_4up;8oJd zda)BZ`-duhiHdYLq<>52?DpAJN;j$|?NIkT#1rmQ+vuL1?r*ojQ4Q`T?|>F;N`-Z2 zqQ)d8n50w>kRk03JPRBn{wQ;2kw9_hk?=L_42FGxxO0dB_NeQ%B+Q-Jh?{|cpDa)S zhxTTTyQGFU!W}bfSqqE=C8{PUmDA&}LYM?Q90TOT^oH~p;4JN}mHI$c!;{>JJh5|> z7A0Ktjupz8=G4_r0)~U=ezseYIB2)1f7FcW_Jd4dZ2Bye@si3S-Au3CCiQ@)*d`rk zL}27{B#?O9n440pxE#St<2e*0D6IT&>~P0T@k68!brhdN^}zu$ja6-$MSKCJ*)=jG zaG-b&Mn(F!ks0&21VuQ3>HQj5ZBvmp8u&90(QH?<^y&k_h>1$|Qbio3R4-HL)MkO_ z2uk393*b=aAw4@|5Kn+K^egn6wY(h+ji0Z5pblswp%IuIW+?EJ`xptw@mh&sB9aYy z{@#w;x}YtUH;y_lQ9OZpPVcB<#dwsOVYgs4U9~4wiUq56PdQzCHx#O>7YyzdVOJ6M z1N0j=FyBELld70k#2_p0jj8TdYQ8$_s#QJC-g`!E;|4~(Gg_tbJN23nDB z*r;C<%H3Smrqu8|I|+*=0mNd1^~GsOo5d(@Z)%5CZ(qpiM&lm#MN0$K~Hfp!< z7S2?qFGTi_7(B?e&3A|1w;L4IC1zmY@H7Sv&mgZ;9E-dYJq%C4NdptRCLmDU9aVt| zUE`4c8|~$;6*U@N$zoq%z`kG%b_wS-U=WNKSJZ&6fg;{FSO*yI;J_%&Bsvszioi)x z4D`b&yq&&#&>J7Pp$7CQaI!+cdqdz{fr;E$6mW9Spuhy~X%raGWgw4Bd=~F<9Ny!2 zyhrzh@FsC!H^W)oP48fez%WjG7~bK`py+Vgj2I~aSSghAgl@px=c*u##Ut;>z%!M! z2=O4~JtRevEGqaHf!qcp(s+Snpxdf4A{^yC?}=jbVaN4LL2(~ckYU;J>FA4dJ`_a75RH8<}6sqgR! z?Lv?Ge&^}?bN$V&Eqlb)-FwK`7sU41I45RKnhc=yI@_L~ z@AAb9#8x}nN~4Wi6VTRV)Y;kV(Y_Sk_Lh1}xbKlz)viBA6YcL$O3{`!mQli(i)EB% z=+90GX<&6J;5i?M?qg4TeAp`&S~B!s!Olkivaq5REC^4TES(;cgo80^BVFRvht+%-v(# z-2nQ)=;t7-bp?j1fLmH*@p}YVbE3BtYm14#&HEk!(1^if3dW2N1xh2p&IMq>@jh9PYR+UaP`kx6;5WKz z$FZzqlko637~?MAfsxo`Kw?aw2mnoC?P`b56ow){!BOgqDGq(`19bQ~;L%Sy>3cie zjXMGuJUTE89RnBu+Wrf7UIW~DMQ1+-$QR$)87MlLEk!kF7k?&i%4X3~c3v*z zzK}5@Uvs&LyDS4J53GW=D{^2pG<+!s*7o(ufd4Uo%nB6am(0K#c$owi^QRpc!AHS8 zFqyk5U&#t&an}IDIWJG4Uj-=$o}+pDq@FBG$DQ zfKvm!Q?7km5vz!W6d%{wdGThe9>aEq?BDtaaUlc}Ta40-x}mWMd9Jr0ZPe%kNPiTv z4(jiBcMZmAds3H)@2Pr;lUBytPUq$d&?#PHL zPE>q%q#KZRbRwY}(-{_yZLE|CU;yt@*Ol(Uie~5@qA;uHBl@p7F293(s!pCXd{jH=scwHALa zyKw$w46)i>VhiL>K?n<0922Y%vL(|sVL&@W-)WNKAxHttk)r7BHSic_EKfGPLG+rnG5EOw$Pdj3(wUF2->UdfaI4T(A)y#o#ZFfgT5i+z=`#fn={n`R=1zb)MAfKhIEU8hV%Me z!2pu`4ijZW&41Aq#YnEQY0!wX< zi0c7(iM)w}726Qy+BJZj(l5j!q?@`5SxPel+JpfB4$@yhB_lAf%Fu_3fX+IR2xwBp z`~bz%Kyu-nPm0F_qb>oz>FF)*J55f;mnhtWeQ+%ZN)rbVy+V}c(g{1IJpP_Q(Z=1< zM7p|(9%z!D1{(&^aIFaJ7*H$AwV{UVa^qJr?j0NkZsC!HwFtH+m?I|(y9X@}pDhNn+bmGpAi)g6 zn${?NM^9;VFsosMByYys>TO(t8VV3r7<*$YYG^}|`7UUwJclaIBh18j7UBd_&6>Hg z6;-q$Pvdgbz+eG9mY1QANVDr>#g{UuS@Q+h<8VAC=1|4D34w#H7> z02UTPVE1qw&|=VKEXb+)V-OyfqUuhBgC=%7jSCS@IJEO1ztaMXrRw{VfmR^|Eu;7! z@b0Gunw*zc)`JEFq|2VV2RZ^)@&G?;?;qa;p0o&w(~(smisvAewMfH36}g>=KkO&fc#ZPgDtDlY_mFT9TVgB& zY|GCV4oN2WtU93s+JN`s0hBg5ngmUAKi2~9!eQG16nVp^HaayUo+ccVP6Wp4Bfunh z;(C&z#{?ZpbQw;NH67bYQwgYi9!r%I|1dB;XFomqAChz99Vdc|3Q;gH6U z0<;c>DJ9U)Hb}ASSFJBxU%X-UhN2B?unP+F?RG>UUxyi03_g2Fgk8npy9~YGVI@4qV&-+wWetr5s9_1(Agym=oPm{ntq8)Zr>_lpvrLm6dT#B?fM-J{xDT>9 zvpgYFf3`Vu#pL=;nVoRY+LY<=eTH{$ap=QE5Ax0z3z7FZ`k}Lqz&nKl-j={NxVFL> zQ-mLWW~Q)9HmvI)(y*#y-OdvzC~NpF6$?=CP>bE1#+G+4K=rK-<>F^8T2iRoeoI^k z9x?d$R_=Ke+}z470`4^|K-~+mZfPO7JKbh5(h93m5u-rBWw4I_p#N4i>$6lN9H(6O-5mk!fQvM9bd}aqRhvHUxJmK#MiY?o z_zB$YP;j>mx}%|c=!0(9yitLE=rgD`2NNVHNMB#^QEAJ2yCBAV%`$3+&!}elj834I z7Vi>c74;!01+3PpxI*^t=*#u+#}f|E@2pC-Rq5TBXV7j!lSdj60t2jk%_Y^>{BtyQy?LJWaUBxQ8{lk z5L$@11?Bd;>LT5Mjm|iF5z=YfVgzglMp_ghk&9MnSH1qJI!a#(%S?425u8E{)A~uP zK791^NWTGMjvf61(rgf4e~AR6?F9sqYrWc z&rfW%DxC)nfUSYxP5mm+;tA2BsPXzmYcWWfg?R;3n^m)P_Fgh*-{_`(i=ur5UbHWA zV0w0)lpRs{g{_=f2`*~oq7=tQeN^5vIxRkrA>**HUJU|A1Wb?8;>AT^iXaO!v)Zf( zc0h-(Kz0E?m-tJRN9KEqFcKm$GGZz0Tf?B}0(5d&2*yI)9gAX&{wt9L_*zJDBvqWG zs8j0&yYzBHl2VzZgvv9b!6vI6io3cFQmpVJs2Ai?uv;}oAEyr0pH?mUXt9i{a}<+Q zWco-}nuo)45OEQ)_n zMYQ6dTCo_>YXnxZimQ-n@r}hHE#H@dMSdudVV3AcZu*QsEWe^CjRBe)@Ku zq~Rssmc9m#=^d&?3IYT57Dz_-VgV%Q>(Lm{8ijbkCsQMmnusL@7#aF~y2t*6$cFiB z!Wr%`5r+;vNwR~ICn>;Dfh-SQk5japf(XgORufe&#w$>u1JGIc8bHrZ#+4RNKUwR+ zrPF9hZSzruW}IdSJK@Sy#$fZLm(_|kC0fGmqE)fQC^j(Es|@deWo)bhHu;oIal)9Z zR-c)(Dg9O@1pR`apI1#%A^X2@go5ylU5Q`;2>?GqJ=7d2DsObyLg`jnx{J>m1A!Ir z+_oPevH^9lSTH+>!j)0tWW>FK#4H5X2)^=jxp4vN?X5Ji3h+XI*_!b(P_?+=#cmSb z2Tb5e)m>^jAUwKOo554AR;sN!k;3-nNl#Gb=lSP?Hy;9K{4YM3J%miPgT)|~fiBl*0$c?n4RtR@_pn-Kji)yvN;;9l@UJf*%zq~O{ z>FwwCs5^WS%l;;T$2S0=Xwwzzslt} zm8oP9y=0(-Hp8FUNH{%xPn;NG_zL_8hb7Rb*Y!_9>{EquqKhwNh{tg&gN zW`Ww8FOq>lJc|uC>L#2dS{~FJ84G^3rQ&ojoR$JKO~vsEuVn{>$)Jkm5g3+d1Qr`1 zy!qH<{rm&e-pHVa<*2e2Rkopu0IFyW<9Hc@cUKY8M3D6$I7tIQ_n#BQN#;LrehFNO z`v16sBY(V3g02^Fv+&n97+L)_W>fVYxql8~!+x={bZI%l zC0YhSiMF@3jDlPFu}tk2a4F0ZBlfJgBr~jXF4`~&GpuK?7FCO%984{I`MQSLnE*9% z+z|~d#*Ec235iZ7vTU&67Yb}EjqQSZ)}ueIjH~toGOpSa;gv5gu*ruBxM)QM$Yulj9$q-RV%3(|b|HveT!Ze5^WB=EeR1h^t7+~A^SVO@-PA@kSB4sYC5_Uny2tNL|EzA^ zX8l#Ob({U&*=_C6u*({zceUY~DNoNb{U-Uy<&|?ctp_5PMwqQ|i#6LWtzP+i|Dqav zIzI(b??R8P#g^N@#pUsBKe!7A++WwvS+u|e{Shu$h_|7-`3O5~&#C799Y>(Ps&$;x zw2o7!&!0Y|b{|oD4tE_FT%;I@29G zbG+ls`=^d-Ck~(PK5_QQ(Zfpj3ICCf(??P2lT&l1O`nlFbCxS_wtLRp`3n~tjP}^r zM6)?+P;`RLL|NIvF|n3K%U)mm>tFwV{l-o2)a`9oPhR-+`pu5RM~)s-k9T#S=sA7H zPY{RR@BF8B>g>7m7nNV=iGo=wH;2WwwTRWaIe7 z(}^)p<{Zf;rsj=XIoGT`Y&FdbcP^U|PYew|X|H9lKN9nE=f1EYZ&B`&-02H)a~9>! zT#&nP(Yyt@b93h8PFwK&T=%@`v!}aq^5#A|)BXHH7mS%Pf8N5pMS1h)&YLrD?)(Lh z&R>u_GjGXs_q>IigECwGl&+_XEUVY^tjXXgG78m2Yg5u0{J z@7uhG+nd?MjyT{s@SM0!Y!`iEv-m%I>ZOLJKkR#M*VMA9Wp9N=l@LqbBBMwnX&gN` zd118Cbjx;&j3u!a6Vb-x>7xhRpl_4W0M`WLTX0P_kj9*8x$cECW-eF^glN0bNRfoa zlsGJTRO-_cr{)g)c<+br|E0&9S>x9a4UfYSwOsoUBCIV=ap74W|zXaqWmZh`0{y=Aij7q@t^xXmutUQ`J_L z@$MV%Xw`4L^Io;Tp=s~lV+{@eJbC5}d-3A2@ULv$AO5)ByWvmef8O|)VO-^3eVhKa z`R{MN{f{kMs~$~Vx^%IBJHKOR;Mw=;gps=%h{h(VdH0^Z`}QAbX(i-ALDW8Lxg%pp zFe}xTL(gAtGtMk>zc?;XGCFa^#GLYn_nn`%FlTY@g1ngp)77!N25JDm>%?V%-g5g*sWnnXBpo~ys~~9DaX~X2u;5dj-G~dCaOC?HG+Nv5 z8w>@5uP#ygmywkJ5`AgE^dWqX$Hf+?27qhLh3JI?kS{isuG=FG1`n@MERh)gOs!=5SdE(Otf}DlHIcpKn?GGR2>aC z=}x6hsf<(njtGo;DlUwq`Ud2BF;3}Y3B?x;BLH{+umTx_e4&&z_jR;p1tbE#BnQC% z`+UK9)i;u((WYpFvcq|n5uo%6WP2TH-B2X}c#2sy|L3gAm=4U5vUt}2b@)j7APArk zMzy5}zm^sYDJ=e~NCKBCE}%+?{NeAk_!Dgy14t&|+YG27|GQX8!iP#siFD|ng9ILI z_Q?%jebQHS;sI$KZlnMei2I~8{5+M_lOvx(hx3YN!qM|a zBzWoz@L9G2bO`p#0BNAmobhnO9OP>4m!TT$*$Nfm+p??mwp@K1-frW6TLXY6{HgPC zz&p4w9pi$==?H?Vhv}Y!!l5`8LNN}+L-zS}P$3p$lQ1Yajte)iqzALF2jMTmFXJs5 zApJAw^Whw^z-#VRB)*Qg*Z%Wkc7$y|K__XH_$so!h8+6Ck&^CUc)v>Exv$~-Ye@PS z*Tz6+VgY}H{%|q4!pkou`2vz(W#k!>UrzGRS@")) (fn Machine.dbgcmd [self cmd ?handlers] - (print "dbgcmd??" cmd) (self:eval (.. "(manager.machine.debugger:command \"" cmd "\")")) ?handlers) (fn Machine.continue [self] (self:dbgcmd :go)) (fn Machine.step [self] (self:dbgcmd :s)) (fn Machine.set-bp [self addr ?action] ; todo: handle setting the same breakpoint more than once? (tset self.breakpoints addr {:action ?action}) - (self:eval (.. "(-> (. manager.machine.devices ::maincpu) (: :debug) (: :bpset " (tostring addr) "))") + (self:eval (.. "(-> (. manager.machine.devices ::maincpu :debug) (: :bpset " (tostring addr) "))") {:value #(tset (. self.breakpoints addr) :id (tonumber $2))})) (fn Machine.clear-bp [self addr] (local bpid (-?> self.breakpoints (. addr) (. :id)))