BELL PQSBITMAP2 PASCLEANUP PASiCOMMCALLPQS!`DBASE2 PQS)2DBFILES PQSb$GROUCHO PAS%QMLIFE PQSiOLU11 PQSPjLUP PQSD%SIREAD ME J*TOOLBOX FQX`TRUN PASX'rTURBO TIPTURBOENVPQSDQ vfTURBOENV.PASf  !"o#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcde6f,lЎjC;&P;Gwm2A\")bVR'#Ck&ɕcF߽zx5s%q. 0RΆedq#gĘE)Yh Qjl=-*kPZhMnDHJ#H|{=Q%ƴGYU$mmʔ}-xwww1#N?#񷫻?}zw|@ݷo߂޿wwOT+'2ǿ6dN[?~_;Ck&{zW vC߼.j pjNw]@&]4?n:Q.birbYs2XN#l:EX Hm !Eg8TI)[ TT3dNA8$FԆ*2^F\F\Hqs5h*adhtDlO<9g\5#Ue(v{j"¶8%Q5$Oq֠:qv"U: 024: hu<]@Hί_:ZL4[! !x ҡ~P [! !FPz8CbJ:g$ZDBi<)}HJ(M2(ɠYqxvy{ZbY{2U ! !x44ԡ'! (lg!W(d[bvdt~}ӡ{AؑQT-˰G[U[Xv;WbI'$Auɢ4ɤdPz8 h;lG\| s=<OjGP+LTYCH*%*2(X!hm|6П "[)j3/Nm]a%3>*kQZ?SQ(ښ*%p>x?5%l+e(ښ, ikx~!m #l9L4;$E]3#0xY'.x`Ns~$ H9r IQll׌FDa!x&,*Ϗ> IQll׌(L8|ܿ҆ ZGQibibu&Q}&dE sCFِs#~1_'!xCb+8KK\5X֠6J< Ȩ &k#%iŽbm32i2 [pjLFJKiVVc)PĻ< xmu>KiVVc)Ͳ6J[?πl,YZŲ[4KvD[?πnE糱fikn5,ҊV]Ĺ >wG3!1N)XcMܢ)1-p#IJ;2X6xGnV $TXI<]8IW_D" ah#kD1"9|G~$n[wg QLB*# D8TFs\!kc X?'J4.xdDi9{hdqE[X㑸:/؈$Yͮ׏׏.x;#q{NFO؈{Z8ĘI^?^?ΞQ$%&T i0KibJWl4Lj ylVQ\T,CؑQm&l xx8,mb٭R%Ӊxg 9P0UESȖfc3LeY= Ǔl xx8,mb٭Rwqfikn5,]n5<8dD jQI$\^|ye{TGvl x83a 9Gniџ׏׏c)*j,YFXwqG!LmUA џgV2X>zجi'/ 54G>^?δI+e$Ψ!I5D&ksġ)C#pj :q8 #ZFX xGִ  ik)gC΍X'RΆ8#2Xv[09MFO8#B&ahC,*2[HOHmI*v'0ehCR񎢭i{>B5»e&87qQa@Xi ꂟh85 (LVdџOFX̪ 6i3Fa.xQ6(LNQE&l1 vĹ 8wd (ښ %H$5Ԣ6sT&T tQS>)!b-mUPq ar&)!&T jDrpm ! &@Y2S[UdFaz5H m6PZ㬁8hC:BMR&TxI)/u}&i\џsWǴx.L]Ĺ >vdj!Dz"b;2jy%$vdJ673!;2zg k j5Ÿ@(s#Vѐ!B/Ni=<#L4VؑQ˛9[#Vby?XubHџs|o//z=& ,x`A8xR! mi3?i3twG[['*7c<3qGqJ(LІQ6#(:B< .xuby3?v?./^կ_~ V2&1!ZŲ=-V#@TFlUgmG8TQmy^ІP;FC) CA*{[XvІ'#J߭O?QjHW޼zSr 9Gy6EiIE@jc 9G А#]iIE ]gTTvI N)XcM܎02*cgq#\"A7P pJ`AnDm (ښ-[CxHE_*?X E!׮ R2xHE_*a\Z0A`y ^B&p`iqpiG7/.C ,i(L {dmA*VVAX[Jk!'(Fạ0uS ܮ'2X{ʇY,1~~_Z㬁QFe;&mkCSK~_֑Ce i!(JrVb,i nę25| za|G~$n?wx&iT w ]_Љx2ɑ6*2C?3wL4Q6#VQmY}~ |KAj#!U揯@X[Jk!џ]nߊմa7o5t2TYu{/rmU<DȁP t2yt3NmUyݪ '{$X5ڨ.xĹ mRfAf.3b 6êo|T`{m1 <Q['*q c[/Y;&$Nq@4d(M2(-^~xJL*J&xq0THvGjl8I*225`Q&T , jHE_*h~Q;>$d8Utrun d:yourprog And you're in business. Written by Jim Zisfein and uploaded 10/14/85 to the Blaise Pascal RCP/M, (212)-604-1930, for the public domain. Please send comments, addressed to me, to the Blaise Pascal RCP/M.} label boot; const cr=^M^J; {If you type A>peace b:with.you at the CP/M prompt, PEACE.COM is loaded and run, and memory locations $005c to $005c+11 are loaded with information about file WITH.YOU on drive B: (ref: Lindsay J, Introduction to CP/M Assembly Language, Hayden, 1984, p.38). This region is called the file control buffer (fcb).} fcb=$5c; var n: integer; {all purpose variable} entrycode: byte; {returned by bdos calls #17 and #18} chainfile: file; {file variable for .CHN file} filename: string[14]; {name of .CHN file} {The direct memory address (dma) is where CP/M will, on command, retrieve information on the disk directory (ref: Lindsay, p.43).} dma: array[0..127] of byte; {Writeentry prints a directory of .CHN files on the logged disk. "Start" is the location within the dma array where CP/M placed the file name} procedure writeentry(start: integer); var n: byte; begin if (char(mem[addr(dma)+start+9])='C') and (char(mem[addr(dma)+start+10])='H') and (char(mem[addr(dma)+start+11])='N') then begin write(' '); for n:=start+1 to start+8 do write(char(mem[addr(dma)+n])); writeln; end; end; {TRUN - main program} begin {TRUN first attempts to chain to the file in the fcb (see above). This file, named "filename", consists of an optional drive name, a 1-8 character file identifier, and the .CHN extension.} {The disk drive, specified in the CP/M command line, is indicated at fcb+0 as follows: 0=none, 1=A:, 2=B:, etc.} if mem[fcb]>0 then filename:=char(mem[fcb]+64)+':' else filename:=''; {The 1-8 character file name resides at fcb+1 to fcb+8. These characters, exclusive of spaces, are added to "filename".} for n:=fcb+1 to fcb+8 do if mem[n]>32 then filename:=filename+char(mem[n]); {Finally, the .CHN extension is added} filename:=filename+'.CHN'; {If TRUN can chain to "filename", it does so, and you're finished.} assign(chainfile,filename); {$I-} chain(chainfile); {$I+} {If it can't, e.g., if you entered A>trun on the command line, then you get a directory of the logged disk and a chance to try again.} if ioresult>0 then begin end; write(cr,'TRUN routine to run Turbo .CHN files',cr, '------------------------------------',cr,cr, ' Syntax: A>TRUN B:GARBAGE (if GARBAGE.CHN is on B:)',cr, ' or: A>TRUN B: (gets directory on drive B:)'); {And again, and again, until you chain the file or the file chains you.} repeat {The directory is obtained by making bdos calls: #26 to set the dma address, #17 to get the first directory entry, and #18 to get subsequent directory entries. Calls #17 and #18 return "entrycode", which indicates the directory entry offset in the dma (entrycode*32) or if no entry found (entrycode=255).} write(cr,cr,'Please select a Turbo .CHN file from list below,',cr, 'or drive identifier (e.g., B:) to change default drive,',cr, 'or CPM (to quit).',cr,cr); for n:=fcb+1 to fcb+11 do mem[n]:=ord('?'); bdos(26,addr(dma)); entrycode:=bdos(17,fcb); while entrycode<>255 do begin writeentry(entrycode*32); entrycode:=bdos(18); end; {User makes selection} write(' CPM',cr,cr,'Enter filename, drive identifier, or CPM --> '); buflen:=14; read(filename); write(cr,cr); for n:=1 to length(filename) do filename[n]:=upcase(filename[n]); {"CPM" quits} if filename='CPM' then goto boot; {If drive selected, then drive # placed at fcb and deleted from filename, also disk reset (bdos #13) performed.} if filename[2]=':' then begin mem[fcb]:=byte(filename[1])-64; delete(filename,1,2); bdos(13); end; {Drive prefix reinserted, .CHN suffix appended, and attempt made to chain} if mem[fcb]>0 then filename:=char(mem[fcb]+64)+':'+filename; filename:=filename+'.CHN'; assign(chainfile,filename); {$I-} chain(chainfile); {$I+} {If at first you don't succeed...} until ioresult=0; boot: end. A tip obtained from the JOURNAL of the TURBO USERS GROUP. A small change for a big bang. Incrementing or decrementing an integer or byte quantity is slower than using the SUCC or PRED standard functions. Particularly if the variable is an integer. The statement var Count : integer; count := count + 1; takes 82 T-cycles on the Z80 and 32 clocks on the 8088. The statement count := succ(count); takes 46 T-cycles on the Z80 and 30 clocks on the 8080. Additionally the second statement requires 5 less bytes on the Z80 and 2 less on the 8088. By : M. Pickhardt Passed Along By : W. Mabee, CRNA vGLU11.PASh o !#"%$'&()*+,-.0/124357689:;<=>@?ABDCEFGIHKJMLNOPRQSTUWVXYZ[\^]_ba`cedgfq \R"@˂/m%{\ Cy%ƮnNS@(VJ{.;V ? 8a}JŸ|8N/ opeZpI[K3.9!.OVx<_ȕ_Lİ=O *r}6O ԧcɱK?;|~1Y};NTEv4|RpfHctƧRp֧ u8Rt+5ZwY륌p\xgnawt UXުAɻ@ Sb$\1|֧>I8NTF&A󖗗(tM\pvHѱK?#opu N㸣o_ Ki=x_y)e93 ~BT$ݧ;}K5*<;Tɵ\gyL7oh:Gnsq)}K M۹咿oi VjpOw*\c¡huZ=2y%J,oBsH.bkUv{mY`r)ߒoqG^W^Ju>@|=טEtnPa@|9%TVG"ݧT\abunPK Lttz 'PG"ݧ ;%Tv=>ݠ3nea>w%ݧbrEtnP}aha>w%ݧCip na>w%ݧC Iw ,>ݠJ.3-<W5zG:z z}AKQ@Q;|.Og}A./^2fs Wc+K_⃀unPթd%>unP},zUu}&r)RDlx8}K;|.O\䒿p"J6<\ >^xc}B6t !MGΥbz ,zun\ iE?x|"KOWt.%p t{0ND T>Ktn)OGw|z\w|"K>8lG1%-t{MpHt{-ӧ[I|7[";|p.yKt{7]0j8t{Ӧ1B3Sun{Fg'r8T.C56#\Ono%HT;ėp v’t{7>iPTݧ>+09L}sY8 i(Uݧ[I|W(Suno4ؒc1vI^CO=OOv9 uΈg שt{Mdi..t שt{-ӧT`t{=Vo  t{g'g_ s}/E֠*0X}NgD_}u}ڟ|ё|"KjVtnO\]dI/A@>/>^E/kv{Q` -1Pb\C!y$vZ Ǡ<71.ӧbp=@Ngt5j*X C}Oc+ 쿤t{3>eZIULF_ŞTvl"To<,V1;t{M1x3T\]dIZ.§O\`UjcI\`%ݧ{ 7?>y 7~4{Ɠ-1xѪ^'[`brѧ>_ sU}>O\`r^>8lG/W1}?{Rڧ0Ȓt{Md..tßTo<,V1;\On! {Tt{V 1:`1N`ݧ d.o0&o1vR t{3>?dq>㐭˥+ؓU ,>^c޺\zz 7'4?*.tËPrpW|eb}'StGP]dI-\ 6ݧ;6tG2>"|t+z!f$ 0 t×m+s<=VLC%m~*o0zA( 9E(9B}{= K_ݧU`U`V^ yC.\`_on\On/7>ݠgT?$ڧ`c K6]`fWpU|. A>9b索\Kt{?A>cn1|{8drf-W<|![K.0tn aϨtjϨ]/&7 ,z=^ݧkl"sa>w%ݧk>_ sU}>O\`r+,ā{VVUun>W4I~1ѿ>^>8lG1߅0mvTȂ\aOD.|"KOr>}iR}˥>uuA(oOw>_ s|%ť\-U=!v#޺\`g)<WunR $ .}KϪt[KVo].3>n `#dO=O;N!QB.s Na>w%UZ.§OBdD tOg;9t{,DHA@;|R*Y>%KvLl",'՛O7 tMW b8we9t{3>eZBtnO\]dI٧'r8(=]sYR !MGMz0Ȓmfէ3xH.ӧ> ^, ϟ#(q{Ngta`+$acO7< LoAr:Q@3L}q@XU Tq{NgtP S}{P}҃ W(01/ӧ̪a%0I* ^`&P >^P%X6sVuNgpTUun?gU *0mVX+ڧ~Ϩtª=$WkY*/t{u})d;ʴ)U> sYRunD[ Ktnr>}q LJ aU O7<  ng}Z.§O\`U`E?xЧ?C@ oArc\ t{V VsG{ }@B7XQ%16H,EX}LO=O;N!QPt´ >^c ,>^EUߍPunLПwʼnA|Vi%%mT1KOt.S$I1 Js\Ki(NĪ(_` jN調@0mvs ѧۛ LQ%C͟y0+u\K+8f4t{ VsGz }E? L O7B.s X}O7 7]/0viKws0``aSs7dЊ흲˱[`U|Ss7q t{D|´  Q@`]`Vs7dЊ\\ փct.bsUg}8lG1´ >^c-.t{-ӧ;|߿`%f70c}It{s9+`#%%TՐA+n((9t{"d(4FKJ L Xn/wP?#f7Ǧq)Gn:nT߷& WǦq{.9t{+uXTCqq>TCqun/r.hUOw>9b sq)}K1|{t×qn4lu)Bѧ,EPix-=mX+8\_\%ߒ g}*# _؍J@811Z ~B@ }‫OQN-v{I>cK㊽;L (Vt a1w?}q.nr캂} Ί͟!L 7]bΓq l\wGWpOY#;|GWpUg}i)d;ʴ+KJ>^ENȉxsUun1ôHpIչcBݧۛ?/|{{!L@W롴.i}u}q َ2!L@56 ,>^E>JD:DR1̿':}JIO!Suno%]q">^gJ[Au C%UV'Z̒t{V VsGz }|01.ӧ?7]$gy>/ӧyC$T/h`tJ⻑4,OV 1XI|7 >ݦn$Yz{(<%c+/ UUݧMW>XI|7^WQRunSI|Wݧ~Ϩt{uno%]q"!{r>%r>-=#;>%Gw|Zz+<ػca陲˱[A>cqoIx%XRunߊ}u}q َ2+/>^c;^xŞT O"d#O"d_w ,>^E>J⻑?{R[y)ej6DIUݧۛ?=}DI՜0Ǟ>"|ts3ٺ\ꅫO7<0Ǟ>"|t9bzm*FO0 `\OY.§O]T$DϸR uR n=}>^oΝ81Bm%%|? ѧt\~uN|{^ʭ$*ʥ7Rl>S.§O7K2m#%%%tù!C)F?s1K'4Us)B~R M6=cnWs|X*G""d?Gn)sn" z>p.EPix-= R $},,[zVUݧΥ]K2/FsU6=e\.EP3L6OoXttïJDRude}3#OQ)hݧQ٧(b>^c;^xŞT υEtn*\ 6ݧk>ޙ?#ݧ[I|7]ru<ػ%U۴i'N>YA#N>.ӧ ,qRT/\}3>/ӧ T>ݦn$ ٺ\N>&(Ǟ>f>^0;tbΓt{y\wW\}˱[`)FsU8de=ػ㰤>^0mvC ;%yunsا\wʼn$+ożx\waI g _+}' J>z+ÒtǔVg}u}q َ2>㊽t{Mz?{RO7<sY}pttn"|t{gtno%H?wo|{j6DIUݧۛ?=}DI՜0Ǟ>"|ts3ٺ\ꅫO7<0Ǟ>"|t&qL6{w,qmrX.Ǯ+tJDIŸ|{wTݧۄ0mvC ;%yun=cnZI|W;^S [Tݧ>ķtn=uϨӎSvi8>^c;^xŞT .{x:\=V>=+ؼ<,#t)B~0Ȓ\On#RK\`Uݧ[`\K S=:\UO7< L 7]bΓGu:#S}{|\*0Ʈ 3}r9 }].§O7n$埻zr78caI6mʼnꅫO7<{ꅫ9a=}E6wʼnb%%<2mvts>㐭˥;^tӧ,ӧ9bz1ôcpչcBݧyмhY\ ӧ"|t>+ؼ<,>> Wun%`3n c?+HpIU=\ Q`YFO7JDNwR%KOK>Tݧ .)?Aϸ z)B~s @߃܇ :m|ӵsg!Pcp`%%r6\~uN|{tù\T]E!C\ѧBK2mŸ%tSh)BRߍxb$}OhM]K2/F34ݧ{>>p.cB0p#K2ԟO7"d(4F?KUUR $ .),[zVUݧBK2/.0"d_w = |. "d_wtoXt#Qa.Ogڹ,Gn!L#wϸ.s [ta.br.{}AQ;^u>ݠGw,0FsU=ecRv9v]Uݧt%HudT/)Y~qqXRun!L@G:ȎvI^ݧ{>^^wʼn<,;^S2> %U6}ZI|W;^S2N6˥aI}OO$+N$ x,OpM,R)q}}=aI}cJ|+Z@g}i)d;ʴ~a!鰂}&2?=pa>w%ݧk>&ݧ;?#'X,)Ŕ za8>޴HpIUD$},>1߅0mvTXt{V VsGz }|01.ӧ?GMW:ё؃܇s>/ӧT'8),=O) KϭOɖ?X,\UunEEKJ<[>&q+ cGOV {t"|t{!CѦёRgU}\wŸv)ҳ6}}OwLw!L@},>ޙFL#%%Tݧ{) .)jӞToXKTt{{#%%TݧQ٧(:F+C>^E>JDCp+;Ȯz]rb}R>JDCp+ =ޜa\/%UV'[׀F;/İ>^>8lG1Z} 3}wʼn$t.)`/ Ng ;b$+N$4n4N>tut$]Q ]I}wʼn$f7`4#c-|#f7 O8_y)e%4g!8޺\ro0AyXI}wʼnX7{? c-D>JDg\wm4.>}sbJ$+N$tX9 uw)AlǂKJH$+N$`u{.|]S@(Ւt{+I1Zw{}hHS[O=O;N!Q=56]pHt{-ӧ;t.)t{7>?#ݧ 7Tj[I|7йD,GTݧ 7T?qVߍإñ|BᨺO7<n"h04KTjȠ7wUJ:^UG @T=a1j+Fh6I}pC%UaOU[I|7歼zrIRunx$P DUCn$d4qtu$O7<n*YJ⻑T<ػ.$UG @T=UU[I|763ػ.$UG @T=pU[I|7^0i!鰂t#J žUn$ Ѽ|%UG @T=Tm%H\".O7<n"8 J⻑=BlaI}inn6.>bҿѿbᨺO7|. G.c>I8IO "=|)U$=KzJ+Uݧ^I|W_pTݧ>K_p>ݦTq}M "0mvO)K+/>ݦ4R>ݦTTb>ݦT V6% q}O|. +6& t{gf70cc" aHpIUD7\R"@}u}FR1[`/&7:ϪڹNgD93:^cs >8F+CzſG}ZE?8޺\ro0AyXI}wʼnX7{? c-D>JDg\wm4.>}sbJ$+N$vCOMMCALL.PAS`  !"#$%&'()*+,-./o0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_G~j\"o487N6í P,!f"ZQ<|Q{AGdLS+Frx冮YFQy# ˸ :y7 7:aAlHupWK;279D" : V jgcWٻcnqk7.ȠOW^V>* VwuG6"b7`êv_!fë8|~/7,xɑ+|pk HU=aayYG_>bGݿ\|z?H<qwwl>N_}_YYXʇcZ  ]Tvˢ1|!Lد_^%H an Ҏ bBX(&MUY>8%`BpJ3 8f]\ٮjÄ&b ~U[ E.ptjW0wEflLj/ww 8ɑ>1 zcgV&  8f0p,bc™nhG<GlE.`]^[w,,;kP425z2O{MUY>8%o_zHphL(БV,>Fvt$vo\>fa,"zXc'O eT%|ؙl="u# h|̂Xel#8L^!{Bq-t$k ) /o48 ]Ѻ1 Os4bo8%YX cA` а[M AGr0̈́~&ˉjܠ; ~ H= ;.upMPoP4Hj=fa)h_jC1RF?heTk?CTKr<ˉjܠ; ]=v]TܜXX ic\:7X >*WБP4UEأX(EXCh"eTްl$ M$aB ]7쬁tqe. nN,>UZz4I,, Tp^1ժ6#eHb) /^H,(h pV?;OюaU{1 O04ESUd.ZFF/ P425~BT˨(o 04\/u3Mj' .8YyzªFcPl:E?a͙Ҫ>O,  i~tXR5nkL YXX4Pa27l zR kL ~F/ʓ%h<ˉ6~B$]6а[MUI,,GEQ?Pn !DB,,heTkMbATKr@?aXR?Pn !. 3c#8yba9m/:ZE{j]&M,,;k`ѣX(%l 2z]ba)hJ?kH&'Xv!SF?aۯO֭J0V 5r؅L<(O2OlWБ, fX(OX(OK:fybjo<_03c P{IU\`7r9ˉ6~BSglrDEx^A ˨ 8faYB)4~B.ǻĂP!EЈ {HxX*]`AGr'X-jّCf2984uJM,ыz~&aG)VEG,'EyR ̞CGr'l@]$X 5Q % v0d|N,ы.O ?8xC2Y`Oы򤲗7zQ7@? "鲰M>Ă9 eTPba!"DH(p=߸  YX\(7(ׇ(7- P>k>ߟ,@yzՖ뇶ߵ,@K[7- P^=}s[W~}~e}C[^=~}~uҲ-6- Pޟ,@9,@ynYeʻ}wZЖCu-'- PZ<=<}sвi[n/- P^]u[߷,@eU[m^,@y-7헖(ONrshO/?~uorвi[n>nYIܬrnY}[n>nYY[m^,@yneáeʻCwZ;mYe}- PmyuږOM/- Po_,@-'- PzӖu'- Pm^,@^zӲ5  XXjʍ!(Ґ͋V = ;<ErjB AeHc5Q, KAsp,'EyR ̞CGr'X.=O,B /:CGvG'iEb*XLFs{ɡ0dA]$&(-ҙ=O,XPaUm(FБnMP:ybX`hw%ZyqV.yb!?p /I CU[Z- U™#™x0Tuv(DBASE2.PASa o !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`xn̺vh ycVͬ[9¥u49A*dCX[5n#qiRP7Hhx)&H(֬Q~$40&'܊Hh&.| V>HO/cR=tVe |UB6U3VO)c ovtw<ji8)+}U⟋W×BUjdoxw62zXFBR>Hthl>pg24| !tSMXh߹7Gx1?;]4έlbirBCB8έ=‹=O |FعA ˱49!Kb1߯Ih4¼!LV6AGf-(sjc X5κZŸQVllx#P%d$,&O8osui je\J)N]!\-4jyہNhC%4(rwr|bX *!xs;9>_Wm8|UIM1o3WE -ૢ8oob(4(7;7x[gBx3ncBhUa~>?EEQϞ?FB @)8”jeOs+ciLh[έ`,C&4IX ci_=dBTFw5~v?,2OIoKk~ ~ͬ+??{Ȅ?I?_=eirrVgBcJHJ{YLh,E g!iZ*M\!~'ŔjeD8BK֗&Qę dBEFJܺ;T)&T%Xhm/GbgmPD7TBGz~җgף,4:V720:Z0?:\0:O0?́;B*`0*X0++{zvDBFILES.PASh o !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefgCv2TX[l C=m}Raa~309kDh}n_=J>35!Bsx=J>|YPOg8y=gxf=.ԣk<PO .=0ӢPM=Z×wwRa?w_)鰨 ihOkSaG\0SO}=!8ZTwG=ZQ*,, a:ӵ7Ac~nZ?3'zucN~YPg=&(zPoWamZ2<3$Ԓ%0ڛ Ԟ9 /I C5szkIjO%af~nZ>(zJzL>\桦,',֧PO6Zj_#X C;P{3!ðєa0A{ztql%iafKkD(==8m* t#P QjO% qM쌦 "ع 0TPMQPX3 C50TCzړk fB|M쌦 D'3^'M-j} r.<)զPM>ŸT!= Cɵ3!>&vFS]l%iafKkD(=98/l* t#P QjO% qM쌦 "ثm$- lim0TS#%VWs96jF0jHP{r-L0lbg4ee8LՁM-j} v.NNg C50TCzړk fB\a;).av.l$- lim0TS#%VsquuaSaC0jHP{r-L0lbg4eeO^]͏&KP͖F C5E>BQb{u7?n٦PM>}* ՐZahʰp ONm$- lim0TS#%VlSaC0jHP{r-L0lbg4ee8L6_j6Z)J+؃`.m* t#P QjO% qM쌦 "؃r> 0TPMQPXɱM}T!= Cɵ3!ðєa0A{pQ~IZha(G(J`.lSaC0jHP{r-L0lbg4ee8L^ݞ^~IZha(G(J`nO/˓6j:Sa( '̄&vFS]|`%iafKkD(l* t#P QjO% qM쌦 "M-j} |qdSaCP!= Cɵ3!ðєa0A{a* ՐZahʰp &KP͖F C5E>BQb{5lSaC0jHP{r-L0lbg4ee8L'6_j6Z)J+h0Tӡp C5Ga=`&u6322&`6_j6Z)J+qaSaC0jHP{r-L0lbg4ee8LϗM-j} x,Of C50TCzړk fB\a;).ax>= 0TPMQPXϧGdzM}T!= Cɵ3!ðєaOt.g\߾ 0TPMQPX|p'm* t#Iң0Ԟ\K0: Mv$`Or|pa%iafKkD(=EqurަPM>ŸT!= Cɵ3!ðєa0A{㤰 0TPMQPX8)6j:Sa( '̄&vFS]ŋ&KP͖F C5E>BQb{p80Tӡp C5Ga=`&u6322&`o&KP͖F C5E>BQb{[G6j:Sa( '̄&vFS]|pb%iafKkD(=NҦPM>a* ՐZahʰp =&KP͖F C5E>BQb{a* ՐZahʰp }u|&KP͖F C5E>BQblSaC0jHP{r-L0lbg4ee8LϧM-j} x>l* t#P QjO% qM쌦 "أ\6_j6Z)J+أM}T!= Cɵ3!ðєaO _ 0TPMQPX:9M}?0TCzLSaG>^e쌦cj} hzhP{g4P0Sc*,, 25g9bZ0/\jzÙ=<zP{OCδGk* ?_Gt=L{â:i1C5[Z- ՜S<2X$j<]u8}OCδ T!=POI0ԇ<4h_M0-ڛ :xxz_j.% CsxepFS C̈́&vFS]&9: MvD{ P+ðєa0A{DϽMO}#RaTXXÐƳ@χOQ C=ȅhz\3hOkSaa[Z- wF:iG_SaO<ڟƓӱ =3ϮI* ?i[qX\V.$)xJRaIۚ]gbqMX>(76ItOKRa=A0-\K0tXtδGk* 4xJ0afKk4TqF:iGhz\3WT9ύMp}POO3!ðєa0A;WG6Aahʰ˄:LMru6322'`g=zzm Cahʰp Mru6322aD蹷 B&vFS],so%ias4µ C5fBM쌦 "؃/I CU[Z- U]LSK>sxefT"=Pahʰp Mru6322a^&`o!G\a;).}'M-.% CUâp=âp=Vx CUt<28)I*ң0TC% qM쌦 "ع: B&vFS]& us + 0lbg4ee8LխM-NEML{NEML{T|* UƓ$HP `&ahʰp /I CU[Z- U™#™x0Tu1M-TzON.3T:53G853T"= C5Z.s}i4P 1.OI* ]h)vI* ?ύ'Sayn<2$ڟƓө0<7p#fma2`Z>4bfό2MRayn<9ۣ% =҈8LևF,ZqX\SfPxr:ڟSl/sj[<<^꠽gPci;f2ISaaaCjrBd0Sؒڷ~TXE. t=<ύ^Tj_=Z×wwRa6G C==A؆hSa3L{0ӚTXejrO>oim0Tc&u632tD9!G\a;)C Cu ==8m$- Umim0TU#%VG6::p CUGa\K00lbg4e2L/I CU[Z- U%E3 CUVx CUGa\K0: M w "Xңl#ðє˄nDsqu&KPՖF CUE>BQb;W6::p CUGa\K00lbg4e2|K-0TPUQPXG6::-HP `&ahe8L֋,0TPUQPX6::p CUGa\K00lbg4e2^&`@z-' °є˄nv/D'sqWI6_6Z*J+ؓʓ¦PU>Bv/Sa( Րk fB|M쌦 ]' "E]m#>&vFS.y =98/l$- Umim0TU#%V'M}+BQb{u7?nK CUV CUGa\K0: M w "X-!G\a;)C C%`&KPՖF CUE>BQb;TG]* Ur-L0lbg4e2BQb{pRTG“T"= C5ZaheK֎Mru632t0]Om$- Umim0TU#%V|bSaC w0TEzjȵ3!ðє;A[># 0lbg4e2a "؃x1~IZha(G(J`.# CUV CUGa\K0: M "Ѵ[ll#ðє˄nDW{/I CU[Z- U%EM}+ܧPQ!̄: M "Xr-Y%iajKkD(٦PU>BSa( Րk fB\a;)C.AK&9: ML.A;=~IZha(G(J` CUVK*ң0TC% qM쌦 ]Ù B&vFS.K/l$- Umim0TU#%V CUVK*ң0TC% qM쌦 ]lN-!G\a;)C C'`r>9m$- Umim0TU#%Vs9TG}* Ur-Lðєp EK~IZha(G(J`.ppr:TG}* Ur-L0lbg4e2BQb{<_6::p CUGa\K0: M "؜Zr B&vFS.OϧGdzM-} x>=0TաaT"= C5Zahe&`[rT{ ^ 0lbg4eP7]at.#\߾>9~o%iajKkD(=Ƿm* Uu#tXaw CUGa\K0: M ' "ؖ-A|c\&ðє˰{ =Equr&KPՖF CUE>BQb{:3N CUV=I*ң0TC% u632t%`ZKPՖF CUE>BQbt0Tաao0TEzjȵ3!ðє$A[/zM6AaheP7OD?NM-} IaSaC ORa( Րk fB\a;)C.A[3m#ðє˄nD/#/I CU[Z- U%Eŋ¦PU>BRa( Րk fB\a;)CIroqM쌦 ]& u$A{[G6_6Z*J+t0Tաa'0TEzjȵ3&vFS.a֙[%iajKkD(-oOl* Uu#tX0HP `&ahe8L:3/I CU[Z- U%E~q{dSaC 0TEzjȵ3&vFS.a6hᗤ-} x>0TաaT"= C5Zahex ͩ^8gqM쌦 ]& u$A{<M-} x>80Tաa'0TEzjȵ3!ðєp Ѣ% 0lbg4e2a\'M-} x.g CUVO*ң0TC% qM쌦 ]' "؜{ 0lbg4e2a' "&KPՖF CUE>BQb{<_^TG“T"= C5ZPa;)C0A{0/I CU[Z- U%E웓# CUV8L*ң0TC% qM쌦 ]' "m[ B&vFS.y }u|t 0TPUQPX:xcSaC ORa( Րk fB\a;)C.ASK&9: ML.A{A.|KPՖF CUE>BQb{z?f]TG}* Ur-Lðєp ð~IZha(G(J`..¦PU>BSa( Րk fB\a;)Cwp&9: MLwEa%iajKkD(=8:EaSaC Sa( Րk fBM쌦 ]o "/I CU[Z- U%E6::-HP `&aheO!/I CU[Z- U%E.l* Uu#tX>HP `&aheOvh`ᗤ-} G6::p CUGa\K0: M ]l0&9: MLfK:9M-} _0Tաa.HP `&ahex _6Z*J+ث CUVx CUTjOzL^桦,'\FhJ[Z- L!Ap~;)D(3G0Ԟ C=CMYNmOEM0~Kk3!vFCv&9bg4=4Xa!+vFCvF6A; G`W6Aȅ`#Dl#vFCvMrabg4=4Xa BM V=B~IZ2#jȵ3!vFCw=BO 䈝vMraM ald3"ؕMraM a; 䈝vMraM a BM alf%iaʠ`.ړSaaayi< zhJ[Z- Tu<0-\K0Ts4`/cg4%0TP: aZ,M#Dy0In~O#*r-LO0-\K zD쌦"<'In~O#*r-LO3J#bg4=4^$_u<0-\KP`&Ŀ΂'D%X3GP/۟$_u<0-\K0Te&Ŀ΂'D ="vFCe{$KP7鰨)} hzhPA`]* USa=1zPy* wF:iG_Sayn<9ۃp=ԶF&-=l C==A0-\K0mZSgbqMX>3q&`\W6N]G 0TPIۚzx<GI* xzP 1ڷ~^㛥q<0S1C}ha9-F)Ci4%0gg4=Ù}䌦u8~K>S쌦u8Ӿ?LRafBi4!KPo~0}0ZxaVإPϴ7hz=?6l&8aY%iaZ}* L0lbg4e2&`G6AaheP0A鹷 0-z}Q* <7]{4h%iafB\a;)C>A;WG# 0lbg4e2av %=zzm#ðєp # P-ðєp %=z/I CcKk}iZJqON.#PXESaޒkIt<28)I> :xxz_zPo}kSaOƧPoBє C=ύ'i(T-1LzL>S<2P\h)vI* vxJRaT,)2<3k EyeT1k]gbqMX>O1I* '=PO<4%񸝌6oim0Ts:Oxr:jsXիg|x` yXk:\9-Wp{8j#rj} ~IV&Ixr:w E >`b_xz%a:_\ôX FdnT9ύ'caPqpՃ˓S,˫W.ON [ nQ P7I* ՜Ɠӱtpt>I* ՜Ɠө0TsONPyn<9 C5t, -M0x4΍sBXh`L Durj[sKP7I* ՜Ɠӱ0Mpr= oƹq[b$,sXl9}1 O#p}cknT9ύ'ca8-r4>~I&GZ8<)pnÖpMV&Ixr:'sqWIl C5t* ՜Ɠӱ}x(\9Pyn<9 C5t, -M0x4΍sSb-u^q̵ O-aQSYa$jsXꃭ5ig4X6/fjnoQ[)娗|Q{8Z C$0TsONP|!lhY/=sZv #@tkF[Gh_^0i?Ya$jsضâ6Ixr:jsT9ύ'c{Bx]q,!6Ixr:js^Զ8&k:ho=x&0Tbe CI0!5g9Ǘ5P-j\~Z0T>|2%0TsO_-ZdB?x` u}roTXY~wwv_T9ύS8^\^/7"#sO?MRaf|>eT9ύ- .8-a14%q6IuxwawPyn<#< CNm?_=3&0Tb?m 2Iz>‹`R\/T1zv B^"= 0TP:}˰Pyn<}81GЋk»w$rZ3q$ 0 Then exists:=False Else exists:=True; End; Procedure lowcase; Procedure lowercase(Var Str:alpha); Var i,x: Integer; Begin For i := 1 To Length(Str) Do If ((Ord(Str[i]) >= 65) And (Ord(Str[i]) <= 90)) Then Begin x := Ord(Str[i]); Str[i] := Char(x + $20) End; End; Begin Repeat Clrscr; Gotoxy(1,5); Writeln('This program converts upper to lower case'); Writeln('and capitalizes reserved words'); Write('Input File: '); Readln(source); Until exists(source,r); Gotoxy(1,15); Clreol; Write('Destination File: '); Readln(dest); If exists('tempfile',w) Then Begin Readln(f,line); While ((Not Eof(f)) Or (line<>'')) Do Begin If line <> '' Then Begin lptr:=1; While lptr<=Length(line) Do Begin If line[lptr] = '{' Then Begin Repeat lptr:= lptr + 1; If lptr>Length(line) Then Begin Writeln(g,line); Readln(f,line); lptr:=1; End; Until line[lptr] = '}'; lptr:= lptr+1; End; If line[lptr] = '''' then begin Repeat lptr:= lptr + 1; Until line[lptr]= ''''; lptr:= lptr+1; End; If line[lptr] In ['A'..'Z'] Then Begin wptr:=1; id:=''; Repeat id := Concat(id,line[lptr+wptr-1]); wptr:=wptr+1; Until Not (line[lptr+wptr-1] In ['A'..'Z','a'..'z']) Or (lptr+wptr-1 > Length(line)); lowercase(id); Delete(line,lptr,Length(id)); Insert(id,line,lptr); lptr:=lptr+wptr; End Else lptr:=lptr+1; End; {while lptr} End; {<>''} Writeln(g,line); Readln(f,line); End; {eof test} End; {if tempfile ok} Close(f); Close(g); End; {lowercase} Procedure casefix; Procedure uppercase(Var Str:alpha); Var i: Integer; Begin For i:=1 To Length(Str) Do Str[i]:=Upcase(Str[i]); End; Procedure initkeys; {The calling program should define one constant and one variable: RESERVED and KEY. RESERVED is an integer and should be set to a value from the following table: If your system is: RESERVED should be: CPM80 165 CPM86 169 MSDOS (standard) 177 MSDOS w/ graphics 211 MSDOS w/ extended graphics 244 KEY should be defined as follows: Var KEY: Array[1..RESERVED] of String[15]; This Procedure can then be called with the statement "Initkeys;".} Type computers= (cpm80,cpm86,msdos); Var op_system: computers; has_graphics,has_extended_graphics,has_bcd: Boolean; Begin op_system:= cpm80; has_graphics:= False; has_extended_graphics:= False; has_bcd:= False; key[1] := 'ABS'; key[2] := 'ABSOLUTE'; key[3] := 'ADDR'; key[4] := 'AND'; key[5] := 'APPEND'; key[6] := 'ARCTAN'; key[7] := 'ARRAY'; key[8] := 'ASSIGN'; key[9] := 'AUX'; key[10] := 'AUXINPTR'; key[11] := 'AUXOUTPTR'; key[12] := 'BEGIN'; key[13] := 'BLOCKREAD'; key[14] := 'BLOCKWRITE'; key[15] := 'BOOLEAN'; key[16] := 'BUFLEN'; key[17] := 'BYTE'; key[18] := 'CASE'; key[19] := 'CHAIN'; key[20] := 'CHAR'; key[21] := 'CHR'; key[22] := 'CLOSE'; key[23] := 'CLREOL'; key[24] := 'CLRSCR'; key[25] := 'CON'; key[26] := 'CONCAT'; key[27] := 'CONINPTR'; key[28] := 'CONOUTPTR'; key[29] := 'CONST'; key[30] := 'CONSTPTR'; key[31] := 'COPY'; key[32] := 'COS'; key[33] := 'CRTEXIT'; key[34] := 'CRTINIT'; key[35] := 'DELAY'; key[36] := 'DELETE'; key[37] := 'DELLINE'; key[38] := 'DISPOSE'; key[39] := 'DIV'; key[40] := 'DO'; key[41] := 'DOWNTO'; key[42] := 'ELSE'; key[43] := 'END'; key[44] := 'EOF'; key[45] := 'EOLN'; key[46] := 'ERASE'; key[47] := 'EXECUTE'; key[48] := 'EXIT'; key[49] := 'EXP'; key[50] := 'EXTERNAL'; key[51] := 'FALSE'; key[52] := 'FILE'; key[53] := 'FILEPOS'; key[54] := 'FILESIZE'; key[55] := 'FILLCHAR'; key[56] := 'FLUSH'; key[57] := 'FOR'; key[58] := 'FORWARD'; key[59] := 'FRAC'; key[60] := 'FREEMEM'; key[61] := 'FUNCTION'; key[62] := 'GETMEM'; key[63] := 'GOTO'; key[64] := 'GOTOXY'; key[65] := 'HALT'; key[66] := 'HEAPPTR'; key[67] := 'HI'; key[68] := 'IF'; key[69] := 'IN'; key[70] := 'INLINE'; key[71] := 'INPUT'; key[72] := 'INSERT'; key[73] := 'INSLINE'; key[74] := 'INT'; key[75] := 'INTEGER'; key[76] := 'IORESULT'; key[77] := 'KBD'; key[78] := 'KEYPRESSED'; key[79] := 'LABEL'; key[80] := 'LENGTH'; key[81] := 'LN'; key[82] := 'LO'; key[83] := 'LOWVIDEO'; key[84] := 'LST'; key[85] := 'LSTOUTPTR'; key[86] := 'MARK'; key[87] := 'MAXAVAIL'; key[88] := 'MAXINT'; key[89] := 'MEM'; key[90] := 'MEMAVAIL'; key[91] := 'MEMW'; key[92] := 'MOD'; key[93] := 'MOVE'; key[94] := 'NEW'; key[95] := 'NIL'; key[96] := 'NORMVIDEO'; key[97] := 'NOT'; key[98] := 'ODD'; key[99] := 'OF'; key[100] := 'OR'; key[101] := 'ORD'; key[102] := 'OUTPUT'; key[103] := 'OVERLAY'; key[104] := 'PACKED'; key[105] := 'PARAMCOUNT'; key[106] := 'PARAMSTR'; key[107] := 'PI'; key[108] := 'PORT'; key[109] := 'POS'; key[110] := 'PRED'; key[111] := 'PROCEDURE'; key[112] := 'PROGRAM'; key[113] := 'PTR'; key[114] := 'RANDOM'; key[115] := 'RANDOMIZE'; key[116] := 'READ'; key[117] := 'READLN'; key[118] := 'REAL'; key[119] := 'RECORD'; key[120] := 'RELEASE'; key[121] := 'RENAME'; key[122] := 'REPEAT'; key[123] := 'RESET'; key[124] := 'REWRITE'; key[125] := 'ROUND'; key[126] := 'SEEK'; key[127] := 'SEEKEOF'; key[128] := 'SEEKEOLN'; key[129] := 'SET'; key[130] := 'SHL'; key[131] := 'SHR'; key[132] := 'SIN'; key[133] := 'SIZEOF'; key[134] := 'SQR'; key[135] := 'SQRT'; key[136] := 'STR'; key[137] := 'STRING'; key[138] := 'SUCC'; key[139] := 'SWAP'; key[140] := 'TEXT'; key[141] := 'THEN'; key[142] := 'TO'; key[143] := 'TRM'; key[144] := 'TRUE'; key[145] := 'TRUNC'; key[146] := 'TYPE'; key[147] := 'UNTIL'; key[148] := 'UPCASE'; key[149] := 'USR'; key[150] := 'USRINPTR'; key[151] := 'USROUTPTR'; key[152] := 'VAL'; key[153] := 'VAR'; key[154] := 'WHILE'; key[155] := 'WITH'; key[156] := 'WRITE'; key[157] := 'WRITELN'; key[158] := 'XOR'; Case op_system Of cpm80: Begin key[159] := 'BDOS'; key[160] := 'BDOSHL'; key[161] := 'BIOS'; key[162] := 'BIOSHL'; key[163] := 'OVRDRIVE'; key[164] := 'RECURPTR'; key[165] := 'STACKPTR'; End; cpm86: Begin key[159] := 'BDOS'; key[160] := 'BIOS'; key[161] := 'CSEG'; key[162] := 'DSEG'; key[163] := 'INTR'; key[164] := 'MEMW'; key[165] := 'OFS'; key[166] := 'OVRDRIVE'; key[167] := 'PORTW'; key[168] := 'SEG'; key[169] := 'SSEG'; End; msdos: Begin key[159] := 'CHDIR'; key[160] := 'CSEG'; key[161] := 'DSEG'; key[162] := 'GETDIR'; key[163] := 'INTR'; key[164] := 'LONGFILEPOS'; key[165] := 'LONGFILESIZE'; key[166] := 'LONGSEEK'; key[167] := 'MEMW'; key[168] := 'MKDIR'; key[169] := 'MSDOS'; key[170] := 'OFS'; key[171] := 'OVRPATH'; key[172] := 'PORTW'; key[173] := 'RMDIR'; key[174] := 'SEG'; key[175] := 'SSEG'; key[176] := 'TRUNCATE'; key[177] := ''; {reserved for use in TURBO-BCD system} End; End; {Case of Op_System} If ((op_system=msdos) And (has_graphics)) Then Begin key[177] := 'BLACK'; key[178] := 'BLINK'; key[179] := 'BLUE'; key[180] := 'BROWN'; key[181] := 'CYAN'; key[182] := 'DARKGRAY'; key[183] := 'DRAW'; key[184] := 'GRAPHBACKGROUND'; key[185] := 'GRAPHCOLORMODE'; key[186] := 'GRAPHMODE'; key[187] := 'GRAPHWINDOW'; key[188] := 'GREEN'; key[189] := 'HIRES'; key[190] := 'HIRESCOLOR'; key[191] := 'LIGHTBLUE'; key[192] := 'LIGHTCYAN'; key[193] := 'LIGHTGRAY'; key[194] := 'LIGHTGREEN'; key[195] := 'LIGHTMAGENTA'; key[196] := 'LIGHTRED'; key[197] := 'MAGENTA'; key[198] := 'NOSOUND'; key[199] := 'PALETTE'; key[200] := 'PLOT'; key[201] := 'RED'; key[202] := 'SOUND'; key[203] := 'TEXTBACKGROUND'; key[204] := 'TEXTCOLOR'; key[205] := 'TEXTMODE'; key[206] := 'WHEREX'; key[207] := 'WHEREY'; key[208] := 'WHITE'; key[209] := 'WINDOW'; key[210] := 'YELLOW'; key[211] := ''; {reserved for use in TURBO-BCD system} If has_extended_graphics Then Begin key[211] := 'ARC'; key[212] := 'BACK'; key[213] := 'CIRCLE'; key[214] := 'CLEARSCREEN'; key[215] := 'COLORTABLE'; key[216] := 'EAST'; key[217] := 'FILLPATTERN'; key[218] := 'FILLSCREEN'; key[219] := 'FILLSHAPE'; key[220] := 'GETDOTCOLOR'; key[221] := 'GETPIC'; key[222] := 'HEADING'; key[223] := 'HIDETURTLE'; key[224] := 'HOME'; key[225] := 'NORTH'; key[226] := 'NOWRAP'; key[227] := 'PATTERN'; key[228] := 'PENDOWN'; key[229] := 'PENUP'; key[230] := 'PUTPIC'; key[231] := 'SETHEADING'; key[232] := 'SETPENCOLOR'; key[233] := 'SETPOSITION'; key[234] := 'SHOWTURTLE'; key[235] := 'SOUTH'; key[236] := 'TURNLEFT'; key[237] := 'TURNRIGHT'; key[238] := 'TURTLETHERE'; key[239] := 'TURTLEWINDOW'; key[240] := 'WEST'; key[241] := 'WRAP'; key[242] := 'XCOR'; key[243] := 'YCOR'; key[244] := ''; {reserved for use in TURBO-BCD system} End; {extended graphics} End; {regular graphics} If ((op_system=msdos) And (has_bcd)) Then key[reserved] := 'FORM'; End; {initkeys} Begin {casefix} initkeys; Clrscr; Gotoxy(1,5); Writeln('Now capitalizing'); Gotoxy(1,23); Writeln('Press any key for a while to quit'); Readln(f,line); While (Not (Eof(f) Or Keypressed)) Or (line<>'') Do Begin If line <> '' Then Begin lptr:=1; While lptr<=Length(line) Do Begin If line[lptr] = '{' Then Begin Repeat lptr:= lptr + 1; If lptr>Length(line) Then Begin Writeln(g,line); Readln(f,line); lptr:=1; End; Until line[lptr] = '}'; lptr:= lptr+1; End; If line[lptr] = '''' then begin Repeat lptr:= lptr + 1; Until line[lptr]= ''''; lptr:= lptr+1; End; If line[lptr] In ['A'..'Z','a'..'z'] Then Begin wptr:=1; id:=''; Repeat id := Concat(id,line[lptr+wptr-1]); wptr:=wptr+1; Until Not (line[lptr+wptr-1] In ['A'..'Z','a'..'z']) Or (lptr+wptr-1 > Length(line)); uppercase(id); i:=1; found:=False; While (i <= reserved) And (Not found) Do Begin If id = key[i] Then Begin found:=True; line[lptr]:=Upcase(line[lptr]); End; i:=i+1; End; lptr:=lptr+wptr; End Else lptr:=lptr+1; End; {while lptr} End; {<>''} Writeln(g,line); Readln(f,line); End; {eof test} Close(f); Close(g); End; {casefix} Begin {cleanup} lowcase; If exists('tempfile',r) And exists(dest,w) Then casefix; Assign(f,'tempfile'); Erase(f); End. v%`TOOLBOX.FIXU  !"#$%&'()*+,-.o/0123456789:;<=>?@ABCDEFGHIJKLMNOPQRST/Wgoo%W1zWu['+2޲*^Ոwژ_nd\QxW{+|=g(q%xf^|՟ڔwpw`l}hAư`^Z-d=i6 Nde}5gahE(I@ KeY(#Eps$ $cmb\h#޲6] A1SPzc6|rpV๚B( %h_hVhԟ/#W-X{J %iP๚B( QajPx T"̱} ܪ'2VPX!uّ`J9vGْ6BIQa(ZElVl<6JdyBW4vOI(8 <#X)lf6ZQn>UbtZ*lƌБWP )8XZ<*'tu@c%c ZF^%i#Wng[`R*'hC1B%½VP"8-*!hCOK-#J\*5f+tBk3akpaHU#Gp=sx Y+(<-+f2 %T"y0:FSlgGG$8ic8P$)C{"- vx˂]{[%oY𭽼l$dt*J2G&_([lmy0:^񊌷,ص8j=h+ D{d=)8>H`\,صm0rE'+2޲[{y n3ǎ D(I@>NS{~36\_[{~vO <#63(LG[ZFJdP< E(C1j:Ʒ|Fk̈ *J2GGPI+d`Ƞ<g n/ONj;\<8N՛] 6b *J2GG hTcHT,J9v_$-A%B"xpqګ^O"jl-w_ګ3(#/?u)=NdeAK!)]c_ \pW-pe8_cs}}j,zkMPp2@m yX2m2$ sԅ<~ .VGFJvm+ {zk#%CG咲Պ(2Pprֶ`Bz&yk#VvV|]5CpX^߮Kr.՛-*VD+\RZQEwU]P9kV #{L=g(= UJP+hl$-Pؘ:+ʰ FȞV2HВ x&V XVaisn0r5͆ypw_6O/56_ګͮn*NdFDT2DVȃDhlJ2Mpa$I>#ɇg|CpX ɇr$\p=Ӌ~㻯OYpaf'2# Wh?<.a$ʑCpwl/ oς 7t\vnDXj+:}7 r?QJ2MpX7nox'Y!+4l@Mc%)c 1ў'2޲h ZUiI*?]6&x6ʀ@hl$ߞ\po[qBƴwf>l㉍BS( aP=ehY$E?Mp/n'x-IC%# @ l4CoOc.GNj=A%B1ʀ *^Α0^Ek6dLy=sxl} |⊥բ8+P<$-yXDEY%cw ngRu L%¬eGClVQy\pXٵ&gDh8FZp.2V,&UR[lx0zq6<^x{В9J9vRK .87h s.8C0/]%cZ_04G]KR!)7Pp2 Z}4V;9xb&nήWT*A%B1ʀ o>tld-KƐܴ蟷&"^Lm\J5?_@K_8S[KƐ*zK-U6T[R? CHANGES TO SORT.BOX 1. About 17 lines after the main BEGIN of procedure QuickSort, change: M:=(I+J)vgBELL.PASV o !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUѷxg_\򱦟X*13<¶මGRS9`@e@(9[kUZ²h^=>,^<~8rii;P$˄ke@>^{)@PKiOxĶ]TAֶԘn@ 5|mqlҷR+p|lOȁ|ǑC0@{X135+U 8`$NȦ#ɹ?*K.p \Z ig0X^!}, }Xq3aDBeQ~I8R)@ȴ,` @HR>}-+W"=,QVVO TS=պ_gg*KM?}bá݈W?7 lgE{?x˓7YJzmftb+m뵙ҌqcxG SXXX>,YGʨ'XԬ#v,#,H`% #L ‚r-yDzѦcaaeI:>i߱ԛ M9735h dޔ"Zkr~ɓ' dMDzѦcaaeI:Frc7eA,:>X6t,,,,YGy2Roʂ4YD lz 9o8s<h˘GʙcA,rz6]jڟ1L8R)/9se#Ljzޱ M9=8`$NȦ#ɹcA,rz6'2ri) ==`y5=X&hM͇p븙0N;"Z gӅEE y#-F>%5HxG|@q)\zm._]i[̔:zSɮffJ3> ;-?ݍe;+ѱ Mvm63SoncaA O;,|TӾcA8Hu,H<ܼcAĂ#9ױ yǂ$m:FebAԛ Hu,HrAnޱ M6t,m:51zSL 5'zS;Hks\Jzm.gԱlY3/1Ximc8 IG"Vi.5pR㷘qU"qB1<+W 8 ґ#HPm+c8 ґ#HP琎E+PROGRAM bit_map2; (* Original work by Steve Fox Bit_Map2 modifications by W. Mabee, CRNA and H. Kaemerrer. Demonstrates compression of 8 boolean variables into a single byte. Anyone know if you can accomplish the same thing with shl or shr. *) CONST header = 'Test < Bit Mapping Routine >'; VAR more,response : CHAR; ans : ARRAY[1..8] OF BOOLEAN; hold : BYTE; i : INTEGER; PROCEDURE set_bits(VAR flag : BYTE; a,b,c,d,e,f,g,h : BOOLEAN); BEGIN flag := 0; IF a THEN flag := flag OR $80; IF b THEN flag := flag OR $40; IF c THEN flag := flag OR $20; IF d THEN flag := flag OR $10; IF e THEN flag := flag OR $08; IF f THEN flag := flag OR $04; IF g THEN flag := flag OR $02; IF h THEN flag := flag OR $01 END; PROCEDURE get_bits(flag : BYTE; VAR a,b,c,d,e,f,g,h : BOOLEAN); BEGIN a := (flag AND $80 <> 0); b := (flag AND $40 <> 0); c := (flag AND $20 <> 0); d := (flag AND $10 <> 0); e := (flag AND $08 <> 0); f := (flag AND $04 <> 0); g := (flag AND $02 <> 0); h := (flag AND $01 <> 0) END; PROCEDURE set_up_screen; BEGIN CLRSCR; WRITELN; WRITELN(header); WRITELN; END; BEGIN REPEAT set_up_screen; FOR i := 1 TO 8 DO BEGIN WRITE('Question # ',i,' Answer Y/N : '); READ(KBD,response); WRITELN(UPCASE(response)); ans[i] := (response IN ['Y','y']) END; set_bits(hold,ans[1],ans[2],ans[3],ans[4],ans[5],ans[6],ans[7],ans[8]); get_bits(hold,ans[1],ans[2],ans[3],ans[4],ans[5],ans[6],ans[7],ans[8]); WRITELN; FOR i := 1 TO 8 DO BEGIN WRITE('Bit # ',i); IF ans[i] = TRUE THEN WRITELN(' is true.') ELSE WRITELN(' is false.'); END; WRITELN; WRITE('The byte has a value of ',hold,'. Want to run it again ? '); READ(KBD,more); more := UPCASE(more); UNTIL more <> 'Y'; END.  program GrouchoMarx ;const topline= 09;bottomline=21; leftcol=10;rightcol =68;var deltax,deltay, xpos,ypos:integer;ch :char;procedure Border;var i:integer;begin for i :=leftcol to rightcol do begin gotoxy(i,topline);{} write('-');gotoxy(i,bottomline); write('-') end;for i:=topline to bottomline do begin gotoxy(leftcol ,i) ;write('|');gotoxy({}{}{} rightcol,i) ;write('|'); end end;{}{} begin ClrScr;xpos :=leftcol ;ypos:=topline;{} deltax :=1;deltay:=1;{} {!} gotoxy(33,5);{}{} write('Groucho Bo' +'unce'); gotoxy(30,7);write ('by ' +'John M. P' +'assaniti');{}{}{ }Border;{}{}{ }gotoxy(29,24);{ }write('Press any' +' key to quit.' );while not {-ugh-} keypressed do begin gotoxy(xpos,ypos) ;xpos:=xpos+deltax; ypos:=ypos+deltay ;{ }if{} (xpos =leftcol) or(xpos=rightcol ){} then{ }{ {} deltax{ }:=-deltax;if( ypos = topline){} or (ypos={}{}{ }bottomline){ } {} { } then { } { } deltay:=-{} {} {} { }{} {}{ } { } deltay;{} delay ( {} { }{ } { }20 ) end;{ }{}{}{}{} {} {} {} {} {}{} gotoxy (1,24);{} {} {} {?} {} {} {} ClrEol;{<>} {?} {} {?} {} { }{ }gotoxy(27, topline +3);{!} { }{ } write({} { }{ {} 'Not very ' { } +'e' {} +'xciti' { {} +'ng, ' {} +'was it?' ); {} {?} gotoxy(23 , topline + 5) ;write('Well, l' + 'et''s' {} +' see you write a program'); {{ }{}{ } {}{ }gotoxy(23,topline+6);write({ }{ { } { }'where the source code look' + { }{ } 's like');gotoxy(23,topline+ 7);write ( {} { }'Groucho'+ ' Marx!!');{ }{ { } {??} {} gotoxy (1,1 ); {} write( ^G {} {} {} {});{ ;;} {{ {{ } delay ({ }{ }{ { } 9999 ) ; {{{} {} for ypos := { }{ }{ {} { --Groucho Bounce-- } {} {} {by John M. Passaniti} {{ } {compile with Turbo } {} {} {Pascal, any version.} {} { {{{ {{{ {{} topline + 3 { } to {} {} {} {} { {{ } { }topline+7 do begin gotoxy(23,ypos) ;write(' ' +' ');delay(50)end;gotoxy({ }34,topline+6);write('See Ya Bye!!' );gotoxy(1,1);write(^G^G^G)end.{!!} vLUP.PASa o !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`Өfxi,ۻ3\8hQ\B+LMykg~~_]]]ᾡ`"A+g__]]]A-xA7,wwwWWW(o8"#O&q0s?_o: !,EPļXb^tCXR/3,EGxݨ1g z$~Dyo(aRMh*"A%5RQ9pY?'lo:oݾyuvn_bs Yc<|w-n_bsYc SjJLUk5VV0tC\GXHEx8 @7pp>B*biv-k̹pnÛ5o1/Y/R/ 1%Md!Qv^7[gE~uY:KLY?|8y3­)5EH%/: W\jg/Xb6ۛT;|+ A-vY%9|yl V8Qx7ϵȗ': >`gxx\;,LtW.0 pM,eG`< plM,-{`̚fT\^?:,iT*0RDvŸ́E^DvyxESK3GmSW;s|Eq,þR%c>JE],_E^DY3.jgu4 H LmNt}jgEDgc.a1kQurG3agA0X!7p>En0jgz"SPE3+|S;<%+ A-q3+>kgz"SPE1^kgz"SPE1L7mvyxTc.6 x6SB9|zKW.051Zc.w obazsA],S7\a jb(L7mw^"o?{E&Fb!tap??cg/ϸuYӨ&T#G"_h&,"Ë() )O&q0K],"Ë() y!gBP3X`r)nSW;<)pj^IVq @%6uË() y!W4*)5\GXHE6uË() y!dz0)QIE^DMi S\Ҩ:Z E,mjgQ4nS`8BB6Oqxzچ9uË() y!{\A4tYEM۔LYӣTt00XWu+ AFMH#{En,L7m7\aYӣsAV3ݴG`%gTp +W}nE> L ^HC:$gTp +8$Y^yo„ x?mnERU p +4uPm7\a /nE>CJx^yo„R8&Y^yo„ OpƓCJx^yo„ !vGSigTm7\a $uPm7\a *u ȧp ۛ7np'('gTm7\a K"^yo„՗A7"{E& VHoon߼:E;`<G`<9<$ LX!%Y^yo„ !a?OQ*:O"* z")A7"h&,EMkgO{"+T;|zES6DyoA`"#||@E>)ȧg\8|yEv4vDשpK^-q?"_i2S1XDשonnjg/$ ?kg//h \;|yES6)>Q,E1?Q,EqW;|6㩫EӒvy^yoENPY{Åȗ笥B7\aw#Y\^yo{EYg\lgaRMh*"A%5RQ9pY?vALIFE.PASm o !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijkl'AG!m( x}MSa'y|_?# <&LƩ" &Gl`ziܝg)0πOݥk( L/w+#6qn'y=?EX°Xx0ӯ(Dg7°XˠEnƩn0A6qݑN}V c"RN=\>8cy|[IyaLA L/'Gr cwo4/?.7;>5 C=n;S WQ젦SzwG0!4  ޺H0RN=tܫ)(rz۸2˝r0eQ7QpVqA`G'|ywp=Jy0)Qa@hF4ܪ0N8Kthk)@1RᗷY==Ug8j«Ap;5G\0(r? F+)($@.]C.5ʄBt zc}]<6!#EϹ :m2_ܒ02ٸ1d+rR4N} .#aC`aipw磓? 7(*a>+v°gGWaqja'xǂGC\I/G# { r`wIw)0Ɨ$ {V>%a{KƨWu=_S5WF|$aW&71ƽkʳ* ÞQ`, ;|LvT}5M$xerCIvp{b ($agI|(b, ;|LvFQ/;lk1Fas%aW@xe#IX {~T8*aوZ̳$ {uÚrS;rw8ɧ:ɍSb ($a!kqB~^gLN}v r & xqqX./V'aa_AvxT8*򐄅aϷ4r^vg\:OA]%a3]Rnaϔg/oGE% ;7o/HQQyT$ ;KN(G$, {<GE0Ie@XLnCIXv°&$ ةCygU]Zht`,'J°>8CKa}p> . °Y/'sDw7mrC M @W rf0m(yZJ°>8CK_.3EYW;ܨ0-fj_* . -}]ZR SP@5 \ĭߡqo)B2G]"?ݠqo°0җ°sf0m(Sp{uL61Ksg(LswFŭZ7U]ZRvX]py<8dg"ƽ%>CGA°0җ°=Qq!vp{4&B޸t|o {3 g EzjkaTIvghZtAn(b >s~t_WIvgh0җ°Tt suIp D1|:?Q 7N=t}ApZ7U]ZR} j{cAb9SP)NC xQ\6jaTIvghKa5 >BHFy q#.S毎qi- * . -}) z{MT-!3mq El!s=p(Fn Xju}V J°>8CK_ ߽Q=: țpP^0"O!7N} g#àLA@;4gΏ y1U]Z$ 30cAOutxIEQ9n` B]WxMW#L("ӽdS J°>8CK_ cm H56*"7x` 1<ɯ(ޙcˢMa}p/K ua;5zz(w8J°>8Ce}(F F1Po}]%aE_K: #eTmᨨ0mᨨas%aa-5 $aNwOUIvg?]~GM]%aNw?tx0PY/L<U|}a}pWSJ°Ý==g* '(u&ÕNѸ Ӂq#6t+0bI3 X %aQ^ 0gIXXIe@xg\޸$, {<Acֽo1F0F 4x4Fc8թ`LLaֽG;Ƌ[ F r Sa؋ޙ[C hֺ?#Sa-^K&fюKN(o/׹$, {<:țy6lD1 Acֽo1F0F ."& ה"& :țy6"c̳%a3E2lD1 4x4Fc_:VuX oو1xĬQ8_.31a}g#v`YLaֽG;K|q~SaY' K<G#fF#f:țy6wXaV!Sa؋ޙ[C hֺ?#Sa<ҽDF͚< c) ~yaoKq^L"10췝==ǃ1bY=VUI[rRsU%aoKwL,Acֽ0췭 hغ`f°>K°oZaϓ +(W / m hֺ0gj" ~yaoKq^L"1֔gINA¬Z+̪$ PYpt@4!߿"aagQH°[9/ ;ܩCٻXaaV%aa^U>hgg0_ .4r^vSw)¬gJ°>8Ce]}a;5zz(g~AnT00A&>hǘ(z . c]%aa^U]f CYa}pcAw`6t_WIvSw)gU*_QN=o* wjP.3V:0PY^U]f U*룫08 5ua;5zz({+|J°>8Ce;?$ ;ܩCٻX}U*뿇`ǺJ°Ý==L~ca}p * wjP.3Vu_WIvg?$ ;ܩCٻX*  G+U]f Ya}pz* wjP.3VJ°>8CeGua;5zz({+0{W%aa#$ ;ܩCٻXKU*뷰x ua;5zz({+aJ°>8Ce#O!7N}[WIvSw)Ka}pʛOU]f C*  ^N8m]%aNe U*oZ Þ*°Ép H_MCbP05!Lp~f?aǃ1vX޷xC# IX|K#a;5zz({+p60pbY?S$8D` °-]wOߡa °-]]f Ya}pzy08F7?:<>wT%a< hǘ|Lq|7Iv1CS°ɔ0< hǘ|Lq|7°s%adj0ALA^.)7°ϔgK_Nk hֺUlPƈxq~SU}r{xq~SU}& \ 7*Lg(Acħ1z) þ)8CҽJ°ߖҽDc7-%ao'z9mrԣD/Mnz0K°vjP.3V=u0>8C^N8-*aos ~, ^CЀvp# {[o\rr\CU (!h0H?$ lA !h) ^CЀvpa;5zz({+|pvV%ady` °}pzy4pT}U .$ {qԄ6°τa>KN(«-"aaSj񑾚$ ;V'akC~G-^?~9 Acֽo1F0F wjP.3VxlV%aa~p w[j* wjP.3VxpvV%avYG;$ ;|<[5!* wjP.3VxlV%aQ$aNe OΪ$ ;}) .4r^vSw)—ggU]*W[Gua1/PЇ$ )NO& .&|Py` °[9/ {L}p5T%a؋yЎ11na/>K°`0Ńƈv:w)0uюV>Qܨ0TML!x4k0Kq^L"8n[) ~lA !h) uK#agh5x45k* ucL8m >}aؿ}aGF*Pa >< 0ya؋yЎ11n0b< 0ya؋y#O̓kJ°==Lt8;0 smas Þ}P6 81 Þ*°ãQ$ ;<ZgQH°[9/ ;\ޣ& AcD;M]f 0;pJ°>8CeM* r# ةCy<#VuXcYaWc/$Pa/r# {=`3Oc;{=LA^gW0K°ד &> / fK#a]f Ya5aM}Sx4F0ֽ Jg°Dd+xw{0-}Sw)—ggU}g<*BPbS]%a7;5zz(Ac k{00웉+1^g°5%]$ x<+yu8*$ lPB3@1RVa/4r^mᨨ0Q ߇<**F}sT~_'ag0웣u~}sTua?°o c?IVQvKa}sTIǛVQvN°?Za7G1w05Lb$ lpT`5LA^@;FT'ad+>aSya؋==Lt8;0Q$a؋==ǃ1bY=VU°s%aQ Gt# {e+ {<{5D> ^U+ {*K'a؋zV°[9/ {}<#1Ne hU^ޣt0(׺0gI>[a=1^Mr{_%a؋] ^oi0 hhx5 A$ {ֽG;ƫ`Pu+aϒ0EC ^ƈv@Yy<ca/ꧺ)'x4* ^uюq(+׺0gIna׺h8 k* ^Կ[a->Ay<ca׺h8 kJz3a؋ϒ0b hLG` °[9/ {q<#1n0ZAֽa/>]P Ac'a/4r^x4Fc.31K°k{cʵ}% {1Y]L6X;ܨ0x / {ֽG;ƍ0삚Hlֽ'a/ֺhQa0޸G8*ByJ°Ý==LfgUIvg[ u% {>Y°ϔa'>0>&au'a6qюqaw)ƩG;M=?ɧЎ, ÞȜhtƩI|FOe2S`S* Þ*Oi$[̾x03]RnaG:Qq!&ao/׹$ ;lpO#w) .4@;F}\(0Ś<ɧ$ ;lK: #e0yaŖF .)_f* .H8*a؋߽°;2'qcO0djK: #e0ya7'z9mrԣ& ^>ɧЎ|yO#aٗgOOU?naOi$c_˓| }pS ^}a 8}ݡTwg0ŖF ^]f 0{pvS%a؋'4Ƹ) ^*OiO05a '4-f_Z=7Ay&7N=ƸeucT}rM)"Ƹ$ {Sw)SwU=?j\$ {>GE(W0yaap|P?Օ0950D/MnzqSni0pFOe2S`wΪ$ ;3T 1FK°;5zz(g~}v/_f?S$8D` °-]