@L}5 _$% l0$)$$Hȱ$ UhL" `e$$%`$%`  R@P!( L(1   Y I`  d  Ld M * @  $ % CC$$)%1 Udߥ$9%: !0 S$% DD˙`  }J)Lr d M * @  $ % CC$$)%1 Udߥ$9%: !0 S$%} DD˙`  }J)Lr J  ((  p L ()   J}L= ( L 0q A    IB JC;? D W } LL  ` W )LA!  ߰")-݆ p" } $G@LL 08`Q")<2Q0 -G$Ș݆ UL# ; p8(()(0ʥ)NQ` }$GȘ݆LU )L ݆ L GȘ ݆LL )W>Z   HH)H }p h  hyhy D L> L JJ    ! LA*` BF }7'8  M HN H` 8 Z  \LdJJ!"! GFE@F (!L }EE !E^ ^ E E7EȩEdE/EȩE  D } .L }  ;F d  ;?F7F? ( .   Z D LL d } . D  L    p  E` , d)  D L) 0BM݊L݉} ML  N݆ L NLML [ TEqEHȱEqEh 0Gȹ G} HLL GɛL  LFREE SECTORS G) *Gȩ GȽG GȌ*jj >G} C8jJ3j2CD( C202C ԠBX` N 1? l LlD:RAMDISK}.COMLu L1 L ;LHL  T`  `8  ɐ     `TU  } L ? .  t`GBJ ~DEHI B V0dV!}QDEHI VF9 ,0 ,0 s0hhL  L` H hDHEh"}DEL8HI4 0 HI,0 0  9 .G VLO#},0 L4*IJ`llD1:AUTORUN.SYSNEED MEM.SAV TO LOAD THIS FILE.D8:MEM.SAV J y08 B|DEHI$} V0 0`B;DEL`?<0LV`@ʆ v s? F0Ξ05: [ BDEHI%} VY8 B V  @  /DE `E:D8:DUP.SYSERROR-SAVING USER MEMORY ON DISKTYPE Y TO &}STILL RUN DOS B;DE J  (` 9 V⪍ ઍ  -'}LLu ÝDEHILV 9 .l 9 .l  `` s$B BH(}I|DE V BLV nB,DE JLV B V BLVDEIʩ BꭝLu } 3E:}DISK OPERATING SYSTEM II VERSION COPYRIGHT 1984 ATARI CORP.A. DISK DIRECTORY I. FORMAT DISKB. RUN CARTRIDG*}E J. DUPLICATE DISKC. COPY FILE K. BINARY SAVED. DELETE FILE(S) L. BINARY LOADE. RENAME FILE M. RUN AT ADDRES+}SF. LOCK FILE N. CREATE MEM.SAVG. UNLOCK FILE O. DUPLICATE FILEH. WRITE DOS FILES P. FORMAT SINGLEL !N',}#"&))9(&*)/h)''-&؆莟R'S  vL/ˢ L }Insert DOS 2.0s, type Y Λx -}DEfHI 1莏#q! @ y0ɛ8A0,' ȅ 1 1ild! 1L!NO SUCH ITEMSELECT.} ITEM OR FOR MENU! 0 .z:*{}.|{ 1 0 0JB 18L%|DL/}%DIRECTORY--SEARCH SPEC,LIST FILE?[# 0 0 &|D3" 1L!NOT A DISK FILEN !B 1L!E# 1 !BD0}ED:}:1BJ|DE 1DEBHI 1 h0ߢ 0.1}  0?詛 1 y0YЛ 1 ;#L" ;#L! BL1TYPE "Y" TO DELETE...DELETE FILE SPEC2}COPY--FROM, TO?OPTION NOT ALLOWED697 FREE SECTORS COPYING---D8:COPY32.COMl# 0|D .L/%#3}##JB|DE 1BHID#E 1#0: B 1L!#͑### B 1#c$0SY4}S1}:## # # .#Ƚ# # 𩛙## 1,#PD#ELJ- <.BJD#E 5}1 1HH 0hh|DL%1}:̳# L% #D#EL% 1 0 . .0O% 1L!WILD CARDS NOT A6}LLOWED IN DESTINATION 0 <.|K}N 2 FORMAT. t* 5) 1L!`) 0NΞ 0 L1) 1 L!BAD LOAD FILELOAD FROM WHAT FILE?) 0 ?}0#B 1L!WHAT FILE TO LOCK?) 0 0$B 1L!WHAT FILE TO UNLOCK?DUP DISK-SOURCE,DEST DRIVES?TYPE "Y" IF OK TO US@}E PROGRAM AREACAUTION: A "Y" INVALIDATES MEM.SAV.FE! +L1   `*  70 2 2A} 0.* 1 y0 0)INSERT BOTH DISKS, TYPE RETURN^, 1 y038逍 N, 1L! ,B}C, t*  Lx+, 0 ^, 1 y0 , ,0,0 ,L+ ,I0 ,Vǭ0C}Ξ, 0 }, 1 y0C,ШC, 0K'!" H H 'h h Lx+!EF 5L1L!D,I,HhD}` NOT ENOUGH ROOMINSERT SOURCE DISK,TYPE RETURNINSERT DESTINATION DISK,TYPE RETURNE}`  `8 rL1`-* 1P* 1 y0Y`hhL!NAME OF FILE TO MOVE?- 0 0|DL% <.F},^ 1 70 0 .@L# .BJ 1  DEHIB V L1 ,} 1 70,L.  G}JB|,#P#DE 1 HI BDEHHII 1 B 1 ,^ 1 70,0La- B V,#PH},^ 1 70 0L#L!-* 1P* 1 y0Yj383}mm ݭI}}`8}``|* ? ɛ,`|:-)| / 1L!`DESTINATION CANT BE DOJ}S.SYS0 0H{ 24Δ 28/L!/) 2 Π 2 0 ξK}hAΞB,0 J 1 BDEHI,HÝDE 1HIHIDELSAVE-GIVE L}FILE,START,END(,INIT,RUN)O S0 1`BDEPHI V` S0H 1 L!M}0 0 1L~0`PLEASE TYPE 1 LETTER,0`hhL! 70 1L0L<1 ,;ɛ7,"ɛ:ݦ1ݥN}A"D|ݤD|ȩ:|ȩ|ɛ,,(/+.ީ1 1,ɛ`轤{NAMEO} TOO LONG B VL!` L1I H1EΝDL1|mDiE` V0`8d/8 i:222 1 LP}!ERROR- 144ɛ+,' 20*.. өr2 1``2TOO MANY DIGITSINVALID HEXAQ}DECIMAL PARAMETER800 0 8 00`,0'D800 H,ɛh`2L1NEED D1 THRU D8uR} ECIMAL PARAMETER800 0 8 00`,0'D800 H,ɛh`2L1NEED D1 THRU D8u8<<  B JKIHiDiELV`L8 8 BLV`LxT}8t8l Lu8hihiHHȱȱL8c !#3`Lu8JJJJ`H 8h`HU}ȩh Q8L8 Z8L8 8L8 8L8 8L8S:@9E:E9H '9 H9I9 8 '9h)0ICV}9D9L8 L :::: :Lr:::IEL[::i:iIIL[:`:i::iX}::L:`L{:w:w: C`L:L: D8:MEM.SAV: 8| 9 '9`L:L: D:DUP.SYS:̩ 8Y} x:ɀL: '9`88 |9Y:X: '9L); D8:DUP.SYS; 8::88 9 '98? :`;WL`; 9Z}Ln; ` :Y;Y;L;L;)} Setting Up ATARI 130XE Ram Disk; 9L; ; -9  [} L;D8:; :9 :Y;L: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 a}1AAH'A @1 A@1A@T'A @1 A@1A@V'A b}1 A@1AA''A @1 A@1A@'A @1 A@ c}G;@0,;A0,;@,;@ ,;@,;@,T(>:A%,f-@@ (Documentation for d}TURBO BASIC6. j(>:A%,"-@@4( ̠@6-RAR^6-j6 e}-((1: ARRAYS TUTORIAL"(2: SORTING TUTORIAL,$$(3: CATALOGER DOCUMENTATION68 A-@ f}@4(SELECT A NUMBER8@T  @)!@)P:,#(J("ERROR: SELECT A NUMBER FROM 1 TO 3T AJ( g}>:A%,T7"@!-@@ 7(Ӡ^8"@!-@@ 8(Ǡh= h}"@!-@@ =(Ҡr 6. |#"@#6. D1:ARRAYS.TUR$"@$6. i}D1:SORTING.TUR$"@$6.D1:CATALOG.TXT1-@@1(PRESS ٠ TO SCROLL6-@@,( j}CREEN OR RINTER03(6(;;7@<@,4S)7@<@,4sAP;;7@<@,4P)7@ k}<@,4pA`IAR@ @=@@I6-( A@(6- l}%@("@  A` A`5F:A,"A6#@5AR,,($---------- m}--------------------------( ** END **S( ( (((O(7DO YOU WANT TO READ ANY OTHER DOCUMENTA n}ION(Y/N)S$$7@<@,4YAp& +0+@+@@:\(>:A%, o}"-@@X(0DID YOU SET PAPER TO THE TOP OF ITS FORM (Y/N)\D$$7@<@,0YApN3 3 3 p}3X0(>:A%,"-@@0( PRINTING!b( A`@(6-%@l.@.@@ q}P:v&&(@ "@W A A@F:A,"A6#@. r}@@AR<6-6-@W&5-@+%@,83< ,,($-------------------------------- s}----::3$ -%@-( ** END **S( ( (((O(7DO YOU WANT t} TO PRINT ANY OTHER DOCUMENTAION(Y/N)S$$7@<@,4YAp +??PROGRAM BY RON. FE u}TZER, 22 MONACO AVE, ELMONT, N.Y. 11003SCROLLING ROUTINE##@@K: )@ v}"@: ,A 6-@$*PAGE ROUTINE46-6-%@>Q(@(@Q(@ } ARRAYS ====== by Ron Fetzer There are 3 kinds of arrays thatwe use in TURBOx}-BASIC: 1)Onedimensional number array 2)Twodimensional number array or MATRIX3)String Arrays(Pseudo-String Array) Arry}ays are also calledSubscripted Variables. P(2) = "P sub2". The P is the variable and the 2is the subscript. The subscript z}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 --------}----- TURBO-BASIC and ATARI BASIC donot allow string arrays. This is nobig problem. We create a PSEUDOSTRING ARRAY t}hat looks and acts likea normal string array. We take a longstring and chopp it into equalpieces. In order to create this } SORTING NUMBERS =============== by Ron Fetzer The Bubble Sort We will us}e a bubble sortbecause it is the easiest tounderstand. We first load the numbersinto a number array. In this sort 2elemen}ts of the array are examinedduring each pass of the loops. Theyare switched if they are not in theright order - low to hig}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 manynu}mbers. This sort uses nested loops. Theouter loop is the same as the numberof elements of the array. The innerloop is} ONE LESS than the elements ofthe array. The switching is donebetween these 2 loops. In our programit is lines # 140 to 17}0. Lets enter these 4 numbers intothe bubble sort and see how they areprocessed. The numbers are: 3,2,7,1 Between} the outer loop(4) andthe inner loop(3) we have (4x3=12) 12passes of the loops. The bubble sortarranges the 2 elements fro}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)=N}:REM<--ARRAY 90 NEXT X 100 -- 110 REM BUBBLE SORT 120 FOR T = 1 TO K 130 FOR Y = 1 TO K-1 140 I}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 } 200 -- 210 REM PRINT SORTED NUMBERS 220 ?:? "SORTED NUMBERS":? 230 FOR L = 1 TO K 240 ? A(L);" ";:REM<}--ARRAY 250 NEXT L 260 -- MINI SORT The MINI sort is faster than thebubble sort. This sort fi}nds theminimum valued element and places itin the first position of the array.It keeps on doing this until allelements ar}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 to} 1. Weneed the value of K to print out thearray, therefore we make it equal toE. Please key in this short demoprogra}m to see how it works. 10 -- 20 REM PUT NUMBERS IN THE ARRAY 30 CLS:?:?:K=0 40 INPUT "HOW MANY NUMBERS T}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 } 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):} 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 PRIN}T SORTED NUMBERS 200 ?:? "SORTED NUMBERS" 210 FOR T = 1 TO E 220 ? A(T);" "; 230 NEXT T 240 -- } SORTING STRING ARRAYS ===================== THE STRING BUBBLE SORT For a full understanding of aST}RING BUBBLE SORT please read thesection on PSEUDO STRING ARRAYS andBUBBLE SORT first. First we set up a PSEUDO STRING}ARRAY. Without a string array youcannot sort strings. We are going toenter 4 words: ZERO ALL HOUSE COM}PUTER A String Bubble Sort works thesame way as a number Bubble Sort,except each element is longer. Weswitch element}s if they are not inthe right order - small to large. Theelements or substrings in thisdemonstration are: 1 to 10 (Z})6^^<s3>00x|73>00x`c6<9c` 33c366fffg~33>00xgfffff<}11111{!!\]_\ED!EOHI B V`}   }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 }PSEUDO STRING ARRAY we must docertain things. 1)Decide how many elements we need 2)The lenght of each elem}ent 3)Calculate the end of the FOR-NEXT loop and the STEP For example, we want to create astring array tha}t has 7 elements andeach element is 10 letters long. Wewill call the main string X$. To findout how much to DIM X$ we mult}iplythe number of elements times thelenght of each element (7 x 10 = 70).We now DIM X$(70). The FOR-NEXT loopstarts with }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 }put into thestring array will be shorter than 10letters, we use PAD$ which has 10empty spaces to pad each substring orele}ment so it is 10 letters long. Wecan visualize this as follows: X$ ----------------------------------- }| | | | | | | | |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 PA}D$=" ":REM FOR PADDING THE SUBSTRING 10 SPACES 50 REM ASSINING PSEUDO STRING ARRAY VALU}ES 60 FOR N = 1 TO 70 STEP 10 70 INPUT "GIVE ME A WORD(MAX 10 LETTRS)";SUB$:? 80 SL=LEN(SUB$):REM LENG}HT OF WORD 90 IF SL<10 THEN SUB$(SL+1)=PAD$:REM PAD TO 10 LETTERS 100 X$(N,N+9)=SUB$:REM PU}T VALUE INTO ELEMENTS 110 NEXT N 120 -- 130 ?:? 140 REM DISPLAY PSEUDO STRING ARRAY  } 150 FOR N=1 TO 70 STEP 10 160 K=K+1:REM COUNTER 170 ? "ELEMENT ";K;" = "; X$(N,N+9) 180 NEXT N !} 190 -- A line by line explantion ofthis program is as follows:10 Draw 30 dashes20 Clear the screen30 Dim X$ for "}the total amount of all the elements. The SUB$ is the lenght of an element. The PAD$ is the lenght of an element40 #}PAD$ = is the lenght of an element(10). It is used to pad a word that is too short - less than 10 letters50 Rem exp$}lanation60 FOR-NEXT-loop. It starts with 1 and ends with the number of elements(7) times the length of each element%}(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 Pa&}d each word to 10 characters100 Fill the elements or the SUB$ with words. The sub strings or elements are 1-10, 11-2'}0, 21-30, 31-40, 41-50, 51-60, 61-70110 End of loop120 Draw 30 dashes130 Print140 Rem explantion150 FOR-NEXT loop. S(}ee explanation on line 60160 A counter that counts the number of elemnts in the array170 Print the elements in X$(N)},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 Dra*}w 30 dashes You can also print outindividual elements of the stringarray. Please change the followinglines. 15+}0 N = 0 160 INPUT "WHAT ELEMENT DO YOU WANT TO SEE";N 170 ? "ELEMENT ";N;" = "; X$(N*10-9,N*10) ,} 180 GOTO 150NPUT "WHAT ELEMENT DO YOU WANT TO SEE";N 170 ? "ELEMENT ";N;" = "; X$(N*10-9,N*10)   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,0}-8%@,68%@,-  TPRINT SORTED LIST((SORTED NUMBERS(-@1}(8,, <--ARRAY  D:BUBBLE.NUMTPRINT SORTED LIST((SORTED NUMBERS(-@2"#i~ASUBPADNNSTEMPBBE !3}  T##INPUT WORDS INTO STRING ARRAY ` (( HOW MANY !4}WORDS TO SORT233;$@,;@,;@,;@,<6. F)(&(MAX. NUMBER OF LETTERS = 10!5})(P!!-@$@@ZGIVE ME A WORDd 6-B:,n  @ 67%@,.x67<%@ ,.!6} TSTRING BUBBLE SORT!!-@$@@++-@+$@,&@@= 6-6!7}-%@ %6-%@=6-%+@%@ ,7<,17<,A06.7<,67<,.7<,67<,.!8}  TPRINT OUT SORTED WORDS(( SORTED WORDS:(!!-@$@@"(7<%@ ,!9}, 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!!-@$@@++-@+%A}$@,&@@= 6-6-%@ %6-%@=6-%+@%@ ,7<,17<,Ap6.7<%B},6.7<,#67<,.7<,#67<,.7<,67<,.67<,.  "T,`6!!PRINT OUT SORTED PHON%C}E LIST@(( TELEPHONE LIST(J!!-@$@@T##(7<%@ ,7<%@ ,^ hT %D}D2:BUBBLE.REL( TELEPHONE LIST(J!!-@$@@T##(7<%@ ,7<%@ ,^ hT $y=SAIS@ )F} T!!PUT NUMBERS TO TO BE SORTED` ( (6-(""HOW MANY NUMBERS TO SORT2 9,6-<)G}-@FGIVE ME A NUMBER P 68,-<--ARRAYZ dTnMINISORTx6-8@,6-@)H}-@ 8,6-8,6- ! 6-8,68,-8,!68,-%6-&@%!@A T)I}PRINT NUMBERS((SORTED NUMBERS(-@(8,  TD2:MINISRT.NUMA T(m'( ASUBPADNNSTEMPBBE-K}  T##INPUT WORD-L}S INTO STRING ARRAY ` (( HOW MANY WORDS TO SORT233;$@,;@,;@,;@,<6. -M} 10 SPAESF)(&(MAX. NUMBER OF LETTERS = 10)(P!!-@$@@ZGIVE ME A WORDd 6-B:-N},n  @ 67%@,.x67<%@ ,. TSHELL SORT6-@6-@$A-O}p(6-P:'@,("A-@&6- 6-%K6-$@&@ '6-$@=6--P}$@&@ K6-$@7<,/7<,Ap6.7<,67<,.7<,67<,. 6-&!-Q}A  AT"PRINT SORTED WORDS,(( SORTED WORDS:(6!!-@$@@@(7-R}<%@ ,J TTD2:SHELLSRT.STRTED WORDS,(( SORTED WORDS:(6!!-@$@@@(7,0 RAM DISK CATALOGER INSTRUCTION --- ---- --------- ----------- by Ron Fetzer This program works on any1T} ATARIXL/XE computer that has a RAM DiskD8: It reads your disk directory fromall your disk and prepares ONEALPHABETICAL o1U}r NUMERIC file of allyour disks. The following files willnot be cataloged: files ending in.SYS; .COM; .0SS or files called1V}STARTUP. These files are usually notuser created. The program is written in TURBO-BASIC. The program uses the RAM DIS1W}KD8: as a data disk and stores allfilenames in the master file called"DISKFILE". The program will notallow you to use tha1X}t name again. Inthe BASIC version you can sort up to873 files. In the compiled versionyou have to reduce your programmemo1Y}ry requirement because the file"RUNTIME.COM" also has to be in thememory. In the compiled version inline 130 you must make1Z} 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 abov1a}einstructions. After you have donethis THEN you can turn off yourcomputer. In this manner your masterdisk file and all yo1b}ur sort fileswill be saved. Now it is easy to ADDnew disks or files to your masterlist. When you boot up again you do1c}everythig in reverse. You insert theCATALOGER disk and create a RAM DISKD8: Then you take out your CATALOGERdisk and inse1d}rt your DATA DISK andtype DOS and go to: OPTION C 'D1:*.*,D8:*.*' You are now re-loading yourpreviously saved 1e}disk files into theRAM DISK so you can add or delete andwork with them. When you first start up useOPTION 2: LOAD DIS1f}KS. Insert one diskafter the other until you are done.Next you must choose OPTION 6: SORTFILES. You can sort by file name 1g}orby disk number. Once a sort iscomplete you can display it on thescreen or the printer. It issuggested you do both sorts1q}=b%DOS SYSb*)DUP SYSb SRAMDISK COMb\AUTORUN BASbSwARRAYS TURbAUTORUN SYSbkSORTING TURb-BUBBLE NUMb2BUBBLE STRb :BUBBLE RELbEMINISRT NUMb JSHELLSRTSTRb,SCATALOG TXTbqCATALOG BAS byfilename and by disk number. The number function uses astring variable as a result youshould type in the numbers i1r}n thefollowing manner so they will besorted correctly. 1=001, 3=003,15=015, 123=123. Each number shouldbe 3 DIGITS long.1s} When you want to add new disksselect OPTION 3: ADD NEW DISKS. Ifyou select OPTION 2: LOAD DISKS thenyour prviously cr1t}eated masterDISKFILE will be wiped out and youhave to start loading all the disksover again. You can insert individua1u}l filesinto the master file DISKFILE or youcan delete a file from it. If you dothis you must re-sort to inclue oreliminat1v}e this file from your sortfile. You can also erase a file formthe RAM DISK D8: by using OPTION 9:ERASE DATA FILE. 1w} Always exit the program by usingOPTION 10: END because it gives you areminder and instructions on how tosave your files 1x}from the RAM DISK toa floppy disk. To get experience using thecompiler it is suggested you compilethe program yourself1y}. Here are thesteps to make this an AUTO BOOTINGCOMPILED program. 1. Change line 130 ARRAY$ to ARRAY$(14700).1z} Save this program to another disk Call it CATALOG.BAS 2. Have the TURBO-BASIC disk in in your d1{}irve and go to DOS 3. Select option L 4. For the file name use COMPILER.COM 5. Remove the TURBO disk a1|}nd insert the disk with the CATALOG.BAS file on it. 6. Press the number 1 key for one disk drive1}} 7. With the arrow keys move the cursor until you are at CATALOG.BAS and hit return 8. The program 1~}will now compile 9. When it is finished you will be asked for a file name. Call it AUTORUN.CTB 10. C1}opy from the TURBO disk the file called 'RUNTIME.COM' and change the name to AUTORUN.SYS. That 1}is all except or a fewGerman words which you may not know. GERMAN ENGLISH ------ ------- Ja1} Yes Nein No Speichern Saving to Disk Programmleange Program lenght Fehler 1} Errors Laufwerks- Disk drive nummer number Pfeiltasten Arrow keys Wahlen Choo1}se Compiliert Compiled Kein Not Taste drucken Press a key Zeile Line number 1} When you are finished readingthis documentation answer 'NO' to thequestion "Do you want to read anyother documentation" 1} Type in RUN "D:CATALOG.BAS" toget to use this program. If you have any comments orsuggestions about this program 1}$ --H&-@@"(@& R$D:MENU(@Q(@ ktheyare welcome. Please write to RON FETZER 22 MONACO AVE ELMONT N.Y. 11003 This p1}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_SOR5}DIRECTORMENLISFILEAYDISKFILEDDDNAMEGPADDFILEDFILEDEFILEEXDARRAYSTART_LOADFILESFILE1FIL1LARRAYF5}ILE_SORNUMBER_SORBICDAADISPLAY_STRDISPALY_STRDSAVE_SORREVERSE_STPNUMBERNAMETEMPREVNUMERALPHAREV_ALPHAR5}N_END_ERROSORTEND_FILE_ERROSCROLYNKENUMERIEND_OF_FILPSHOWXNAMPRINT_ALPHAPRINT_NUMERITITLTPAGTDPRINT_ALP5}AHPRINT_ALFA_NUYALFA_NUNUM_PROMPFILE_MUM_SORFILE_NUM_SORFVSCREEN_CLRDLISTHZDILSTKSTFXYERDELSUBEXT5}EEEREXXTEEXTDIDKLDDEBBSBERROERKWPWPKKS@@F5}6K M UT a jm[EVCcM  5}#L(- !"#$B%&T'5}(.G@)*+,T-.iG/0123456L5}789:L;0L?EL@ZLAoLBCDEF5}GHIJLK!_L aMLNOPQRSTLUV5}WhXYZi[\]^Xd_`]ahbc)XdLeL5}fx@gLhLiLjklmLnoBM pqrstu5}v MwxyM z{|*M }~6M 5}NM‡CRnM dTn>>PROGRAM IN TURBO-BASIC FOR ATARI XL/XE WITH RAM DISK 5}D8:xss;@,;@,;@,;@,;@,;@,;@!,;@,;A$,;@!,ss5};B3,;@!,;@!,;@!,;@!,;@!,;@!,;@!,;@,;@%,~~;@,5};@,;@,;@,;@,;@,;@,;@!,;@,;@,;@,33;@,5};@!,;@, ;@,= Ap=@3@ D8:MEM.SAV6. D8:DISKFILE B5}P\TOH`-@@<(H6-#-@@#(5} 1: Normal"-@@"(2: Amber*-@@*(3: Reverse Amber"-@@"(4: Green!5}-@@!(5: GreyB A-@@8Select a number >>B B"l  @)!@)P:5},#(J("Error: Select a number from 1 to 5\-@(@b( l A,//AA A0A@AP5}61AAH'A @1 A`@1A@P'A @1 A`J1A@X'A 5}1 A`T1A@D'A 1 A`^1A@'A 1 A`hQ5}rT|]6. #`-@@#(ՠ%( (%(1: Files on Data Disk( 2: Load Disks5}(3: Add New Disks!!(4: Add Individual Files##(5: Erase Individual Files( 6: Sort Files''(7:5} Display Sort on the Screen(8: Print the Sort(9: Erase Data Files( 10: EndB A-@ 5}@8Select a Number >>B Bn  @)!@)P:,#(K(#Error: Select a number from 1 to 10]-@'5}@d( n Ab\&T0O:0*@@D8:*.*-`0(D5}@N++@:7@<@,,!@GA X(bA@( A@:7@<@,, @GA5}lv'('( FILES ON RAM DISK D8:A( (/Do you want to continue(Y/N) >>AAR37@5}<@,4Y& A`)@,'0P3AQTO"@\&#@@&A] `5}-@@A( Please insert a disk in drive #17-@@7(To go to the type 'MENU'Z-@@5}Z>Disk #(1=001, 2=002, 35=035 etc.) or disk name(max 5 lttrs)>>4MENUA 0$6. 6-$5}6-B:,  @ 67%@,.B*@@D1:*.*66-B6- @X5}X7@<@,4COM)7@<@,4SYS)7@<@,4OSSA **7@<@ ,4STARTUPA5}*6-%@6-B:,4,"@6. &67@,.,6.>>/67$@&@<$@,.7@,>STRI5}NG ARRAYH/"7@<@,4SECTORS%/ A`R"@A\##@@ f-@5}p44(7$@&@<$@, DISK --->z// @7$@&@<$@, 3 6. 65}. 6. '6-36-  \X"@`$-@@N(%You must re-sort to include this disk5}XMA QTO* 6. 6. 6-'6. *`<-@@<("For type 'MENU' for file5} name8-@@8What is the disk file name>>4MENUAE 6-B:,!@(;(Error: Fil5}e name is too bigE A 5 6.67@,.6.56. )6-6-B:,)67%@,.Z5}-@@Z>Disk #(1=001, 2=002, 35=035 etc.) or disk name(max 5 lttrs)>>A6. 6-$6-B:,05} @A67%@,.$##@@ . @8 A pBU`-@@H(+You 5}must re-sort to include these filesRM@`ULQVT`Oji 6. 6. 6. #6. ,6. 86-5}D6-P6-\6-i6 -tc`6. 6. 26. D6. W6 .5} c6. ~L 6. -@@L(Does this file have an extension(Y/N) >>67@<@,45}Y& Ap)@3 A6AO()File name - LESS extension>>26-B:,> @O67%@,.S(- Extens5}ion - LESS decimal point>>66-B:,B @S67%@,.'67@ ,.!67@,.'6. A@H65}-6.(H(What file do you want to erase >>9 6-B:, @)67%@,.96 7@,.5} 6. H("What disk # or name>>+6-B:,7 @H67%@,.?`AR@*-@@?(5}ɠ͠Ǡ##@@S6-%@ $@;6.7@<@,S6.7@5}<@!,8 7@<@,4 .6-&@8 Ap &&67$@!&@ <$@!,.T4*4G67$5}@!&@ <$@!,. T6 -@ Ap(]l"A62D "`%-@5}@:(ŠԠĠDMA <; "@`%-@@1(š;M@FR`AR5} 6. 2-@@RErase another file(Y/N)>>PSAVE DISKFILEZ/#@@/6-5}d-@&@n-- @7$@!&@ <$@!,x 67@<@,4Y& A0)@3 A 5}6AU`-@@H(+You must re-sort to eliminate these filesRM@UQTTO6-5}6. 6. A` ( (((A(*You must assign a file name for the sort8(8(-The filename should have an ex5}tender of _( (M=Please enter the filename and extender(max. 8 lttrs + .SRT)>>_AR@C4DISKF5}ILE(9(Error: You cannot use this nameC A1`-@ @1(Ǡŧk 6-B:,%67@5}<%@,.@67@<@,.D8:Y6.7@<%@,kAR##@@(65}-%@ A(@77@<@,4 -6-&@7 AP"&&67$@!&@ <$@!,.5}, AP6l"A6@.`-@@(( Ԡՠ+(.(J(1: Sort by File NameT##(2: Sort5} by Disk # or Name^E( A0"-@ @;Select a number >>E Bhl  @)!@)P:,#(J(5}"Error: Select a number from 1 to 2\-@'@b( l A0r j|T]SHELL SORT9AR@5}`*-@@9( ǡ"@P;6-@6-'6-36-;6. )6-5}@$)+&@,A(6-P:'@,("A#-@+&@,&#6-S 6-%S7$5}@!&@ <$@!,/7$@!&@ <$@!,Apf&6.7$@!&@ <$@!,f67$@!&@ 5}<$@!,.7$@!&@ <$@!,B&67$@!&@ <$@!,..6-&B!A@  A 5}K`-@@/(ԠӠŠ9M@`KARTSAVE THE SORT:`-@@:5}(ǠԠϠ͠ˠĸ/#@@/6-&-@&@0-- @7$@5}!&@ <$@!,: D 6.  ARNQXTbTlOvP6-16-6.5} 6. 1AP8( (8(What SORT file do you want to see >>B4DISKFILE(8(Error: This is5} not a SORT fileB A0Y 6-B:,%67@<%@,.@67@<@,.D8:Y6.7@<%@,6`-5}@ @3(Π٠պ6(.( (.(1: Files in alphabetical order""(2: Disk in numeric order5}A A-@@7Select a number>>A Bl  @)!@)P:,#(J("Error: Select a numbe5}r from 1 to 2\-@(@b( l A jT]"@P\` &@@5}26->6-J6-\AR@ 0`-@@0(ǠԠŠ#6-%@ 5}#@ 77@<@,4 -6-&@7 A p*&&67$@!&@ <$@!,.4 A p>5}]l"A6H7`-@@4(TO PRESS ANY KEY7(R-@+&@,\&&6.7$@!&@ 5}<$@!,f@"@@( 7@<@, DISK-->7@,p@"@@( 7@<@, <--DI5}SK 7@,z!6-%@"@"!P 0(0( You have &@ disk filesC 6. AR5}CDo you want to continue (Y/N)>>37@<@,4Y& A" )@,'0P3AQTTO65}-&&@@K:)@"@: ,A#  Q T T O$ P. k65}-6-'6-36-?6-G6. O6. [6-c6. k6. 8 8( (8(What SORT F5}ILE do you want to print >>B B4DISKFILE(8(Error: This is not a SORT fileB A#`L 8( (8(What is your n5}ame(max. 25 letters) >>V Y 6-B:,%67@<%@,.@67@<@,.D8:Y6.7@<%@,` -`5}-@@*( Ԡպ-(j :(+(1: Print files in alphabetical:( ordert (((2: Print in numeric 5}disk order~ G( ( A$0%-@@=Select a number>>G B l  @)!@)P:,#(J("Erro5}r: Select a number from 1 to 2\-@'@b( l A$0 j T ] "@P P A#@5}@5AR@A6- 1`-@@1(ǠԠӠ (6-%@ A%5}`(@ 77@<@,4 -6-&@7 A%  &&67$@!&@ <$@!,. A% 5} l"A6 &&@@P: '`-@@'( Ǡ -@+&@,( 5}6-%@2 &&6.7$@!&@ <$@!,< ^"@^(@ 7@<@, 5} DISK-->7@,F ^"@^(@ 7@<@, <--DISK 7@,P "@T5}PZ  d X(@X(@$ You have &@ disk filesn :6-6-@T5}&+-@6(@: x BB(@# -%@- AR5} Q T T O Q 6. `"-@@Q(Did you do a à first(Y/N) >> 37@<@5},4Y& A'`)@,'0P3A Q T O \`6.  -@@\5Did you set the paper to the top of it5}s form(Y/N)>> 67@<@,4Y& A()@3 A'6A <&@@P:1(@<(@5} >>(@  PROGRAMS BY  $(@(@$(@ Q" T, O6 5}6-@ 6-%@J (@(@T ::(@# --^ f(@5}(@$(@/(@:(@E(@P(@[(@f(@h Qr T| O P '('( 5} ŠˠŠ ((( (Enter file name>> Q 6. (( 4Are you sure(Y/N)>>M7@5}<@,0YQ\  6.D8:67@,. ? A02@3@5? B Q T5} O /6-6. 6. '6. /6.  -@+&@, &&6.7$@!&@ <$@!, )65}.7@<@,)6.7@,  6.67@,. &&67$@!&@ <$@!,.  & Q0 T: TD EE5}*** Program by Ron Fetzer, 22 Monaco Ave, Elmont N.Y. 11003 ***N TX Tb Ol +`-@@+(End of Programv5} =-@@=(#Copy the RAM DISK to a FLOPPY DISK! 5-@@5(Use Option C 'D8:*.*,D1:*.*  MA5}' A20 Q 'AAH'A @ TD2:CATALOG.GENse Option C 'D8:*.*,D1:*.*  MA4V TURBO-BASIC XL 1.5 (c) 1985 Frank Ostrowski!  ӥL]""$$ (p}%J[WܠjeC /D%Zub2gTSt$8®݊Ò2% 5R}Ţtd.’$3@X7t5w5$?## $#L+D:*.*S:C:P:$#.#) `:#(6ENeU\l؏&/ؕ؄sأ$}LENeU\lأ$8آǔƐƉƐƇ4cY%٦rULۉCۄړp^gyض%iwܸJڅ*ܣ$ڭڞجئأأ}$ ,(""(222000000..222222222222222222222222222222**22*22(222(2222222222 ,(""(}0000000--**2*(22(2222222 V`hh@,lHH$HHHHHHӍl"}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 *ڄԠ}"("!""" "L**""""""&О"("!""}" "L**""""""&О"("!""" "L** }""""""&О"("!""" "L**"""" }""&О"("!""" "L**""""""&Оd }"("!""" "L**""""""&ОL-6"e" }"e""e""e""e""i""}"""}"""}"""}"""}"""}""ǭ"m"""m" }""m"""m"""m"""m"""}"""}"""}"""}"""}"""}""ǥՅօׅ؅مԅՅօ}ׅ؅`` ` ` `80 `ԥՅ +.JJJJ)iFiFi1FicFi'ȐȦoFiU}ȐFiiFi#iFiGi Fii@F iiFiiciՊFigi'iՊօשBL-`I}))83Ԥԥդե֤֥פץؤإ٤L,K6"ХL--L--L-}-E0:e٥eإeץe֥eՐ؅٥ׅإօץՅ֩L-8٥إץ֥հ'I8}م٘؅ؘׅטօ֘ՅL-ؤm\G0Q@Ն֩م؅2եمֆשم"ե؅֥م׆ةեׅ֥}؅ץم؆لԘ)q +` . |. &7i |. ,%!L?.`刱䈱㈱∱}ሱ`ԅՅօׅ؅م`ԍՍ֍׍؍ٍ`ԍՍ֍׍؍ٍ`L.L. Խսֽ}׽ؽ` L%/`ӽޕ &ԅ)@إ)JJJe)e - M} 1. &Je0F 2 . /L(8`@ԠՈքׄ؄` . |. , . . |. , #/L(8`0 I@ԥ)} 2f / . & r 1. #/ &?P , .Iiԩ +)ԅ ,ӽޕL(`8`$})Ԧ61718191:1;1 (ť)8@0$Յ)e)e -F . / , . &1 1.} #/ &F I`U9>`D'RFuCU?b9dYdg@W2@?tS)%)@0)%ԅԢ / . &G } 1.Ӱ6 #/ &.ӽߕ ,ԅԥ B1 (`8``0?i? . . / , #/ &ԍՍ}֍׍؍ٍ . . ( / , O2 / ,0 .JeF 2`L+) .e٥eإeץe֥e}Պi؊؅٥ׅإօץՅֆե1ԥ'JffffJffffJffffJffffم`ԩ&&&&*&&&&*&&&&*&}&&&*`Pi`)JJJeԅԘ)Peԅ`եԆ8@EB)JJJeԅԥ)PeԅԘ)3eԅԽ3eՅ՘)JJJ}3}}3`)JJJeԅԥ)PeԅԹ3eԅԹ3eՅդЧ` 0@P`'Nu pX@(#d,X L(  兢}0襙 bɥ⥋㩀 50ɥ0DȱȱȄ   ik#ZMkVgğe拰ㅋ }⅊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  ¤ħ` Ťħ` ƪ Ċ 0}Ťħ` ¢`届 x݅ L ĽCӠɀ L]Ɉ L] Ln LŠI1}HEDBL$HH hh +L `ħ LĢl ¦`YDAER ԅՅ֦2}󅗄`L+ ¢p 0 Hp hɈL` ,#,$,!Lé ,H ĥDEԝH՝Ih L3}©L $`L© , k ĩԅ  + ĥ 夨ħ`2ƪƪ ! A!Ƚa!Ƚ!Ƚ!Ƚ!Ƚ!4}``氤hhL1@$ƪư 0 0 n$P`L+FҐ֥װ綾إٰو LǠFf5}ؐ ee&ee* &eeeԪeըee$.ƪ@!Ƚ`!Ƚ!Ƚ!Ƚ!Ƚ!`檦6}!!!!`!@!^!` Ȅ 8 n奱 ٥Lǥ֤צưĘ=ŗ78֪א& 7} eԥe$`L: L ԅՅօׄ 1פ& ٤ţĢԅeՅe8包卅 ]&8} 8Ԩժ%אְ`ֆL夨ħ` FҰg8&0ei֥i0Tׅiإi0BJe؅eم0&f9}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ҤA} /L.٤ƪƪ@!@!, 舽`!`!!ـ!!٠!!!!!`@!jI*` . ֪ (B}ϰ`(8` ֤ׅԄ +҅L: Lyƪ8吪周Ly sũ + ŐL Ly sŠԄ h L}C} L}٩    e쪽pLyL( + ڥHJJJJ h) 0:i`  ک; n +ȱ)ȥ%D}ݓ Lh ԍՅԄׅ֩өL:ƪ?Ԣ )ɠ )  -L &Lڦ@!)@!` n)8@E} -L:` / n)8@I= n)8@/ѩ֔$ሄ ,L: + n 0L8 nF} 0L8 n H1L8 n /L8 n /L8 n D/L8 n 1L8LLإL( &)ԥ)8@JjH@G}MC)JJJe)e .F / .P . &F . #/ &L.L(HHHHHH /hhhhhh &H} Y/hԅL:,` L _ܘ%ᨥ%Ly _ܘᨥLy _ܘEᨥELyٚ<|'g 0L`I}!!!!i ` &LإL٥LyɥLzvmZ ƨ!0 4 䦵 ¥ԝD՝E֝HeםJ}I Lܤį eį L` x݅ƨLLLܤ ©`#ۢ Lĩ_,ߤK} ڄ . eڅԥeۅհ"8څ֥ۅא8ܥݰL۠Q%0ԅإՅ٥ަ0%Q% L}L-ե0LޥڤLyمօנ6&֐ eו`L( Hħ hբՅ `ޥԢ `ޥՅ֠M}&&֐eܥeېڈ 7 \ 7 j N \ N j$0!ee80å/8ܥ۰uڕ0N}eUiV`TUV`8UV`eTi`8TȢ` $L„')Q ȱ8 eO}新`8`L齀).Q Ӱȱ8e新 O :L䅫# *$ŬP} Ʃ HL"䥫ș L` Ml/#樱0ZS'`ȱȱȱȱȱȱȄ`ȱօȘuԩׅu՘e֨҄`Q}I 屝Ҡȱȱȱȱȱ` n$҅J?eԨe` L 兙 兛 n %3 Ԥ` ҩ,R} , , L檤 ٙ!ؙ!י!֙!ՙ`!ԙ@!ә !ҙ!` 䤪ƪ!ٹ!ع!׹!ֹ`!չ@!Թ !ӹ!`ƪ!!S}!㹁!a!A!Lp ґȥӑȥԑȥՑȥ֑ȥבȥؑȥّ` ***j)e)e`ʭȅiȅT}iȅȩȩ Lfإ  4  \ +] ¥򄟄U}   넨ɛ$0L祔 Z f0#ڠ쩀 ߩ6ei$0 녖چ + !5V}ɛȑ @膔7 ɛ 襔!ɛL! _ɩ8$IȢ %e拢 W} &!$P* &8孨客 "&$ 1L~ L~ &L _ɰe拢 &L~ +0 %30Ԅ X}L 9:枢0 O L :H9Hhh tLHH`hY}hLCL馩`ʆLC枢0ְşLC`A枢Ɣ!L!LZ}!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- a}DPOKœMOVœ-MOVŪ*ƐREPEAԑUNTȊWHILŐWENĐELSŐENDIBPUBGEԒFILLTϐDϐLOOШEXIDIҖLOC˖UNLOC˖RENAMŖDELETőPAUSŖTIb}ME$PROøEXEÐENDPROÑFCOLOҪ*̕-RENU͒DEDUMЪTRACTEXԖBLOAĖBRUθGO*’PAINԟCLӔDSOUNCIRCLū%PUԘ%GEԚGc}OTGOSUTSTETHEΣ<<>ުNOOANĨ<<>STRCHRUSASVALEADATCOPEESIRNFREXLOCLOSQSGABINd}PADDLSTICPTRISTRIDPEE˦INSTINKEYEXOHEXDEDIFRATIMETIMMOEXERNRANTRUN%%%%GOUINSTERER+,%5e}&6(+8,<Xk`fghilm^deDѳHc?,Ќ,е,Y_Ҳ+7,/0f}1 2!3"4Ɛ"-"."-؂ٿ֐ːg}ĐאŐbj+9,+;,ʐͭh}ͭ@ABC\=>[<+:е<,&%rvnnxc<\i}-78s_XV+@D&0d*"'2GJh Nj}Rl~&2 +饰(+VWZ ]a8`L`  ¤ħ.H h L5 䄡 k} 䅭 bɠ04Ů .ŭ%) e拰 ĩ L+Ư0 Lel}`毤Hɛ) h`  L ȱ R @ʆ ȱȄ Iğ` :62T F :m}7 8 Lbԩ- L 8 8,I ɨ 8L.UH `ƨh $ %3   + \L L 8󅯩" n} 8" ©" Ư" L8q :Z#]abj(=) W같  L樤ħ`hh`H YhZ o}L<>EO ƹƹ0`H f5h`I&` =? FQA` L񄳱ȱI 䦐p}Ħ ąŅ T k /䧰 k ,Ǡ ĩJH ThĥȑĥȑĦʊȑ`HHąŅq}H h hhhh ȱIELZ L`ȱI Hȱȱȱȱȱ r}, h @ $L+L.*ȱȱȱȱȱjEE `EjI `e`ħ ¥s}0 ` Lk 䦪`! 䧰L A@L `I&`L ©؅ L.t}0`STOPPED륺 bɠhhL :ʅ` k %3Hƹ h5h`hbjH h #u}ԤLQ #LLei  `LԑȥՑȥ֑ȥבȥؑȥّ``䈥剰v}#)iiLɠL4űI&`048ץğ=ȱȄ w}`L  L0e拠0ȱȄL  䦪`!' >?L (<ж`!  $Л +`,LőŐ78Ƒ8 Ƒ`8` - PѠy}`,,L L PQ 8,L ȱI ѝߠȱ`ԩz},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 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