IMD 1.16: 1/06/2007 10:03:45 FOGCPM.171 --FOGCPM171PAS4 COM PAS4 COM*-04-00 87 PAS40 LIBr !"#$%&'PAS401 INT4()*+,-.PAS402 INT)/01234PAS403 INT#56789ARCTAN PAS:;<CONVERTMINT=>?@COS PAS ABCRTMAP PAS'CDEFGCUSTOMIZINT HIDEBUG INTJERASE INTKEXEC4 COMLMNOPQRSTUVWXYZ[EXEC4 COM<\]^_`abc-CPM171 DOCEXP PASdefgINDEX0 INTKhijklmnopqINDEX1 INT3rstuvwxINDEX2 INT yzJGRAF INT{|}~JGRAF PASMJRTASM INTvJSTAT PASLETTERS INT LINKER INTLN PASLOWER PAS This is the disk name. Êé Copyright 1983 JRT Systems DISKSABZZZ=!9"1Ù=͇>͞?=H=&>8?*]DM*o(h*_####tq#p*>2*]"&*&*&"&<<"b"d`i"f*d^#V#"d{Lza*f^#V+*bs#r6*_w#w#w#w#ts#rx2"  * :G& s4!Tyʱw# y§ͷ* @ z{x* :G&"*g7ʱ!.#c T!s4yw# y*x2r"s!I"u*u"wͳ"uo*s{"yY*s*uDM*s"y_*u:rG*y*ukɯ<##N#Fx‰yxڰx¡yxڬ`i>`i>^#V><""`i" "*|/g}/o#T]"*ͳ*s#r#*s#r**ws#rͳ*ws#r*c *eDMz/W{/_`iDMxQyxg`i"e* kɯ G*5+V+^xɯ<4#+!,#c +~>>4q#p#s#r#w"L*O:Q_s#r#s#r#p*L*Rs#r#64"͜" <26#6#N6#F6#~6ʖ*I*"Is#r#q#p:4*l:ʲ:M\*M^#V ^#V+|^--  :!T$ͻ >2}xx*M >2#=)!-#c +"R> 2Q@!{:Q_!))͜>p#p#=c"|!ʁx͜*I"Is#r#s#r6#w#w#w#w*M:_>w#w#w!IN#F#N#F |½}½*e*cDMx/Gy/O *I>*}#"}g 9 {="C##^#V"E* :G_!*M^#V*C̈́ U C D E H L M A B D*M"A!"!"*#"*g͠7:s4:4 ª*6#6#"}*{4:4̜*s#r#"}*6#6*M ^#V##{ z  4~3 w * !" *M"  * ^#V##" {_ zk * ̈́ " z * w#w#w#w#" G >4^#V#x˜ yx ###=‹ y³ x³ q#p#* DMq#p###~ BK++++" !> ^#V#x yx BK++"( ##2G##= x% :G_> 2G*( ɯ<" N#F#`i" ^#V#~2 bk +*ADM͠ " ~+ zT `i"A`i" ~w ʉ * * * DM : @ z/W{/_`iDM`i" * ^#V+" q#p# * s#ro&))* * z/W{/_##N#F r+s"^ "` `i"\ |$ }xf *\ "b *^ |/g}/o#T]"d *\ DM*b (͘ !>N#F#xy yxʋ <@l !+#c _*g͠7*}4*^ " *` +" !] *_DM*a!x yx bk##^#V!ý ^#V* DMz {x* DMz {x*d DM r+s*M* DM^#V##z< {xN < . !/#c +++Gx!"I*A#"e>2 ͩ   $|#}3ʌ .   %Error: Insufficient main storage$:wͩ     | N %Warning: $|r#s#yr#sPAS40 LIB" " 2( !{" ͜" $* :m͎* N* * !+ N#F#z{xN#F#xLyx_######=?Ò ~# d* |* {" ͜" * ͜" * ""* z/W{/_`iDM|½}x`i"* z/W{/_""* "8a* :2(  é* **:Ow# ,":=2*]T " 8é:*  ~é:O* *w# ‰  Msg err $  PAS40.LIB error $}_}|og%Error: ._*cs#r#"c*]N#F#"]*c+V+^ s#r*c+V+^^#V͜s#r*c+V+^N#Fq#p2#2*c+V+^ s#r>2;xbye{PY!o)w))҇)ҏ)җ)ҟ)ҧ*]^#V#"]*a*cs#r#"c*]^#V#"]*_*cs#r#"c*]^#"]*a*cs#r#"c*]^#"]*_*cs#r#"c*]N#"]*c+V+^ s#r!"2:W"ÿ*cCh+F+N{+F+Nx/Gy/O N"c^#V#z/W{/_`iDMx^#V#DM͗^#V#"Y*"*:=2W*DM!h$c !h$c *c@ *ez{!3#c *]^#"]!^#Vu %7Qo4 J] RQzk k4 ao:^s  !!2!X!0U!!"" ""BGLQV[ #:}3)$.0As^*]N#"]*]^#V#"]*]N#^#V#"]*]N#^#V#~#F#"]`o*]^#V#N#F#"]`iyBK*aq^#V=i ^*]"*cDM*a*_!"][xڹzڶxªyx>>>>zxyx>>>>ʜ'  ʌ- {!E#ͻ !x!4#c *]~#^#V#"]*a#^#V=*c"as#r#s#r#s#r*a+~/G+~/O "c##^#V#"a^#V"]*]^#V#"]*]^#V#"]*c++~"c"]*]^#V#"]*c++~"c"]*]^#V#"]*c"c*ez{x*g7*g7."5y*]*c+V+^"c5:*c+F+N+V+^^#Vr+sxVx>3y>*]##"]*c++++"c*]^#V#"]z3>**cs#r#"c*c+V+^N#Fq#p*]^#V#"]*aN#F*cq#p#"c*]^#V#"]*cs#r#"c*cs#r#"c*cs#r#"c*cs#r#"c*]^#V#"]BK*c+V+^4*]~#"GO*cw# p#6#"c"]"]*c6#6#"cw# y5q#p#"c*]N#"]*cq#"c!w *c+F+N"cq#p!w *cw#w#"c*c+V+^w#"c*c+~ "c*cw# "c*c+F+N+V+^"cq#p*]^#V#"]*c+F+N"c*aq#p*]^#V#"]BK*c+V+^z/W{/_+V+^"c"Ã2z{xҷ>2z/W{/_`iDMy2x2BK*w# y»:* p#z*c"c^#V#~# *c+~/w+~/w*c+F+N"c+V+~w#zw*c+F+N"c+V+~w#zw*c+F+N"c+V+~w#zw*cDM+V+^z/W{/_~#zh`i"c*c+V+^z/W{/_"c#*c+F+Nx¦yxz/W{/_`iDMx/Gy/O "cx/Gy/Obk T] p#z"c*c+F+N"cx/Gy/O +V+^`i">"@T]x+w# x!*>DM*@ s#r>`>`>`>`>`>`2w*c+V+^"zz/W{/_T]+F+N`i"xx/Gy/O "c2|*xDM*zx¯yxڿMD>2|>2|xJE# x:|O*x*zDMx/Gy/Obk T]~ EJ#zO*x*zDM|/g}/o# DM JE x2O>Q>Q>G:wh*c6#6#"c*c6#6#"c*c+F+Nx/Gy/O #6#"c*c+6#6#"c*c+V+^z/W{/_~6#=*i|1+"i*c+V+^"cz+*cz/W{/_"c~_.4è*c+F+Nx/Gy/O ~O+V+^z/W{/_"c~_#"!>6#=x*|ʨ+"*c+V+^"czʢå*cw# °"c{怲{xO! {G7w*c+F+N+V+^"cx yx`i".",*.DM*,*c+V+^z/W{/_"c~_d*cV+^"c##| y*c6#6#"c*c6#6#"c*c+T] w+”"c*c+T] w+²"c*c+T] /w+"c23 <23 *c T] "c :3  *c6#6#"c:3  *c6#6#"c*c T] "c\ C *c6#6#"c*c6#6#"c*c T] "cA xˆ yxڧ {xO {G7  ɯ*c!~# ³ "c*c"c*c+F+N##q#p#"c*c++"c*c+V+^s#r*c+V+^s#r*c+~/W+~/_s#r*c+F+N"c+V+^ s#r*c+F+N"c+V+^x/Gy/Obk T]s#r2!*c+F+N"c+V+^x|!x/Gy/O>2!zҐ!z/W{/_:!2!x™!yÜ!{PY!Ҩ!)Ұ!)Ҹ!)!)!)!)!)!:!!|/g}/o#s#r>">">">">">"2"*c+V+^"c+F+Nxh"zc"x:"yx>I">I">G:"Z"6#66#6>I"z҈"xv"yx>I">I">I">I" "k#@$"m#*k#*m#2u2v"#@$"#*#*#2u2v}2"2")l&ұ#&""!"o#2":"#*"!"o#2"*"T]" w#""}*"T]#""!"@#!"">2"*"}#$*"#""!"o#!""!"~#""*"|*"!"@#{2$zҀ$bk)|2$l&)" ^#V|r$:$͈$s#r͜:$! w!6#c !""O͡8!5#c !"u"B'"D'*c+~2"+V+^"c""(:"$%%*"*k[0:"$!9#c :"`$:"@$!>#c L%%:"@ %!=#c &*"*kw0> 2"Ͳ&H%:w8%:w@#%#% $*"͜"%Ͳ& %*%*"DM s`i""*"||%}xU%*"͜*"DM*%ͣ%!""U%"&"&! )|2&*&T] "&*&%%!I#c %!J#c !K#c :&=2&³%!"&*":"@!&*"DMY͞#:"@K&*&*"z<&{xK&K&!:#c Ͳ&_&{#*&#"&$&:"@&*&*"z/W{/_|ą&/$"&:" ʘ&> 2&Ü&2&:&#*&+"&|œ&*B'|&+"B' '*D'|&+"D'*F'^#"F''*"|'+""*"))N""!J' :" '  '"F'"D'`i"B'ò&:"9':"2"!H'"F'!"D'ò&2('!(:(ʀ(6- #0(‚(w# Ž(Y!(000000*"+V+^z/W{/_""*"+F+N+V+^z/W{/_`iDMx(z/W{/_"":"G*c+)V+^+""x)V+^+""""*"))#"czn) :)0) O~x/Gy/O Y)Y)))#N#Fx/Gy/O V)    !"u!"" ,2*2,2,2,:"2"*c+~2"+V+^"c""@.:")***"*k[0:")!9#c :"`):"@)!>#c ^1*:"@ *!=#c 64*"*kw0*"|q*:*N* * :*<2*!*"*O +6,:*+*:*=2***~#"*M+ʡ*N*:"ʀ*2*Ò*:*’*:w 2wÚ*:w2w!"u!"u * %Input error $'e+#, , ,e+>'2,:,y+2,2,+:,:,«+ ʑ+:"2"  +:"2" +,+* ,w#" ,>2,:,<2,+>:, ,*"+""*"u.N""!, +:,+2,2,!"" ,*"| ,>ɯE,-:,1,>2,:,>,>2,ɯ2,>2,O!" +~H^,͆,a,5-!"~-r,z/W{/_BK*"+V+^q#p:,:,ڗ,>2,!ɯ2,!"~+ʩ,-ª,#,~#-½, ï,!, ~,W#~,W#~,_#~,_000000000000:0 -:0-A -G0-a -g0-H2-h2-<2,ɯɯ<:,F->2,!ɯ2,:,G!"~+^--`-#-~#-|- e-!- ͌-!000000000000"-'͸-͸-d͸- ͸-͸-*-~O#Y*-"-0-:-ɯ<2,*"+V+^+F+No&z-{x..|/g}/o#T]">.T].!">.!"z-.~# .`i*>.z6 #4.:"G*c+e.V+^+""xe.V+^+""""*"u.#"cz. ʆ.|. O~x/Gy/O u.  !"u.!"":"`R/:"@. .d/.ͅ/.͠/*"*kw0*c+~2"`/+V+^ {_"N/+V+^"P/z/W{/_+V+^"c""*k[0*P//*N/""/0*"{""!""!""͡8""͜!K#c !""͡8""ʜ/!M#c y1!!{""͜"/""8*/*/!K#c 2"28#~+:/~28##!" 6 # /"~#.00~#.00"~#$0:"G:"OB0x@Gy@L0xGyV0x Gx2"BK)) )) "~#n0BK)) )) "w#Š0!"u*c+V+^"""c*k[0:"H0!"H1## 0*"}N!"6# 0*"*kw0*"*"|/g}/o#T]"F1*"͜*"*F1z*16#z!1*"͜*"͜*"DMxģ%^#Vz͜N*"͜"w1:" s1ͫ2͇2*"͜"2"2*"͜"2*" )|2!2*2"2T] "2*21:" 1*2>2# 1:!2=2!2š1!""*2*2|/g}/o#T]""1*2z/W{/_""1*"*"|22}x{2*"zE2{xQ2y1"2*w1F""*"zh2{xq2x:"2"x:"2"> *"|:""2;3ʤ22!?#ͻ *"|2:"2":""2 2 2M+ʤ2»22> :"3:""2 2 3 2,2*"+"":"2":"G2":""2 73 #3"223:"Ā3:"@u3:3*3w#"3*3+"3|g3*"|u3͑3e3:"@2">:"?2"͑3*"*"""u.~+"3333 3 3!8#c *3V+^"3!"33!"33!"33*3V+^+"3"33*c+V+^z4{4-4*k[0:"-46#66#6*":"@L4*"DMY͞#$G:" xb4;3e4M+O4!?#ͻ :4 q6*4#"4*4#"4"4:424*{4:4̜*4#"4"4*4+"4}:424:4 q6*4#"4*4#"4"4:424*{4:4̜*4#"4"4*4+"4}:424{25:525:5:5Î5xʈ4õ4x44{255!"4!"4"4"4"4!"4"4!"4"4"4"4"4"4!5"05ʈ4õ4{255!"4!"4"4" 5"5!"4"5!"4"4"4"4"5"5!B5"0544*gBK)))) !!{"4͜"6s468*66!D#&9INT"@6B6>B6=6*@6w"6ɯ<Y6*`6~#"`6ZV6>!U"`6͜N:5_͠7:45*4͜6"6"6 {"6͜"6*4͜DM*6*6 7*6DM*6(*6"}4*6"{4:5_ͽ7! 67!C#&9**`i"7"7bk{_z/W{/_"727k7*7*7Q7!C#&9*7"7:7=27>7*7*7DM*7yʘ7w# yŽ7*gBK)))) s4~#´7*gBK)))) s4w#7!"͠7*{4N*4b624ͽ7"8!"8"8*8͠7:s4J8:4A8:4 A8*8*4z;8{x܅8*88*8|Y8}ʂ8*8N*8*8͠7:424ͽ7*#"ɯ<"8*{4"8*8"8y28!${"8͜"8:88*88Gx8*82#9"$9:8w#w#8w#w#w#:#9w#w#9*$9# +!s4K9~# /9 C9c %Extern 12345678$9"9"9#g<*9#g6<>@ڐ<Һe>*mz]>{xe> p>< insufficient storage$! >®>)  ®>>  PAS40.LIB damaged or not found $"?6><2?!U"???*?w>>>*?~Z5?#"?G:??xɯ<*m"M>`w#F?*M"e*Ms#r#6j?!"I"Obk6#6#s#r#6#>q#p#p#p#p#=‡?>dp#=—? ? A:BͧBB JRT Pascal ver 4.0 Copyright 1983 JRT Systems $@ ?a{ > :5@@25@:@O:AO~@2@O*3@~#"3@.@7@@2AOɖu:6@@>@2{@!U"|@"3@*|@T] "|@!HOu@:{@=2{@L@*|@6 ʳ@ ʸ@ °@:F«@>A2@*BO#"BOð@>2F> !@4:@<2@> >2A!u" A"3@* AT] " A!O@:A=2A@* A6>2u2y!1IO~ #A#A#~+:3A~2HO##~oA@A#3AHOcAiOiOiAAüNAüN͸A0چA:ڋAAچA[ڋAG 2B!y"B*BT] "BiOB:B=2BABüNError in writing TEMP1 file$? :BARB[RB\C:B']BͬM:B%pB>xA?\C:B€B:6@E:B0ҋBJ:B:ҖB2E:BAҡBL:BpL:BHOͻBiO*Ayz/W{/_}|AOOiA!"ZC*DOz/W{/_}|2YC*ZCT] "ZCO7C:YC=2YCCO=CüNError in writing TEMP3 file$2C!C:AOA{C[ڏCa{C{ڏC_ʏC$ʏC0ڜC:ҜC?w#dCz2C!CRMxڷCxAyAyARDBYN1LOOPKG?YN1VALIGAYN1DONEYGYN1ZEROGAYN1ADJG3CYN1:6@‰D:@A? D(D'‰D>2NͬM2N:N_!NͯD2O !O~A# DD? QD)‰D?OʉD*3@"D*BO"D>26@!"BO@DüNError in %INCLUDE directive$~͸Aw#±Dѯ2O#~+:D~2O##!O 6 # DO~#.ED~#.EDO~#EO*D"3@*D"BO26@> 2@O2AO>2F2F>i2F2F!F"F2F:@O*Fw#"F?0pE:pE2F<2FEAڔEIҔEEʔEGʔE2F<2F>h2FE.¶E:AO.©E>i2FE>2F>r2FEEE>r2F>2F2FE+E-E:FE2F2F:FIE>25@:F>A2F2F*FFz/W{/_}2F:FiOFhXF:F!FmH2F>@A~#A 4F:FF :FG^F:F-G>?A}A|A:F}F Format error in integer literal $Format error in real number $ xFyF{PY!F)F)G) G)G)G)$G),G:F>G>2F!ɯ2F!F~G~#͞GYG KG!G ~͖GW#~͖GW#~͖G_#~͖G_000000000000:0ڼG:GAڼGGGaڼGgGHGhG<2Fɯɯ<:FG>2F!ɯ2F:FG!F~H~#[H H G!H H!000000000000!"DH'FHFHdFH FHFH*DH~O#F*DH"DH0gH:gHɯ<2F"H2H2H2H2H2H2H<2H!H"H"HIIH:H{IͿI*H͵J!HG:HH>2H*Hxw#"Hɯ2Hx*Hw0II0H.IE'Ie'I2/I[H:/IH!H40IH>2HI>2HI:HFI=2H*HF#"Hxɯ<*H~+jI-pI*H6#"H>6#=bI0IWI0I*H6\I:H”I0I´I0—I!H4ÂI0IEʶIeʶI2I[H:IH0IʗI>2HôI:HII:HIG:H@*Hw:H!H@I>+2.J0I+4J-4J2-J0I>J23J:-J22J!/JH:.J-%J}2H}/<2H000002.J0II>022J:-J23JJwJ_OG>Ow# gJ6#oJ ~Ow+yG}JɷҳJG=_NxګJyyɯ>2J#"J:J*J͑JJ:J<2JھJ*J+6@*J:J=LJ*J+~w,LK+QK.oK-VK(ʋK)[K*`K/eK&jK"KAA@>AA>AA@>B(K>C(K>D(K>F(K>G(K>H(K>(K:AO.ʁK)ʆK>I(K>T,K>M,K:AO*ʢK.ʝK>E(K>L,K*BO"N??K*«K:AO)«K?*N"BOKüNComment does not end$?"K*BO"N@K}K;!L:0L=&L>^LK(K>3K>3K:AO==L>O(K>S,K:AO>TL=YL>3K>>K>>K:AO=kL>3K>>K[ʅL]ʊL^+L{K>L(K>M(K^#6$  MxL¯LL  ** found ** $ -- not found -- $# Li&+)))GMNMTMO^#V+N#~+LM 2OM`i#"PMzKM*PM:OMOLEM^#V+#M+F+N Mx`M"M*DOw#*FO"Ms#r#O "FO*Ms#r6#6#Ow# —M"DO*MDM*BO"N!N@'MNw #yN÷M:AO'M@My2N:N>>A:NA:NO!N~A# N*N"BONüNXRRNnRNXPOSuREXPUT|RCHXVARR-NXXORRKKXELSER=XCASERBXEOLNR'DXADDRRAXFILER<XFREERIXCONSR5MXCOPYRRNXCALLString literal too large$  =O*BO>Z#O~# NO :6@ O !O2O~# NO =O Line 0000$ in %INCLUDE file: filenametyp $  PASTEMP1 $$$TEMP3 $$$12345678123QQQQQ#R8RRRRR+SSSSSSS T>TTTTTUUJUbU|UU DOQIFINQOFOR4TO QENDRFORRCHRRAND RDIVREOFhABS*RMOD%1RMAPGET ?RNOT8FRSET!MRNIL#TRORD"[RNEWibRSQR^iRODDspRRBArwRRRN~RPOS(PUT3RVAR;XORRCHARRELSERCASEREOLN RADDRRFILERFREEqRCONSNRCOPYCALLRGOTOkRHEX$zLIST+SREAL. SREAD&SOPENdSPREDe#SSUCC*PAGE23STHEN6;STYPEZCSTRUE:KSWITHuTEXT\SBEGINeSARRAYnSCONST[wSFALSECLOSE$SLABEL_INPUT-SRESETgSROUNDlREAL$7SWRITE5SWHILE<SUNTILfSTRUNCWTITLESEXTERN SDOWNTOtSBINARYQTCONCATxDELETE]TMAXINT~ TLTRACEw*TLRANGE\4TINSERTPLENGTH0HTREADLN,RTRECORD1\TREPEATbfTPORTIN`pTOUTPUTyzTNOLIST|TPTRACEpTNOCONSJTSTRINGaSYSTEMmUPCASEATBOOLEANTDISPOSEFORWARDTINTEGERRINCLUDE)TPROGRAM/TREWRITEcPORTOUT9UWRITELNoWARNING&UFUNCTIONY2UCOMPRESSv>UFILLCHARUALLOCATE}VUNOLTRACE{NOPTRACE'oUPROCEDUREnNOWARNINGVDEALLOCATEjINITIALIZE jz ym2type stax b! inx b dcr e! rz ;done dcr d! jnz ym2lp1 ; ;scan until type field is found orRCHRRAND RDIVREOFhABS*RMOD%1RMAPGET ?RNOT8FRSET!MRNIL#TRORD"[RNEWibRSQR^iRODDspRRBArwRRRN~RPOS(PUT3RVAR;XORRCHARRELSERCASEREOLN RADDRRFILERFREEqRCONSNRCOPYCALLRGOTOkRHEX$zLIST+SREAL. SREAD&SOPENdSPREDe#SSUCC*PAGE23STHEN6;STYPEZCSTRUE:KSWITHuTEXT\SBEGINeSARRAYnSCONST[wSFALSECLOSE$SLABEL_INPUT-SRESETgSROUNDlREAL$7SWRITE5SWHILE<SUNTILfSTRUNCWTITLESEXTERN SDOWNTOtSBINARYQTCONCATxDELETE]TMAXINT~ TLTRACEw*TLRANGE\4TINSERTPLENGTH0HTREADLN,RTRECORD1\TREPEATbfTPORTIN`pTOUTPUTyzTNOLIST|TPTRACEpTNOCONSJTSTRINGaSYSTEMmUPCASEATBOOLEANTDISPOSEFORWARDTINTEGERRINCLUDE)TPROGRAM/TREWRITEcPORTOB$4E 1#A#Q#z&&& @ ;r@ 5  % " > X k          / < I X d }4     ,  + 8 E R n        :+ e }%  ! "& ## $! %A/ &p& ' ( )0 *& +%! ,F -\ .h /w 0 1' 2' 3( 4'' 5N 6j 7 85 9% : ; <+ =G( >o& @' A1 B3 C 2 DR0 E1 F1 G+ H I( JHV K2 L0 M- N-, OY Py2 Q3 R< S  4 % Y  ^  b  f  k  n  s  v  {                                                                 ! !  ! ! ! ! ! %! +! 1! 5! 8! :! ?! C! H! K! R! V! Y! ^! h! v! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! "  " " " " !" %" *" /" 2" 5" ?" B" F" L" U" \" b" f" i" l" r" v" ~" " " " " " " " " " !" "" #" $" %" &" (#" )#" *#"4 +#!#2 ,#S#S -##@ .## /#$S 0#X$/ 1#$ 2# %! 3#*%& 4#P%x 5#%' 6#%% 7#&0 8#D&) 9#m&" :#&G ;#&F <#' =#<'# >#_'# ?#' @#'0 A#'o B#@( C#() D#(( E#). F#E)Q G#)C H#)0 I# * J##*! K#D*+ L#o*$ M#*# N#*/ O#*Q P#6+Q Q#+T R#+1 T$ ,, U$8,, V$d,- W$,& X$,' Y$,& Z$-' [$+-) \$T-* h$~- i$-M u&- x& .X y&a.. z&.F {&.N |&#/[ }&~/@ ~&/? &/G &D0N &0O &0K &,1N &z16 &1K &11 &,2, &X2@ &2Q &2/ &3W &o3J &3. &3c &J4c &4O &4; &75V &5I &5D &6E &_6P &6T &7c &f7S &7R & 8C {U>:2S 3 IV/  cLhʷizm`rkz[/*g|a}x*ezq{x|/g}/o#T]*i|/g}/o# | !k ~w#~w6+6!"1?O>#~# !k>d2^#V#xyxBK:=2`i"*!*>z*"!"*|g}o"*c)/*e"!k"*^#V#""j/**gz‰{x_V/*j*i"+o*>u~# ***>!|{>*w#6 #6 #6$> 2{*|}>+2{:xG!x2x>:2Sx2x>#2S :x~$_#<!kw# R>:x2x:x2x Y "ei "gw "i*g*e|/g}/o#T]*i>z{eL z Maximum of 100 counters exceeded Enter new parameters $ LV !GNw# *:MO!B > 00000xxxxxactivan data areas Activan interrupt $ command : $ $ start line : $end line : $spacing : $ C clear the counters H display histogram I initialize line range M run program with monitoring R run program Z terminate program $ Line range count Activan 4.0 * = 0000 $0000-0000 00000:  !$*16;@EJMPSV]fm "'.2<@CFILPSY]`gknqtwz~*-JPVY{#&039 >:2  ʵ lp*gUndsletrMz  t"y t"{   !w# Œ:O! > 00000xxxxx:xGx2x>:2 x2x>#2  :x~$_# >-:x2x :x2x -B:x@2x :x2x   :x2x> > :†  > Program module not yet loaded, exproc table not available. $ Exec interrupt $ command : $ E external procedure table G set line range for trace L+ L- line trace on/off N current line and last proc P+ P- procedure trace on/off R resume program execution S system  status display Z terminate program $ lower : $upper : $$),16;@EJMPSV^dlrw} (05@KVjry|Invalid virtual machine code generated, system error$PROGRAM or EXTERN expected$Compilation does not end with period$Program identifier expected$Unsigned integer expected$Semicolon expected$Identifier expected$'=' expected$Comma expected$'..' expected$Undeclared label$Colon expected$Error in constant$Syntax error in constant$Syntax error in constant$Constants in subrange are not compatible types$END expected$BEGIN expected$DO expected$Type identifier expected$In subrange, first constant exceeds second constant$Undeclared type identifier$'[' expected$']' expected$OF expected$More than 8 dimensions in array declaration$'(' expected$')' expected$'[' expected$']' expected$More than 10 files declared$'Simple type' expected$WITH statement syntax error$Record identifier expected$Undeclared variable identifier$THEN expected$Pointer type expected$Undeclared field identifier$Array declaration syntax error$Invalid expression type in array reference$Invalid array reference$Invalid expression type in parameter$Parameter syntax error$Incorrect number of parameters$Incompatible types in set constructor$Incompatible types in set subrange$Invalid type in set constructor$Invalid parameter in system procedure/function$Incompatible data types in expression$File identifier expected$Assignment symbol ':=' expected$Incompatible data types in assignment statement$Incompatible data types in CASE label$Data type error in FOR statement$TO or DOWNTO expected$DO expected$UNTIL expected$Boolean expression expected$Data type error in expression$Syntax error in input/output statement$RBA or RRN expression not integer type$Invalid file name in OPEN/RESET/REWRITE$Buffer size parameter not integer type$Invalid parameter in SYSTEM$Integer expression expected$'Factor' syntax error$First operand in set membership test is invalid type$External procedure/function expected$REAL expression expected$Pointer symbol '^' expected$Parameter list syntax error$String or character expression expected$Parameter error in OPEN/RESET/REWRITE$ABS parameter not real or integer type$First parameter in COPY function not string type$Second parameter in COPY function not integer type$Third parameter in COPY function not integer type$First parameter in POS function not string type$Second parameter in POS function not string type$Third parameter in POS function not integer type$Pointer variable or file variable expected$String variable expected$Dynamic array variable expected$Index types in ALLOCATE incompatible with index types in dynamic array's declaration$Incorrect number of index expressions in ALLOCATE$Type declarations not allowed in parameter list$Integer literal or integer constant expected$Undeclared variable in assignment statement$Undeclared procedure identifier$Undeclared array variable in assignment statement$Undeclared record variable in assignment statement$Undeclared file or pointer variable in assignment statement$Syntax error in statement$'Block' structure of program invalid$BEGINCHARCASEARRAYCHRCONSTANDCLOSECALLADDRDOENDDIVDOWNTODISPOSEELSEEXTERNEOFEOLNIFFORINTEGERGOTOFILEINFORWARDFUNCTIONGETFREEOFORMODNOTNILNEWORDLABELMAPOPENPROCEDUREPUTPROGRAMPAGEREALRECORDRESETREADREWRITEREADLNREPEATTHENVARTOWHILETYPEWRITESETWRITELNWITHXORUNTILIDENTIFIERString literalInteger literalReal literalBOOLEAN,+-()*/.STRING;[]COPY:LENGTHCONCATINCLUDE:=..ALLOCATEDEALLOCATETITLEphiCOMPRESSTRUEFALSEINSERTMAXINTODDINPUTOUTPUTSYSTEMPORTINPORTOUTPREDSUCCTRUNCROUNDABSSQRINITIALIZEHEXREALUPCASENOWARNINGWARNINGNOCONSCONSRRNRBABINARYTEXTFILLCHARLRANGEDELETENOLISTLISTNOPTRACEPTRACENOLTRACELTRACEPOS=><>=<=<>^Array index too large $Array index too small $Pointer variable contains invalid virtual address $System error during dynamic storage compression $System error in dynamic storage pointer tables, possibly due to storage overlay $Dynamic storage tables full, more than 1632 blocks allocated $Insufficient dynamic storage $System error in dynamic storage pointer tables, possibly due to storage overlay $Invalid parameter in SYSFUN builtin function $Integer division by zero, if dividend is positive then quotient is set to +32767 else -32768, remainder is always set to zero $System error in assert monitor $Insufficient storage for data stack $Invalid virtual machine code encountered, possibly due to storage overlay or incorrectly defined external procedure $Error opening file for random access $Error accessing random access file $Invalid data format in input/output statement $Invalid data format in input statement $Attempt to access unopened file $Data items exceed record size in random file in RRN write statement $Error opening file due to 'file not found' or 'no directory space' $Error writing sequential file $Random access of sequential file $Sequential access of random file $Format error in input/output $Invalid parameter in SYSTEM builtin procedure $Out of range in TRUNC or ROUND function, if pa rameter is positive then result is set to +32767 else -32768 $Floating point division by zero, if dividend is positive then quotient is set to +0.99999999999999e+63 else -0.99999999999999e+63 $Error while loading external procedure $External procedure INT file not found $Invalid code passed to EXEC service routine $Error in COPY function, start_pos + length - 1 is greater than current_length $Error in POS function, start_pos is greater than current_length $Invalid data format in input/output statement $Error in extending file $No more space on selected disk $No more directory space on selected disk $Random access files not supported $File RESET error, file not found $External procedure libraries not implemented $Attempt to access character in dynamic string. Index exceeds current length. $Attempt to update character in dynamic string. Index exceeds current length. $External procedure/function was not compiled with JRT Pascal version 3 or higher $Attempt to access an unallocated dynamic array $Invalid variable or data type declaration $Overflow in floating point multiplication $Underflow in floating point multiplication $Overflow in floating point division $Underflow in floating point division $Overflow in floating point addition $Underflow in floating point addition $Overflow in floating point subtraction $Underflow in floating point subtraction $Syntax error - unrecoverable $Attempt to access buffer variable - file was not both open and sequential $ ***** 000000 00 00 00 000 00 0000 00 00 00 0000 00 000 00 00 00 000000 11 111 11 11 11 11 11 11 1111 22222 22 22 22 22 22 22 22 22 2222222 33333 33 33 33 33 333 33 33 33 33 33333 44 444 4444 44 44 44 44 44 44 444444444 44 44 5555555 55 55 55 555555 55 55 55 55 55555 66666 66 66 66 66 66 666666 66 66 66 66 66666 777777777 77 77 77 77 77 77 77 77 88888 88 88 88 88 88 88 88888 88 88 88 88 88 88 88888 99999 99 99 99 99 99 99 999999 99 99 99 99 99999 A AAA AA AA AA AA AAAAAAA AA AA AA AA AA AA AA AA BBBBBB BB BB BB BB BB BB BBBBBB BB BB BB BB BB BB BBBBBB CCCC CC CC CC CC CC CC CC CC CC CCCC DDDDD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DDDDD EEEEEEE EE EE EE EEEEE EE EE EE EEEEEEE FFFFFFF FF FF FF FFFFF FF FF FF FF GGGG GG GG GG GG GG GG GGG GG GGG GG GG GGGG HH HH HH HH HH HH HH HH HHHHHHH HH HH HH HH HH HH HH HH IIII II II II II II II II IIII JJ JJ JJ JJ JJ JJ JJ JJ JJ JJ JJJJ KK KK KK KK KK KK KK KK KKKK KK KK KK KK KK KK KK KK LL LL LL LL LL LL LL LL LL LLLLLLL MM MM MMM MMM MMMM MMMM MM MMM MM MM M MM MM MM MM MM MM MM MM MM NN NN NNN NN NNNN NN NN NN NN NN NN NN NN NNNN NN NNN NN NN NN NN OOOOO OOO OOO OO OO OO OO OO OO OO OO OO OO OOO OOO OOOOO PPPPPP PP PP PP PP PP PP PPPPPP PP PP PP PP QQQQ QQ QQ QQ QQ QQ QQ QQ QQ QQ QQ QQ Q QQ QQ QQ QQQQ Q RRRRRR RR RR RR RR RR RR RRRRRR RRRR RR RR RR RR RR RR SSSSS SS SS SS SS SSSSS SS SS SS SS SSSSS TTTTTTTT T TT T TT TT TT TT TT TT TT UU UU UU UU UU UU UU UU UU UU UU UU UU UU UU UU UUUUU VV VV VV VV VV VV VV VV VV VV VV VV VV VV VVVV VV WW WW WW WW WW WW WW WW WW W WW WW WWW WW WWWW WWWW WWW WWW WW WW XX XX XX XX XX XX XXX X XXX XX XX XX XX XX XX YY YY YY YY YY YY YYYY YY YY YY YY YY ZZZZZZZ ZZ ZZ ZZ ZZZZ ZZ ZZ ZZ ZZZZZZZ  PP PP PP PP PP PP PP PPPPPP PP PP PP PP QQQQ QQ QQ QQ QQ QQ QQ QQ QQ QQ QQ QQ Q QQ QQ QQ QQQQ Q RRRRRR RR RR RR RR RR RR RRRRRR RRRR RR RR RR RR RR RR SSSSS SS SS SS SS SSSSS SS SS SS SS SSSSS TTTTTTTT T TT T TT TT TT TT TT TT TT UU UU UU UU UU UU UU UU UU UU UU UU UU UU UU UU UUUUU VV VV VV VV VV VV VV VV VV VV VV VV VV VV VVVV VV WW WW WW WW WW WW WW WW WW W WW WW WWW WW WWWW WWWW WWW WWW WW WW XX XX XX XX XX XX XXX X XXX XX XX XX XX XX XX YY YY YY YY YY YY YYYY YY YY YY Y MUTIL2 *,0200.>PQIII?III PPIPtI _B&0&0 5 0 5 &.i h00.it= 5 2=A=ZI=:L@E(j( h0= (0R((iP*i( h02@* RXt* E( h05((i**iP ,h(i0`( h0=$R,(Ph,hRu*,i0`u* h09=PR=Y5Pq9=LR=Y5Pq9=ER^=Y5Pq9=SR^=Y5Pq9=TRq^*i h05^0=A=PI=X=ZILRnh =Error in $T parameter i hPq:PYPqP|_09=ARP]9=BRP]9=CRP]9=DRP]9=ERP]9=FRP]9=GRP]9=HRP]9=IR'P]9=JR9P]9=KRKP]9=LR]P]: +5Y_ h5h` +05Ph=MODE;=A;X|i=LDA;=C;X|j=LDD;=B;X|=LDP;=A;X|=LDI;=A;X|=LDAL;=B;X|=LDAG;=B;X|=LDLS;=K;X| =CAE;=I;X| =CAS;=I;X| =BUFV;=A;X| =LDLS;=K;X| =LDGS;=K;X|=LDDS;=K;X|=LODI;=A;X|=LLI;=B;X|=LII;=C;X|=LGI;=B;X|=LITI;=B;X|=STOI;=A;X|=SLI;=B;X|=SII;=C;X|=SGI;=B;X|=COPI;=A;X|=DELI;=A;X|=INCI;=A;X|=DCRI;=A;X|=LITY;=K;X|=STOT;=K;X|=LODT;=K;X| =LODR;=A;X|!=LLR;=B;X|"=LIR;=C;X|#=LGR;=B;X|$=LITR;=E;X|%=STOR;=A;X|&=SLR;=B;X|'=SIR;=C;X|(=SGR;=B;X|)=COPR;=A;X|*=DELR;=A;X|.=STRT;=A;X|/=LDRT;=A;X|0=LODS;=B;X|1=LLS;=G;X|2=LIS;=H;X|3=LGS;=G;X|4=LITS;=D;X|5=STOS;=B;X|6=SLS;=G;X|7=SIS;=H;X|8=SGS;=G;X|9=COPS;=A;X|:=DELS;=A;X|;=ADJS;=B;X|<=CCS;=A;X|==LIT2;=L;X|@=LODE;=A;X|A=LLE;=B;X|B=LIE;=C;X|C=LGE;=B;X|D=LITE;=F;X|E=STOE;=A;X|F=SLE;=B;X|G=SIE;=C;X|H=SGE;=B;X|I=SRNG;=A;X|J=TEQ;=A;X|K=TNEQ;=A;X|L=CTSC;=B;X|M=TGEQ;=A;X|N=CTSI;=B;X|O=TLEQ;=A;X|P=JMP;=I;X|Q=JPCT;=I;X|R=JPCF;=I;X|X=CAL;=J;X|Y=RET;=A;X|Z=XCAL;=C;X|[=XRET;=A;X|\=LPN;=A;X|^=EOP;=A;X|_=INT;=B;X|`=FRIT;=I;X|a=FRID;=I;X|b=FRCT;=I;X|c=FRCD;=I;X|e=LTRC;=B;X|f=PIN;=L;X|g=POUT;=L;X|h=L0;=A;X|i=L1;=A;X|j=L2;=A;X|l=PUSH;=A;X|m=POP;=A;X|n=COPE;=A;X|o=DELE;=A;X|p=LODN;=A;X|u=STON;=B;X|v=SPARM;=B;X|w=SRET;=A;X|x=LELM;=A;X|z=DAE;=A;X|{=DAS;=A;X|}=SELM;=A;X|=ERR;=A;X|YP _hh= 5=0=9ILE=i "#%&(+-./079;AZ[]^_`abcdefghijklmnopqrstu*wyz{|}~Jv\xNPQUVWRNKE=N5=N5=N5hhjhlh^=N5g=N5_iacenhj15:?N @E~$63'NE?=E LNE3h?ACE579^=N5^=N5^=Z5hXqYPII_1tj E0=:RTti E0@5 `Qj t E05P,Pkh5t0 5 =ERR5)5)))Y_ hX hXthhZ j= TEMP3.$$$hXYPhII@IIIPqP'II_/h505 =$$$5'5'''Y_=TEMP1;X'=TEMP2;X'=TEMP3;X'YPI _ h5g0=NR-ai `   05PR-0  0  jPiiiiYPG_ CER|0 iP i7i`  iPRZiiYP_  3h R 0 ii  Ph i`H  0 iP#YPL_hiǸR   iiiR=Error : INT file too large i PTYPsP P_ 050 0 05Y_ i j  05 0;Xi 0;XY_? A R@P5i i` jX PRYP%P_7CR$PY_ M itj E0=:R| `yt E0 iP]Pi`t E0 iP3g0=YRjP_ij jhX  jj=0300   = Module size =  = dec bytes  i4`ghiPWY_hhZ i= TEMP2.$$$@t0 =.INT< hX%hXLhXshXhXhXGhXq^0=YR=End of compile for  t0  j h Y_\iRhXP(jR(hXhP([RUe%/9Vis} Coswz %-7?IQ[f)B[s 8Pi.G`y $<Tm2Kc{ ( @ X p   4 M f   + D \ t ! : Q h   . G ` x -<FOR +Edz$/7FJat 5Wp"EO^hwzXe#&i`t E0 iP3g0=YRjP_ij jhX  jj=0300   = Module size =  = dec bytes  i4`ghiPWY_hhZ i= TEMP2.$$$@t0 =.INT< hX%hXLhXshXhXhXGhXq^0=YR=End of compile for  t0  j h Y_\iRhXP(jR(hXhP([RUe%/9Vis} CoswzMPTYPE 0200PkII I II?III PiPq_RjZYP_@RjZYP_KRhZPjZYPP_ iRP Z i_hZYPNP7_ORMhZP:Y_ hhZ@Rp jZ _hZhZOR  jXhZ@R jZjZ'!!XqhZKRhZ@CD>?@NRhX7ORdBXqhZhX7P?hZEXqhZFR=V; XRFXqhZKRhZPY_09=RRjZ'hPA9=VRAiR>P&PA:@RjX hZORBXqhZ@RjZijXhZPdhZjZ! '       RKRhZPBhR3 jXjRAhXN09=RRqZ P9=VRP:YP_ hhZ@R jZ jjP_hZZR  PXRiR iPR) jjPARA jP+RY jPJRijZ! 'P)_hZjZ 'hPP jZP !#jjZ'RhZYP_ P _!#%jZ'YPC_ @CD?>NRkjZ>R =C5 i +05PCDRhZPX@?NRjZ?R =I5Pv_hZZQ+iRA =I5!PrRg =C5 i +05PrjZPrPvDRhZYP_hXCTXqhZ  05  05hXC 0 0RjZP 09=IR?R  jZP<iX P9=CR 0 0Rd jZP 0 0 0iX P:YP_hZhhhX )_hZ!hjZhZFR$ BXqhZ@RjZ)_hZ!!ijZhZPhZ!iZ YPG _ jZjhZY_ERu hXP CD>?NR hXPr @R hXG Pr _hZZR 'hZP iQ Q Q R hXP XR iR/ hZP RF jhZP +R_ hZP ARx hZP JR hZLR hZhXC 0=IR MjZ!h#jjZ'MXqhZP P hXG P P hXG P YP _hZXqhZhX_ !h#jZ'YPl _hZXq hZjZ'#5jZ'#5YP]IIP _;3i 55hZ     05  i  Z iiRH Z YP _R jZ0 5 Q1 hR> :=I5P^ RS :=C5P^ jZP^ 8 :058 8 88iYP _;=F5@?CD>ENR}ihX_ ;  RCjZMR@hZP-PbhX ;  :05BMNXhZP YP_;=T5iNR;iR=I5PiR=C5PRjZMRhZPP;  05hZBMNXhZP Z Y_=hZL XqhZiNRiPhjZ '';! ;Z 8ihRhXPhX ;R hZPjZjZ !;  'Z Rh; hX Y_\RhXPRhX]P8RhX PRhXl P,RhZhh=R; X XqhZPhX_ P'hR|RahQ6R>!jP]RN!iP]!P]Px!PxPjQR!jPR!iPR!PR!RP[lo~25CKf8=HU_bt0<?LUmz!1:?Mow'/?GW_Aa|#)?G\ept:=EWb" E k p s     - 5 D L ] e v ~      - 7 j  T g z  ) / < D Q \ i  #6>AFVs{19p Pfw| ,4<DL[_vzR hZPjZjZ !;  'Z Rh; hX Y_\RhXPRhX]P8RhX PRhXl P,RhZhh=R; X XqhZPhX_ P'hR|RahQ6R>!jP]RN!iP]!P]Px!PxPjQR!jPR!iPR!PR!RP[lo~25CKf8=HU_bt0<?LUmz!1:?Mow'/?GW_Aa|#)?G\ept:=EWb" E k p s     - 5 D L ] e v ~      - 7 j  T g z  ) / < D Q \ i  #6>AFVs{19pMSTMTA 0200PDIII?II P PJ_RbjZYPf_KR|hZPjZYP_=L;=N;Z YPP_jX0=IR+jZ4R`hhZ P! RahhZ P!,jZP!hhZ hZjX0=IRS+jZ RfhZPn-jZ 3hhZ =ZPh Z hZ YP_jX0=CR+jZ4RbhhZ P1 R&chhZ P1,jZP15hiZ hZjX0=CRc+jZ;hiZ  RhZP-jZ 3hhZ =ZPh Z hZ Y_ hZ_hZZ=S;=Y;Z hhZ S(XJhZ09=IROhXPj9=CR_hXPj+jZPj:YPo_n@KNEhZ@RPZ RhXfP XJhZYP_n@KNEhZ3@RP-Z<R*hXfP<.XJhZjX0=BR_/jZRhZ YPII_ hhZjXRhZPjZ0509=IQ9=BRPa9=NQ 9=CR!9:Pa9=RRA)*Pa9=ERanJoPa: h RhORoBRhZRhZiPhhZ jX00R00<509=CNQ9=NCRP*jZP:hhZ ORGhRDRhhZ =PliQhhZ  =Pw i`  hZ PzhZZ  iPhhZ   =hRhZ  RhXfPg i `(  hZ P hhZ hZYP>_ 'hZERnZ h Z QRXPZP Z YP_=S;=Y;Z S(XJhZ0=RR!=R5P*=N5=L;0; Z 0 0R0 0<9=RIRhhZ P9=NCQ9=CNRP)jZP:hZ YP_ hZjX0=BR/jZ2R hZP jZRhhZ =ZRR hZ P PhhZ =hZ hZZhZ YP _ hZ3jX0=BR /jZRhhZ = R hZP jZZPhZ hZ YP< _Rz PL R P YP _hZ?R jX< R jZP hR i3Z PhhZ P PhZ P( jZhZYP1 _hZSRP NjZP KQ` ERk OjZP LR~ PjZP IR QjZP R RjZP SjZP K NR hZP Y_\?RO jX< R jZP/ hR ihZ i3Z hZORG hZPO jZ@R _hZZQ  Q  Q  Q  Q  R hXP Q Q R hX>P XR 9Q> 7Q> .Q> 0Q> -Q> /Q> &Q> Q> cQ> *Q> Q> (Q> RT ZP aQ :Q Q vQ "Q %Q Q xQ \Q UQ VR ZP hX1 P P hX1 P PhR hXoP R PRhXPjRhXPR%hXP5R5hX P1REhXPRUhX P:RsZPKR~PSjZK NRhZPP[EHWdrz9I\d$/IYx/EJMUZ]hm#(+8EUp'?G_p %.Eem{ &<Wa} > P : i x   / C N V ^ i q |  = E Y x    $ , 4 < R Z b j r z   #+03;@CKPS[qy|/Q> &Q> Q> cQ> *Q> Q> (Q> RT ZP aQ :Q Q vQ "Q %Q Q xQ \Q UQ VR ZP hX1 P P hX1 P PhR hXoP R PRhXPjRhXPR%hXP5R5hX P1REhXPRUhX P:RsZPKR~PSjZK NRhZPP[EHWdrz9I\d$/IYx/EJMUZ]hm#(+8EUp'?G_p %.Eem{ &<W EXTERN {=================================================================} FUNCTION arctan (x : real) : real; CONST half_pi = 1.5707963267948; sixth_pi = 0.52359877559828; twelfth_pi = 0.26179938779914; sqrt3 = 1.7320508075689; VAR flag2, flag3, i : integer; result : real; sign : char; {=================================================================} PROCEDURE compute; VAR flip, power, x2, odd1, result2 : real; i, j : integer; BEGIN (* compute *) flip := 1.0; power := x; x2 := sqr(power); odd1 := 1.0; j := 0; i := 0; result := 0.0; REPEAT result2 := result; result := result + flip * (power / odd1); odd1 := odd1 + 2.0; flip := - flip; power := power * x2; j := j + 1; i := i + 1; IF i > 5 THEN BEGIN i := 0; IF abs(result - result2) < (1e-12 * result) THEN result2 := result; END; UNTIL result = result2; END; (* compute *)  BEGIN (* arctan *) IF x = 0.0 THEN arctan := 0.0 ELSE BEGIN IF x < 0.0 THEN BEGIN x := - x; sign := '-' END ELSE sign := '+'; IF x > 1.0 THEN BEGIN x := 1.0 / x; flag2 := 1; END ELSE flag2 := 0; IF x > twelfth_pi THEN BEGIN x := (sqrt3 * x - 1.0) / (x + sqrt3); flag3 := 1; END ELSE flag3 := 0; IF (abs(x) <= 1.0e-08) THEN result := x ELSE compute; IF flag3 = 1 THEN result := result + sixth_pi; IF flag2 = 1 THEN result := half_pi - result; IF sign = '-' THEN arctan := - result ELSE arctan := result; END; (* else *) END; (* arctan *) .  ELSE arctan := result; END; (* else *) END; (* arctan *) .  x := - x; sign := '-' END ELSE sign := '+'; IF x > 1.0 THEN BEGIN x := 1.0 / x; flag2 := 1; END ELSE flag2 := 0; IF x > twelfth_pi THEN BEGIN x := (sqrt3 * x - 1.0) / (x + sqrt3); flag3 := 1; END ELSE flag3 := 0; IF (abs(x) <= 1.0e-08) THEN result := x ELSE compute; IF flag3 = 1 THEN result := result + sixth_pi; IF flag2 = 1 THEN result := half_pi - result; IF sign = '-' THEN arctan := - result ELSE arctan := result; END; (* else *) END; (* arctan *) . *CONVERTME Z 0300\ P IIIIIhIPT_ j5i  05j  05 i 05 j 05YPI_Rh =File not found i hYP I_=Convertm ver 4.0 i h =enter name of REL file :  i h =.pNhR=*enter filename only, do not enter filetype i P'h (ip=.rel<@(jX ih(l i mi h]ip=.int< i` h5P]l0 mihYP,_  j ]lmji i`]l EmiPm]lmij ijYP_]ip=.int<]lh. /mi 05 =03005i 5j M5 i5]lh.0 /mi ]YPj_R(l i mih_ 0;ZR=15P=05iYP_i _ihXj5j _ihXj505YP _ _jhX5_jhX505YP>_ h i`_ihXj=1Rw   jPW5YP_h_ihXj=1R_ihXj=1Rj_ihXj=1RiYP__ihX>5_ihX>500YP3_]l_ihX> mi  iYPX_ h_jhX9=00R= absolute  iP9=01R=program relative  iP9=10R=data relative  iP9=11R=common relative  iP:_hX= =  j YP_ = name field  i_hX= len = j= 5i`y _ihX>5P]= =  0 j YP_=-- special link item i _hX 9=0000R= entry symbol  ihXPY 9=0001R=select common block  ihXPY 9=0010RF= program name  ihX05PY 9=0101Ry=define common size  ihXXhXPY 9=0110R=chain external  ihXXhXPY 9=0111R=define entry point  ihXXhXPY 9=1001R =external plus offset  ihXXPY 9=1010R7=define data size  ihXXPY 9=1011Rf=set location counter ihXXPY 9=1100R=chain address  ihXXPY 9=1101R=define program size  ihXXPY 9=1110R = end module  ihXXR_ihXj5PPY 9=1111R% = end file  iiPY = *** error - unknown special item i iPY :h YPb __hX=program relative =  _jXT j ]lmi  E   i  jYP _=data relative =  __hXjXT j YP _=common relative =  __hXjXT j YP= __ihXj9=0RY hX3P 9=1R _jhX9=00R{ hXP 9=01R hXb P 9=10R hX P 9=11R hX P :P :Y_hX R hX= P hX,(]hX= byte count =  j h =Convertm processing complete i Y_\++++F+~/ > +6+6+6+6TESTBIT ! tRhq~f*n|(6Fhv)<Xah1AVgp2^hqw 5DOotw 25@ado # W ` n  , 1 ; G O T W _ h q v y 2 5 M  9=1111R% = end file  iiPY = *** error - unknown special item i iPY :h YPb __hX=program relative =  _jXT j ]lmi  E   i  jYP _=data relative =  __hXjXT j YP _=common relative =  __hXjXT j YP= __ihXj9=0RY hX3P 9=1R _jhX9=00R{ hXP 9=01R hXb P 9=10R hX P 9=11R hX P :P :Y_hX R hX= P hX,(]hX= byte count =  j h =Convertm processing complete i Y_\++++F+~/ > +6+6+6+6TESTBIT ! tRhq~f EXTERN {=================================================================} FUNCTION cos (x : real) : real; CONST half_pi = 1.5707963267948; pi = 3.1415926535897; two_pi = 6.2831853071796; VAR i : integer; {=================================================================} PROCEDURE compute_cos; VAR result, result2, f, exclam, x2, power, odd1 : real; i : integer; {=================================================================} PROCEDURE factorial; BEGIN f := f + 2.0; exclam := exclam * (f - 1.0) * f; END; BEGIN (* compute_cos *) x2 := sqr(x); power := x * x2; odd1 := - 1.0; i := 0; result := x; exclam := 6.0; f := 3.0; REPEAT result2 := result; result := result + odd1 * (power / exclam); power := power * x2; odd1 := - odd1; factorial; i := i + 1; IF i > 5 THEN BEGIN i := 0; IF abs(result - result2) < (1e-12 * result) THEN result2 := result; END; UNTIL result = result2; cos := result; END; (* compute_cos *) BEGIN (* cos *) IF x = 0.0 THEN cos := 1.0 ELSE BEGIN (* else_1 *) x := x + half_pi; IF (x = 0.0) OR (x = pi) OR (x = two_pi) THEN cos := 0.0 ELSE BEGIN WHILE x < 0.0 DO x := x + two_pi; WHILE x > two_pi DO x := x - two_pi; compute_cos; END; (* else *) END; (* else_1 *) END; (* cos *) . sult := x; exclam := 6.0; f := 3.0; REPEAT result2 := result; result := result + odd1 * (power / exclam); power := power * x2; odd1 := - odd1; factorial; i := i + 1; IF i > 5 THEN BEGIN i := 0; IF abs(result - result2) < (1e-12 * result) THEN result2 := res %TITLE('----- CRT Mapping Utility _____') %PAGE(50) { This version setup for Televideo terminals. To adapt to other terminals modify PROCEDURE PART2 which generates the cursor positioning (gotoxy) and clear screen (clear) codes. } {=================================================================} PROGRAM crtmap; TYPE char16 = ARRAY [1..16] OF char; VAR ch : char; alphameric : SET OF char; end_of_file : boolean; map_file_name : STRING[15]; word : char16; exproc_name : char16; include_name : char16; record_name : char16; f1, f2 : FILE OF char; {=================================================================} PROCEDURE error (msg : STRING[40]); VAR dummy : char16; BEGIN writeln; writeln; writeln(msg); writeln; { abnormally terminate - return to CP/M } call(0, dummy, dummy); END; {=================================================================} PROCEDURE get_char; BEGIN read(f1; ch); IF ch = chr(1ah) THEN error('Premature end of input file'); write(ch); END; {=================================================================} PROCEDURE get_word; LABEL 99; VAR i : integer; BEGIN word := ' '; WHILE NOT (ch IN alphameric) DO BEGIN get_char; END; word[1] := ch; i := 2; get_char; WHILE (ch IN alphameric) DO BEGIN word[i] := ch; i := i + 1; get_char; END; word := upcase(word); END; {get_word} {=================================================================} PROCEDURE init; BEGIN writeln('CRTMAP ver 4.0'); writeln; write('name of Map Description File : '); readln(map_file_name); writeln; writeln; reset(f1, map_file_name, binary, 256); end_of_file := false; ch := ' '; alphameric := ['A'..'Z', 'a'..'z', '0'..'9', ':', '.', '_', '$']; get_word; IF word <> 'EXPROC' THEN error('EXPROC command expected'); get_word; exproc_name := word; rewrite(f2, exproc_name + '.pas', binary, 256); get_word; IF word <> 'INCLUDE' THEN error('INCLUDE command expected'); get_word; include_name := word; get_word; IF word <> 'RECORD' THEN error('RECORD command expected'); get_word; record_name := word; END; {init} {=================================================================} PROCEDURE part1; BEGIN writeln(f2; '{ CRTMAP generated external procedure }'); writeln(f2; 'extern'); writeln(f2); writeln(f2; 'type'); writeln(f2; '%include (''', include_name, ''')'); writeln(f2); writeln(f2; 'procedure ', exproc_name, '( var r : ', record_name, ');'); writeln(f2); END; {part1} {=================================================================} PROCEDURE part2; BEGIN writeln(f2; 'procedure clear;'); writeln(f2; 'begin'); writeln(f2; 'write(chr(27),''*'');'); writeln(f2; 'end;'); writeln(f2); writeln(f2; 'procedure gotoxy ( x,y : integer );'); writeln(f2; 'begin'); writeln(f2; 'write(chr(27),''='',chr(y+20h),chr(x+20h));'); writeln(f2; 'end;'); writeln(f2); END; {part2} {=================================================================} PROCEDURE part3; {create DISPLAY procedure} {=================================================================} PROCEDURE process_coordinates; VAR x_coord, y_coord : char16; BEGIN get_word; x_coord := word; get_word; y_coord := word; writeln(f2; 'gotoxy( ', x_coord, ',', y_coord, ');'); END; {=================================================================} PROCEDURE process_string; BEGIN {find start of string} WHILE NOT (ch IN ['''', chr(0dh), ' ', chr(9), chr(1ah)]) DO get_char; IF ch <> '''' THEN error('Literal string expected'); write(f2; 'write('); REPEAT write(f2; ch); get_char; UNTIL ch = chr(0dh); writeln(f2; ');'); END; BEGIN {part3} writeln(f2; 'procedure display;'); writeln(f2; 'begin'); writeln(f2; 'clear;'); WHILE NOT end_of_file DO BEGIN get_word; CASE word OF 'LITERAL' : BEGIN process_coordinates;  process_string; END; 'FIELD' : BEGIN process_coordinates; get_word; writeln(f2; 'write( r.', word, ');'); END; 'CURSOR' : process_coordinates; 'END' : end_of_file := true; ELSE : error('LITERAL, FIELD, CURSOR or END command expected'); END; END; writeln(f2; 'end;'); writeln(f2); END; {part3} {=================================================================} PROCEDURE part9; BEGIN writeln(f2; 'begin'); writeln(f2; 'display;'); writeln(f2; 'end;.'); END; {part9} BEGIN {crtmap} init; part1; part2; part3; part9; close(f1); close(f2); END {crtmap} .  BEGIN get_word; CASE word OF 'LITERAL' : BEGIN process_coordinates; MCUSTOMIZ0300P7IUII'I_=A=PILE=Customiz ver 4.0 i h h =$Which disk is PAS4.COM located on :  ii i =%Which disk is EXEC4.COM located on :  ii i h i0= :pas4.com<Ti0= :exec4.com<lh. /mi Tlh. /mi =6The disk search list may contain up to 4 disk letters. i =8These indicate which disks will be searched for external i =6procedures and for PASCAL.LIB. Pascal source programs i =6are not searched for by the compiler and compiled main i ='programs are not searched for by EXEC4. i h =4The disk search list is entered as 1 to 4 contiguous i =8characters, e.g. ABC. There must be no spaces, commas, i =or quotation marks. i h =enter new disk search list :  i i 05i`u +0@Rr +=Z5PIh  +=Z5U05U05lh.0 /mi Tlh.0 /mi Th =end of Customiz i YJT`jsM located on :  ii i =%Which disk is EXEC4.COM located on :  ii i h i0= :pas4.com<Ti0= :exec4.com<lh. /mi Tlh. /mi =6The disk search list may contain up to 4 disk letters. i =8These indicate which disks will be searched for external i =6procedures and for PASCAL.LIB. Pascal source programs i =6are not searched for by the compiler and compiled main i ='programs are not searched for by EXEC4. i h =4The disk search list is entered as 1 to 4 contiguous i =8characters, e.g. ABC. There must be no spaces, commas, i =or quotation marks. i h =enter new disk search list :  i i 05i`u +0@Rr +=Z5PIh  MDEBUG 0300PP_ \h =Activate line trace? y/n :  ii i 0=YR=Range of lines? lower,upper :  i j  P=!Activate procedure trace? y/n :  ii i 0=YR Ph [HDEBUG $$$MERASE 0300GPPI IIP0_'pujx=:Reix@5Prh5i= 5 p= RP=A=ZI=0=9I=$=/LEx@RiPi x5iix@Rx@R1iP R?P i` x5iiPP0 5 Y_=\1_  pvX05 10 5#0Rh =%Erase - file does not exist:  p j [.Hc"/:=Q[}ÊçZ Copyright 1983 JRT Systems DISKSABZZZç[!9"1Ù [͕[]\U\c]u^ͦ[(*]DM*ofͦ*_####q#p͂ >2:xZ* Program termination $>2*]"d*d*d"d\3\""`i"*^#V#"{Šzʟ*^#V+*s#rt*_w#w#w#w#s#rx2L"JOH*J:LGdHI!yw# y*J@ z{xN*J:LGd"M-*gM!.# !IyEw# y;*Mx2"!"*""­*͹\"ʗ**DM*"Ý*Y:G**ͩɯ<##N#Fxyxxyx`i>`i>^#V><"O"Q`i"U "W*Q|/g}/o#T]"S*U*Ws#r#*Ss#r*W*s#r*s#r*c *eDMz/W{/_`iDMxyxڥ`i"e*Jͩɯ G*%5+V+^xɯ<48#+C.!,# +~>8>4q#p#s#r#w"*:_s#r#s#r#p**s#r#64"" <26#6#N6#F6#~6**"s#r#q#p:4*:_M\*^#V ^#V+|^&--  $MͯXͯC !*# virt addr:1234 call:1234 $}xgxqg{q&* >“#ʞŠ!-# +"> 2@!͹:_!))>p#p#="|!*"s#r#s#r6#w#w#w#w*:_>w#w#w!N#F#N#F |}*e*cDMx/Gy/O *>Y*}#"}ͱ ͑ {ʞ"##^#V" :_!*^#V*5 i "!""2W2N*"!"- !1 "/ *- #"- *gL:I$ :I */ 6#6#"/ *I:I*/ s#r#"/ */ 6#6* ^#V##{ z ¶ 4~ w !"1 *"3  *3 ^#V##"3 { z *1 5 "1 + *1 w#w#w#w#"1  >4^#V#xI yxy ###=< yd xd q#p#*w DMq#p###~ BK++++"w !> ^#V#x¦ yxگ û BK++" ##2##=™ x :_> 2* ɯ<"C N#F#`i"K ^#V#~2I bk +*DMQ "M ~+ z `i"`i"O ~w : *K *M *O DMͽ :I @ă z/W{/_`iDM`i"G *C ^#V+"E q#p ¼ *G s#ro&))*E *G z/W{/_##N#F r+s" " `i" | }x * " * |/g}/o#T]" * DM* fI !1 >N#F#x* yx< <@ !+# _*gL*I* " * +" !]͛ *_DM*a!xw yxʖ ͛ bk##^#V!n ^#V* DMz® {x* DMz {x* DM r+s**E DM^#V##z {x < !/# +++Gx!"*#"e>28 *ͯ O G $|#}3E . P  %Error: Insufficient main storage$:wͯ     5 ͌ %Warning: $*a*_z¿ {x :' ! :OG͗*|n:#~#      " %Line 1234 $%Main $%Proc $4*]ͯ![ͯ*oͯ*_ͯ*aͯ*cͯ*eͯ*}ͯ*ͯ addr :0000 prog :0000 size :0000 base :0000 cur :0000 tos :0000 low :0000 compr:0000 purge:0000 $ 5 !"L2K*L#"L*gL:IB:K<<2K N 5 exproc name addr use cnt time stat $ 12345678 0000 0000 0000 00 $|B'r#s#yB'r#s:LG:> >+2I!w# *I:Iͯ*Iͯ*Iͯ:IB'cj" :1:11:1@2a!1c ~# ::1B'cj"p<@2t a :----------- 00 * $PAS40 LIB"^"`n2!͹"f"d͔*^ͪ*f͌*b*`!N#F#z€{xڏN#F#x¼yx######=¯h~# *`|*j͹"b"`*f"d*h8"b"d*jz/W{/_`iDM|-}x5`i"f*jz/W{/_8"h"j*`"lnͨ*d:b2xʌ*d*d*l:fOw# œ"l:h=2h*l]T "lxʨ:j*dx:jO*d*lw#    Msg err $ $ PAS40.LIB error $}_}|og%Error: ͪ*cs#r#"cÂ*]N#F#"]*c+V+^ s#rÂ*c+V+^^#Vs#rÂ*c+V+^N#Fq#pÂ2I͟͜*c+V+^ s#rÂ>2Iëxy{PY!)))))))*]^#V#"]*a*cs#r#"cÂ*]^#V#"]*_*cs#r#"cÂ*]^#"]*a*cs#r#"cÂ*]^#"]*_*cs#r#"cÂ*]N#"]*c+V+^ s#rÂ*c+V+^C:1:1@*1*1s#rÂ!i$ *c+V+^"c~6‚#~6‚#^#V͌Â2I*c+V+^"c~>#~>#^#V#"<͜*< *cs#r#"cÂ!R# >2I*c+V+^"c*cs#r#"cÂe*c+V+^"c*cs#r#"cÂ!"J2L:I"M)*cC+F+N+F+Nx/Gy/O N"c^#V#z/W{/_`iDMx=^#V#DM͍C^#V#"M*J"J*M:L=2L*JDM!)# !(# kͣÂ*c+V+^"[+~2]"^+F+Nq#p#`i"`"c"b*c+~2dIʶ1ù"c*`"i*e*gz/W{/_#*`DM"`*bdw# "b:]=2]£*`*^s#r͹*[6#6#s#r+V+^"g+V+^"e+V+^z/W{/_~2g+V+^z/W{/_~2e2h2f*c@ *ezڂw|{ڂ!3# *]^#"]!^#VQOc}4PPl#5S  ....0C8 W+WS ?$h$$$ +--+G.G,.]k6 ZPjzL..R!z!p#@##D#../4/// -1- 0000 0%0MUcUTTTU4UVVVVVV0%5%:%?%D%I% !$!;!d---k&&UU&&$GF&&&Ug'1T!!8">>>zx½yx>>>>*]Fx2O#'~#N#Fp+q##"]`in:> ~#6 #6 :x@ʂ! :OG͗Â%Entry *]N#T] "]:x@ʂ A^#u Â%Exit $ $^#™*n:ʯʯ 4ʣ0  *@ ʹ!E#t :!x!4# ^[*]~#^#V#"]*a^#V=*c"as#r#s#r#s#rÂ*a+~/G+~/O "c##^#V#"a^#V"]Â*]^#V#"]Â*]^#V#"]*c++~"cڂ"]Â*]^#V#"]*c++~"c҂"]Â*]^#V#"]*c"c*ez{xa*gM*gMNaͪ"/Jy*] *c+V+^"c/J6*c+F+N+V+^^#Vr+sxRx:/y:*]##"]Â*c++++"c*]^#V#"]Âz/:*c+F+N+V+^^#Vr+sxzڊ{ڊ*]##"]Â*c++++"c*]^#V#"]Âzڊ*c+N+V+^^sy*]##"]Â*c+++"c*]^#V#"]Â*c+N+V+^^s{*]##"]Â*c+++"c*]^#V#"]Â**cs#r#"cÂ*c+V+^N#Fq#pÂ*]^#V#"]*aN#F*cq#p#"cÂ*]^#V#"]*cs#r#"cÂ*cs#r#"cÂ*cs#r#"cÂ*cs#r#"cÂ*c+V+^w#£"cÂ*]*cw#º"c"]Â*]^#V#"]BK*c+V+^*]~#GO*cw# p#6#"c"]a"]*c6#6#"cÂw# yq#p#"ca*]N#"]*cq#"cÂ͖!] *c+F+N"cq#pÂ͖!] *cw#w#"cÂ*c+V+^w#"cÂ*c+~ "cÂ*cw# "cÂ*c+F+N+V+^"cq#pÂ*]^#V#"]*c+F+N"c*aq#pÂ*c"c^#V#~# H Â*]^#V#"]BK*c+V+^z/W{/_+V+^"c" Ä 2 z‘ {xҸ >2 z/W{/_`iDMy2 x2 BK* w# y¼ : *  p#z Â*c"c^#V#~# Â*c+~/w+~/wÂ*c+F+N"c+V+~w#zwÂ*c+F+N"c+V+~w#zwÂ*c+F+N"c+V+~w#zwÂ*c+V+^N#F#yn!~# yd!s#r#"ca͟*c+F+Nx/Gy/O x™!yxڡ!BK+V+^"c##yxyʂ~# yµ!Â*c+V+^N#FyxÂ*c+V+^"6"+V+^+F+N*6"x!yx"!F# x/Gy/O *6"DMy*"~# y "s#r#"cÂ*c+~NN"+V+^"6#V"!"6#+F+Nzc"{xu"u"u"!G# x/Gy/O "8#+V+^":#z/W{/_"<#"cy"{"~25#*6#+|/g}/o# DM:5#"# y"*cw#w#"cÂ*:#">#*<#*>#+">#|# y#"#""*8#|/g}/o#T]*cs#r#"c *c+V+^z/W{/_T]N#F#~# xZ#s#r#"cÂ*c+T]F+N+xʈ#~+ {#͟+DM"cz #{xڮ#}|a{za*c+"cV+^+F+N`iN#Fx#yx#~w#6#6Â!O# $*c+F+N+V+^"c^#V z ${x$wÂ!P# *c+V+^z:$z/W{/_~"c"c*cDM+V+^z/W{/_~#zV$`i"ca*c+V+^z/W{/_"cÂ͟*c+F+Nx”$yxھ$z/W{/_`iDMx/Gy/O "cÂx/Gy/Obk T] p#z$"cÂ*c+F+N"cx/Gy/O +V+^`i",%".%T]x%w# x%*,%DM*.% s#rÂ>N%>N%>N%>N%>N%>N%2e&*c+V+^"h&z/W{/_T]+F+N`i"f&x/Gy/O "c2j&*f&DM*h&x%yxʰ%ڭ%MD>2j&õ%>2j&x%8&3&# x»%:j&=&&*f&*h&DMx/Gy/Obk T]~ 3&8&#z%=&*f&*h&DM|/g}/o# DM 8&3& x &=&>?&>?&>G:e&V&*c6#6#"cÂ*c6#6#"cÂ*c+F+Nx/Gy/O #6#"cÂ*c+6#6#"cÂ*c+V+^z/W{/_~'"c)+r+s+"@'*<'|9'+"<'*>'~+">'B'*@'s+r+"@''aG O'7Q'0_x c'7e'0W*c+V+^z/W{/_̀'Â{~͍'w#À'a{ *c+V+^+F+N"c͹s#rÂ*c+V+^"c^#V͌Â*c+V+^+F+N"cͩs#rÂ*c+V+^"8(+F+N+V+^"c"(`iN#F#N#F#^#V#^#V*8(q#p#q#p#s#r#s#r#Â*c+V+^"c{ʌ(ʗ(ʢ(ʭ(ʸ(ʾ( ( ( (((()!@# :w2wÂ:w2wÂ:w@2wÂ:w2wÂN Â:w2wÂ:w2wÂ:x@2xÂ:x2xÂ:x2xÂ:x2xÂ*c+V+^"{+V+^"c"yÂ*c+V+^z/W{/_F++~"c2A)xÂ*c+V+^z/W{/_~+V+^+F+N"c`iGzʂp#g)*c+V+^")+V+^")+F+N`i")+V+^")z/W{/_")"c`i^#V"))7*c*}*͖**)*)*)s#rÂ*)|%*%**)#|*}x+*+*)*)++|*}x1*!T# !U# !V# *)*)#")*)")*)*)z/W{/_#")*)DMx*)*)~+ xr**)*)#")*)")*)")*)DMx*)*)~# x¥**c+V+^"++F+N`i"++V+^"+"c+i+* +* +MDx**+w# y**+*+s#rÂxW+W+*+ +^#V" +z3+{x]+:+c+*+* +z/W{/_"+!Q# !R# !S# *+#*+"+*+" +*+DM*+* +x/Gy/O z/W{/_#" +*c6#6#"cÂ͟"E,!,>6#=+*E,| ,+"E,*c+V+^"cz,*cz/W{/_"c~_ͬ, ,,+Ä,*c+F+Nx/Gy/O ~O+V+^z/W{/_"c~_,͟",!,>6#=T,*,|ʄ,+",*c+V+^"cz~,ͬ,Á,,[,*c,w# Œ,"cÂ{怲{xO!, {G7,w*c+F+N+V+^"cx,yx`i" -"-ͬ,* -DM*-,*c+V+^z/W{/_"c~_@-*cV+^"c##X.U-*c6#6#"cÂ*c6#6#"cÂ*c+T] w+p-"cÂ*c+T] w+Ž-"cÂ*c+T] /w+¬-"cÂ2.-<2.*c T] "c- -:.-*c6#6#"cÂ:.-*c6#6#"cÂ*c T] "c8. .*c6#6#"cÂ*c6#6#"cÂ*c T] "c.xd.yxڃ.{xO {G7|.ɯ*c!~# ."cÂ*c"cÂ*c+F+N##q#p#"cÂ*c++"cÂ*c+V+^s#rÂ*c+V+^s#rÂ*c+~/W+~/_s#rÂ*c+F+N"c+V+^ s#rÂ*c+F+N"c+V+^x/Gy/Obk T]s#rÂ2/*c+F+N"c+V+^xX/x/Gy/O>2/zl/z/W{/_:/2/xu/yx/{PY!҄/)Ҍ/)Ҕ/)Ҝ/)Ҥ/)Ҭ/)Ҵ/)Ҽ/://|/g}/o#s#rÂ*c+F+N+V+^`iͣ0s#r#"cÂ*c+F+N+V+^`iͣ0s#r#"cÂ>*0>*0>*0>*0>*0>*020*c+V+^"c+F+Nx}0zx0xO0yx>^0>^0>G:0o06#6Â6#6Â>^0zҝ0x‹0yx>^0>^0>^0>^0|0z2021z0z/W{/_|0|/g}/o#1:10z/W{/_:0|/g}/o#!1#t z0~1!"I1z1{x21|/g}/o#T]K1ѷ|g}o:H1=2H11*I1:H1i1G>\1[1O:J12J1q1p1O:I12I1}o|gҁ1x2H1*c+~.Â12345678123"254"2*2*2("254"2*2*2!ʹ2!1w# ³22G32H32I3w3Y3!23Z3!53Z3!83Z3!;3Z3!>3Z3!A3Z3!D3Z3:I3G21x:H3_:G3W"1!1͎221 d'B@GN#V#^!I3{w+zw+ywc3~23#R3ͤ3 3:3?_!R3+Y3~+ š3~#Gx:13*1!1͎221*1T]1 w#"1}*1T]#"1!1f2!"1>21*1}4*1#"1!1͎2!"1!1~#"1*1|*1!1f2!1! s#r#6*1:1@f4*1!j4Rj4*18W!j42!"u"u7"w7*c+~21+V+^"c"1v;:1ʣ444*1C:1¹4!9# :1`4:1@4!># 54:1@4!=# N6*1'CÂ> 2165:w 5:w@44 $*1"F56*F5*1DM s`i"16(525W5`i"5{5*1"5*1*1z/W{/_"1*5)|26*1"5"5*5T] "515»5!I# 5!J# !K# :6=26“5:5*5*1 ~# 5*1*1|/g}/o#T]*1z$6{xH5*c+V+^"cC*1*1"16'CÂ!"6E4:1@~6*6*1zo6{x~6~6!:# 6’6{͵3*6#"6W6:1@ʲ6*6*1z/W{/_|ĸ6$4"6:1 6> 26626:6͵3*6+"6|6*u7|6+"u7 K7*w7| 7+"w7*y7^#"y7K7*1|M7+"1*1ͪ;N"1!}7 :1 77 <7"y7"w7`i"u76:1l7:121!{7"y7!"w7629*96.#:9@@960#<"929:9=29#9"9:9<29*9ͼN0*9w#"9:9=29C9:9<29>29:9*9ͼN‘9:9G:9=29t9*96.#:9@Ҧ960#<Ú9"9:9*9ͼN0*9w#"9:9G:9<29é9*1++~"1:!:!:truefalse*1+F+N++~"1<:!:B:!:z/W{/_`iDMx\:*1"1!:":ͮ::ͮ::ͮ::ͮ::ͮ::!:000002:DM|:::<2:ò:`i::0*:w#":ɯ2&;|:|/g}/o#>2&;n:! ;:&;;6- #0;;w# ;Y! ;000000*1+V+^z/W{/_"1*1+F+N+V+^z/W{/_`iDMxf;z/W{/_"1:1G*c+š;V+^+"1xš;"1+"1*1ͪ;#"cz; ʻ;ñ; O~x/Gy/O ;;ê;#N#Fx/Gy/O ;    !"u!1">2c=2>2>2>:121*c+~21+V+^"c"1@:1I<ͺ<Ô<*1C:1_# CÌ<:1@‰>ʩ>ʩ>>>'2>:>>2>2>g>:>:>I> />:121 >>:121 g>,g>*>w#">>2>:><2>d>>:>ʩ>*1+"1*1AN"1!> >:>d>2>2>!1">*1|©>>ɯ>êGo7o7}@:>>>2>:>>>2>ɯ2>>2#?O!1 +~H>$?>?!1~-?z/W{/_BK*1+V+^q#p:"?:#?5?>2"?!ɯ2"?!1~+G?-H?#?~#͠?[? M?!? ~͘?W#~͘?W#~͘?_#~͘?_000000000000:0ھ?:?Aھ?G?aھ?g?H?h?<2"?ɯɯ<:#??>2"?!ɯ2"?:#?G!1~+?-?##@~#k@@ @!@ *@!000000000000"T@'V@V@dV@ V@V@*T@~O#*T@"T@0w@:w@ɯ<2"?*1+V+^+F+No&z”@{xڵ@ʵ@|/g}/o#T]"@T]û@!"@!1z@~#þ@`i*@z6 #@:1G*c+AV+^+"1xA"1+"1*1A#"cz8A #AA O~x/Gy/O A  !"u͊A!"1:1`A:1@vA |A BA%BATB*1'CÂ*c+~21`ʞA+V+^"A+V+^"Az/W{/_+V+^+V+^"c"1!14w# A>21"1*AmB:1`BB*1͹"1!"111!K# 1GB!M#t :12121>2DC2D11!K# 21#~+:ƒB~21##!1 6 # ‰B1~#.ʱB–B~#.ʱBåB1~#·B:1OBx@Gy@BxGyBx Gx21*A }o*1 }o| C}xC"1"1!15w# C!15~# ,C!"u*c+V+^"1"cC:1H{C1*1}Č21*1'CÂ*1*1|/g}/o#T]"C*1*1*CzʴC6#z«C*1DMxH5*1"C:1 CrENE*1"D"D*1 ):DD|2D!"1CD|=2D*1*1z/W{/_"1*D*1 ~# 1D*D"D:1hD*1*1z/W{/_"1êD*D"DT] "D1«D:1 ʠD*D>D# —D:D=2DhD*D*D|/g}/o#T]"1:121êD*Dz/W{/_"1:121êD*1*1|E}xBEFD*1*CF"1*1z/E{x8Ex:121x:121> *1|:1D,FkETE!?#t *1|ʢE:121:1D ̦E ̦E=kE‚EͩE> :1E:1D ʱE E ʱE,ʱE*1+"1:121:1G21:1D E ED*1*1|/g}/o#T]*1z#F{xC2F:1qF:1@fF:F*}Fw#"}F*F+"F|XF*1|fF͂FVF:1@21>:1?21͂F*1*1"1A~+"FFFF F F!8# *FV+^"}F!"FöF!"FöF!"FöF*FV+^+"F"FöF*c+V+^zG{GGC:1G6#6Â6#6Â*c+V+^zCG{CG:w WGNGC:1WG6#6Â6#6ÂE43G:1 xvG,FyG=cG!?#t *c++N +V+^"cq#+ ~6+wÂ2G2G2G2G2G2G<2G*1+V+^"G"G!1"G̓H&H:GĵHH*GNG:GH>2G*Gxw#"Gɯ2Gx*GwjHWH0&H.YHEaHeaH2iHk@:iHG!G4jH1H>2GWH>2GWH:GʀH=2G*GF#"Gxɯ<*G~+ʤH-ʪH*G6#"G>6#=œHjHÑHjH*G6ÖH:GHjHH0H!G4üHjHEHeH2Hk@:HGjHH>2GH:GI&I:GIG:G@*Gw:G!G@I>+2hIjH+nI-nI2gIjHxI2mI:gI2lI!iI*@:hI-_I}2G}/<2G000002hIjH9I>02lI:gI2mIKI :I ̄K*I#"I*I#"I"I:I2I*I:I*I#"I"I*I+"I}:I2I:I ̄K*I#"I*I#"I"I:I2I*I:I*I#"I"I*I+"I}:I2I{2J:JEJ:JMJáJxʛIIxIJ{2JJ!"I!"I"I"I"I!"I"I!"I"I"I"I"I"I!J"CJʛII{2JJ!"J!"I"I"J"!J!"I"J!"I"I"J" J"'J",J!UJ"CJIJ*gBK)))) !!͹"I")KI+K N*)K.K!D#ININT"SKUK>UKPK*SKw5Kɯ<lK*sK~#"sKZiK>!U"sK͌:J_L:IK*IK"K"K ͹"K"K*IDM*K*K.L*KDM*Kf*K"I*K"I:J_L! 6:3L!Q#IN&L!C#IN**`i"L"Lbk{_z/W{/_"L2LʎL*L*LtL!C#IN*L"L:L=2LaL*L*LDM*LyʻLw# y±L*gBK)))) I~#L*gBK)))) Iw#L!"L*I͌*IuK2IL"M!"M"M*ML:ImM:IdM:I dM*M*Iz^M{xܨM*M*M*M||M}ʥM*M͌*M*ML:I2IL*#"ɯ<"M*I"M*M"My2N!$͹"N"N:N N*NMGxN*N2FN"GN: Nw#w#Nw#w#w#:FNw#w#5N*GN# ̀'!InN~# RN fN %Extern 12345678$ܢN_OG>Ow# ’N6#šN ~Ow+yG¨NɷNG=_NxNyyɯ>2,O#"-O:,O*-OͼN O:,O<2,ON*-O+6@*-O:,O=wN*-O+~%OtZwɐtZwxw# 3O+~'w +@O#]O`O MO>>~GvOtO>ɯ>ړO~ڣOcOʍOͷO#KO~ҦOcOʩOʦO>>#KOʦOãO2O"OcQ|O*OcQ|O:O>> 'w+ Oɷ "-PG>Gx0PWx0P*-Pw+"-P P=P=PͼN:/PFP> cOʅPnP2/PO~#OÇP~2/PG#OÇP#O"DQ"FQ~GOy2QP%Q~P*DQ~2HQ~w*FQ~wIPP*DQ~z2/PO~w*DQ~G:HQw*DQN#/O*DQ*FQIPQ*DQ~w#/OP*DQ~wP~ڰP#/OQ/<ڦP~#;Q ~Ow+yGOQ#>~#O O =kQ"Q"Q#"Q͈RCRQͧR°Q*Q5ͧROͧR*Qw#"Q«QͧR*QR*QN!Qw#Q*Qw# R*Q!Qw#R!Q/OQ!Q'+ 4R=*QF*QNPYxGzW{AtZҞZw:Q*Q#!Q†R#wR<ɯ*Q#~!B#t *Q~w>#6#=ŸRɯ2RhRʾR+R:R<2RëR!QIQ:R"R!RO*R~wʞZʞZ2/P>#O~w"rS"tSzS6z/W{/_S6EvSvS*rS#w"rSvSvS*rS#w"rSvS*rS#w>#6#=dS*tSN2SDM|ڌS:S<2SzS`i:S"-T?TT!"/T*-T~AT@G>#z2/PO>*-T#ͼN1T> ͼN 1T> ͼNd1T> ͼN1T> ͼN'1T+~*/T|/g}/o#!!A#t *-T~)T!!*/T=6T"/T]TyOZT*-TeTyOZTɯ<2vE2vp"T~|T!TT!TT~# „T*T!T͋P*T͓S@PP~w~wN*c ͼTÂ*c ͷTÂ>2Z*c "cT] ͋PÂ>2Z*c "cT] ~wN͋PÂ>2Z*c "cT] 8WÂ>2Z*c "cT] ͇QÂ*c+V+^ "cRÂ*c+T] "c+w+ sUV+^Ra*c ͓Ss#r#"cÂ*c mTs#r#"cÂ*c+V+^{2U+V+^"U"cU:UQVÂ+0.12345678901234E+99"LV~V>+2U V>-2U~͆V>2PV!U"NV*LV#ͼN0*NVw#"NV:PV<2PVV!U"U>2U>2U:U*c6 #=WV:UG*Uw#gV:Uo&:UO s#r#"c@ږV@G>+2UàVG>@G>-2Uh&n:###~2U#~2U>V>V>V>V>V>V2W*c T] "cyOV>G:WW*c6#6#"cÂ*c6#6#"cÂ*c!~# W"cÂ*c"cÂW"W"W#KZ*W#KZzgxڟW{*W*WçWy*W*W# X W~+WX zX µWøY2LXOX~Gx# X:LX=\XlX`iX! !\X=7X=!\X_PY +' ? +' ?  +' ? +' ? +' ? +' ? +' ? +' ? +' ? +' ? +' ? +' ? +' ? +' ? !WY# ¾Y,Z! ~ YT]JZXY*WF#~## Y*WNyWxGyO:W>Z>@tZҞZw*W6@#w# 5Z~W#cZcZOzoZoZOQZ:ZʌZʒZʘZ!X$ !Z$ !\$ !V$ :ZʶZʼZZ!W$ !Y$ ![$ !U$ y[x[P[zZ##"*[i&^#V+DM`if**[q#p#s#r## ,[P[6#6͌ ZACALL error $i&))<[^#V+ y[ZZExec ver 4.0 $!0 ~# [:0O!1>$ʹ[# ¯[# ~ n[a[l\p \# ¼[Z[Z[:x2x[:x@2x[>I2e>N2f>T2g\5\ @\< INT file not found$\\t\ |\y\͍\ɯ< INT file empty$:\3ʽ\ \ INT module not version 3 $*]*\"g*\"k*\"o*\"q*\"i*"m*]*o"_"a"c*]*qڢ]ڢ]*mzš]{xҢ] ]< insufficient storage$!x^]x]]  PAS40.LIB damaged or not found $"S^6><2U^!U"V^X^P^*S^w>8^>*V^~Zr^#"V^G:U^X^xɯ<*m">`w#ƒ^*"e*s#r#6ͧ^!""bk6#6#s#r#6#>q#p#p#p#p#=^>dp#=^NOoIQMSG^ECPART2 ΆKOICONVPnf**[q#p#s#r## ,[P[6#6͌ ZACALL error $i&))<[^#V+ y[ZZExec ver 4.0 $!0 ~# [:0O!1>$ʹ[# ¯[# ~ n[a[l\p \# ¼[Z[Z[:x2x[:x@2x[>I2e>N2f>T2g\5\ @\< INT file not found$\\t\ |\y\͍\ɯ< INT file empty$:\3ʽ\ \ INT module not version 3 $*]*\"g*\"k*\"o*\"q*\"i EXTERN {=================================================================} FUNCTION exp (x : real) : real; CONST factor2 = 0.50000000000000e+00; factor3 = 0.16666666666667e+00; factor4 = 0.41666666666667e-01; factor5 = 0.83333333333333e-02; factor6 = 0.13888888888889e-02; factor7 = 0.19841269841270e-03; factor8 = 0.24801587301587e-04; factor9 = 0.27557319223986e-05; factor10 = 0.27557319223986e-06; factor11 = 0.25052108385442e-07; factor12 = 0.20876756987868e-08; factor13 = 0.16059043836822e-09; factor14 = 0.11470745597730e-10; factor15 = 0.76471637318198e-12; factor16 = 0.47794773323874e-13; factor17 = 0.28114572543455e-14; factor18 = 0.15619206968586e-15; factor19 = 0.82206352466245e-17; factor20 = 0.41103176233122e-18; factor21 = 0.19572941063392e-19; TYPE str = ARRAY [1..22] OF char; VAR result, xa : real; p : ARRAY [1..21] OF real; count, i, j : integer; sign : char; BEGIN (* exp *) IF x > 145.0 THEN exp := 0.99999999999999e+63 ELSE IF x < - 145.0 THEN exp := 0.0 ELSE BEGIN IF x < 0.0 THEN BEGIN sign := '-'; x := - x; END ELSE sign := '+'; (* compute exp(x) for 0 1.5 THEN IF x < 6.0 THEN BEGIN count := 1; x := x / 4 END ELSE IF x < 24.0 THEN BEGIN count := 2; x := x / 16 END ELSE IF x < 96.0 THEN BEGIN count := 3; x := x / 64 END ELSE BEGIN count := 4; x := x / 256.0 END; IF x < 0.007 THEN result := x + 1.0 ELSE BEGIN xa := x; FOR i := 1 TO 21 DO BEGIN p[i] := xa; xa := xa * x; END; result := 1 + x + (p[2] * factor2) + (p[3] * factor3) + (p[4] * factor4) + (p[5] * factor5) + (p[6] * factor6) + (p[7] * factor7) + (p[8] * factor8) + (p[9] * factor9) + (p[10] * factor10) + (p[11] * factor11) + (p[12] * factor12) + (p[13] * factor13) + (p[14] * factor14) + (p[15] * factor15) + (p[16] * factor16) + (p[17] * factor17) + (p[18] * factor18); END; (* else *) FOR i := 1 TO count DO result := sqr(sqr(result)); IF sign = '-' THEN exp := 1.0 / result ELSE exp := result; END; (* else *) END; (* exp *) .  xa := xa * x; END; result := 1 + x + (p[2] * factor2) + (p[3] * factor3) + (p[4] * factor4) + (p[5] * factor5) + (p[6] * factor6) + (p[7] * factor7) + (p[8] * factor8) + (p[9] * factor9) + (pMINDEX0 0300!$P.IIIIII I@@I@ I IIIIIIIIIIIIII*PP4_X=Rj}"1i36Yfj .CP[^go " . 2 B O c q z " ? K 7 A I Y     ? |    6 9 H V Z e h Ka%h $(1DH^d{ 1?I]jn#04Mol}  $9f*ERao2Vqv  8EV/48@Pu #+IN[gjmp6:BGK"&.3  #38Gg "%*-5=@EHPX[`cksv{~ &.2@HKPS[lt  / 7 P X t | /2}*9AWfn;?Rht(7>Rj}"1i36Yfj .CP[^go " . 2 B O c q z " ? K 7 A I Y     ? |    6 9 H V Z e h Ka%h $(1DH^d{ 1?I]jn#04Mol}  $9f*ERao2Vqv  8EV/48@Pu #+IN[gMINDEX1 0300P.IIIIII I@@I@ I IIIIIIIIIIIIII*PPPkPP(PdPPSPP P PR_X=.2i.iRh .  R5=+ iP>=. i.ihR1i.Rsll0 milhhjn _iX5jn 000jn  0hR0jn 05jn  jn  05P'0jn 05nniP=/%INDEX1 - did not find all records on data base i .= out of     PlXd_hX% R>l_ X;Xx f  Xp4XQ 4%0_liX5Pll0 mi 0=TWRh _hX% Rflh.400 /mi i0 lh.j0 /mi _hX% Rp hR1_hX% R!fh_d0;0;=ix0; X R_d0;0;=ix0;=$$i;X Ri_hX% R_d0;0;=dat; X R _d0;0;=dat;=$$d;X PhR^=*%INDEX1 - error erasing and renaming files i   hXg Pe0d0d0=YR_0;0;=ix0; X R1id0=:<0<=.ix0<_hX% Re0d0d0=YR8_0;0;=dat; X R8fid0=:<0<=.dat<hj05l05ihh 40050d05hXg hXY_\ h0509=JQ9=KR%_hXR"hXT P3 P3: h 0=TWR=%INDEX1 error:  i R= Key not found i PR=Invalid command i PR= File not open i P R= Serious error i P[/258;>ADGJMP $0ES[p~"KObr$7KZ]` os8HXat>Ddu. 6 F J S f j    # : v   E \ e v  k o @M`'3LU2+VjPS Y\36 #1Ov=YR8_0;0;=dat; X R8fid0=:<0<=.dat<hj05l05ihh 40050d05hXg hXY_\ h0509=JQ9=KR%_hXR"hXT P3 P3: h 0=TWR=%INDEX1 error:  i R= Key not found i PR=Invalid command i PR= File not open i P R= Serious error i P[/258;>ADGJMP $0ES[p~"KObr$7KZ]` osMINDEX2 -0300/yPIIIIIIIIIIII*I<P_X==JGRAF - graph size error: j PViR_PUjR|  PUR   PURPURPURpPURXPUR6@PU RU(#PUYPZ_   5  5iii` l 05i l 05P l 05i l 05YP*P%_.   =x5  i% % %& $A0  %l& miR P ih `)  l=-5PY_iX% iRmhX% P?YPPt_*Rjii` l=I5PPj l=I5 =y5 i % % %" $B  %l" miY_iXtRhXt PYPI_= 5ii`: 05P YP>_ = JGRAF ver 4.0ui ` lx5P`j8jji` l=*5iPii8` l8x5iPii`R l=*5iP,YPIPf_ &i$  R  P i` l  W05iPYP_ &i$  RQ ji Pn i` l  W05iPyY_)i= jgraf.$$$@l(i mi$ii`` = 5&il(i mi& W(05&&i(0= R$ 09=xRL hXfP\ 9=yR\ hXP\ :PY_  %"  %hXhXhXZii= jgraf.$$$0hX*hXl=  mihXhX>YP P _Ro =plot computation error i P  l05Y_        " R P"       X YP& _ 0=pR: 0=sR^ i*0  iR P 0=sR l0(#  miP 0(#  i  hRp 0=pR 0=sR Y_=\09=DR: hX P 9=IRJ hXf P 9=SR` =s;iX& P 9=CRv =c;iX& P 9=PR =p;iX& P 9=XR P =JGRAF - unknown command:  0 j P :[ <F]cz4<SX #Zl '6P\kor /!,8<aq-=PTd)Oz , 7 B G J R W Z ^    L m } $ 4 E y   0 5 8 @ E H P [ ^ f q t | hXhX>YP P _Ro =plot computation error i P  l05Y_        " R P"       X YP& _ 0=pR: 0=sR^ i*0  iR  EXTERN TYPE char1000 = ARRAY [1..1000] OF char; char2000 = ARRAY [1..2000] OF char; char3000 = ARRAY [1..3000] OF char; char4000 = ARRAY [1..4000] OF char; char5000 = ARRAY [1..5000] OF char; char6000 = ARRAY [1..6000] OF char; char7000 = ARRAY [1..7000] OF char; char8000 = ARRAY [1..8000] OF char; char9000 = ARRAY [1..9000] OF char; jgraf_interface = RECORD command, plot_char : char; x_grid, y_grid : boolean; rows, columns : integer; x_lower, x_upper, y_lower, y_upper : real; filename : ARRAY [1..14] OF char; graf_title : STRING; b : ^char9000; bufr_size, line_size, row_count : integer; x_spacing, y_spacing : real; END; {=================================================================} PROCEDURE jgraf (VAR jg : jgraf_interface; x, y : real); VAR i : integer; f1 : FILE OF char; {=================================================================} PROCEDURE setup; VAR ai : integer; axis_labels : ARRAY [1..50] OF RECORD axis : char; ptr : integer; END; {=================================================================} PROCEDURE allocate_buffer; LABEL 99; VAR x : integer; b1 : ^char1000; b2 : ^char2000; b3 : ^char3000; b4 : ^char4000; b5 : ^char5000; b6 : ^char6000; b7 : ^char7000; b8 : ^char8000; b9 : ^char9000; BEGIN jg.line_size := jg.columns + 16; jg.row_count := jg.rows + 5; jg.bufr_size := jg.line_size * jg.row_count + 8; x := (jg.bufr_size DIV 1000) + 1; IF (x < 1) OR (x > 9) THEN BEGIN writeln('JGRAF - graph size error:', jg.bufr_size); GOTO 99; END; CASE x OF 1 : BEGIN new(b1); jg.b := b1 END; 2 : BEGIN new(b2); jg.b := b2 END; 3 : BEGIN new(b3); jg.b := b3 END; 4 : BEGIN new(b4); jg.b := b4 END; 5 : BEGIN new(b5); jg.b := b5 END; 6 :  BEGIN new(b6); jg.b := b6 END; 7 : BEGIN new(b7); jg.b := b7 END; 8 : BEGIN new(b8); jg.b := b8 END; 9 : BEGIN new(b9); jg.b := b9 END; END; 99 : END; (* allocate_buffer *) {=================================================================} PROCEDURE crlfs; (* put crlfs in buffer *) VAR i, ptr : integer; cr, lf : char; BEGIN cr := chr(0dh); lf := chr(0ah); ptr := jg.line_size - 1; FOR i := 1 TO jg.row_count - 1 DO BEGIN jg.b^[ptr] := cr; jg.b^[ptr + 1] := lf; ptr := ptr + jg.line_size; END; ptr := ptr + 8; jg.b^[ptr] := cr; jg.b^[ptr + 1] := lf; END; (* crlfs *) {=================================================================} PROCEDURE xgrid; VAR x : integer; {=================================================================} PROCEDURE x_axes (r : integer; main : boolean); VAR i, r1, ptr, count : integer; ll, ss, rr, xx : real; BEGIN r1 := jg.row_count - r; ptr := (r1 * jg.line_size) + 13; (* update axis labels array and file *) axis_labels[ai].axis := 'x'; axis_labels[ai].ptr := ptr; ai := ai + 1; rr := r; ss := jg.y_spacing; ll := jg.y_lower; xx := ((rr - 3.0) * ss) + ll; write(f1; xx); IF jg.x_grid OR main THEN count := jg.columns ELSE count := 1; FOR i := 0 TO count DO jg.b^[ptr + i] := '-'; END; (* x_axes *) BEGIN (* xgrid *) x_axes(3, true); x := 13; WHILE x <= jg.row_count - 1 DO BEGIN x_axes(x, false); x := x + 10; END; END; (* xgrid *) {=================================================================} PROCEDURE ygrid; VAR y : integer; {=================================================================} PROCEDURE y_axes (c : integer; main : boolean); VAR i, ptr : integer; cc, ll, ss, yy : real; BEGIN IF jg.y_grid OR main THEN BEGIN ptr := (2 * jg.line_size) + c; FOR i := 1 TO jg.rows + 1 DO BEGIN jg.b^[ptr] := 'I'; ptr := ptr + jg.line_size; END; END ELSE BEGIN (* no ygrid *) ptr := (jg.line_size * (jg.rows + 2)) + c; jg.b^[ptr] := 'I'; END; (* update axis labels array and file *) axis_labels[ai].axis := 'y'; axis_labels[ai].ptr := ptr; ai := ai + 1; cc := c; ss := jg.x_spacing; ll := jg.x_lower; yy := ((cc - 14.0) * ss) + ll; write(f1; yy); END; (* y_axes *) BEGIN (* ygrid *) y_axes(14, true); y := 24; WHILE y <= jg.columns + 14 DO BEGIN y_axes(y, false); y := y + 10; END; END; (* ygrid *) {=================================================================} PROCEDURE clear_bufr; TYPE buffer = ARRAY [1..20] OF char1000; VAR a : char1000; i : integer; ptr : ^buffer; BEGIN a := ' '; map(ptr, addr(jg.b^)); FOR i := 1 TO (jg.bufr_size DIV 1000) + 1 DO ptr^[i] := a; END; {=================================================================} PROCEDURE move_title; VAR s : STRING[20]; x, i : integer; BEGIN s := 'JGRAF ver 4.0'; FOR i := 1 TO 13 DO jg.b^[i] := s[i]; x := (jg.line_size DIV 2) - (length(jg.graf_title) DIV 2) + 2; FOR i := 1 TO 4 DO BEGIN jg.b^[x] := '*'; x := x + 1; END; x := x + 1; (* skip 1 space *) FOR i := 1 TO length(jg.graf_title) DO BEGIN jg.b^[x] := jg.graf_title[i]; x := x + 1; END; x := x + 1; (* skip 1 space *) FOR i := 1 TO 4 DO BEGIN jg.b^[x] := '*'; x := x + 1; END; END; (* move_title *) {=================================================================} PROCEDURE process_axis_labels; VAR hold : ARRAY [1..30] OF char; i, j : integer; ch : char; {=================================================================} PROCEDURE xlabels; VAR count, ptr, number_length, k : integer; BEGIN number_length := j - 1; ptr := axis_labels[i].ptr; IF number_length <= 8 THEN BEGIN ptr := ptr - number_length; count := number_length; END ELSE BEGIN ptr := ptr - 8; count := 8; END; FOR k := 1 TO count DO BEGIN jg.b^[ptr] := hold[k]; ptr := ptr + 1; END; END; (* xlabels *) {=================================================================} PROCEDURE ylabels; VAR count, ptr, number_length, k : integer; BEGIN number_length := j - 1; ptr := axis_labels[i].ptr; IF number_length <= 8 THEN BEGIN ptr := ptr + jg.line_size - (number_length DIV 2) + 1; count := number_length; END ELSE BEGIN ptr := ptr + jg.line_size - 4; count := 8; END; FOR k := 1 TO count DO BEGIN jg.b^[ptr] := hold[k]; ptr := ptr + 1; END; END; (* ylabels *) BEGIN reset(f1, 'jgraf.$$$', binary, 128); read(f1; ch); (* skip over leading blank *) FOR i := 1 TO ai - 1 DO BEGIN hold := ' '; j := 1; REPEAT read(f1; ch); hold[j] := ch; j := j + 1; UNTIL ch = ' '; CASE axis_labels[i].axis OF 'x' : xlabels; 'y' : ylabels; END; END; close(f1); END; (* process_axis_labels *) BEGIN (* setup *) jg.x_spacing := (jg.x_upper - jg.x_lower) / jg.columns; jg.y_spacing := (jg.y_upper - jg.y_lower) / jg.rows; allocate_buffer; clear_bufr; crlfs; ai := 1; (* axis labels array index *) rewrite(f1, 'jgraf.$$$', text, 128); xgrid; ygrid; write(f1; ' '); close(f1); process_axis_labels; move_title; END; (* setup *) {=================================================================} PROCEDURE data; LABEL 99; VAR x1, y1 : integer; {=================================================================} PROCEDURE plot (x, y : integer); (* place char in graph area - origin 0 at lower left *) VAR ptr : integer; BEGIN ptr := (jg.line_size * (jg.row_count - y - 3)) + (x + 14); IF ptr > jg.bufr_size THEN writeln('plot computation error') ELSE jg.b^[ptr] := jg.plot_char; END; (* plot *) BEGIN IF NOT ((x >= jg.x_lower) AND (x <= jg.x_upper) AND (y >= jg.y_lower) AND (y <= jg.y_upper)) THEN GOTO 99; x1 := round((x - jg.x_lower) / jg.x_spacing); y1 := round((y - jg.y_lower) / jg.y_spacing); plot(x1, y1); 99 : END; {=================================================================} PROCEDURE display (mode : char); VAR bytes_remaining, len, start : integer; BEGIN IF mode = 'p' THEN system(list); IF mode = 's' THEN rewrite(f1, jg.filename, binary, 1024); bytes_remaining := jg.bufr_size; start := 1; REPEAT IF bytes_remaining >= 1024 THEN len := 1024 ELSE len := bytes_remaining; IF mode = 's' THEN write(f1; copy(jg.b^, start, len)) ELSE write(copy(jg.b^, start, len)); start := start + 1024; bytes_remaining := bytes_remaining - 1024; UNTIL bytes_remaining <= 0; IF mode = 'p' THEN system(nolist); IF mode = 's' THEN close(f1); END; (* display *) BEGIN (* jgraf *) CASE upcase(jg.command) OF 'D' : data; 'I' : setup; 'S' : display('s'); 'C' : display('c'); 'P' : display('p'); 'X' : dispose(jg.b); ELSE : writeln('JGRAF - unknown command: ', jg.command); END; (* case *) END; (* jgraf *) . THEN system(list); IF mode = 's' THEN rewrite(f1, jg.filename, binary, 1024); bytes_remaining := jg.bufr_size; start := 1; REPEAT IF bytes_remaining >= 1024 THEN len := 1024 ELSE len := bytes_remaining; IF mode = 's' THEN write(f1; copy(jg.b^, start, len)) ELSE write(copy*JRTASM 2303003:PIIIIII I@I I I I I, I IIPI_Rh =File not found i hYP!PI_=!Options (c=com 1=pass1 n=none) :  i i 05h &=INNN5=.INT5i 0= R  09=CR&=C5=.COM5P9=SR&=Y5P9=PR&=Y5P9=1R&=Y5P:iP~Y_"h =Program name :  i h =.pNhR=0enter filename of program, do not enter filetype i P$tp5 h hX%it0 =.ASM<@%jX%it0 0< i hhhV= 55 hih%=N5$=Y57=A=ZI=a=zILEG=0=9ILEW7@G@E%=00005%i&h&=15&= 1111111115  ihYPPP_$i Vj 0 5 V 0  0 RiP 0 V 0 RiPRgV 0 5 V V 0 5 V 0 5 iiRRXRXY_iiXY_hXh = Symbol Flag Value i ii`q=:  V 0  =  V  0 V  =  _V  jZ  PYPu_ii`_V  0;hZ RV 0  i= : UNRESOLVED SYMBOL;  Z PYPIh_MRO~i r 09==R5'=>=5jPK'=>5iPK:P0=R'=<>5jP'=<5iP:P0=: invalid char<;  Z P[PIP I_\j5 05 05 05[P IIIIII I@I I I I I, I IIPU"P_% RA%% 05%%iYPE_i K0;iXj K0;iXYPp_i e0;iXj e0;iX e0;iX e0;iXYPP_09=ARP9=BRhP9=CRiP9=DRjP9=ER#P9=HR5P9=LRGP9=MQb9=SPQb9=PSWRlP=Invalid register: 0<;  Z P:YP_  05 i 05j  jj;XpYP_  5i  i;jXEYP2_jXhZYPG_0=RjRi,R=Reloc tab ovfl;  Z P  YP_hZjZjXhXGjXYP_hZ_'0;XjXhZYP_hZ@_'0;XhZ_'0;XjXhZYP\_hZi_'0;XhZjZjXhXGjXYP_hZ jXhZYP_hZ_'0;XhZjZjXjXYP_hZ'0=@@@EOL'0=!R'0=STRINGRi `{ 0jXPbhZPjZjXP'YP_hZ'0=@@@EOL'0=!RjZhXGjXPYP_hZ_'0;XjXhZYP_hZjZjXjXYPE_hZ'0=@@@EOL'0=!R'0=STRINGRiRi ` 0 iPhZPjZiRiPMiRh Y_i'i 09=RR.'09=RLCRjX2P*9=RRCR-jX2P*9=RALRBjX2P*9=RARRWjX2P*9=RETRljX2P*9=RNZRjX2P*9=RZRjX2P*9=RNCRjX2P*9=RCRjX2P*9=RPORjX2P*9=RPERjX2P*9=RPRjX2P*9=RMRjX2P*9=RSTR"hXP*hP*:P9=CRV'09=CALLRRjXPR9=CNZRgjXPR9=CZR{jXPR9=CNCRjXPR9=CCRjXPR9=CPORjXPR9=CPERjXPR9=CPRjXPR9=CMRjXPR9=CMPR jXPR9=CMAR /jX2PR9=CMCR5?jX2PR9=CPIRJjXPRhPR:P9=JR)'09=JMPRyjXP%9=JNZRjXP%9=JZRjXP%9=JNCRjXP%9=JCRjXP%9=JPORjXP%9=JPERjXP%9=JPR jXP%9=JMRjXP%hP%:P9=SR'09=SHLDRM"jXP9=STARb2jXP9=STAXRvjjXP9=SUBRjXP9=SBBRjXP9=STCR7jX2P9=SPHLRjX2P9=SUIRjXP9=SBIRjXPhP:P9=DR'09=DBR hXP9=DWR1hXP9=DSR\hZ    P9=DCXRq jXP9=DADR jXP9=DCRRjXP9=DAAR'jX2P9=DIRjX2PhP:P9=ARh'09=ADDRjXPd9=ADCRjXPd9=ANARjXPd9=ADIR2jXPd9=ACIRGjXPd9=ANIR\jXPdhPd:P9=MR'09=MOVRhXP9=MVIRhXPhP:P9=OR!'09=ORGRhZ   P9=ORARjXP9=ORIRjXP9=OUTRjXPhP:P9=XR'09=XRARDjXP9=XCHGRZjX2P9=XTHLRpjX2P9=XRIRjXPhP:P9=LR'09=LHLDR*jXP9=LDAR:jXP9=LDAXR jXP9=LXIRhX\PhP:P9=IRV'09=INXR!jXPR9=INRR6jXPR9=INRJjXPRhPR:P9=PR'09=PUSHRzjXP9=POPRjXP9=PCHLRjX2PhP:P'09=EIRjX2P9=NOPRhjX2P9=HLTRvjX2P9=WRITERhXEPhP:P:hR9=Undefined opcode;  Z YP P@_#0=YRe= EQU error;  Z hZjZ0=RR@Phj;Xp%==5iR 0; ; ZP,jR, 0;  ZV  R)= Phase error;  Z P,YP1_#0=YR[=SET/READ error;  Z '0=READjR 0;  Z V  j;XpP '09=SETRhZjZ0=RR@PhP# 9=READR#  0 =:=  ji h hP# : 0;  Zj;Xp%=#5hR}  0; ; ZP V  V  5Y_'09=EQUR hX@Pq!9=SETQ 9=READR hX1Pq! 0= #0=NRi!iR!! 0; @;  ZPh!jRh! 0;  Z V  Re!= Phase error;  Z Ph!hXPq!:YPv!_#0=YR!=IF error;  Z hZjZ&09=0R!=05P"9=1R"hR!=05P!=15j;XpP":&R"&&iP5"= Nesting error;  Z && 05&05Y_\hZ~i 0=;=*LRx"P1$i = 5~ 07@R#~ 0W@R"  ~ 05iP"  05~ 0=:R#i#=N5hZ'09=IFR'#hXv!P$9=ELSERj#&0=0RK#&=15PT#&=05&& &05P$9=ENDIFR#&hR#&&iP#= Extra ENDIF;  Z &&& 05P$9=ENDR#%=Y5&hR#= Unbalanced IF;  Z P$&0=0R$'=@@@EOL5P$hX P$:'0=!R1$#=Y5P #[P$IIIIII I@I I I I I, I IIP$_\ji&0=YRl%%0 =:   ij`e%~ $0 iPL%h P% hR%=+ iP%=- i2hR%h %= 5%_ jZ5%ii[P&IIIIII I@I I I I I, I IIP&_ \$0=NR&hZP&$=N5i%= 5%_ jZ5i 5%  i  i~ & 05i 00R&%  i  i[P(IIIIII I@I I I I I, I IIP-P(_ '09=NUMBERR'( P)9=$RE( =R5P)9=STRINGR( jR( j '05 i '05P( i '05 h5 P)9=(R )hZjX(0=RR(=R5'0=)R(=Expression error;  Z P)'0;  ZhRO)'0; ;h Zh=R5P)_V ' 0;hZ R)h=R5P)V ' _V ' 0;iZ R)=R5P):hZYP)_ _hX(iiRb*'09=*R*hZ_hX(P^*9=/R3*hZ_hX(P^*9=MODRV*hZ_hX(P^*hP^*:P)YPn*_ '09=-Q*9=+R* '05hZP* =+5P*:_hX) 0=-R*iiR,+'09=+R*hZ_hX)P(+9=-R +hZ_hX)P(+hP(+:P*YP8+_ _hXn*iiR,'09=EQQl+9==R+hZ_hXn*R+P+hP,9=NEQ+9=<>R+hZ_hXn*R+P+hP,9=LTQ+9=R<,hZ_hXn*R4,P9,hP,9=LEQN,9=<=Ru,hZ_hXn*Rm,Pr,hP,9=GEQ,9=>=R,hZ_hXn*R,P,hP,hP,:PL+YP,_'0=NOTR,hZ_hX8+P,_hX8+YP,__hX,'0=ANDR4-hZ_hX,P -YP@-_ _hX,iiR-'09=ORR-hZ_hX,P-9=XORR-hZ_hX,P-hP-:PT-Y_\=A5'09=HIGHR.hZ_hX@-05h5P^.9=LOWRK.hZ_hX@-h5P^._hX@-P^.:[P&/IIIIII I@I I I I I, I IIP)/_\0 ;  ZhR/V /0 5 V / 05V / iR/= Symtab ovfl;  Z P0_V / 0;hZ R/=Duplicate symbol;  Z P0V / V / 05[P0IIIIII I@I I I I I, I IIP0_\Vh 00 5 iV 00 0 R%1iP1[_\++++F+~<1K1+6+6+6+6_\++++F+V+^N>f1w_\++++F+V+^N>‚1wPP2IIIIII I@I I I I I, I IIPS2_\iR2&0=YR}20  i P2jR2i0  i P2[LEXA tHEXINT tPROCESSLGtPRNTLINE2$tLINE %tEXPRA :'tADD `.tLOOKUP 0tTESTBIT .1tSETBIT R1tRESETBITn1tERRORA 1!tY.8Hq})<[osx_)1HXfsv~!  7 I o y " 8 ^   $ 4 e o  ' 6 O Z d n 3IM\hsH,CMX_jnx!)3;EMV`j,0<E]r!FQZy CUcmvy2?Ci{  (+5=@JRU_gjt|  (,4EMPZbenvy (03=EHPT\ltw#'/@HKU]`kqt~',/8Zdloy%-0:BEOWZbfn~'7?BMUXcknx)14=EHPT\mux ;>N*/?p! D Y { !!%!D!L!f!l!o!t!!!!!!!!" ""="c"s"v""""""""""#"#%#0#=#I#\#h#t#}######## $$$#$/$3$$%M%W%c%j%w%%%%&&&'&';'(((%(-(C(P(Y(c(v(((((((( )")M)Z)n)))))))))) ***,*1*;*O*T*\*`*l*}**********+++&+*+6+D+S+b+j+{+++++++++++++++, ,,$,(,2,:,C,L,],a,k,s,|,,,,,,,,,,,,,, ----2->-L-[-j-~---------....I.X.\.a.'/D/N/a/w/////// 0000 11#1?1B1i111Q2_2o2~2222222233.3A3T3g3z3#'/@HKU]`kqt~',/8Zdloy%-0:BEOWZbfn~'7?BMUXcknx(* JSTAT ver 4.0 JRT Systems *) (* *) (* jstat computes several basic statistics on *) (* an input array. *) (* *) (* parameters: *) (* n - the number of data items in the *) (* input array *) (* x - the input array of real numbers, *) (* may be up to 1000 elements, *) (* actual variable in calling pgm *) (* may be much smaller array *) (* r - the computed statistics are stored *) (* in this record *) EXTERN TYPE jstat_interface = RECORD mean, standard_deviation, variance, skewness, kurtosis, m1, m2, m3, m4 : real; END; jstat_array = ARRAY [1..1000] OF real; {=================================================================} PROCEDURE jstat (n : integer; VAR x : jstat_array; VAR r : jstat_interface); VAR i : integer; total_x, total_x2, total_x3, total_x4 : real; {=================================================================} FUNCTION cube (x : real) : real; BEGIN cube := x * sqr(x); END; {=================================================================} FUNCTION sqrt (x : real) : real; VAR sq, a, b : real; exponent, i : integer; zap : RECORD CASE integer OF 0 : (num : real); 1 : (ch8 : ARRAY [1..8] OF char); END; BEGIN IF x = 0.0 THEN sqrt := 0.0 ELSE BEGIN sq := abs(x); zap.num := sq; exponent := ord(zap.ch8[1]); exponent := (exponent DIV 2) + 32; zap.ch8[1] := chr(exponent); a := zap.num; b := 0; i := 0; WHILE a <> b DO BEGIN b := sq / a; a := (a + b) / 2; i := i + 1; IF i > 4 THEN BEGIN i := 0; IF abs(a - b) < (1.0e-12 * a) THEN a := b; END; END; sqrt := a; END; (* else *) END; (* sqrt *) {=================================================================} PROCEDURE totals; VAR i : integer; tx, tx2, tx3, tx4 : real; sum_x, mean : real; BEGIN (* totals *) total_x := 0; total_x2 := 0; total_x3 := 0; total_x4 := 0; sum_x := 0; FOR i := 1 TO n DO sum_x := sum_x + x[i]; mean := sum_x / n; r.mean := mean; FOR i := 1 TO n DO BEGIN tx := x[i] - mean; tx2 := sqr(tx); tx3 := tx * tx2; tx4 := tx * tx3; total_x := total_x + tx; total_x2 := total_x2 + tx2; total_x3 := total_x3 + tx3; total_x4 := total_x4 + tx4; END; END; (* totals *) BEGIN (* jstat *) totals; r.m1 := total_x / n; r.m2 := total_x2 / n; r.m3 := total_x3 / n; r.m4 := total_x4 / n; r.standard_deviation := sqrt(r.m2); r.variance := r.m2; r.kurtosis := r.m4 / sqr(r.m2); r.skewness := r.m3 / sqrt(cube(r.m2)); END; (* jstat *) . ND; END; sqrt := a; END; (* else *) END; (* sqrt *) {===================================="MLETTERS 0300PI PzI I I P7_09=RRi = uj = u = u = u = u = u = u = u = uPb9=LRi = uj = u = u = u = u = u = u = u = uPbi = uj = u = u = u = u = u = u = u = uPb:YPtIx_0@R= 5cPyH&0hi= 5ci `yi h050 RL 05ii h05PjiRvPY_\=A=ZI=0=9I=-LEpuRhX7i` x;iXt i `    p= <  0 ii`l 0 miPgh b 80tR=) ** WARNING ** procedure already merged i b 8t5b 8i-ii YP_ q= 5?imRhmRq Y0=XRk=* iPt=  i=: b 80 =  iiP6h P%h = select :  i ii i ?Rq  Y=X5P ? iR+q  Y= 5P dR[i?`Xq Y=X5PBP dRuq= 5?P hRPPRh h P PPh h YP_h =Main program module i ~0 = module size = ~= bytes code size = ~ = bytes  h YP= I_l mil0 mi0;Xi     i` l mil0 miP  i ` li mil0 miP m ojjg hRp =N5Py =O5 im` lb  8 miP 0=NR lmi io` l  E miP 0=NR lmi i`/ lmilmiP Y_h =Linker ver 4.0 i h =Name of main program :  i i #05i0=.INT<@jXui= LINK1.$$$ i= LINK2.$$$ hX= j 0MR! =%** ERROR ** module previously linked i P hX=Processing external procedures i =% proc name total size phase i kim` qk Y0=XR kjXP ii hXHhXhXh =Linker processing completed i h Yf~Fs!;EOz.Ge{@N[i{!?MZhz/IS]i )6CMVYgs~. p b n -  $ m ojjg hRp =N5Py =O5 im` lb  8 miP 0=NR lmi io` l  E miP 0=NR lmi i`/ lmilmiP Y_h =Linker ver 4.0 i h =Name of main program :  i i  EXTERN {=================================================================} FUNCTION ln (x : real) : real; CONST index = 16; ln4 = 0.13862943611196e+01; r3 = 0.33333333333333e+00; r5 = 0.20000000000000e+00; r7 = 0.14285714285714e+00; r9 = 0.11111111111111e+00; r11 = 0.90909090909091e-01; r13 = 0.76923076923077e-01; r15 = 0.66666666666667e-01; r17 = 0.58823529411765e-01; r19 = 0.52631578947368e-01; r21 = 0.47619047619048e-01; r23 = 0.43478260869565e-01; r25 = 0.40000000000000e-01; r27 = 0.37037037037037e-01; r29 = 0.34482758620690e-01; r31 = 0.32258064516129e-01; VAR div_count, i : integer; result, term, term2 : real; p : ARRAY [1..index] OF real; BEGIN (* ln - natural logarithm *) IF x <= 0.0 THEN ln := - 0.99999999999999e+63 ELSE BEGIN (* x must be in range 0.7 to 2.85 *) div_count := 0; WHILE x < 0.7 DO BEGIN x := x * 4; div_count := div_count - 1; END;  WHILE x > 2.85 DO BEGIN x := x / 4; div_count := div_count + 1; END; term := (x - 1.0) / (x + 1.0); term2 := sqr(term); FOR i := 1 TO index DO BEGIN p[i] := term; IF (abs(term) <= 0.9e-51) THEN term := 0.0 ELSE term := term * term2; END; result := 2.0 * (p[1] + (p[2] * r3) + (p[3] * r5) + (p[4] * r7) + (p[5] * r9) + (p[6] * r11) + (p[7] * r13) + ( p[8] * r15) + (p[9] * r17) + (p[10] * r19) + (p[11] * r21) + (p[12] * r23) + (p[13] * r25) + (p[14] * r27) + ( p[15] * r29) + (p[16] * r31)); ln := result + div_count * ln4; END; (* else *) END; (* ln *) . x < 0.7 DO BEGIN x := x * 4; div_count := div_count - 1; END; { this program takes an input textual file and converts all characters except those inside single quotes to lower case } {=================================================================} PROGRAM lower; VAR ch, ch_1a : char; count : integer; string_flag : boolean; infile, outfile : ARRAY [1..16] OF char; upper_case : SET OF char; f1, f2 : FILE OF char; BEGIN writeln; string_flag := false; ch_1a := chr(1ah); upper_case := ['A'..'Z']; WHILE true DO BEGIN count := 0; write('input filename (or ctl-c to end) : '); readln(infile); write('output filename : '); readln(outfile); reset(f1, infile, binary, 4096); rewrite(f2, outfile, binary, 4096); read(f1; ch); WHILE NOT (eof(f1)) AND (ch <> ch_1a) DO BEGIN IF ch = '''' THEN IF string_flag THEN string_flag := false ELSE string_flag := true; IF NOT string_flag THEN IF ch IN upper_case THEN ch := chr(ord(ch) + 20h); write(f2; ch); write(ch); count := count + 1; read(f1; ch); END; writeln; writeln('byte count =', count); writeln; writeln; close(f1); close(f2); END; END. ; write('input filename (or ctl-c to end) : '); readln(infile); write('output filename : '); readln(outfile); reset(f1, infile, binary, 4096); rewrite(f2, outfile, binary, 4096); read(f1; ch); WHILE NOT (eof(f1)) AND (ch <> ch_1a) DO BEGIN IF ch = '''' THEN IF string_flag THEN string_flag := false ELSE string_flag $ This is the release date of the disk. EXP PAS dINDEX0 INT h%INDEX1 INT rINDEX2 INT yJGRAF INT {JGRAF PAS &JRTASM INT ;JSTAT PAS LETTERS INT LINKER INT LN PAS LOWER PAS CUSTOMIZ.INT 97 8B 1280 10 DEBUG .INT C8 83 384 3 ERASE .INT 25 D6 768 6 EXEC4 .COM 19 71 24064 188 EXP .PAS 1C AB 3712 29 INDEX0 .INT B3 DF 9600 75 INDEX1 .INT 2A 5E 6528 51 INDEX2 .INT 8E DE 1536 12 JGRAF .INT 36 49 3712 29 JGRAF .PAS 71 23 9856 77 JRTASM .INT C0 13 15104 118 JSTAT .PAS 30 44 2944 23 LETTERS  Fog Library Disk FOG-CPM.171 Copyright (1987) by Fog International Computer Users Group to the extent not copyrighted by the original author for the exclusive use and enjoyment of its members. Any reproduction or distribution for profit or personal gain is strictly forbidden. For information, contact FOG, P. O. Box 3474, Daly City, CA. 94015-0474. as part of the description of a file indicates that the program is distributed on a "try first, pay if you like it" basis. If you find the program(s) meet your need, please refer to the author's documentation for information on becoming a registered user. Only by registering and paying for the programs you like and use will the authors of such programs continue development. Often, more complete documentation, additional modules, and new releases are available only to registered users. Disk 1 of 4. JRT Pascal. Filename Description -04-00 .87 This is the release date of the disk. -CPM171 .DOC This is the description of the disk contents. PAS4 .COM 05BD 22K ver. 4.0 [JRT Pascal 1 of 78] A pseudo-code system using a run-time pseudo interpreter. Full documentation and sample programs are included. PAS40 .LIB F1B3 15K ver. 4.0 [JRT Pascal 2 of 78] PAS401 .INT 3ED4 7K ver. 4.0 [JRT Pascal 3 of 78] PAS402 .INT C5CD 6K ver. 4.0 [JRT Pascal 4 of 78] PAS403 .INT 8A91 5K ver. 4.0 [JRT Pascal 5 of 78] ARCTAN .PAS FCCF 3K ver. 4.0 [JRT Pascal 6 of 78] CONVERTM.INT F40A 4K ver. 4.0 [JRT Pascal 7 of 78] COS .PAS 11AC 2K ver. 4.0 [JRT Pascal 8 of 78] CRTMAP .PAS 475A 5K ver. 4.0 [JRT Pascal 9 of 78] CUSTOMIZ.INT 978B 2K ver. 4.0 [JRT Pascal 10 of 78] DEBUG .INT C883 1K ver. 4.0 [JRT Pascal 11 of 78] ERASE .INT 25D6 1K ver. 4.0 [JRT Pascal 12 of 78] EXEC4 .COM 1971 24K ver. 4.0 [JRT Pascal 13 of 78] EXP .PAS 1CAB 4K ver. 4.0 [JRT Pascal 14 of 78] INDEX0 .INT B3DF  10K ver. 4.0 [JRT Pascal 15 of 78] INDEX1 .INT 2A5E 7K ver. 4.0 [JRT Pascal 16 of 78] INDEX2 .INT 8EDE 2K ver. 4.0 [JRT Pascal 17 of 78] JGRAF .INT 3649 4K ver. 4.0 [JRT Pascal 18 of 78] JGRAF .PAS 7123 10K ver. 4.0 [JRT Pascal 19 of 78] JRTASM .INT C013 15K ver. 4.0 [JRT Pascal 20 of 78] JSTAT .PAS 3044 3K ver. 4.0 [JRT Pascal 21 of 78] LETTERS .INT CB19 2K ver. 4.0 [JRT Pascal 22 of 78] LINKER .INT 090A 4K ver. 4.0 [JRT Pascal 23 of 78] LN .PAS 32DC 2K ver. 4.0 [JRT Pascal 24 of 78] LOWER .PAS E0FE 2K ver. 4.0 [JRT Pascal 25 of 78] 2K ver. 4.0 [JRT Pascal 17 of 78] JGRAF .INT 3649 4K ver. 4.0 [JRT Pascal 18 of 78] JGRAF .PAS 7123 10K ver. 4.0 [JRT Pascal 19 of 78] JRTASM .INT C013 15K ver. 4.0 [JRT Pascal 20 of 78] JSTAT .PAS 3044 3K ver. 4.0 [JRT Pascal 21 of 78] LETTERS .INT CB19 2K ver. 4.0 [JRT Pascal 22 of 78] LINKER .INT 090A 4K ver. 4.0 [JRT Pascal 23 of 78] %&'