From 450c21fae3dad4b567ce2966725b88c1982fb63c Mon Sep 17 00:00:00 2001 From: Robert Pengelly Date: Mon, 23 Sep 2024 22:37:07 +0100 Subject: [PATCH] Set environment variables in COMMAND.COM --- build/chimaera.img | Bin 368640 -> 368640 bytes build/chimaera.vhd | Bin 34120704 -> 34120704 bytes src/apps/pcomm/Makefile.unix | 2 +- src/apps/pcomm/Makefile.w32 | 2 +- src/apps/pcomm/commands | 1 + src/apps/pcomm/pcomm.asm | 8 + src/apps/pcomm/set.asm | 368 +++++++++++++++++++++++++++++++++++ src/apps/pcomm/writechr.asm | 18 +- src/apps/pcomm/writestr.asm | 4 - src/kernel/mem.asm | 2 +- 10 files changed, 386 insertions(+), 19 deletions(-) create mode 100644 src/apps/pcomm/set.asm diff --git a/build/chimaera.img b/build/chimaera.img index b454e691b6c56b2b2329df038a39fed0042ddd45..003447778d4fdad0f15b9754364be6a216cae4cf 100644 GIT binary patch delta 4076 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 bN{gTAX)GUpqkNc#F9ToEr{%+9&0qcl&ODM4 delta 3518 zcmb7`3s6&68pqGQfq;}pu#h4k+-olKFx)&8R6r3Q*cO#Q+7Qqt&?>E~))tA(&bCU2 zwI$eL98VuRcDovNA7#f~OK1hN3qcfJHLYS*c2TRX+c_cI?K*6g`hfk;4H2sA%x-3q zdvd;W&-b0*|2y9~^=@UoTe%}O=+2Il-+VkHlV$5iosO{I$ac!j_nTpnTbp-fm1mVB zM4w3dEG#a5hVy?E{{DcSmF$J3OO`BKT*?{Cjogpz!Dx3LLPbkTS1eh^{TF*IYBC|T zsCfDEf)$H7cycIOavX3l13kCk&{>9gK4NEF$m%Yw^TcWzuVpp7qBIUR1dBfdvO456rty*2=Zo@tS33XIP6pX6r_Qch^Q3$cytD zj zae7xu;?w$uVOd>l!!TQ;un&=3J*hxGx$EU1qSfP{bZt(2Ne8oKdieU$uuXDkYCXL6 zdgHLJkF3z)yIpbYEFHEC&I-3pB1Jmy`^ZSH;b>66<&IqNI2AkGS*$u2 z_q*q?DY-cR+HCw(cM5wv2fxytH|aASKnW$vS@@oBIv(g2*l9Y<94VT-OhaQ-(io#% zwosC%aaxYN!?JEQ{`XOiulP&qHI+nw}n2kR?7RN5n#)pp0V+*pu zEr*r8dFbp3?aH;n+%q*Y?=Gb4TR@c)w4WP}qP zft|Ao)E;BgHpRn>ds~IhR|Rcf+fw-R|7@kBVQrxvo^#u(fu~gfaLGn8l0j!50D@Mb zG|6zd9%1F#W$FISI3C0fX_&Nq&3Th*W!^tB24hL7OT^pHCL~x?H2XV6-b7yE0T3)% zX74RDkaAzsR44LuPxrgn=6uC78Tv$!LACG zk82lU$CGIPe6~naNoNI~+Q&0ioZt6EoJD0I$2pn;cdX^S+a|)hM)H?*{Bqw+#)9|u zrNY3Ied*J!!hHwH6>Y^Hz9z-18x-S&GV2>o?{x3v!XCmHmUWt>= zhfSeNQM54~A##rblBWvlurHD}aKU*c#9}@#u!(edzWMtEzmloa#xgd$<*qe?kxZxE zuvXnDUAeT>mF1RXYe@Y))}{kP{cB8)Elqp9Dab&6Iu!teIx_DkxBWezCga!(b8|lx zIwH}5xyNhe2M&C7%a>#%=Tl%P)3XQ?pf7O_4Pz4INLNMd6T|Kp-Y>AK}^pO!Vg3sOQ}Z}YKbHpPpG;lZdwN3<{3Sn&C%cGu zdfg9D#zd-uL>o#KrNNv4ote)&4CvMku_=2Ue(E9@xBgMaH!i9kZT!>4IK?_aY=V>+ zOM)&DU%$8%G*b5`M(9BW09$*hlq{NxpY0dIMZO0@GWo^d*8d^9InF8k^(uoG4*Z#E z-FYcC7>>uzSR8*TQ4SL~D%az@ORDhM;>@{O+1cq4VQAD@#YVHv*RI$YeCx}3@xS1f z#3K}zGV&2Z_tLjm5vt6v3?f8Cym3&KV@W43MN74Dga*@PNwr_0G5}(iC6&skgCn@z zoN6F@6@V~sKpse-Rdd0rRAw{UUU+)}92cun>yqt-x1ZGYNoR(=M=m+t@lGcG3t$V12R>sD{yY>qvvM_eg-YibQ%_25ndFak@=P`QO$Z?2da=1kKcS=gxp&qB~P~WHgf!aWpJvM=InUYd2 z*sUI?yj%S+JJalrTFo%Sdx9#T@!>xPmfD;jwOa(hXGM|_=077HnM4sr zH2pwzF^jMMGbg7yi!_BuSh&d)OEu(LAo;3w_pwy!4CJVM0+!FCB`m9T<5*Vf9>!9s zdjJcaXdR@9Klv(k6iaNi{$VVu@wM;fu+@5rO0~X>$fKp?iwKpdJR2q@AJ{3DYQ2F} zg^Xi?Zosm%S`S#@Cdfjry_ZF^j^^LCEP(RcEb?wJ{I4_6J7STmT2HnGll|v>3*eg7 zF#nQ_snxgTcZ{OL)ia&BH#&ouH}UQ7EAg6}jVv?U`Q6P1h8@YlRptb&Fi#0IA8Q?J z&IIHhKEMLb^NjHjA>ncOPEPQ3~4LWp{3Fdy~JQx-c^dCVTkyHQx diff --git a/build/chimaera.vhd b/build/chimaera.vhd index 3e022c8c767d32c53e7fca8c0f774b59d3cf15c2..2f3513afae545ce74a944d64b344438a6c80473c 100644 GIT binary patch delta 24806 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 delta 24534 zcmeI4eN1)^y5>n(oeDxp~LuU(@LK# zvVWeU9zJy?&7}-i@{i_4OwZ59ouZj}!zmT>_nY_4%na-}L;wFod!$(z+wr}ld3AYp z6eWC8;%h@?!fsfO#>{SjNgu9L?Ylou#q4Xwpv~b2i zTZ{wUzqacPV+-)dTR8r#{63DN@W;D&SiU>fVzgf2eY-jS_&#ooH(CQVRa1R@Z?>_n z0ezsWch^pzXK;KDr>nDs@|gG+2DpgQLFUlw6UISipiq3@K4J7f%%LN8^fDD{8fGbn z_k99z2sOrVBl1xVA~Y44hrwI_8=Gp#D`6e_Z#dMYIMKNx|mcK9s?IG}sLh6l`^ zFm}#I?U&x9vI`Ovg&5^b}=Sp`UDR@tE24pv2b0IIMBA>~9L7D1O17~&3EyUs)` zO#F0_FmEdKDM21%DS{W3U=5R21WU|dHQWq98gsS~J_JB9c*}+bQX=&#_+>6ghnE20 zn3Xn2M}dljEjdEKY9ZiwzekCRbB5ee;2DMqSl~aS0m~RyLv;+E``5QEoBKk(GhtJ30xVPrRp%}21Da{vRV4*q|6f+;?Nilq45o56DNHL7X;uzLh;9p|F-C6D| z9K!)w@Ffa|v0oN^k@8cq=#DIO|8($qs_U^?rZrBe$lPz%9$g(>Y-uBnm#rffo}6ALN96kRJ+fWEUn$8D4rJk ziL1S~7_`ZPzoZ?`s%k$E52paF)@>5j$tZ7hp@)oEE&Sv%?;GVVbRY}9mI4y*!1Lj% zpo$(|j~#^b`C9|-#vgCs^wkdRlgUBNgt4~X;CGt@Bt-h_O(Axe$B01j(tw^=SJh}e zOw|A*-2h88;MQcf$$`$Yf-kN$)ENUF9^dUmzcIrHH6WLE!(I)@z0mE*TKh9F+ugIASy+8BGn*0 zqL5Fhu$!7N#zV2f1uVsVa74AK*tROqJ6Oj9NaZZ#jRO5%X%?lEU z&wNjv+t8rs{F3q5a6{)KbfG8HdbvBofxexJ#m32!1z(<#YF;tGBt0l7dW9Q_rTPob zw#obZ|9my1ccMR};lA{E8MZ{5va^J3mz9O4`uX|9AUiXbvvPR5uqimvQ62Q^fwtpO zofw{Hr4v0N+$rcUE)kld$4~NoC-3V!+0u7%UtcK3iFPjZpvQ5JPUoyF^Zv=to4g&& zQwPx zUPy;1I|iDd2Yn8woPK-6L0$cf@6O)?HyZ$(y!V@0A2$HgH@CiO0LiL79N&%Y5jMma z4=)?QCY&n^3v@AdoD8gQ+q>1MEEV3(Vx;lLaU7US^1?wDJkK0R9^#DP0~&5HfnU)B zM>voai8tHPB&gwlPL3xyq}~gQIbe!j&F2>6<>#AYqNsU%B8X>(9!Uot8eYu+Yc)S$ zH)<#)A?`HZ z*A*y}3cVv#IM8Ncs;AEN1jcG%tQlz4?#vO2wg#s91b`kYpY^`uLL0OqvKeW-Z-I6<$V)5<525+Vfvr7fbT+; z9VF-HL`%n@&M%gqTF&89OVUEi4doS(YUCSr#RK&f-8@ zZdoRIjarnv^q6Hy@?(}8C4bIxo#etuQ%MVwKWBk)W}s2~vTxM@Z zNfI?zJ{v7+{vMpo1sM$PAxiGccA%gTWms}t|K1vKtJQ~(bo(uX#Um_rTD)c@*#kTl z`*%FjMoIgtFB_?%P|ig`;oBMbK|UxfY|ca73Q-_7K@g}JTX4aX&9+5>8f^}AM!rm- zx8o&&cG{K%+G)E{phnwu0tqAS!M>3^*=Q35N@}*>D9}#$;c9%GXtqoGG}~*CJYMo- zj8fF+?kLHVxQi%Iv)zH36iWi(dO@H~&2}shK5R1Bfk*NLFAATi3dGWptZ;uw-POI^CQ*R8#;)Bj_jK%v#V0cdY}57<%>4 z-`0UHnwcwvO}$DjRP`!T77Mq`EEZNRR<