@L `}/j5  $% l0?$)$$Hȱ$ ShL$ `e$$%` h?/ `  !I PR@1 YL I`! S S) H$ЙH 0}Џ$%`@ $% CC$$%e%dU$% ]0%$% DDmLp   % J)Lz J  (( o L (y/)  [L< ( yL Z 0o Tya y }4IB [y32C/10m?4 V V  wLL a ` V y/})23LzA! ߰")-݈ y" $zzG@LL 08` k")};1k0 -G$Ș݈ SL! 9 y8(()(0˥)Nk`$GȘ݈LS )L ݈ L GzȘ} ݈LL )W>Z   HH)H o h  yhy00hy11/ V  }L> L JJaHJJJh) yLT J u (`  IBLH % 6h HHGH`LdJ })LJJLw!,"!,/@F  L! ! 0E^  }^ E E7EȩEdE/EȩE / ! Vΐ )L   mx n wym }?x7x?4 ( ) w y32 R V LL n w ) V  L y / o   }E` , ny/) / V Ly/) 0BM݌L݋ ML  N݈ L }NLML [ fEqEHȱEqEh 3Gȹ G KLL GzɛL  L}FREE SECTORSy /H) *Gȩ GȽ4G GȌyh%*J >G<-+=!*?%% &%z3%$$HEL{*DIR*LOC.CLR.LOA-VER%INI+UNL.FMS.SAV,MODg%CARR*REN?,FME.H"}EAP)BAC_%BONo1DEL.FMD.SUM(RUNm*BOF|1COP3&FMQ.TYP.)EXE$ 1Y5P" O."8""@R'S15%#}0i5i5501ȊԢx5"JFJPWy"HH *5")IAY54 4> 4,0$}L#N #L|*J #L*J #14"4`J # 1Lk*v} 4 *%H$H`)?4 $ 4 #$0 %} 2 4 $ y$, L$LL-19" !"H "H` $ $Ѻ Ѻ걺 2ȱ 4ɛL"ȱH&}H 2e滠滱 u2`> 8e滐`+"`e` y$ 2" 2Execute: W. /p O. '}/ 1L"*ԆՎ l$ 2 \*L#L)4 % HJJJJ 3. 4h 3 3XFHSEX; 4L4(}"݅pq y$ 2ݹp` %ݱp 3`,5 2`N5 l$ /0 / 1 l$L$$8n" }$ 2pq y$I eppq> )}4pq 3 3p,"0 ' 4 3L& 3`p8pqŠ 2ݑpȥpȄ(` /5D . 5 - #( l*}$ / #(莉5 2Reading: . .ii e֥iש 0( . `1,P3 1S / / 1&+}& 5$?♵5 -8tu E( rȥs(0 O. .Еߥ .8 ' 0( 2Writing: rȱsr* / /,} ,` / 1rs8 E($0 O. . .C .L'5  e . 'Lx&,5PJC`,50 2I-}nsert ( 2sourceL' 2destination 2 & hit key ! #ڭ ҍ5L25`5օtׅu` S2tu /.} 1HrettIseuu(` (x / / O.L1`$0'5 / S2 1XY O./}8` W.r n( (errstuvw 2LEN: vw 3u 3 2 SUM: st 3rL3 W.$0 * n( ( 4LB)0}N` W.ʆ n( ($0,F (!$0բ 2No COM-File !LO. (8ԨՐυلإ5 * 1}2# 2RUN: E* 3 2INIT: E*L^) * 3 2. ԥ 3- 4֥ 3 2 LEN:إ 3 (L)إL^) 2}( ( 3L3 1 y$T 4T l y$l 2l *" 4 3 * $ $ 4 2 *ݥURL4` 3}, /$0"I" 1 n+,"0e+Di5Ei Q2 1 2 V/8," 24}LV+ԩ 3: 4 4I 4L+ 2D5:1 4 2: $;0+ 2SINGLE 2 DENSITY 2 RAMDISKL* 2ENH5}ANCEDp 2DOUBLE 2QUAD }/5,5$ 1 O.$0 `DOS.SYS8f5ȩU5ȩP5婿t"Y56}L, / - l$ / /X,L. /,55 5.5 橛5L/LL$ }/ l$ 2 2刄t( 287}$, 2RUN : y-ft 2INIT: y-ft 1 -$tP`$tPF$6ee8}ȄԄՠ$0֩ /$0 q- /8ਥi S2 L15 4ɛ 2` y$ 2 " 2Load: W.9} /$莞 1 -5 lL"0L2`")i"` 1 . / Q2 1'  Q2 1٠:}0 V/ .L.L2 BLVhihi / -i(i( -8((((.. . `1 1 - .;}`5  e`,,,,"H 0hZ,!,#,$/ /$0 $0ZL/ -/L. / /"L11/2/5<} 5 H.5h5ک5`5c/d/ 5? $08`$0`45 [2519 5=}55 /$05455 /5ED` *50 4`5008f [2R0/@ 2.>}/ȱ 280@0  eiȱ/\FȢɛ  o- *  D.8;+"/+ȱ0"?}LL$V ȱ+F/ڊ u2 80 ? 00 0/+$0Wy`5 ` 2Sure ? 1Q`$O 2es, @}o or bort? 81YN 4(` 'ɛ)YN A 2AL"` * 4 `)  ӆiA}j O.+ /  /$0Ș,J, 1B V0`1 O.:>ݩ,".U * 2 is locked !Unlock file? 1ݐ`B}$ 1УԢ5 )p O. * * 2# 4 3L"IH`:;:` ,ɛ`` u2` *C}hihi 4eiHH` ," 4 2 8`0:` 3` 2iԥiդ o$ԥ(`LL$ 2ԍ2Ս2D}Ԇՠ+22ȱ.6'`0#: AG6  &&`8`芄  (` }$ 2 2 3 E}2=' 38nɛL4ԥ 3 2=.݆ކ&բuݕت 3ߊ, 3HJJJJ 3h) 0:i,  F}4,500 BHI V,L2,"p:ɛUR.* t4 t4^ 81 t4( $x0Nhh`S8R^`倈G}HH`p@BDE-HI V0H-` O. 4L2L"ȱ 4ɛ`D1:*.*pB 5H}0#452"/ $/38%by("arth&"ruchhaeuserc -2eitershan#omputertechnikI"L2L"ȱ 4ɛ`D1:*.*pB 5[8<<  B JKIHiDiELV`L8 8 BLV`LxJ}8t8l Lu8hihiHHȱȱL8c !#3`Lu8JJJJ`H 8h`HK}ȩh Q8L8 Z8L8 8L8 8L8 8L8S:@9E:E9H '9 H9I9 8 '9h)0ICL}9D9L8 L :::: :Lr:::IEL[::i:iIIL[:`:i::iN}::L:`L{:w:w: C`L:L: D8:MEM.SAV: 8| 9 '9`L:L: D:DUP.SYS:̩ 8O} x:ɀL: '9`88 |9Y:X: '9L); D8:DUP.SYS; 8::88 9 '98? :`;WL`; 9P}Ln; ` :Y;Y;L;L;)} Setting Up ATARI 130XE Ram Disk; 9L; ; -9  Q} L;D8:; :9 :Y;Ls3>00x|73>00x`c6<9c` 33c366fffg~33>00xgfffff< S}11111{!!\]_\ED!EOHI B V`}   T} TURBO-BASIC XL 1.5 (c) 1985 Frank Ostrowski!  ӥL]""$$ (p U}%J[WܠjeC /D%Zub2gTSt$8®݊Ò2% 5R V}Ţtd.’$3@X7t5w5$?## $#L+D:*.*S:C:P:$#.#) `:#(6ENeU\l؏&/ؕ؄sأ$ W}LENeU\lأ$8آǔƐƉƐƇ4cY%٦rULۉCۄړp^gyض%iwܸJڅ*ܣ$ڭڞجئأأ X}$ ,(""(222000000..222222222222222222222222222222**22*22(222(2222222222 ,(""( Y}0000000--**2*(22(2222222 V`hh@,lHH$HHHHHHӍl" Z}H$HHl $`GHFH\` ` 4ӭ l 4Lq ӠԪӅԆL} Ӡ L(  [}) ` b% +L:#HH 0 HHLj%ӥHlL{ee 8eee \}eӦee褢%ƚƜ`88夅奅8 ]}夕奕Ӡȱȱȱ㦢`L+`8` .E)))8@8e0 ^}*څۅ܅݅ޅ߄ԠF0y"ޥy"ݥy"ܥy"ۥy"ڥy"و0ǠF0y"ݥy"ܥy"ۥy"ڥy"٥y"؈ _}0ǠF0y"ܥy"ۥy"ڥy"٥y"إy"׈0ǠF0y"ۥy"ڥy"٥y"إy"ץy"ֈ0 `}ǠF0y"ڥy"٥y"إy"ץy"֥y"Ո0L-`8`E)))8i@0 *ڄԠ a}"("!""" "L**""""""&О"("!"" b}" "L**""""""&О"("!""" "L** c}""""""&О"("!""" "L**"""" d}""&О"("!""" "L**""""""&Оd e}"("!""" "L**""""""&ОL-6"e" f}"e""e""e""e""i""}"""}"""}"""}"""}"""}""ǭ"m"""m" g}""m"""m"""m"""m"""}"""}"""}"""}"""}"""}""ǥՅօׅ؅مԅՅօ h}ׅ؅`` ` ` `80 `ԥՅ +.JJJJ)iFiFi1FicFi'ȐȦoFiU i}ȐFiiFi#iFiGi Fii@F iiFiiciՊFigi'iՊօשBL-`I j}))83Ԥԥդե֤֥פץؤإ٤L,K6"ХL--L--L- k}-E0:e٥eإeץe֥eՐ؅٥ׅإօץՅ֩L-8٥إץ֥հ'I8 l}م٘؅ؘׅטօ֘ՅL-ؤm\G0Q@Ն֩م؅2եمֆשم"ե؅֥م׆ةեׅ֥ m}؅ץم؆لԘ)q +` . |. &7i |. ,%!L?.`刱䈱㈱∱ n}ሱ`ԅՅօׅ؅م`ԍՍ֍׍؍ٍ`ԍՍ֍׍؍ٍ`L.L. Խսֽ o}׽ؽ` L%/`ӽޕ &ԅ)@إ)JJJe)e - M p} 1. &Je0F 2 . /L(8`@ԠՈքׄ؄` . |. , . . |. , #/L(8`0 I@ԥ) q} 2f / . & r 1. #/ &?P , .Iiԩ +)ԅ ,ӽޕL(`8`$ r})Ԧ61718191:1;1 (ť)8@0$Յ)e)e -F . / , . &1 1. s} #/ &F I`U9>`D'RFuCU?b9dYdg@W2@?tS)%)@0)%ԅԢ / . &G  t} 1.Ӱ6 #/ &.ӽߕ ,ԅԥ B1 (`8``0?i? . . / , #/ &ԍՍ u}֍׍؍ٍ . . ( / , O2 / ,0 .JeF 2`L+) .e٥eإeץe֥e v}Պi؊؅٥ׅإօץՅֆե1ԥ'JffffJffffJffffJffffم`ԩ&&&&*&&&&*&&&&*& w}&&&*`Pi`)JJJeԅԘ)Peԅ`եԆ8@EB)JJJeԅԥ)PeԅԘ)3eԅԽ3eՅ՘)JJJ}3 x}}3`)JJJeԅԥ)PeԅԹ3eԅԹ3eՅդЧ` 0@P`'Nu pX@(#d,X L(  兢 y}0襙 bɥ⥋㩀 50ɥ0DȱȱȄ   ik#ZMkVgğe拰ㅋ z}⅊0 eee拰 L f5дƨħ 4LY4 f5К,樥ŧH 4h h5L4樤ܱ.* O %30 {}  5Ԅ +(fԤԈ`ř嚰Ԥ`ڥۥड़0-԰eڅڐۈ0eeL+58` |}O#`,#5  6`]5 6DE 68DHEIHI V0$ 6Sл B }} V,# 6` $#LllBHI V0HH V0Ԩh``{a$%Ȏ$$xө$Ѝ$ ` ~} `@X a Ӆʢ ʎD  _ɠ %` ɩHH `өL: g% D }:AUTORUN.BASөjJHH`ՠԢӱԙ!ӹ!`֝DEIHB V0Y|ڝDa۝E }օܥׅݥܝHݝI V0+Ӡڑڑ0`l `  䅠 _ɠԐ }e拢 &L &Lħ © ¥4 䥝ň剰' k ɀ8@4= LY ĩ`OJ ]J?L } KԪȱLRHHצ R, hhLRHHHHHH /0ȑȑޠhhhhh }h`HHHHHHHHHH $H bɐhȥLHhhhhLň剰) }i桰` )``L(兢ħ #$ x Hҩ h$襚ҥ ԝ` } UV #T` ` `,H ¥ȍ` JKhLŢ  #)I L ¤Ȣ`L¦ ¦ Lĩ } ½J*K+ $LąLĩ …L~ …`H Ġh é`,H hH Ġ  ĭ 8}} } L n [h`LkL © 8倝偝 Ġ  ĥ󥃅  Lĩ LH } éLH#h ĩ`H hKJ L+ , H hHHħ s hKhJ  Lĩ# qL } ŘL ũ& QŽLM " ĽNL  ĥԝL՝M  ĥԝN%LV  ¤ħ` Ťħ` ƪ Ċ }Ťħ` ¢`届 x݅ L ĽCӠɀ L]Ɉ L] Ln LŠI }HEDBL$HH hh +L `ħ LĢl ¦`YDAER ԅՅ֦ }󅗄`L+ ¢p 0 Hp hɈL` ,#,$,!Lé ,H ĥDEԝH՝Ih L }©L $`L© , k ĩԅ  + ĥ 夨ħ`2ƪƪ ! A!Ƚa!Ƚ!Ƚ!Ƚ!Ƚ! }``氤hhL1@$ƪư 0 0 n$P`L+FҐ֥װ綾إٰو LǠFf }ؐ ee&ee* &eeeԪeըee$.ƪ@!Ƚ`!Ƚ!Ƚ!Ƚ!Ƚ!`檦 }!!!!`!@!^!` Ȅ 8 n奱 ٥Lǥ֤צưĘ=ŗ78֪א& } eԥe$`L: L ԅՅօׄ 1פ& ٤ţĢԅeՅe8包卅 ]& } 8Ԩժ%אְ`ֆL夨ħ` FҰg8&0ei֥i0Tׅiإi0BJe؅eم0&f }fff&0 &0 eeL+օפإ颎 %8包ԥ卅 L ɥ }ȱъŠe拰8``,ªȱȱI ѝ3ȥLɥHHO] }  ȥe暰Х ȥL+ʅȱhh`Lħ OԪȱԨ``L :0 } `L(奷 bɥ󥋅ȱȱȱȄ#鈄0B8eeŶ }ɛ,@LBˤ,ɛ`L?± ˤ樱f Oƨ x݅ + ~ [ˠ O樥0# +  L˥` }LL :ɛ,$PH h $P润䧰 ʐLʦ䧐 +` ʐL3LBˢ }ԝD՝E֝HםI L 兢L]& 兢L% ,L6 ,L6 &L6 (L6妪@!I@!` ؐb`P KW ؐRB ؐ }=;G ؐ4@ ;+ƪƪ@!=A! (ƪƪ@!A! ƪ@! ,@@檦@!`!!!!!!`ƪ@! ǩjҤ } /L.٤ƪƪ@!@!, 舽`!`!!ـ!!٠!!!!!`@!jI*` . ֪ ( }ϰ`(8` ֤ׅԄ +҅L: Lyƪ8吪周Ly sũ + ŐL Ly sŠԄ h L} } L}٩    e쪽pLyL( + ڥHJJJJ h) 0:i`  ک; n +ȱ)ȥ% }ݓ Lh ԍՅԄׅ֩өL:ƪ?Ԣ )ɠ )  -L &Lڦ@!)@!` n)8@ } -L:` / n)8@I= n)8@/ѩ֔$ሄ ,L: + n 0L8 n } 0L8 n H1L8 n /L8 n /L8 n D/L8 n 1L8LLإL( &)ԥ)8@JjH@ }MC)JJJe)e .F / .P . &F . #/ &L.L(HHHHHH /hhhhhh & } Y/hԅL:,` L _ܘ%ᨥ%Ly _ܘᨥLy _ܘEᨥELyٚ<|'g 0L` }!!!!i ` &LإL٥LyɥLzvmZ ƨ!0 4 䦵 ¥ԝD՝E֝Heם }I Lܤį eį L` x݅ƨLLLܤ ©`#ۢ Lĩ_,ߤ } ڄ . eڅԥeۅհ"8څ֥ۅא8ܥݰL۠Q%0ԅإՅ٥ަ0%Q% }L-ե0LޥڤLyمօנ6&֐ eו`L( Hħ hբՅ `ޥԢ `ޥՅ֠ }&&֐eܥeېڈ 7 \ 7 j N \ N j$0!ee80å/8ܥ۰uڕ0 }eUiV`TUV`8UV`eTi`8TȢ` $L„')Q ȱ8 e }新`8`L齀).Q Ӱȱ8e新 O :L䅫# *$Ŭ } Ʃ HL"䥫ș L` Ml/#樱0ZS'`ȱȱȱȱȱȱȄ`ȱօȘuԩׅu՘e֨҄` }I 屝Ҡȱȱȱȱȱ` n$҅J?eԨe` L 兙 兛 n %3 Ԥ` ҩ, } , , L檤 ٙ!ؙ!י!֙!ՙ`!ԙ@!ә !ҙ!` 䤪ƪ!ٹ!ع!׹!ֹ`!չ@!Թ !ӹ!`ƪ!! }!㹁!a!A!Lp ґȥӑȥԑȥՑȥ֑ȥבȥؑȥّ` ***j)e)e`ʭȅiȅ }iȅȩȩ Lfإ  4  \ +] ¥򄟄 }   넨ɛ$0L祔 Z f0#ڠ쩀 ߩ6ei$0 녖چ + !5 }ɛȑ @膔7 ɛ 襔!ɛL! _ɩ8$IȢ %e拢 } &!$P* &8孨客 "&$ 1L~ L~ &L _ɰe拢 &L~ +0 %30Ԅ }L 9:枢0 O L :H9Hhh tLHH`h }hLCL馩`ʆLC枢0ְşLC`A枢Ɣ!L!L }!T 򈩛LQLD ijq ߰,iŰD VD8` 覲`8` 넬 S( +饰 }0 S0:$$ p8`$p (ȩ@҅ҥ򄬤 ߰ A L8򨢄 %Ӥ򈦬ʽ ʽ % }+HH 屝EҨhh$P0Ƭ 襯I `_A[`8`80 &Ոԅ }` 넬$ +  + h갳 h) + , 褔ԙ!` "8` 襔 ɛ "ȱ" }嫤!`! `) ɛ%)a{)_0:A[_դ`RE͕DATINPUԑCOLOҝLISԖENTEҚLEԛIƜFO }NEXԑGOTϑGO TϑGOSU½TRAАBYŐCONԞCO͟CLOSŐCLҐDEǞDI͐ENĐNEנOPEΖLOAĖSAVŢSTATUӣNOTPOINԡXIϤOΒPOKťPRINԐRAęREA }ĨRESTORŐRETURΩRUΐSTOАPOХGEԫPUԑGRAPHICӒPLOԒPOSITIOΐDOӒDRAWTϓSETCOLOҬLOCATŔSOUNĦLPRINԐCSAVŐCLOAĚERROR- }DPOKœMOVœ-MOVŪ*ƐREPEAԑUNTȊWHILŐWENĐELSŐENDIBPUBGEԒFILLTϐDϐLOOШEXIDIҖLOC˖UNLOC˖RENAMŖDELETőPAUSŖTI }ME$PROøEXEÐENDPROÑFCOLOҪ*̕-RENU͒DEDUMЪTRACTEXԖBLOAĖBRUθGO*’PAINԟCLӔDSOUNCIRCLū%PUԘ%GEԚG }OTGOSUTSTETHEΣ<<>ުNOOANĨ<<>STRCHRUSASVALEADATCOPEESIRNFREXLOCLOSQSGABIN }PADDLSTICPTRISTRIDPEE˦INSTINKEYEXOHEXDEDIFRATIMETIMMOEXERNRANTRUN%%%%GOUINSTERER+,%5 }&6(+8,<Xk`fghilm^deDѳHc?,Ќ,е,Y_Ҳ+7,/0 }1 2!3"4Ɛ"-"."-؂ٿ֐ː }ĐאŐbj+9,+;,ʐͭ }ͭ@ABC\=>[<+:е<,&%rvnnxc<\ }-78s_XV+@D&0d*"'2GJh N }Rl~&2 +饰(+VWZ ]a8`L`  ¤ħ.H h L5 䄡 } 䅭 bɠ04Ů .ŭ%) e拰 ĩ L+Ư0 Le }`毤Hɛ) h`  L ȱ R @ʆ ȱȄ Iğ` :62T F : }7 8 Lbԩ- L 8 8,I ɨ 8L.UH `ƨh $ %3   + \L L 8󅯩" } 8" ©" Ư" L8q :Z#]abj(=) W같  L樤ħ`hh`H YhZ }L<>EO ƹƹ0`H f5h`I&` =? FQA` L񄳱ȱI 䦐 }Ħ ąŅ T k /䧰 k ,Ǡ ĩJH ThĥȑĥȑĦʊȑ`HHąŅ }H h hhhh ȱIELZ L`ȱI Hȱȱȱȱȱ }, h @ $L+L.*ȱȱȱȱȱjEE `EjI `e`ħ ¥ }0 ` Lk 䦪`! 䧰L A@L `I&`L ©؅ L. }0`STOPPED륺 bɠhhL :ʅ` k %3Hƹ h5h`hbjH h # }ԤLQ #LLei  `LԑȥՑȥ֑ȥבȥؑȥّ``䈥剰 }#)iiLɠL4űI&`048ץğ=ȱȄ  }`L  L0e拠0ȱȄL  䦪`!' >?L (<ж`!  $Л +`,LőŐ78Ƒ8 Ƒ`8` - PѠ }`,,L L PQ 8,L ȱI ѝߠȱ`ԩ },L E  $EL+L],,,؍ 0âLɀL ©7 F󦹩 RbL g  }0g `Ո V fL{Ն + +􅕄L AT LINE?BLOAMEVALU>#VAR$LE?DAT>3276INPUDISTACOVERFLO?LIN? }FOTOO LON?DE?GOSUGARBAG?CHMEͣ?LOA?NES?WHIL?REPEA?D?EXIXPRO?EXE?PRO?IS OPE?DEWR ONLCMNOT OPEΣRD ONLEOT }RUNTIMEOUNA!FRAMCURSO!OVERRUCHKSUDONMODNOT IMPRA͠D?>#FILEDSK FULFATAL I/FILENAMPOINLOCKEDCM>DI }?FILPOIN?APPNBAD SECTORӥHՄ +h & .hԩ + ,҅L: ƪn (@Մ$ 0` 0 }` 0LoH - . /h &@Յ՘JJJJ X) 0:i`AVC2 sŠ 5  <)  < } L L + e +e`e`&&&&&&eee` & }&eee&*`` 兙 䦪!0 4 ۄܱ **m ݤܱEۅڦڱ= } ܥeƥiեLN@ ` **)]` 00`` ( ((((((((8 }`W)ߥ & &e &߽řِ׼JJJJ&eXޥeYߥ䥛 9 FfЎᰈ } `  M 8*` 兙 󥐅i祣L{ &L }  0 & L ȑ & L; # )ȱ L })ȱ) )ȱ 8ƣŐő0eސ`ƙ8ް`)ȱJJJ` }``=`]``` E߭H Ġ} hL±&Lv`[  ȱ R] } L L  䅠 bɰhhğȱȄ L l"0e拱LjLx`[  ȱ R] h~NAKEBQXYNPTTM@@AU@ }  @ @ @@Q@UdQ(>:A%,"-@@E(WHAT SCREEN COLOR DO YOU WANT?Q6-}n#-@@#( 1: NORMALx"-@@"(2: AMBER*-@@*(3: REVERSE AMBER"-@}@"(4: GREEN!-@@!(5: GREYB A`-@@4(SELECT A NUMBER8B BQ}  @)!@)P:,G("ERROR: SELECT A NUMBER FORM 1 TO 5Q A`//AAAA A0}1AAH'A @1 A@1A@T'A @1 A@1A@V'A }1 A@1AA''A @1 A@1A@'A @1 A@}G;@0,;A0,;@,;@ ,;@,;@,T(>:A%,f-@@ (Documentation for }TURBO BASIC6. j(>:A%,"-@@4( ̠@6-RAR^6-j6}-((1: ARRAYS TUTORIAL"(2: SORTING TUTORIAL,$$(3: CATALOGER DOCUMENTATION68 A-@}@4(SELECT A NUMBER8@T  @)!@)P:,#(J("ERROR: SELECT A NUMBER FROM 1 TO 3T AJ(}>:A%,T7"@!-@@ 7(Ӡ^8"@!-@@ 8(Ǡh=}"@!-@@ =(Ҡr 6. |#"@#6. D1:ARRAYS.TUR$"@$6.}D1:SORTING.TUR$"@$6.D1:CATALOG.TXT1-@@1(PRESS ٠ TO SCROLL6-@@,(}CREEN OR RINTER03(6(;;7@<@,4S)7@<@,4sAP;;7@<@,4P)7@}<@,4pA`IAR@ @=@@I6-( A@(6-}%@("@  A` A`5F:A,"A6#@5AR,,($----------}--------------------------( ** END **S( ( (((O(7DO YOU WANT TO READ ANY OTHER DOCUMENTA}ION(Y/N)S$$7@<@,4YAp& +0+@+@@:\(>:A%,}"-@@X(0DID YOU SET PAPER TO THE TOP OF ITS FORM (Y/N)\D$$7@<@,0YApN3 3 3}3X0(>:A%,"-@@0( PRINTING!b( A`@(6-%@l.@.@@}P:v&&(@ "@W A A@F:A,"A6#@.}@@AR<6-6-@W&5-@+%@,83< ,,($--------------------------------}----::3$ -%@-( ** END **S( ( (((O(7DO YOU WANT} TO PRINT ANY OTHER DOCUMENTAION(Y/N)S$$7@<@,4YAp +??PROGRAM BY RON. FE}TZER, 22 MONACO AVE, ELMONT, N.Y. 11003SCROLLING ROUTINE##@@K: )@}"@: ,A 6-@$*PAGE ROUTINE46-6-%@>Q(@(@Q(@}$ --H&-@@"(@& R$D:MENU(@Q(@k ARRAYS ====== by Ron Fetzer There are 3 kinds of arrays thatwe use in TURBO}-BASIC: 1)Onedimensional number array 2)Twodimensional number array or MATRIX3)String Arrays(Pseudo-String Array) Arr}ays are also calledSubscripted Variables. P(2) = "P sub2". The P is the variable and the 2is the subscript. The subscript }isalways in parenthesis P(3), P(4)etc. Arrays are very useful inmanipulating numbers and strings. Itis the ONLY way }you can sort numbersor alphabetize strings. You also saveon variable names, you can savenumbers or words in a program, you}can handle large amounts of numbersor strings and you can speed up yourprogram execution. This is a veryuseful technique }and is frequentlyused in many programs. ONE DIMENSIONAL ARRAYS ---------------------- You can think of }a ONEDIMENSIONAL ARRAY as a string ofpearls. Each pearl is an element ofthe array. PEARL NECKLACE -O----O--}--O----O----O----O----O-Element # 0 1 2 3 4 5 6Value $ 25 33 42 50 38 28 22 In n}umber arrays the 1st elementis 0. In the example above we have 7elements from 0 to 6. When we use anarray we must DIM it.  }The DIM alsostarts with 0, in effect wedimensioned for 7 elements or pearlsif we use DIM P(6) The form of an array is }: P(X) = VP = The name of the array. You must DIM it for the number of elements you are going to hav }e in your array.X = The element numbers. Usually a FOR - NEXT LOOPV = Inputs the value into each element as t }he loop executes ELEMENTS AND THEIR VALUEP(0)=25, P(1)=33, P(2)=42, P(3)=50,P(4)=38, P(5)=28, P(6)=22 Please  }key in the short demoprogram to see how it works 10 CLS:?:? 20 DIM P(6) 30 FOR X = 0 TO 6 40 INPUT "THE} VALUE OF EACH" PEARL";V 50 P(X)=V:REM <-- ARRAY 60 NEXT X 70 PAUSE 60 80 ? "LETS SEE IF IT WORKE}D" 90 ?:INPUT "WHAT PEARL DO YOU WANT TO SEE(0-6)";S 100 ? P(S):REM <-- ARRAY 110 GOTO 90 You no}w can call up any pearl orelement in the array and see itsvalue. You also can print out all thevalues of the pearls }or elementsautomatically. Change lines 90 to 110as follows: 90 ?: FOR Y = 0 TO 6 100 ? "PEARL #";Y;" = ";P(Y): } REM P(Y) IS THE ARRAY 110 NEXT Y 2 DIMENSIONAL ARRAY OR MATRIX ----------------------------- 2 Di}mensinal arrays or DoubleSubscripted Variables are also calleda MATRIX. A matrix is a grid whereyou have columns and rows.} For example lets take a bowlingteam of 3 members and each one plays4 games. This is how you canvisualize the matrix:} BOWLERS 1 2 3 ---- ---- ---- B(0,0)|250|B(0,1)|220|B(0},2)|240|G ---- ---- ---- ---- ---- ----A B(1,0)|210|B(1,1)|190|B(1,2)|250| } ---- ---- ----M ---- ---- ---- B(2,0)|240|B(2,1)|230|B(2.2)|270|E ---- ---- } ---- ---- ---- ----S B(3,0)|220|B(3,1)|200|B(3,2)|260| ---- ---- ---- I}n a matrix the first elementalso starts with 0. In the exampleabove we have a matrix and we mustDIM it DIM(2,3). The 2 in }the DIM isthe 3 bowlers (0 to 2). The 3 in theDIM is the 4 games (0 to 3). We havea total of 3 x 4 or 12 elements inthis }2 dimensional array. The bowling score for the 4games were as follows: BOWLER 1 BOWLER 2 BOWLER 3 -------}- -------- -------- 250 220 240 210 190 250 240 230 270 220 }200 260 In the matrix the first elementis (0,0). We normally do not consider0 a number but the computer does no}tmake that distinction. Please key in this short demoprogram to see how it works 10 CLS:?:? 20 DIM B(2,3) } 30 FOR X=0 TO 2 40 FOR Y=0 TO 3 50 ? "BOWLER ";X+1;" GAME #"; Y+1 60 INPUT "SCORE PLEASE ";S  }70 B(X,Y)=S:REM <--MATRIX 80 ? 90 NEXT Y 100 NEXT X 110 ?:PAUSE 60 120 ? "LETS SEE IF IT WORKED" !} 130 INPUT "WHAT BOWLER(1-3)";P 140 INPUT "WHAT GAME(1-4)";G 150 ? " ";B(P-1,G-1):REM MATRIX 160 "}GOTO 130 We use nested loops to load thematrix. The first element to getloaded is B(0,0). In line 50 we useX+1 for t#}he bowler - if the loop is 0then the bowler becomes 0+1 or 1. Wedid the same thing for the games Y+1so when the loop furni$}shes a 0 isbecomes 0+1 or 1. We did the samething in line 150 except in reverseso the matrix will find the rightelement. %}When you answer for thebowler 1 it becomes P-1 or 1-1 or 0so the right element is accessed. Thesame is done for the game G&}-1 becomes1-1 or 0. ELEMENTS AND THEIR VALUESB(0,0)=250 B(0,1)=220 B(0,2)=240B(1,0)=210 B(1,1)=190 B(1,2)=250'}B(2,0)=240 B(2,1)=230 B(2,2)=270B(3,0)=220 B(3,1)=200 B(3,2)=260 You also can print out all thebowling scores or (}elementsautomatically. Please change lines130 to 180 as follows: 130 FOR T=0 TO 2 140 FOR K=0 TO 3 150 ? "B)}OWLER ";T+1;" GAME #"; K+1; 160 ? " = ";B(T,K):REM<--MATRIX 170 NEXT K 180 NEXT T As a practica*}l matter mostprogrammers do no use element 0either in an array or a matrixbecause it complicates the program. DIM th+}e array or matrix for thenumber of elements you have. The FOR- NEXT loop starts with 1 instead of0. See the program below.,} 10 -- 20 CLS:?:? 30 DIM B(3,4) 40 FOR X = 1 TO 3 50 FOR Y = 1 TO 4 60 ? "BOWLER ";X;" GAME #"-};Y 70 INPUT "SCORE PLEASE ";S 80 B(X,Y)=S:REM <--MATRIX 90 ? 100 NEXT Y 110 NEXT X 120 PAUSE 60.} 130 -- 140 ? "LET'S SEE IF IT WORKED?" 150 FOR T = 1 TO 3 160 FOR K = 1 TO 4 170 ? "BOWLER ";T;" GA/}ME #";K; 180 ?" = ";B(T,K):REM<--MATRIX 190 NEXT K 200 NEXT T STRING ARRAYS --------0}----- TURBO-BASIC and ATARI BASIC donot allow string arrays. This is nobig problem. We create a PSEUDOSTRING ARRAY t1}hat looks and acts likea normal string array. We take a longstring and chopp it into equalpieces. In order to create this2}PSEUDO STRING ARRAY we must docertain things. 1)Decide how many elements we need 2)The lenght of each elem3}ent 3)Calculate the end of the FOR-NEXT loop and the STEP For example, we want to create astring array tha4}t has 7 elements andeach element is 10 letters long. Wewill call the main string X$. To findout how much to DIM X$ we mult5}iplythe number of elements times thelenght of each element (7 x 10 = 70).We now DIM X$(70). The FOR-NEXT loopstarts with 6}1 and ends with the DIMin this case 70. The step is theelement lenght(10) 'FOR N = 1 TO 70STEP 10 Since the words we 7}put into thestring array will be shorter than 10letters, we use PAD$ which has 10empty spaces to pad each substring orele8}ment so it is 10 letters long. Wecan visualize this as follows: X$ ----------------------------------- 9}| | | | | | | | |EL 1|EL 2|EL 3|EL 4|EL 5|EL 6|EL7| | | | | | | | | --------------:}--------------------- 1 10 20 30 40 50 60 70 Elements or substrings start andend as follows: ELE;}MENTS OR SUBSTRINGS Element 1 = 1 to 10 Element 2 = 11 to 20 Element 3 = 21 to 30 Element 4 = 31 to 40 <} Element 5 = 41 to 50 Element 6 = 51 to 60 Element 7 = 61 to 70 It looks as if each element isonly 9 lett=}ers long. These numbersare inclusive so each one is 10letters long If we have a FOR-NEXT-STEP loopwe can generate th>}ese numbers. 10 FOR N = 1 TO 70 STEP 10 20 ? N, N+9 30 NEXT N The result of this loop is asfollows: ?} 1 10 11 20 21 30 31 40 41 50 51 60 61 70 This is the way the programw@}ould look. Please key in this shortdemo program. 10 -- 20 CLS:?:? 30 DIM X$(70),SUB$(10),PAD$(10) 40 PAA}D$=" ":REM FOR PADDING THE SUBSTRING 10 SPACES 50 REM ASSINING PSEUDO STRING ARRAY VALUB}ES 60 FOR N = 1 TO 70 STEP 10 70 INPUT "GIVE ME A WORD(MAX 10 LETTRS)";SUB$:? 80 SL=LEN(SUB$):REM LENGC}HT OF WORD 90 IF SL<10 THEN SUB$(SL+1)=PAD$:REM PAD TO 10 LETTERS 100 X$(N,N+9)=SUB$:REM PUD}T VALUE INTO ELEMENTS 110 NEXT N 120 -- 130 ?:? 140 REM DISPLAY PSEUDO STRING ARRAY E} 150 FOR N=1 TO 70 STEP 10 160 K=K+1:REM COUNTER 170 ? "ELEMENT ";K;" = "; X$(N,N+9) 180 NEXT N F} 190 -- A line by line explantion ofthis program is as follows:10 Draw 30 dashes20 Clear the screen30 Dim X$ for G}the total amount of all the elements. The SUB$ is the lenght of an element. The PAD$ is the lenght of an element40 H}PAD$ = is the lenght of an element(10). It is used to pad a word that is too short - less than 10 letters50 Rem expI}lanation60 FOR-NEXT-loop. It starts with 1 and ends with the number of elements(7) times the length of each elementJ}(10) or (7x10=70).The step is the lenght of the element(10)70 INPUT the words80 Find out how long each word is.90 PaK}d each word to 10 characters100 Fill the elements or the SUB$ with words. The sub strings or elements are 1-10, 11-2L}0, 21-30, 31-40, 41-50, 51-60, 61-70110 End of loop120 Draw 30 dashes130 Print140 Rem explantion150 FOR-NEXT loop. SM}ee explanation on line 60160 A counter that counts the number of elemnts in the array170 Print the elements in X$(NN},N+9) The substrings or elements in X$ are 1-10, 11-20, 21-30, 31-40, 41-50, 51-60, 61-70180 End of loop190 DraO}w 30 dashes You can also print outindividual elements of the stringarray. Please change the followinglines. 15P}0 N = 0 160 INPUT "WHAT ELEMENT DO YOU WANT TO SEE";N 170 ? "ELEMENT ";N;" = "; X$(N*10-9,N*10) Q} 180 GOTO 150NPUT "WHAT ELEMENT DO YOU WANT TO SEE";N 170 ? "ELEMENT ";N;" = "; X$(N*10-9,N*10)  SORTING NUMBERS =============== by Ron Fetzer The Bubble Sort We will usS}e a bubble sortbecause it is the easiest tounderstand. We first load the numbersinto a number array. In this sort 2elemenT}ts of the array are examinedduring each pass of the loops. Theyare switched if they are not in theright order - low to higU}h. If theyare in the right order the loop keepson going. A bubble sort is slow butit is fine if you don't have too manynuV}mbers. This sort uses nested loops. Theouter loop is the same as the numberof elements of the array. The innerloop isW} ONE LESS than the elements ofthe array. The switching is donebetween these 2 loops. In our programit is lines # 140 to 17X}0. Lets enter these 4 numbers intothe bubble sort and see how they areprocessed. The numbers are: 3,2,7,1 BetweenY} the outer loop(4) andthe inner loop(3) we have (4x3=12) 12passes of the loops. The bubble sortarranges the 2 elements froZ}m low tohigh. If these 2 elements are out oforder, it switches them. The arraystarts out as: 3,2,1,7PASS NUMBERS ACTION[} ELEMENT ORDER---- ------- ------ -------------1 [3,2],7,1 SWITCH 2,3 2,3,7,12 2,[3,7],1 OK 2,3,7,13 2\},3,[7,1] SWITCH 1,7 2,3,1,74 [2,3],1,7 OK 2,3,1,75 2,[3,1],7 SWITCH 1,3 2,1,3,76 2,1,[3,7] OK 2]},1,3,77 [2,1],3,7 SWITCH 1,2 1,2,3,78 1,[2,3],7 OK 1,2,3,79-12 OK 1,2,3,7 If we want^} to sort in reverseorder from HIGH to LOW than we canchange the greater sign(>) in line140 to less(<). Please key in _}this short demoprogram to see how it works. 10 -- 20 REM PUT NUMBERS INTO ARRAY 30 CLS:?:? 40 INPUT "HO`}W MANY NUMBERS TO SORT";K 50 DIM A(K):? 60 FOR X = 1 TO K 70 INPUT "GIVE ME A NUMBER";N 80 A(X)=Na}:REM<--ARRAY 90 NEXT X 100 -- 110 REM BUBBLE SORT 120 FOR T = 1 TO K 130 FOR Y = 1 TO K-1 140 Ib}F A(Y+1)>=A(Y) THEN 180 150 TEMP = A(Y) 160 A(Y) = A(Y+1) 170 A(Y+1) = TEMP 180 NEXT Y 190 NEXT X c} 200 -- 210 REM PRINT SORTED NUMBERS 220 ?:? "SORTED NUMBERS":? 230 FOR L = 1 TO K 240 ? A(L);" ";:REM<d}--ARRAY 250 NEXT L 260 -- MINI SORT The MINI sort is faster than thebubble sort. This sort fie}nds theminimum valued element and places itin the first position of the array.It keeps on doing this until allelements arf}e arranged from LOW toHIGH. In our program in line 50 weuse E=K. K is the number of elementswe have. The sort reduces K tog} 1. Weneed the value of K to print out thearray, therefore we make it equal toE. Please key in this short demoprograq}GBDOS SYSB(!DUP SYSB IRAMDISK COMBRAUTORUN SYSBAUTORUN BASBSARRAYS TURBkRSORTING TURBBUBBLE NUMBBUBBLE STRB BUBBLE RELBMINISRT NUMB SHELLSRTSTRB,CATALOG TXTBqCATALOG BASm to see how it works. 10 -- 20 REM PUT NUMBERS IN THE ARRAY 30 CLS:?:?:K=0 40 INPUT "HOW MANY NUMBERS Tr}O SORT";K 50 DIM A(K):E=K 60 FOR X = 1 TO K 70 INPUT "GIVE ME A NUMBER";N 80 A(X)=N:REM<--ARRAY s} 90 NEXT X 100 -- 110 REM MINI SORT 120 Y=A(1):Z=1 130 FOR R = 2 TO K 140 IF A(R)>=Y THEN Y=A(R):t} Z=R 150 NEXT R 160 SS=A(K):A(K)=A(Z):A(Z)=SS 170 K=K-1:IF K>1 THEN 120 180 -- 190 REM PRINu}T SORTED NUMBERS 200 ?:? "SORTED NUMBERS" 210 FOR T = 1 TO E 220 ? A(T);" "; 230 NEXT T 240 -- v} SORTING STRING ARRAYS ===================== THE STRING BUBBLE SORT For a full understanding of aSTw}RING BUBBLE SORT please read thesection on PSEUDO STRING ARRAYS andBUBBLE SORT first. First we set up a PSEUDO STRINGx}ARRAY. Without a string array youcannot sort strings. We are going toenter 4 words: ZERO ALL HOUSE COMy}PUTER A String Bubble Sort works thesame way as a number Bubble Sort,except each element is longer. Weswitch elementz}s if they are not inthe right order - small to large. Theelements or substrings in thisdemonstration are: 1 to 10 (Z{}ERO------) 11 to 10 (ALL-------) 21 to 30 (HOUSE-----) 31 to 40 (COMPUTER--) The confusion comes when we ha|}veto specify the substrings or elementsfor switching. In order to clarifythis we use line 180 to assignvariables to these}} values. B(beginning)=Y E(ending)=Y+9 BB(begin next higher elemt)=Y+10 EE(end higher elmet)=Y+(10+9) ~} Please type in this short demoprogram to see how it works. 10 -- 20 REM INPUT WORDS INTO ARRAY 30 CLS:? } 40 INPUT "HOW MANY WORDS TO SORT";K 50 DIM A$(K*10),SUB$(10), PAD$(10),TEMP$(10) 60 PAD$=" } ":REM 10 SPACES 70 ?:? "MAX. LETTERS = 10":? 80 FOR N=1 TO K*10 STEP 10 90 INPUT "GIVE ME A WORD";S}UB$ 100 SL=LEN(SUB$) 110 IF SL<10 THEN SUB$(SL+1)= PAD$ 120 A$(N,N+9)=SUB$ 130 NEXT N 140 -- }150 REM STRING BUBBLE SORT 160 FOR T=1 TO K*10 STEP 10 170 FOR Y=1 TO (K*10)-10 STEP 10 180 B=Y:E=Y+9:BB=}Y+10: EE=Y+(10+9) 190 IF A$(BB,EE)>=A$(B,E) THEN 230 200 TEMP$=A$(B,E) 210 A$(B,E)=A$(BB,EE) }220 A$(BB,EE)=TEMP$ 230 NEXT Y 240 NEXT X 250 -- 260 REM PRINT SORTED WORDS 270 ?:? "SORTED WORDS:":? } 280 FOR L=1 TO K*10 STEP 10 290 ? A$(L,L+9) 300 NEXT L 310 -- A line by line explanation ofthis program i}s as follows:10-140 See the section on PSEUDO STRING ARRAYS150 REM explanation160 Outer Bubble Sort loop. K=numbe}r of words X the element length. STEP = elemnt length170 Inner loop must be 1 element less than the outer loop. Tha}t is why we have (K*10)-10180-220 We examine each element. If the 2nd element is larger than the first element t}hen it is OK. (small to large) - no switching. If it is not in the right order then we do the switching, just } as we did with the number bubble sort.230 End of inner loop240 End of outer loop250 30 dashes260 REM explanation270} Print280 Loop to display sorted words290 Print sorted words300 End of loop310 30 dashes If you want to sort larger}strings lets say 20 characters longthen change every reference from 10to 20. They are in lines 50, 60, 70,80, 110, 12}0(N,N+19), 160, 170(E=Y+19, BB=Y+20, EE=Y+(20+19), 180,280 (A$=L,L+19) If you want to sort from Z to Athen change the }(>) in line 190 to(<) THE SHELL STRING SORT --------------------- The SHELL SORT is much fasterthan} the BUBBLE SORT. The reason itis faster is that the number ofcomparisons to be made is reduced. If you try to sort 2} words orless than you will get an errorbecause in line 90 the FOR-NEXT loopbecomes an illegal reverse loop (FORT=1 TO 0)} In line 210 we assign variablesto the element beginning andendings. B(beginning of element)=Y*10-9 E(endin}g of element)=Y*10 BB(Next higher elmt)=Z*10-9 EE(Ending element)=Z*10 Please key in this short demoprogram to} see how it works. 10 -- 20 REM INPUT STRING ARRAY 30 CLS:? 40 INPUT "HOW MANY WORDS TO SORT";K} 50 DIM A$(K*10),SUB$(10), PAD$(10),TEMP$(10) 60 PAD$=" ":REM 10 SPACES 70 ?:? "MAX. }NUMBER OF LETTERS = 10":? 80 FOR N=1 TO K*10 STEP 10 90 INPUT "GIVE ME A WORD"; SUB$ 100 SL=LEN}(SUB$) 110 IF SL<10 THEN SUB$(SL+1)= PAD$ 120 A$(N,N+9)=SUB$ 130 NEXT N 140 -- 150 REM SHELL SORT} 160 X=1 170 X=2*X:IF X<=K THEN 170 180 X=INT(X/2):IF X=0 THEN 300 190 FOR T=1 TO K-X:Y=T 200 Z=Y+X 2}10 B=Y*10-9:E=Y*10:BB=Z*10-9: EE=Z*10 220 IF A$(B,E)<=A$(BB,EE) THEN 270 230 TEMP$=A$(B,E) 240 A}$(B,E)=A$(BB,EE) 250 A$(BB,EE)=TEMP$ 260 Y=Y-X:IF Y>0 THEN 200 270 NEXT T:GOTO 180 280 -- 290 REM PRINT S}ORTED WORDS 300 ?:? "SORTED WORDS:":? 310 FOR L=1 TO K*10 STEP 10 320 ? A$(L,L+9) 330 NEXT L 340 -- }If you want to sort largerstrings, lets say you want 20characters, please change everyreference from 10 to 20. They are in}lines: 50, 60, 70, 80, 110, 120(N,N+19),210(B=Y*20-19, E=Y*20) and the samefor BB and EE, 310, 320(L,L+19). R}ELATIONAL BUBBLE SORT ---------------------- A relational sort is if you have2 arrays and they are related to e}achother in some way and therelationship has to be maintained.For instance, we want to write atelephone directory program}. In onearray we store the names and in theother we store the phone numbers. Weare going to sort the names but thephone n}umbers always have to beswitched with the name so the properrelationship is maintained. When we sort with the BubbleS}ort the switching is done in lines240, 250, and 260. It is done asfollows: 240 TEMP$=A$(B,E):TEMP1$= B$(B,E)} 250 A$(B,E)=A$(BB,EE):B$(B,E)= B$(BB,EE) 260 A$(BB,EE)=TEMP$:B$(BB,EE)= TEMP1$ A$ is the n}ame array and B$ isthe phone number string array. TEMP$is in the name array and TEMP1$ is inthe phone number array. As we }swticheach name during a sort so we alsoswitch the phone number array so itmaintains its proper relationship. We use }a string array for thenumbers because many people use a '-'in their phone numbers and a numberarray would not accept it. A} secondreason is that if a number becomestoo large it is expressed inscientific notation. In our demo program we DIM} eachelement of the name and phone numberarray to 10 to make it simpler tounderstand. Please key in this short demop}rogram to see how it works. 10 -- 20 REM INPUT NAMES AND NUMBERS INTO THE STRING ARRAYS 30 CLS:? } 40 INPUT "HOW MANY PHONE NUMBERS TO SORT";K 50 DIM A$(K*10),B$(K*10), SUB$(10),SUB1$(10),PAD$(10) } TEMP$(10),TEMP1$(10) 60 PAD$=" ":REM 10 SPACES 70 ?:? "MAX. LETTERS OR OR NUMBERS = 10}":? 90 INPUT "GIVE ME THE NAME"; SUB$ 100 INPUT "GIVE ME THE NUMBER"; SUB1$ 110 ?:SL=LEN(SUB$) } 120 SL1=LEN(SUB1$) 130 IF SL<10 THEN SUB$(SL+1)= PAD$ 140 IF SL1<10 THEN SUB1$(SL1+1)= PAD$ 15}0 A$(N,N+9)=SUB$ 160 B$(N,N+9)=SUB1$ 170 NEXT N 180 -- 190 REM RELATIONAL BUBBLE SORT 200 FOR T=1 TO K*10} STEP 10 210 FOR Y=1 TO (K*10)-10 STEP 10 220 B=Y:E=Y+9:BB=Y+10: EE=Y+(10+9) 230 IF A$(BB,EE)>=A$(B,E) TH}EN 270 240 TEMP$=A$(B,E):TEMP1$= B$(B,E) 250 A$(B,E)=A$(BB,EE):B$(B,E)= B$(BB,EE) 260 A$(}BB,EE)=TEMP$:B$(BB,EE)= TEMP1$ 270 NEXT Y 280 NEXT T 290 -- 300 CLS 310 REM PRINT OUT SORTED PHON}E LIST 320 ?:? " TELEPHONE LIST":? 330 FOR L=1 TO K*10 STEP 10 340 ? A$(L,L+9);B$(L,L+9) 350 NEXT }L 360 -- The two arrays can use the samePAD$ (ln #60) because they are thesame size. They can use the samebeginin}g and ending element numbersbecause they are the same size (ln#220) If you want a printed list pleasechange lines 320 }and 340 from PRINTto LPRINT. In a similar manner you couldhave a relational sort between anumber array and a string ar}ray. Forexample you want to sort by score abowling league. The sort would bedone on the scores(number sort) andthe names }would have to maintaintheir relationship to the score. To get a clear understanding ofrelational sorts, please read the}section on ARRAYS, PSEUDO STRINGARRAYS, NUMBER BUBBLE SORT and STRINGBUBBLE SORT. LOADING SORTS -}------------ You are urged to key in eachsort yourself because you will learna great deal from this. If you do notwan}t to do this you can load thesorts into your computer. The filenames are as follows: 1)BUBBLE.NUM 2)BUBBLE.STR } 3)BUBBLE.REL 4)MINISRT.NUM 5)SHELLSRT.STR If you have any comments orsuggestions about these tutorials,}they are welcome. Please write to: RON. FETZER 22 MONACO AVE ELMONT, NY. 11003 } ADDENDUM -------- If you want to compile a programyou CANNOT use the command 'END'. Itdoes not com}pile. On page 26 and page29 of the EXPANDED DOCUEMTATION onPROC - ENDPROC and ERROR 27 I saidyou should have an END statem}entsomewhere in your program. This isnot necessary - the only thing youneed is ANOTHER executable line afterthe EXEC comm}and ********** Sometimes it is necessary toconstruct a string array in adifferent manner than I have sh}own.For example we want a string arraywith 21 letters. This is an alternateway of doing it. 10 DIM ARRAY$(5*21),B$(2}1), PAD$(21) 20 FOR X=1 TO 5 30 PAD$=" " 40 INPUT "GIVE ME A NAME";B$ 50 BL=L}EN(B$):IF BL<21 THEN B$(BL+1)=PAD$ 60 ARRAY$(X*21-20,X*21)= B$:REM ARRAY 70 NEXT X **}******** Please load the program"CATALOG.BAS" into your computer. Itis written in TURBO-BASIC and it willgive you so}me help in using TURBO-BASIC. This program reads your diskdirectory of all your disks and makesONE ALPHABETICAL or NUMBERI}C list ofall your disk files. **********skdirectory of all your disks and makesONE ALPHABETICAL or NUMBERI9  MATEM@ TPUT NUMBERS TO BE SORTED} ` ( ((""HOW MANY NUMBERS TO SORT2 9, (<-@FGIVE ME A NUMBER P 68,-<--ARRA}YZ dTnBUBBLE SORTx-@-@&@8%@,8,A 6-8,68,}-8%@,68%@,-  TPRINT SORTED LIST((SORTED NUMBERS(-@}(8,, <--ARRAY  D:BUBBLE.NUMTPRINT SORTED LIST((SORTED NUMBERS(-@2"#i~ASUBPADNNSTEMPBBE !}  T##INPUT WORDS INTO STRING ARRAY ` (( HOW MANY !}WORDS TO SORT233;$@,;@,;@,;@,<6. F)(&(MAX. NUMBER OF LETTERS = 10!})(P!!-@$@@ZGIVE ME A WORDd 6-B:,n  @ 67%@,.x67<%@ ,.!} TSTRING BUBBLE SORT!!-@$@@++-@+$@,&@@= 6-6!}-%@ %6-%@=6-%+@%@ ,7<,17<,A06.7<,67<,.7<,67<,.!}  TPRINT OUT SORTED WORDS(( SORTED WORDS:(!!-@$@@"(7<%@ ,!}, 6T D2:BUBBLE.STRORTED WORDS(( SORTED WORDS:(!!-@$@@"(7<%@ , !DE%ASUBPADNNSTEMPBBESUB1PAD1TEMP1SLBEBBEELR%} %} T00INPUT WORDS AND NUMBERS INTO STRING ARRAYS ` ((((%}HOW MANY PHONE NUMBERS TO SORT2VV;$@,;$@,;@,;@,;@,;@,;@,<6%}. F4(1(&MAX. NUMBER OF LETTERS OR NUMBERS = 104(P!!-@$@@ZGIVE ME THE NAME%}dGIVE ME THE NUMBERn(6-B:,x 6-B:,  @ 67%@,.  @ 67%@,.6%}7<%@ ,.67<%@ ,. TSTRING BUBBLE SORT!!-@$@@++-@+%}$@,&@@= 6-6-%@ %6-%@=6-%+@%@ ,7<,17<,Ap6.7<%},6.7<,#67<,.7<,#67<,.7<,67<,.67<,.  "T,`6!!PRINT OUT SORTED PHON%}E LIST@(( TELEPHONE LIST(J!!-@$@@T##(7<%@ ,7<%@ ,^ hT %}D2:BUBBLE.REL( TELEPHONE LIST(J!!-@$@@T##(7<%@ ,7<%@ ,^ hT $y=SAIS@ )} T!!PUT NUMBERS TO TO BE SORTED` ( (6-(""HOW MANY NUMBERS TO SORT2 9,6-<)}-@FGIVE ME A NUMBER P 68,-<--ARRAYZ dTnMINISORTx6-8@,6-@)}-@ 8,6-8,6- ! 6-8,68,-8,!68,-%6-&@%!@A T)}PRINT NUMBERS((SORTED NUMBERS(-@(8,  TD2:MINISRT.NUMA T(m'( ASUBPADNNSTEMPBBE-}  T##INPUT WORD-}S INTO STRING ARRAY ` (( HOW MANY WORDS TO SORT233;$@,;@,;@,;@,<6. -} 10 SPAESF)(&(MAX. NUMBER OF LETTERS = 10)(P!!-@$@@ZGIVE ME A WORDd 6-B:-},n  @ 67%@,.x67<%@ ,. TSHELL SORT6-@6-@$A-}p(6-P:'@,("A-@&6- 6-%K6-$@&@ '6-$@=6--}$@&@ K6-$@7<,/7<,Ap6.7<,67<,.7<,67<,. 6-&!-}A  AT"PRINT SORTED WORDS,(( SORTED WORDS:(6!!-@$@@@(7-}<%@ ,J TTD2:SHELLSRT.STRTED WORDS,(( SORTED WORDS:(6!!-@$@@@(7,0 RAM DISK CATALOGER INSTRUCTION --- ---- --------- ----------- by Ron Fetzer This program works on any1} ATARIXL/XE computer that has a RAM DiskD8: It reads your disk directory fromall your disk and prepares ONEALPHABETICAL o1}r NUMERIC file of allyour disks. The following files willnot be cataloged: files ending in.SYS; .COM; .0SS or files called1}STARTUP. These files are usually notuser created. The program is written in TURBO-BASIC. The program uses the RAM DIS1}KD8: as a data disk and stores allfilenames in the master file called"DISKFILE". The program will notallow you to use tha1}t name again. Inthe BASIC version you can sort up to873 files. In the compiled versionyou have to reduce your programmemo1}ry requirement because the file"RUNTIME.COM" also has to be in thememory. In the compiled version inline 130 you must make1} this changeDIM ARRAY$(14700). This will give youonly 700 files but you get atremendous increase in speed. If you thi1}nk you have more filesthan the program can handle divideyour disk into 2 groups and make asort for each group. The CATALOG1}ERuses the SHELL sort which is fairlyfast even in BASIC. After your disks are loaded intothe RAM DISK then you can so1}rt themin 2 ways. One by file name and theother by disk number. For a file nameyou can call the sort file"FILE.SRT". For 1}the disk number sortyou can call the sort file"NUMBER.SRT". Prepare a data disk byformatting it and put DOS 2.5 on it1}.When you are finished BEFORE!! youturn off your computer got to DOS anduse: OPTION C 'D8:*.*,D1:*.*" Copy th1}e RAM DISK unto a floppydisk. Take out your program CATALOGERdisk and insert the DATA disk youprepared and follow the abov1}einstructions. After you have donethis THEN you can turn off yourcomputer. In this manner your masterdisk file and all yo1}ur sort fileswill be saved. Now it is easy to ADDnew disks or files to your masterlist. When you boot up again you do1}everythig in reverse. You insert theCATALOGER disk and create a RAM DISKD8: Then you take out your CATALOGERdisk and inse1}rt your DATA DISK andtype DOS and go to: OPTION C 'D1:*.*,D8:*.*' You are now re-loading yourpreviously saved 1}disk files into theRAM DISK so you can add or delete andwork with them. When you first start up useOPTION 2: LOAD DIS1}KS. Insert one diskafter the other until you are done.Next you must choose OPTION 6: SORTFILES. You can sort by file name 2}orby disk number. Once a sort iscomplete you can display it on thescreen or the printer. It issuggested you do both sorts2} byfilename and by disk number. The number function uses astring variable as a result youshould type in the numbers i2}n thefollowing manner so they will besorted correctly. 1=001, 3=003,15=015, 123=123. Each number shouldbe 3 DIGITS long.2} When you want to add new disksselect OPTION 3: ADD NEW DISKS. Ifyou select OPTION 2: LOAD DISKS thenyour prviously cr2}eated masterDISKFILE will be wiped out and youhave to start loading all the disksover again. You can insert individua2}l filesinto the master file DISKFILE or youcan delete a file from it. If you dothis you must re-sort to inclue oreliminat2}e this file from your sortfile. You can also erase a file formthe RAM DISK D8: by using OPTION 9:ERASE DATA FILE. 2} Always exit the program by usingOPTION 10: END because it gives you areminder and instructions on how tosave your files 2}from the RAM DISK toa floppy disk. To get experience using thecompiler it is suggested you compilethe program yourself2 }. Here are thesteps to make this an AUTO BOOTINGCOMPILED program. 1. Change line 130 ARRAY$ to ARRAY$(14700).2 } Save this program to another disk Call it CATALOG.BAS 2. Have the TURBO-BASIC disk in in your d2 }irve and go to DOS 3. Select option L 4. For the file name use COMPILER.COM 5. Remove the TURBO disk a2 }nd insert the disk with the CATALOG.BAS file on it. 6. Press the number 1 key for one disk drive2 } 7. With the arrow keys move the cursor until you are at CATALOG.BAS and hit return 8. The program 2}will now compile 9. When it is finished you will be asked for a file name. Call it AUTORUN.CTB 10. C2}opy from the TURBO disk the file called 'RUNTIME.COM' and change the name to AUTORUN.SYS. That 2}is all except or a fewGerman words which you may not know. GERMAN ENGLISH ------ ------- Ja2} Yes Nein No Speichern Saving to Disk Programmleange Program lenght Fehler 2} Errors Laufwerks- Disk drive nummer number Pfeiltasten Arrow keys Wahlen Choo2}se Compiliert Compiled Kein Not Taste drucken Press a key Zeile Line number 2} When you are finished readingthis documentation answer 'NO' to thequestion "Do you want to read anyother documentation" 2} Type in RUN "D:CATALOG.BAS" toget to use this program. If you have any comments orsuggestions about this program 2}theyare welcome. Please write to RON FETZER 22 MONACO AVE ELMONT N.Y. 11003 This p2}rogram is in the publicdomain! RON FETZER 22 MONACO AVE ELMONT N.Y. 11003 This p0!77BBDATA_FILELOANEW_DISNEW_FILEERASE_FILESORSORT_ON_SCREEPRINT_SORDEL_DATEND_PRONEW_DISKSHOW_SOR6}DIRECTORMENLISFILEAYDISKFILEDDDNAMEGPADDFILEDFILEDEFILEEXDARRAYSTART_LOADFILESFILE1FIL1LARRAYF6}ILE_SORNUMBER_SORBICDAADISPLAY_STRDISPALY_STRDSAVE_SORREVERSE_STPNUMBERNAMETEMPREVNUMERALPHAREV_ALPHAR6}N_END_ERROSORTEND_FILE_ERROSCROLYNKENUMERIEND_OF_FILPSHOWXNAMPRINT_ALPHAPRINT_NUMERITITLTPAGTDPRINT_ALP6}AHPRINT_ALFA_NUYALFA_NUNUM_PROMPFILE_MUM_SORFILE_NUM_SORFVSCREEN_CLRDLISTHZDILSTKSTFXYERDELSUBEXT6}EEEREXXTEEXTDIDKLDDEBBSBERROERKWPWPKKS@@F6}6K M UT a jm[EVCcM  6}#L(- !"#$B%&T'6 }(.G@)*+,T-.iG/0123456L6!}789:L;0L?EL@ZLAoLBCDEF6"}GHIJLK!_L aMLNOPQRSTLUV6#}WhXYZi[\]^Xd_`]ahbc)XdLeL6$}fx@gLhLiLjklmLnoBM pqrstu6%}v MwxyM z{|*M }~6M 6&}NM‡CRnM dTn>>PROGRAM IN TURBO-BASIC FOR ATARI XL/XE WITH RAM DISK 6'}D8:xss;@,;@,;@,;@,;@,;@,;@!,;@,;A$,;@!,ss6(};B3,;@!,;@!,;@!,;@!,;@!,;@!,;@!,;@,;@%,~~;@,6)};@,;@,;@,;@,;@,;@,;@!,;@,;@,;@,33;@,6*};@!,;@, ;@,= Ap=@3@ D8:MEM.SAV6. D8:DISKFILE B6+}P\TOH`-@@<(H6-#-@@#(6,} 1: Normal"-@@"(2: Amber*-@@*(3: Reverse Amber"-@@"(4: Green!6-}-@@!(5: GreyB A-@@8Select a number >>B B"l  @)!@)P:6.},#(J("Error: Select a number from 1 to 5\-@(@b( l A,//AA A0A@AP6/}61AAH'A @1 A`@1A@P'A @1 A`J1A@X'A 60}1 A`T1A@D'A 1 A`^1A@'A 1 A`hQ61}rT|]6. #`-@@#(ՠ%( (%(1: Files on Data Disk( 2: Load Disks62}(3: Add New Disks!!(4: Add Individual Files##(5: Erase Individual Files( 6: Sort Files''(7:63} Display Sort on the Screen(8: Print the Sort(9: Erase Data Files( 10: EndB A-@ 64}@8Select a Number >>B Bn  @)!@)P:,#(K(#Error: Select a number from 1 to 10]-@'65}@d( n Ab\&T0O:0*@@D8:*.*-`0(D66}@N++@:7@<@,,!@GA X(bA@( A@:7@<@,, @GA67}lv'('( FILES ON RAM DISK D8:A( (/Do you want to continue(Y/N) >>AAR37@68}<@,4Y& A`)@,'0P3AQTO"@\&#@@&A] `69}-@@A( Please insert a disk in drive #17-@@7(To go to the type 'MENU'Z-@@6:}Z>Disk #(1=001, 2=002, 35=035 etc.) or disk name(max 5 lttrs)>>4MENUA 0$6. 6-$6;}6-B:,  @ 67%@,.B*@@D1:*.*66-B6- @X6<}X7@<@,4COM)7@<@,4SYS)7@<@,4OSSA **7@<@ ,4STARTUPA6=}*6-%@6-B:,4,"@6. &67@,.,6.>>/67$@&@<$@,.7@,>STRI6>}NG ARRAYH/"7@<@,4SECTORS%/ A`R"@A\##@@ f-@6?}p44(7$@&@<$@, DISK --->z// @7$@&@<$@, 3 6. 66@}. 6. '6-36-  \X"@`$-@@N(%You must re-sort to include this disk6A}XMA QTO* 6. 6. 6-'6. *`<-@@<("For type 'MENU' for file6B} name8-@@8What is the disk file name>>4MENUAE 6-B:,!@(;(Error: Fil6C}e name is too bigE A 5 6.67@,.6.56. )6-6-B:,)67%@,.Z6D}-@@Z>Disk #(1=001, 2=002, 35=035 etc.) or disk name(max 5 lttrs)>>A6. 6-$6-B:,06E} @A67%@,.$##@@ . @8 A pBU`-@@H(+You 6F}must re-sort to include these filesRM@`ULQVT`Oji 6. 6. 6. #6. ,6. 86-6G}D6-P6-\6-i6 -tc`6. 6. 26. D6. W6 .6H} c6. ~L 6. -@@L(Does this file have an extension(Y/N) >>67@<@,46I}Y& Ap)@3 A6AO()File name - LESS extension>>26-B:,> @O67%@,.S(- Extens6J}ion - LESS decimal point>>66-B:,B @S67%@,.'67@ ,.!67@,.'6. A@H66K}-6.(H(What file do you want to erase >>9 6-B:, @)67%@,.96 7@,.6L} 6. H("What disk # or name>>+6-B:,7 @H67%@,.?`AR@*-@@?(6M}ɠ͠Ǡ##@@S6-%@ $@;6.7@<@,S6.7@6N}<@!,8 7@<@,4 .6-&@8 Ap &&67$@!&@ <$@!,.T4*4G67$6O}@!&@ <$@!,. T6 -@ Ap(]l"A62D "`%-@6P}@:(ŠԠĠDMA <; "@`%-@@1(š;M@FR`AR6Q} 6. 2-@@RErase another file(Y/N)>>PSAVE DISKFILEZ/#@@/6-6R}d-@&@n-- @7$@!&@ <$@!,x 67@<@,4Y& A0)@3 A 6S}6AU`-@@H(+You must re-sort to eliminate these filesRM@UQTTO6-6T}6. 6. A` ( (((A(*You must assign a file name for the sort8(8(-The filename should have an ex6U}tender of _( (M=Please enter the filename and extender(max. 8 lttrs + .SRT)>>_AR@C4DISKF6V}ILE(9(Error: You cannot use this nameC A1`-@ @1(Ǡŧk 6-B:,%67@6W}<%@,.@67@<@,.D8:Y6.7@<%@,kAR##@@(66X}-%@ A(@77@<@,4 -6-&@7 AP"&&67$@!&@ <$@!,.6Y}, AP6l"A6@.`-@@(( Ԡՠ+(.(J(1: Sort by File NameT##(2: Sort6Z} by Disk # or Name^E( A0"-@ @;Select a number >>E Bhl  @)!@)P:,#(J(6[}"Error: Select a number from 1 to 2\-@'@b( l A0r j|T]SHELL SORT9AR@6\}`*-@@9( ǡ"@P;6-@6-'6-36-;6. )6-6]}@$)+&@,A(6-P:'@,("A#-@+&@,&#6-S 6-%S7$6^}@!&@ <$@!,/7$@!&@ <$@!,Apf&6.7$@!&@ <$@!,f67$@!&@ 6_}<$@!,.7$@!&@ <$@!,B&67$@!&@ <$@!,..6-&B!A@  A 6`}K`-@@/(ԠӠŠ9M@`KARTSAVE THE SORT:`-@@:6a}(ǠԠϠ͠ˠĸ/#@@/6-&-@&@0-- @7$@6b}!&@ <$@!,: D 6.  ARNQXTbTlOvP6-16-6.6c} 6. 1AP8( (8(What SORT file do you want to see >>B4DISKFILE(8(Error: This is6d} not a SORT fileB A0Y 6-B:,%67@<%@,.@67@<@,.D8:Y6.7@<%@,6`-6e}@ @3(Π٠պ6(.( (.(1: Files in alphabetical order""(2: Disk in numeric order6f}A A-@@7Select a number>>A Bl  @)!@)P:,#(J("Error: Select a numbe6g}r from 1 to 2\-@(@b( l A jT]"@P\` &@@6h}26->6-J6-\AR@ 0`-@@0(ǠԠŠ#6-%@ 6i}#@ 77@<@,4 -6-&@7 A p*&&67$@!&@ <$@!,.4 A p>6j}]l"A6H7`-@@4(TO PRESS ANY KEY7(R-@+&@,\&&6.7$@!&@ 6k}<$@!,f@"@@( 7@<@, DISK-->7@,p@"@@( 7@<@, <--DI6l}SK 7@,z!6-%@"@"!P 0(0( You have &@ disk filesC 6. AR6m}CDo you want to continue (Y/N)>>37@<@,4Y& A" )@,'0P3AQTTO66n}-&&@@K:)@"@: ,A#  Q T T O$ P. k66o}-6-'6-36-?6-G6. O6. [6-c6. k6. 8 8( (8(What SORT F6p}ILE do you want to print >>B B4DISKFILE(8(Error: This is not a SORT fileB A#`L 8( (8(What is your n6q}ame(max. 25 letters) >>V Y 6-B:,%67@<%@,.@67@<@,.D8:Y6.7@<%@,` -`6r}-@@*( Ԡպ-(j :(+(1: Print files in alphabetical:( ordert (((2: Print in numeric 6s}disk order~ G( ( A$0%-@@=Select a number>>G B l  @)!@)P:,#(J("Erro6t}r: Select a number from 1 to 2\-@'@b( l A$0 j T ] "@P P A#@6u}@5AR@A6- 1`-@@1(ǠԠӠ (6-%@ A%6v}`(@ 77@<@,4 -6-&@7 A%  &&67$@!&@ <$@!,. A% 6w} l"A6 &&@@P: '`-@@'( Ǡ -@+&@,( 6x}6-%@2 &&6.7$@!&@ <$@!,< ^"@^(@ 7@<@, 6y} DISK-->7@,F ^"@^(@ 7@<@, <--DISK 7@,P "@T6z}PZ  d X(@X(@$ You have &@ disk filesn :6-6-@T6{}&+-@6(@: x BB(@# -%@- AR6|} Q T T O Q 6. `"-@@Q(Did you do a à first(Y/N) >> 37@<@6}},4Y& A'`)@,'0P3A Q T O \`6.  -@@\5Did you set the paper to the top of it6~}s form(Y/N)>> 67@<@,4Y& A()@3 A'6A <&@@P:1(@<(@6} >>(@  PROGRAMS BY  $(@(@$(@ Q" T, O6 6}6-@ 6-%@J (@(@T ::(@# --^ f(@6}(@$(@/(@:(@E(@P(@[(@f(@h Qr T| O P '('( 6} ŠˠŠ ((( (Enter file name>> Q 6. (( 4Are you sure(Y/N)>>M7@6}<@,0YQ\  6.D8:67@,. ? A02@3@5? B Q T6} O /6-6. 6. '6. /6.  -@+&@, &&6.7$@!&@ <$@!, )66}.7@<@,)6.7@,  6.67@,. &&67$@!&@ <$@!,.  & Q0 T: TD EE6}*** Program by Ron Fetzer, 22 Monaco Ave, Elmont N.Y. 11003 ***N TX Tb Ol +`-@@+(End of Programv6} =-@@=(#Copy the RAM DISK to a FLOPPY DISK! 5-@@5(Use Option C 'D8:*.*,D1:*.*  MA6}' A20 Q 'AAH'A @ TD2:CATALOG.GENse Option C 'D8:*.*,D1:*.*  MA4V