LBINSTATRINS17(C)University of Reading 1986 Credit and thanks to the following:- BASIC programs: ROGER STERN, JOAN KNOCK, PHILIP SWANDALE (Reading); BOB BURN (Mauritius); KEVIN SENEVIRATNE, S T NANDASARA, N D KODIKARA (Colombo). EPROM code: DON MATHER (Brighton). Other help: RICHARD COE, ALISON ANSELL, IAN DALE and all the students who have used test versions in Reading and Colombo Universities. }    D|/0 0" ?V@L`*Y|OD '[O H_Lą LLLXB[RCXB[RCYB^RYB^RYB^RYB^RYB^R򏍐YB^R򏍐]]\LLtHHH $L! hhh(`Lhuutqql  ɇ I  Lll샩 LIݝL쇙)Rȱ)I݊#=)I݊"ɱ!ɲI0"I 0hHжLI0HIH`L7l5'441LLnL r   x| yrtX~vꅄw܅օsu뇅ʆȢ nw L q  т  LmL rs r hhh(`   `lyIݝ XDI둈T r I*Qtr܀·~suޥqL q  \\\rsLT D LIL 7|E | |` ćI hhL ć hhL NO FILING SYSTEM ACTIVE ^^lLhhLDžВЏВЏhhLwlLL) ) ``LtIݨ t`{l rsrȩrȥrxXqx y`l q` ,PɸL ZL  IE LS𜟑𑞔S𒂕𛕉𒕖𑗑^W&_,hhhhh$p0h e /hhhq t$p0'W!$p0lS t$p0x蘝LIҝ`su=rtt7%r{errste{tuuɿLNJ9$p0ʆz z t7дt:(ettuq swrvqyswxrvtrsus dr߰\erxsiyhhh H Hw v $p0 r詰 話L0LlLCL LXI \,@I\,@ݩ` l֍,0Lz  L  ƀ  L ؍ |0 { o " $p04I4PQ $zT 1 6 LыILA  l  =P$p $| L$z *v(v *6(6ƃ͢ iƂL؋I8逅LыƄɀ0LыIL zA @ $p04I4{ o " L LH hLlLm :LD pIpH hLh 1hhLm L SORRY - INSTAT REQUIRES BASIC II $~ hhL_ $zS 0 6 4 0 L LLL ` PRINTER DUMP ONLY AVAILABLE IN MODE 0 | ` PRESS ESCAPE TO ABORT PRINTING  ` PRINTER IS NOT SWITCHED ON ,0L 厘LO'   厊 愥Ńީ $0 慥ł˩ L~ LŎL@]ŷ—Ep䤁)ycŶ\EԱ{bԠ谲뫱ȠɠΠ௢佨pű11{bԠť~~rEBꤷJSԱήʢ{bԠàڶa)粮۩ۭ鶲ۡⶲڨ콱ڬڠ綱鶲٫ٯ٣Ხت㲮خ㶲آ窸큤߭䷷ݯӡű!'ܪزťť~~\EԱ{bԠöñötbԠöñÁ۱çڶpű111AԵű~ISDD\®߆q\ή߆[Ê~ !close:e%=17a1$="":et%M%=0 (M%=10e%<>17name$="":fl%#c%:fl%= $@%=10:e(0,e%,e$):cr$:15:11: #hed:hdme%::stup:*FX3,20 m$=(mem)+" ":28,0,2,J%,0::" INSTAT War :"+h$(-wn)+" Ech :"+h$(-ech)+" Miss :"+h$(-mis)+" WS:"+name$,3);:bf%"(m)";" "; 2" Mem :"+m$;:ve%>1:pname$>0"(Macro File)" #28,0,K%,J%,2:x%,w%-1):*FX3,0  init:"FX3,0":23,1,1;0;0;0;:I%=013:n%(I%)=0::m%=25000:z%=0:b%=1:err=:et%=:s%=:prin=:temp$="":b$="":b1$="":e$="":dict$(0)=dict$+dict$(M%):T%=:H%=0:ve%>1z$(0)="":z$(1)="":em%=0 &"FX229,0":me%M%=0dict$(0)=dict$ @%=10: Lcomms:s%:I%=12:a$=a$,z%):z%=0:a$=lead(a$):a$>1b(";",59):cal: I"sub: "a$:pa$=pa$+a$:a$=lead(a$):a$=strip(a$):a$="."a$=""s%=: 2a$<3e(0,45,e$)::b(";",59):pC>0pc:cal  0a1$=a$,J%+1):a$=a$,J%-1)a1$=""  Pagno:c$=lc(a$,3)):c$="NOT"err=c$="AGA"err=:" ";pa$c$="TIT"tite  Ypc:L%,D%:L%=1::L%=a$,"%",L%)+1:d$=a$,L%,1):L%>1t(d$)D%=L%+2:sa((y%(d$))) L%=1: st:C%=0:(a$,2)):a1$="": Zcal:I%=a$,"="):I%=0:I%=1::J%=(a$,I%,1)):I%=I%+1:I%=3J%<65:J%<65a$="CAL"+a$  Cݤcol(a$):I%=0::I%=I%+1:n$=a$,I%,1):n$<>" "n$<>":":=a$,I%) ?tite:err=:J%=4:cc%=a$:bb%=cc%wid:cc%wid>0bb%=bb%+1 pc:-vpos0n3$,c$)>0)n%(11)=0:e(0,162,c$): Hchf(f$):I%:B%=:I%=0::fi$=nd$(I%)+f$:A%=(fi$):A%>0F%=#A%:#A% I%=I%+1:A%>0I%=2: Upin(f$):c(1):"Press ESCAPE or insert disc with ";f$:cont(-):chf(f$):B%=: Apout:c(2):" Put the main program disc back.":cont(-): -_clear:I%=&482&4FB2:I%=&4B6 I%=I%+8 MA%=I%::B%=A%:A%=?A%+256*A%?1:A%=p2:B%?1=0::?2=p2256:?3=p2256: num:n%(13)>an%e(0,106,e$):L%=L%-1:D%=L%::d$=a$,D%,1):D%=D%+1:t(d$):num=(a$,L%,D%-L%-1)):L%=D%-1:I%=14:b("N",0):y(n%(13))=Q%*num: 'dash:笤t(d$)Q%=-1:L%=L%+1:num: $di$,c$)>0:I%=13:b("_",95): #sta:di$,c$)>0:b("*",0): file:d$="":f$=n$::f$=f$+d$:d$=a$,L%,1):L%=L%+1:d$=" "d$=""d$=";":L%=L%-1:(f$)=1e(0,45,e$)::temp$=temp$+f$:b(n$,0): semi:z%=L%: sd:I%=1n%(12):d$="":f$="":L%=b$,"_")+1:n$=b$,L%-2,1):b$,L%,1)<>n$sb:::J%=cs(L%-3):K%=cs(L%-1):K%0 ,d%(0)=0(d%(0)=1b$,"@")=0)e(0,61,e$)  cg:R%0R%>d%(2)e(0,73,e$): 3d%(3)>2G%=b$-1:G%-((G%/2)*2)>Ee(0,74,e$): d%(4)=2yvar  "yvar:c%(9)>0e(0,70,e$): %findel:I%=1q%=q%(1):r%=r%(1): /J%E q%=q%(1):r%=r%(1): d%(3)=3q%=q%(2):r%=r%(2): 'd%(3)=4I%>R%/2q%=q%(2):r%=r%(2):  3chr3:tes S%=size(D%,i%):range(i%,G%):err $(q%2)>0tesS%=0e(0,63,dt): 0(q%12)>0tes:rn(D%,1,i%)>0e(0,65,dt): #(q%4)>0tesS%>0wangiv:err "d%(4)>0(q%2)>0samlen:err  ssoc:tes=:D%>4 ,G%=a%(D%,0):G%>0tes=::e(0,57,dt): )range(F%,G%):F%>G%F%<1e(0,1,dt)  #wangiv:wne(1,122,dt):err (q%4)>0rem(D%,-i%):: samlen:p%=0p%=S%: S%<>p%e(0,90,e$):: 2ݤdt:D%=3=fndnam(i%)=" "+ty$,D%+1,1)+(i%) 'r3:sb%>15n%(11)=0e(0,152,e$): -prinechc$<>"USE"me%"Command - ";pa$ G%=(a$+a1$):G%0G%=0G%=1 :j%=0G%=G%-1bf%ud%=:u%(h%)=u%(h%)+1:wrn(h%,4,i%,1) Ra%(h%,5)=a%(h%,5)+G%:h%<>3x$(h%,0)=x$(h%,0),i%-1)+(j%+32)+x$(h%,0),i%+1): c%(9)=i%c%(9)=0 px$(3,0)=x$(3,0),2*i%-2)+(j%224+32)+(j%224+32)+x$(3,0),2*i%+1,2*(a%(3,0)-i%)):j%>0wrs(3,2,i%,"V"): ctl2:#c%=z1%:I%=013:#c%,c%(I%)::I%=02:#c%,M(I%)::I%=04:J%=05:#c%,a%(I%,J%):::I%=04:J%=04:#c%,x$(I%,J%):: o$J%>a%(I%,0):J%>a%(I%,0)::L%=size(I%,J%):pt(I%,J%,1):wrs(I%,4,J%,o$) rI%=3K%=1L%:#c%,Y(J%,K%)::I%=2#c%,k(J%):I%=1K%=1L%:pt(I%,J%,K%):#c%,l$(J%,K%)::I%=0#c%,s$(J%) : sdp2:n$=p$(1),E%,2):F%=01:p$(F%)=p$(F%),E%-1)+p$(F%),E%+2)+2,o$)::c%(6)=c%(6)-2:ul(n$,n$,1)-32,2): }dnm(I%):f$=fndnam(I%):F%=0:n0$=n0$,I%-1)+o$+n0$,I%+1):F%=F%+1:c%(8)=c%(8)-F%:n1$=n1$,G%-F%)+n1$,G%+1)+F%,o$): gfp(K%,I%):n$=(K%)+(I%+32):E%=p$(0),n$):E%=0:f$=n$::f$=f$+n$:F%=p$(0),f$):F%=0:G%=f$-2: ݤgpc(J%):K%:G%=0E%=0:=0 X:G%=G%-2:E%=E%+2:K%=(p$(1),E%-2,1)):G%=0K%=J%:K%=J%:=(p$(1),E%-1,1))-32::=0 0ep1(K%,I%,J%,L%):fp(K%,I%):E%=0:E%=c%(6) En$=(K%)+(I%+32):sp(0):n$=(J%)+(L%+32):sp(1):c%(6)=c%(6)+2: c%(6)>=c%(5)e(0,278,e$): =sp(i%):p$(i%)=p$(i%),E%-1)+n$+p$(i%),E%,c%(5)-E%-1): Floc(K%,I%,J%):G%=rn(K%,1,I%):(G%J%)=1:wrn(K%,1,I%,G%+J%): gul(K%,I%,J%):G%=rn(K%,1,I%):((G%J%)=J%)(G%>1J%=2)wrn(K%,1,I%,G%-J%):G%>0e(0,280,e$): eݤrm(J%,k%):h%=3k%=k%-1:=Y(J%+k%a%(3,1),k%a%(3,1)+1):h%=2:=k(J%):h%=1:=l$(J%,k%)::=s$(J%) n%(11):=-1:=n%(21+I%)-n%(20+I%)-2 (ݤlc(a$):K%,L%,Z%:L%=(a$):L%=0=a$ MZ%=1L%:K%=(a$,Z%,1)):K%>96K%<123a$=a$,Z%-1)+(K%-32)+a$,Z%+1): =a$ Kݤy_n:;" Continue? (Y/N) ";::t$=:t$=lc(t$):t$="Y"t$="N":t$':=t$ /cont(I%):pause(pau):I%<0I%=-I%auto% *FX15,1 U"FX3,20":23,1,0;0;0;0;:0,I%);:c(1):"Press SHIFT or space bar to continue "; :(-1)(-99)::*FX3,0  Tݤcomma(a$):Z%::Z%=a$,","):a$=a$,-(Z%-1)*(Z%>0))+" "+a$,Z%+1):Z%=0:=a$,2) .ݤmod:A%=&87:R=(&FFF4):=(R&FF000)&10000 cls:"FX3,20"::"FX3,0": page(L%):auto%:*FX3,20 *N%,I%,J%,K%,w%,x%:stup:hd N%=2N%=0 w%>K%-3-N%'':w%=w%-2 ?28,0,K%,J%,K%-2::L%26,15:page%=:x%,w%-1):"FX3,0": WJ%+1,"-")0,K%)"On full page press SHIFT to continue":28,0,K%-3,J%,N%,14:page%= x%,w%-1):"FX3,0": ,c(I%):mod<7" ";:(129+f%(I%));: ݤmem:P%:P%-1:=-P% *pause(w):wft: +nb:f$=n$:d$="":L%=a$,n$,L%)+1:L%=1 VD%=L%:J%=J%+1::f$=f$+d$:d$=a$,D%,1):D%=D%+1:fin$(I%),d$)>0d$="":d$=n$D%=D%+1 G(f$)=1e(0,276,e$)::z$(I%)=z$(I%)+f$:sa((n$+128)+(48+J%)): *ݤnnum(f$):S%=n1$,f$,S%):S%=0=N%-128 #(n1$,S%-1,1))<128S%=S%+1:=-2 @F%=F%+1:Z%=S%+L%:N%=(n1$,Z%,1)):N%>128Q%=N%:G%=G%+1:S%=Z% G%>1=0 G%=0F%>1S%=S%+1:N%=128:=-2 +G%=0:S%=S%+1:N%=(n1$,S%,1)):N%>128 F%=1G%=0:=-2 G%=1N%=Q%:S%=S%+1:=-2 F%>1=0=-2 Fݤempty::em%=em%+1:L%=size(3,em%):L%=0em%=a%(3,0):L%=0=em%=0 pnam(f$,G%):L%=c%(8):N%=c%(8)+f$+1:N%+1>n1$:e(0,248,e$)::c%(8)=N%:n1$=n1$,L%-1)+f$+(128+G%)+n1$,N%):n0$=n0$,G%-1)+(32+f$)+n0$,G%+1,a%(3,0)-G%): 'ginit:md=mod:hd act%=-act%:hd=0 nl%=0:md>122,1:md=1 wtt=wid:n%=arg(0):tit$="":xs$="":ys$="":ax=:ay=ax:wei=ax:fac=ax:fun%=ax:aw=ax:em=ax:colour=2:wx=0:ls=ax:np=0:nf=0:hr%=0:vr%=0:md=119,1,3;0;:19,2,2;0;  dini8:<&7FFFe(0,105,e$):M%=0:ht0=1023:ht1=ht0-5:ht2=664:ht3=252:htt=31:wtt=39:act%=mod+10 sy$="51222122112212220000000005111232221211122000000000412223121222200000000000041132231312320000000000004121212111222000000000000" sy$=sy$+"81132231312321212121112228112222221211212221111222512211231122132200000000031122313220000000000000004111232321122000000000000": Qsbcom8:J%=1:I%=1n%(11):N%=n%(20+I%)+1:C%=cs(N%-1):t%=cs(N%):C%<3subax 0p$=p$+pa$,N%) 2N%=1:N%=p$,";",N%):N%>0pa1$=p$,N%)a1$=p$: N:N%=p$,";"):N1%=p$,";",N%+1):N1%=0pa2$=p$,N%+1)pa2$=p$,N%+1,N1%-N%) Dp$,N1%+1),pa2$,3))>0p$=p$,N%+1)pa1$=pa1$+pa2$:p$=p$,N%+1) !N%=0:a1$=pa1$+pa2$+":"+a1$: hdef:N%=1:J%=1:I%=1n%(11):N%=n%(20+I%):C%=cs(N%):K%=cs(N%+1):C%=1nc%=y(J%):J%=J%+1:nf%=C%=2cw=y(J%):J%=J%+1:wf%= C%=3ff%=K%C%=4mf%=K% 0w(1)=miss3(a$):S%=1:W%="SLKX",a$,1)):J%=cs(0):W%>0S%=size(W%-1,J%) 7(S%=0W%<1)e$="re-enter line":e(0,142,e$):e$="": W%=4pt(3,J%,1):I%=1S%:w(I%)=rc(J%,I%):W%=3w(1)=r(2,J%,1)W%=2I%=1S%:w(I%)=(r(1,J%,I%)):h$=r(0,J%,1):g$=h$+" "+g$:S%=0  rst:I%:#X%=5:#X%,ov%,ve%,an%,mtop%,xlt%,nlt%,slt%,D%,E%,B%,me%,di$,n2$,n3$,ech,wn,er,hd,hp,auto%,spa%:I%=06:#X%,f%(I%):: wst:I%:#X%=5:#X%,ov%,ve%,an%,mtop%,xlt%,nlt%,slt%,D%,E%,B%,me%,di$,n2$,n3$,ech,wn,er,hd,hp,auto%,spa%:I%=06:#X%,f%(I%):: Fݤdtmp:temp$,1)="@"temp$=temp$,2):temp$,1)="."temp$=temp$,2) ="@."+temp$ :fin3:temp$=dtmp:d%=(temp$):d%=0:e(0,111,temp$): #d%=z1% I%=013:#d%,C%(I%): I%=02:#d%,MI(I%): &I%=04:J%=05:#d%,A%(I%,J%):: ,I%=04:J%=02+C%(0):#d%,X$(I%,J%):: =#d%,P$(0),P$(1),N0$,N1$:C%(11)=0:#d%=10+U%:#d%,a$: free3:fn$=" -" x15);"Max. Max. Number":15);" No. length Unused"':A%(3,0)>0"Columns :"12)A%(3,0),A%(3,1),A%(3,0)-A%(3,5) ;A%(2,0)>0"Constants :"12)A%(2,0),fn$,A%(2,0)-A%(2,5) ;A%(0,0)>0"Strings :"12)A%(0,0),fn$,A%(0,0)-A%(0,5) ?A%(1,0)>0"Labels :"12)A%(1,0),A%(1,1),A%(1,0)-A%(1,5) 7A%(4,0)>0"SSP :"12)1,A%(4,0),1+(A%(4,5)>0)  r2:C%=1me%= "C%=2wn=tru(wn):wn$=tru1(wn) $C%=3 er=tru(er):err$=tru1(er) C%=4#0:26: &C%=5ech=tru(ech):ech$=tru1(ech) +C%=6hd=tru(hd):hd$=tru1(hd):26:cls "C%=7I%=1n%(13):(y(I%));: dC%=8<=&7FFFe(0,255,"Not able to change mode")C%=822,y(1):(act%)>9act%=(10+y(1))*(act%) C%=9pau=y(1) C%=10cls1 C%=11auto%=tru(auto%) C%=12(z$(1),2)) 'C%=13mis=tru(mis):mis$=tru1(mis)  8cls1:(act%)<10cls:a$="":M%=0:ac:11:act%=0: ݤtru(i%):a$,"OFF")>0:=0 a$,"ON")>0:=-1 i%:=0i%:=-1 !ݤtru1(i%):i%:="ON ":="OFF" 90687JK