lSCI CZMfSCI DZC]SHELL SCI~CALC SCIVERSION SCI-vSCI.COM   0`Bp4,3+!KH\,xa%`3 C0%e٩BU>ѐ=%XF@!odѩA`2PU(]42nիVuW+LTjb+da ؽ@ ^do< 'e7&}]K`׺3GU<7ټ`vzzK@'_;}ՐrQ &4t6eܞG{C'O<:?ǰ2LS4q$DXQ2|GA< d N vxݘ ( #qDžq - \{ L4J|Ly2z׾\w15.Ļjt+} qs )0Gy@p|AL04@&@2) @j1@`8~0L0 aCw@3pd00*OP"R")jlB! ^M0aL`!sKD +D jl3!!B@F4 p2@08Fǂ76xJqq6yT<2Ǐ@@,0+c; 1Dp,-ǃ L@L p/t<C4A! 3Y3OmdC&ñl{&B2CAJ 0'q$8d0Ԅ @GH9C(Lң03CP`?^sX6$?6 Q}Wpd c4NPL> #x5L` @^\0@`^eFƊ ~20|Zڤ@xF`@l&@q 488Æz8a0F&%j``;@w Ɛj F p pd>x?p#$ƀ!2*" :x֛E'#p;)bZ]!GIh4i}SpGCOa@f-)k%4d񧫨'ؓce n v ȹ*()Emb(Dڂф-VSu[#P#(K,@Uu 0oAgHsop gۃ `uI.1m?@U%Ӓs ͺY⇃66(sG+\fOg6@GFB= ,S~{1 G.q cb`vZu0Byf Z:Xs 6\i7r 8@*!^71۲P qM8`~hl@˵NP [P-FjP6o^khY `2J (rA8E1`SD/4 v)h`@+Th_ޟ*c@D/Z;ŃmO( OsR6%T%DTa>V[Q>tjzVIW 0un 7P_ {MPWbe!M#`oqp y[u2 0P\Pf YQV0Z856SCShUT HNwkHX*` Th V i%[ h2V0H91lj 9 8U%xUzWs5%X'e}! 5uň PuSŧ4Z[U [ x\ \k ]z  0zÊ5 g]^VL^}a`0!Aa*M@ӃWF Ыu7 8OOW x"ahߊh7e͎r8X0` aC )3)9a+b 6`װ 9/8<I4 ;ȧF)! Z yWmgmIDy zp*I!d0 )hV NwV0p X%," 퉳ՙPd1XZ)dZ1st=t ,WV^yKb`Cy1 \ 0W9P@(6㜘OÉeXbs}vk[E7&d5uX;SpJlEA7g8Z  a@  r 0eJtnat2yGeeJv %JPt0 (avj$/l+ *|!bQŢ!s}IZ ~Y~~!ZHj'Ye=q \d@#'߁:lX8)Q@ P͉  0'GL:d@qJcZ ( vsH@x6:I5ǘ]F :EuX !zڪP׫5A 7TbIiJ ٨SA$QU5D 0!7OSF*̪Zq*AU e [ !t'jxOp`ZX 4 Z I:ygx@ p%0'w:C{ a\X-뫈6Xp z( >Wג5A G5~( ub9[8P0+)sX 0E0rY[ +$ ?bCd@ PV㥨R6,c q'&'~!%` 0øw 8+({+d VFI{[kf I 0йP_*~ss']OFr|TP#`ͧ iTp ;"x<dwXqwjum`!!r P3lPw0m;|3)y w+_uꈵx SVD |nj ͸*I'XkA(`FXh lPD|!lFTR%O 0!SO&~wpZƬcZ4ƄP `dÅX^ j[BFpW0@ |ǥȻl XOX МA _AטȰn~TP"qb9̗`f ^p 0G !%{nj]!59PU _ 3`S+P舛BPml|OpwOҬz{#ǰ[(y+-]/1xp,jQffuwX VD|iZP!Ԉ<̳{kO 5}z̎@ 4KF-XmU p$3M誊[ ܆uZmL `(ـz n-\-'bM}e\T=˻ǘսܡ"}=7 T]Mܽ,zPi=+=]CE=KѥAE@ ܝZ|Ø 06}[y\^]ڝ͹g 0%AhSK۝]%(V-֠r87agݝnP[͙0J֕*QLIR((To|zU}.CݽL'cInJե 2 09azZ~qP^XQ}~ؐoʉ><~J ^ޝܰ`9nm`Z錋69~N.7?t~LTP{~^0+ڴ r X`Hɮ5߀ ]}4 Xrݮ0b.PĎ/8NfZ]}쵵ZN U]Ҟy}._XE>X:WZ e xvlnrdpo+ xnѨ@ /5Tr iڤ(n`),XkE3@xC;KY0$DҟW"l{e;,{k 8܁n  bkRY"Hp4y ?Z#x b u͐xɓPxA +-0 xZ\P΀! ' 0c`ZpO4 "p5 F ϴ迭/wv]\?I0z{? FW'ǟw+\yEחD` ˂Ckk:["–ȪEPOh X tMf}T $ߘZX.!^uR` "d@ PEczW Sа09A ЙU X^F/ "*{,cW { `" 2 JUNtS5FKEU\[ta7;TMOpc ʛuHg?ʜBzh9R rV@a`EOqFt')+ itQܲOU/FTXv8)) 03? ИHs0(Eh&P( 0cDEF x|R&)~ ~|~L~I S C iKGM +P+d [@)6Rp) |C>t)"AUš 7f5KCa)Zcǰ8n8/]6=N`8a8aq" 00]!{ }K 02e'~A)/cJ'FJd !~-&ZVhÇyuuXZB PF'D{ca'KTq: *d@N 0w ܟ6|P 0*Og|B  20Y18:`<(|qp =ؿ@@`GꁰQ[eMv(ځ"]-{Jrod|;hFPǰ! +^r 0uh-Tw6T %G! +Ly+ 2)Kgv޿![*4g|:0,i #w I,- ; VHy(ՏBo0e FWK8Q s' 6H}+5MVհ _6R ^6Ɩ 8Y 2wlκIʼnS <DuKEn5[ u0Qz$@ЇU) p]PppP7e0`7rZ77o7y zx7 7۰ 7 7 7L p 7G` 8oO8 0$d9d3@708^)Y# PP8]crKHWAކr8qͤ_Xqrf. `"nS4_؆{ΰW {W)[kh\47 `b 0r[,]a\n)W6֨,y6BXLSWfւx`RUhr֏WI$s <ByWh<xk/(aR43/x``".6l.ps0 4LH0 `:-o N`p6 6:m]L)WnL_ozvg:J6ϣ)W`ri9 pe Lrt:0ȣ7MW5-@mbM^m4"x`u\}s9 F,v9J!#*!,#p8#p89J9J! x#p89J! #p89J! x#p89J! #p89J! 8#p89J @2WM6rfҥ E<POc颫/P00o0? feph: Pa* Pra |wt yss=:0<:0>3<>>& |)q.X@/4wXqZ/DZjnxo.w3@  oTCG>k<kOY{0N0 Ld̆D{ `9eΰDۦ۫O9ce@:GBm9cnVUCQ[D]itu6`CT0;7Mg5Ծ3pI4BI5 :Eo [ [>E1: 0$A`S"Ijp +G` Y֧{@$@$Ґ` Zo bj6fD[ZV 5 0>5DO:p h I&t I& I&PI&JBh @Hr>bh H>rh H>h H>h @H>hH&>hH>hH>h@I>hI?& hI&4R&@2hIFH&X4Rh@IH&p rhI0@Sd@P0!`Sš 0-p @+P/iuwP 0!/šcUP/i д) @+;U2&Y@H1O[š>ӅJYo Jd{ajXq)p) @XF$&'H :GDrk!ܳ6ol&;ZZSZzk^Z$ v)io'^D@X~@t9[5<KdJdOdCccncgcϒ- ^Z/) O#a{97j%QN6p^.YF - @+=UPMNp8v8$9"hzH`h1 0X`!0x'+(<ʑ) D5 (&BC)S;hNеu-yeD# [6NGN?n? 0ɩhš>;U9&p ;I`@6IPЀ  ΰ$@P+q.l/3Lur mGuxee?_FsdZj5|̙}P!)vh֦Pg DtumrUJ =t>ֶ fp6YgP$ 0KϛHOwYDVzV;`Vg@*vrqf*PsDu5Wcg#S**=cWVsؚ;) OUP&aQA) OULZ'xUš>U ;$eya`+Eš>UU /Xa!PA) CUP 4SyfO嘰 AKZ ESav` 0 qPrGV. ,0` O` \)+YepU3 &};T䪀[R KD & VL& aA& l@>h B pTԢh ^B @>h B T& @>B 0Th^B T&K T& K @T&K T&%K T&1F'@>2hT@TѐUDb0U1.zY4i""FU/2!''r' b' b' R' ' 'r'3Wό3W3Wό3Wo3PSvf@{1:`mswg}p . ˧ps>:Gp|).sp'k0'0u'i i|dzYfr@gWl wg|&tqx%ePd lj4QC0tc _)| f wg@ttvte vtbb0toso*w@sm oluWmPm.ym@sGQBn5.@{lslP :4Yb@0y4o r u|`& kvwo*ŞB vge4 V')NʑZx= y.Q@ߵ VYM 0iֲmtߵ{ΒY{) (G dRex׸kW S*(g`7?`rp m*( X]2]PմпKG  Q _ v: o oX@ ev|3!2`V vYeWRfMsYm.5Wd@/@cSrܝ&g%NT@s=PYQ2si% )7Yd?uK}rlfkrm3[ 0OM̴N 0Y;7󊒰#K!=%~GY @X}bZ aXz2 $Lq,H0 "[P +ɮH<ґ 6 !!bgБVUpZd ǘ i!\ 06'w{ pZ&+B"ܴ_sf 9 #`d m}i`";5zi;;c6[D7AN i,1 Ѿ fGӅ†GmzJ`lb!6DP-/cU@XBcVaa eXk 1=}&+x 7JPf70q C|g#`@%-kes6G)d]qusCxo.cp{3@ȴ \d@y D}\[6  p\ 0dT+;F`i)&˰]  > +>q۰] 0io*'yϥ-(|`]>-` mq ]mkr)q !TVէ'^a;B6g)r$ AnP^a`]dge^ 07@^y֏Egܟ%'=Y6 U#P ^In ⲇPgߦh{@xS9 4b  5Wlu@_Da &dRqs@W|qxǎ|1L7R Q ز _`^k"c) =I6TRD 9q&9lP0&̡RN)<`de@&6kˁus=|G?uJZ,+qCŏhT &6i[uŏhi:kߒr| @m 0)T0aLK)mwa۾ ^=YŒdbA/o 96g)1P6g),w4 z]itlcZ ;< X% ]_Z ;УMj 0"sg_̍đC.Ay0h"r.Ay:q ]Uo{z["{P >yo_B2  9T >9^!}?y"%K_A7Ň61 j-}AYJplp M>VaIy= @jFDu}A ig) h1G۟~E E0%uc g_D)2Q>M}?0jPpj%zy~H?&d@PjoD2c|zZ Y c0@ O87IV7 kZvޥ jOPQvDv)&T#+c9%# {w&" [d^!̬ 0A@- l7 pki>!' $21K+_oA*n_Pgzold@z 0.Ţ-"?h}l7l* W |as4 ,^dÐ*W0/HO m 0'?Zrp 'H!y o 7VT$W'LʠPLW'G'P70P`ORa0Tpu E0S@m 0Jr P*UŐp_h1K m0K n` 0me"u ϰ ك oŌPn _ ?1:c 0+  0*@ R *P#* nа *0  + 3:  +  : a u*E6`r9A09 v`,PT0  ,TP>`ܩq2<  ). pϰ=` = 1n`F#[{KuP ? 0#0rF Q1kF\O; >ut4dh }ߐő X`V` o@>H? Pz:Y"P"®6o}He1^1 ROp*A 6>"rP3@uxP"A`++st0N0F0pq OUJgQ0]7k rő0 x > 02. z+AaP PɄ˄>+! 4pgPp 0 u c*h"u1"AwNpq8q ]ʰ|:R0,e r \YwOp 33dIL`:34 pfн ?FqL`0q8'$hruZ$ /.F:1;  gV='QEEqfut0 Q0"+q_PtPV+w G`q5; APvSCI.DOC  4" !p@.s&8@i4phV&"HJH;0sH@e S*  eIsDNJJB)J$SJ@-UܲD"l6b!$t2#. 3D2- R 9Nx3iZ;afy@1 BqHm1ak-!o2%@M2Fy@R2 DIl2ClN%qg å!$C&I$)J>T4f8ag BipdGAiV dQdahwfefQRFaSuƆyBo wq `zF- Q%FՋFD~w1fWیkw1GFthVAeWe(qaw]{$aGa4 +tZ)($cXg=fY rv$:kL*Gntv:[ڿf1scfͳK`nQAđ;ي-FDtXѱ;Տ@гA(-C%4˱~, @]0)'tik|y? CnmJ \}&r3mTʦ0"[7\?訊 Ahm]( .D7'_ -6CB䒇- AhÙN7$# *[CNԢ0vi-2T_!{RBBT!IxU Ttvɋ} &hsM'e5pt.>\ėC0`2`O-AApC 2_,CG8:’@Er Щ Ct!-MLO.佹2>܀C@ժ>C!oItCB 8&P e<f.EODt a3,-d}*5 j~^0  ,[zH9>UyQ%c)gC X.Pf5s9p\nvөl`RdzJ~ -l ͷgRG-3V˵n 3 `.z0dtSA''_どJYr4HHKaQ ꅋb&lmB3 C\ Nvj@KШmFp9`fM$킀cr/,b`D*%4OAE8Ĉ|fQq)l`"xLK@m;NP\X`1ג/pAu: & 3eA0)(FwAf\oh,X y+}U d.y?BǓfRrr3z6h FV!]9W6grn:<#=w/h N`l 2%Bk&[Gv A3Gݝu;ֆ& QzX:v+}G^9G)tP T7i`=y$*{V;p-RqRA@"x[V'<; p9K,kk,C*h/څny9="@GY5bvmC&*`1<$k+L~z?phuaLMN[\$n܍ʼn7$ߋG3ʀފ#Nk.3Z#'6]A\-n: i ~A9/Vky8޿E#QRG6d/%"$"w.sSgC7DYh`e'T%6!zGsB#BO #}rBcW2ׄ7e#eN@x",K#IB=BZ1_Pu_r6&Rw>St+/bH>uXG!XAN /. ,5!yM#b~4k&inOc@vaL8XCQ1G-6SBGXbI`0B}0)(!!T=X! B!"%T,I#A*>bgD |xeBIJ%$A#DR&asUSQ@OrAegEm~&%gTfTDIJ'A" b#H%@ ( @T+Gx}VaRRDc}6q;#:SJg2W'+Ib2ST2-b *}C1i QU&Ut4 1wB&E)"Bl}Uk5w3"93@"W#I;-)ptdMn%6-r#txr-8 /eG'WQ0dS"@%Kal3|Rc *9AL4QtO/e~p).1rC8,C<3C6Q4 ! 4[yE K1$ vIs"aҩ0g؀OQY @!L9c80yq,"^u#IzRy~kPiG/PTxJP'l$3-8I0K0Pc;Fu5B`#OIg$/)lsuy9ҩgSM0}J/J_7 < >@:@Bs!gG#IcJH0',aX@RPTPR9 L2E88ͣ-cb/DՈq.H3bN$ϨVcC9<~pk*`E, # NJ*cjrS&@g6j1V1kn1d@<:$="!ZͦGaI%֢fŃDJI4,=_"266D(9c:nªR3_'~ Ȓ(:~% 9ut<@iXS{1۝Of90wN%29t$S-T#4cX k5"LKXFBSlA &'Az9pH*C=pi=s#qocaCve$*o$A޶{AXE:u*A;S>s@2O'9T8+ӡbh>Vj}$L H> ʖeJ yK:,>|kʈ5:J*W[#OcsiwRC"r(JL2*taۊtC „-$"h떽B޽gf;x{6j0i A P1ܠn5H,k -&Ro1{<+;tξy:$LWږ٧RL h@Ύ&sIUGP_N0Es-4l!.$1AEtJnHSZA'EF Lq: %:tE)k.yIt <$WP'"I@ٚCOf#vl$|&,NEUB>DdH:U vHD#d&ǖs|,wf-G^J -Jճ $"Gp%VeԈYԪ~PDS2qE -P4{LM}D+P>#i#Yr.ȜJ| M%N9bZÂx`W .Ggq)x&|)rL>w=*y&V"p:_u "L` &sõWE: 0t2i4o\zfR!9cf&D)#{f{#n{dza܀|:Arh(/x9vqC.޲.:&1o4Npn<^[F@XeH~Lˁ{=r?~{r.M`f9?|}.~9ҡ|Wڰ8 \H|e9T=%ޫ!S7#a0iܲOh>&1U-2$#ς"cozE'x_ d_nzpWMԘ O %MZ#4bOl)ϙC\݃B7~'|d h3|7)nVi!I)~a U,=5Ә?bQ.uLQMAP;ނrNm F[&Uo49!$rΑyW(Gib$"`<0dڃ1XRc ~!iq59cϿy>1<Rf*w7a \)) #!\\3EѤDd(~UY\ٓ'S%xs&L-}˪ k'$t#c"h!;|‹Rn,5E1I84Ҕ"E9akXbX !j7˻<您(>brkͰsoh&Ur²pфm+#Gi5`"$FC(V%leX~dL8+ZPTFoSB)#ll>< b½#=0oqUU<Jz=g'yC]V/b 'oJf%Ʒ'!a@Tc B#/ydXv~@,ޞL4-7qns7W70`gڲt9yj™\69S6.SaOb'r#I`l` ;،El^a95i- Zi!QB_AQ]""'~d#gcki̞ y]@ji .o"4AT64U,׼l{F^ކP'$bg ?֥L= aהf6'4,},&AJ"ɨ2T?'U*d6摒D@$-f:Bț,6" Y=P+|'iXSUy8f@Wy#!JG=[߇sM@FaBSLE@?JxS"u*=WPe9 YJhF0hHL1Uܓ4SuJЎ`;[.IQl K1yfgfA`m|+K%1x>1'(-?$hˆt` M2`86I®uUY>D\Fˀ8@e2y}L-|V,, Kgq2"i7y&4.m>AJQHԲI~(-._&R~{2@ܸ^!.5IU'9^ ߤW{SJz/aUbP(Jɹ#4(d@iC> "/ޒhJ$?0Χ 8u?z3UrFJ9P|NkbP(e~V?LSkd6"LLKQ{FF&x08h* ґ.Cߵ‘sT# eX1&LJSc JcU  jR&+-6Z1qOhto9rR)I;U^iXUFxz1P{9iX?3Q_;MQB渙9ےaJ'ꀞdDs: sJ501b{9iX bIyBBx4'PVaB5X$IyAt.󽝄]H3v7X.rOk,xSzoXjR4ǃ熡+T&$GrRD YH>(̷2DNlBCg.A"9jOX񂾨 }[5Bre}N0r1@k3rRyu k/. LxdgBKC'-@Aa`rUmluqpQv!p-H#E=>nGY tQu`,+qWtAӲ ;d !?G uԬ|DQHAUrD4N8hyFT./vp&nY[>`;[N Ս{MNXUi ff%XUWULHq,ҳ o#ge-IۻyoKd 1jb6bH&{pF$F$@2of6rYd2y y踟Gw])ۂ~vfU1-=rCI57c(plcf.RE'TWn!ݡGW!rۭlhnL4-1a/&/aJi̔Y̰8c9pczq d{[+-$ vco/2v*[8+rV%bYB.$ b:Wɽ,f7릕eX1s1'ڛB3'#Q¢ґf)J ґCi/w#O8%b7 2 kBVw.gxG=Xྥ`a:. e0b-.lm{ki{]VgioGp%\C֦h , +;e Ī @aF- 6C5@ FIe*$CfY\)J72&%fHkYTH{J/|!gdHv,P2_2gUtS+D>gD6.tδ/cIJ]q)!c)t>邔0a?kY|h0gc:YZ! L".K(210c'.R¦"#`)^&R_B0 h}#HfCԳx׻pT,W;r0(EU031M(4/(OM4 P5-ͩL=l&x_-ae!4<9wơP(O@EzB3LHk/">.Z&XC(;m)bm%sb')%!W_>n-4Mڤ9{e\))ȧYՕub#[=yq Br2MMUE@.&FcOo)pWpu6 ʕ1wQGQ(YIeg_.O'n}.RwAwB-vYy$pk3.ڭKFfǛ݈̈́5F_olHl ,ѵ*jVO?'p0O L%2>خ{)Qe!3%Xw Q1'% 'eyZT"W Nki|29e['i%26a&cJ+{Jye\ oٍ h74)X01,cpJu.,ՃrlŶYGjQC~ŹX}|X]B%{YYJ_'Bv' P?I_RpU|RUJQu/hŸv228XEM"B7,^1?f*W2օ;+B1R#vAш خ5XZsaɷabm h8@Yva"cYT=|VO\Pn`&21ˀv{jZ& &o:mAFRpibbe`i&f@zB%0>tSmi׷ =+7JfAuN# Ub8z@X `Yp m8`]0[#d/a16r6'(u*&Nj9?B1ޡ*ě)}ts0M0-Ky#c~ "Dwaxdȅ4"# rţ^ |'bDdwi9&`6(PlQ[E4"F2]o&+har3;ۚ>Sr4$OdkM=9r !0n 2:_3;=vE~Bg#T_+p-M L=4}!#]XUќ=`#QaB$+ =H.Y / *\nBδ4=%"|#PHxdgT2~D"BGZhWb_B"(G̝_kf4 8`-1PF_Y(c( eJ;MrJk|H^qWKo m`Cr#'}1Gyf@$/<*!dwChk}Ek%9=!ZӘǃB$+ީoN9<|)s棍~U bIM '. -Xմo;'6WtX$Xy&?#=`Ja@w~f )"6YE Kµ|6c3];NX*βz#Se2- іZvmZc,:paMM$$a11M#AYt⨌ٌ$Uk֡)ekR9[2|cɲ|:c@ZɽÐ\+K#1"8i1Mz7-oRrY#0InoG"D'0PWr͹!w8X Y@EoHטݝMQ J&T<fc,fo,)(1rk\Ǖ^;Nub9U19 "p1]pYMUx&؈N@Č),EjG&q9{Ͽ l<7u,7O&Ptў# # Small c Interpreter command shell # # The library functions: # putchar(c){return sys(c,1)} getchar(){return sys(2)} puts(b){sys(b,1,3)} gets(b){return sys(b,0,4)} fputs(b,u){sys(b,u,3)} fgets(b,u){return sys(b,u,4)} sprintf(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9) {return sys(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,5)} printf(a0,a1,a2,a3,a4,a5,a6,a7,a8) {char b[128];sys(b,a0,a1,a2,a3,a4,a5,a6,a7,a8,5);puts(b)} sscanf(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9) {return sys(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,6)} atoi(b){int v[1];sys(b,"%d",v,6);return v[0]} fopen(f,m){return sys(f,m,7)} fread(s,l,u){return sys(s,l,u,8)} fwrite(s,l,u){return sys(s,l,u,9)} fclose(u){return sys(u,10)} exit(){sys(11)} stmt(l,p){return sys(l,p,12)} totok(s,b){return sys(s,b,13)} untok(b,s){return sys(b,s,14)} edit(l,p){return sys(l,p,15)} strcmp(s,t){return sys(s,t,16)} strncmp(s,t,n){return sys(s,t,n,16)} coreleft(){return sys(17)} malloc(n){return sys(n,18)} free(p){sys(p,19)} load(f,p){return sys(f,p,20)} save(f,p){return sys(f,p,21)} list(p){return sys(p,22)} trace(n){sys(n,23)} # # Entry point to the shell. All globals defined before the "entry" keyword # are in the "library" and are accessible by user programs. # entry int size,top; char line[80]; char program[16000]; main() { int from, to; top=16000; program[0] = 'Z'; # This is an "End of program" token - required size=1; # print sign-on message printf( "%s\nShell V1.2, 06 NOV 1985\n", sys(0) ); while(1) { puts("> "); if(gets(line)) { if (!strncmp(line,"edit",4)) size = sys(atoi(line+5),program,15); # envoke the editor else if (!strncmp(line,"save ",5)) sys(line+5,program,21); # save the program buffer else if (!strncmp(line,"load ",5)) size = sys(line+5,program,20); # load the program buffer else if (!strncmp(line,"list",4)) { if(line[4]) sscanf(line+4,"%d %d",&from,&to); else { from=1; to=32765; } sys(program,from,to,22); # list the program buffer } else if (!strncmp(line,"exit",4)) return; # return to previous shell else if (!strncmp(line,"free",4)) printf("%d\n",top-size); # show amount of free space else { # # attempt to parse the line as a small c statement. Note that # we will always display the results of the statement, so you # could enter something like: 2+2 and a 4 would be printed. # to = sys(line,program,12); printf("\n<%d>\n",to); } } } } char *Lineptr; int Stack[ 10 ], Stackptr, Stacktop; calc() { char line[ 80 ]; Stacktop = 10; while(1) { puts("-> "); if ( gets(Lineptr=line) ) { if( *Lineptr=='x' ) return; addition(); printf( "%d\n",pop() ); } } } number() { if( isdigit( *Lineptr ) ) { push( atoi( Lineptr ) ); while( isdigit( *Lineptr ) ) Lineptr = Lineptr+1; } } addition() { int num; while(1) { multiplication(); if( *Lineptr=='+' ) { Lineptr = Lineptr+1; multiplication(); push( pop() + pop() ); } else if( *Lineptr=='-' ) { Lineptr = Lineptr+1; multiplication(); num = pop(); push( pop() - num ); } else return; } } multiplication() { int num; while(1) { number(); if( *Lineptr=='*' ) { Lineptr = Lineptr+1; number(); push( pop() * pop() ); } else if( *Lineptr=='/' ) { Lineptr = Lineptr+1; number(); num = pop(); push( pop() / num ); } else return; } } push( n ) { if( Stackptr0 ) { Stackptr = Stackptr-1; return Stack[ Stackptr ]; } puts( "stack underflow\n" ); } isdigit( c ) char c; { return '0'<=c && c<='9'; } uThis file describes the changes made in each of the versions of SCI version description ------- ----------- 1.1 OCT 23, 1985 - First release to public domain. 1.2 NOV 06, 1985 - Enhanced trace/debug facility includes the ability to set/delete breakpoints, step through program, examine program and quit to the command shell. Also includes many bug fixes for 1.1. eptr+1; } } addition() { int num; whuts(b){sys(b,1,3)} gets(b){return sys(b,0,4)} fputs(b,u){sys(b,u,3)} fgets(b,u){return sys(b,u,4)} sprintf(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9) {return sys(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,5)} printf(a0,a1,a2,a3,a4,a5,a6,a7,a8) {char b[128];sys(b,a0,a1,a2,a3,a4,a5,a6,a7,a8,5);puts(b)} sscanf(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9) {return sys(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,6)} atoi(b){int v[1];sys(b,"%d",v,6);return v[0]} fopen(f,m){return sys(f,m,7)} fread(s,l,u){return sys(s,l,u,8)} fwrite(s,l,u){retur