@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 D8u$d0L 2L>%L-Lx%Lo(L(L(L(L4)L2)L%L%L%L%L%LU,L`,L(L)L,L(L+L$(L".L,L(L'L'L'Lm'Lv'L,L,L'L(L'L'L.L.LkT}.L.L.L.L.L.L.L#*L.*L&L&L.&L=&LF&LQ&Lk&Lr&L{&L&L&L&L)L)L)L)L,.L)L:'L'L&LL'L['LR'L*L*L.L&L&L&La'LB(LR(LU}.L(L/L9/L6/L/L/L/L/L0L0L+0LC0L/L^(Lj(L)'L@'Lo/Lr/LO/L%L'L%L% -膚 ɩҍD҅ 2 22V}2 a(2222 ` -Lq -l ԤՄԅ`ȱ`ȱ`ȥ`W}ԑȥՑ`ԤՄ`ԤԅդՅ` '0=D '04.5 '0.( '0 ' ' 8`ԅ`X} & & & &ѐ & &ʥ %аЪ %Зьɛ &0 &0 `Y}ԥ`Ɠƒ` % &LS* %LS* %օ0֥0 S*` %eԥe` %La* % % o*L% %Lo* % &L|* %L|* %Z}L% % Ʌ` BLV䅆L' %ԅ`TU HH 'hhL, B VԩL%p v'P[}KJBDEL, &fL=) %ԅ`Ę eĘ +L4( % & %` %Ԅԅ`\} -``&eԅԥeՅ`L% o(ԨL%Ԅ & %eԥe` Ԅ &ɛ +0` d) ذI]} ( 8ԅԩՅL%L,ȹɛ꩛` d)f & 8fԆՅɛ摥0L^}?)$0`2 2L,(,ɛM(M( )ɛ )򩀅` %ԍ`ԄL%_}ԄL%ɛԆL% &󅐩f =) ؐL(L4,ԅԥՅL%82ԭ 2L%ԤՄԅե``}8ե`eեe` B* K+fL% B* +fL%8ԨՄԅL% & B*ԥՄԩՅօפԥFf G+a}ԥ K+ԅՅԥզЦ`ԅՅʩ0B+=+ B+ 08f$˹ `' d b}+1ԦԄզՄFԐ eਊe&Lh+Ԇ`hh L, +Ff&֐ݥ ԆՅԠ&&&8થc}օԈ`քע +Ե 8`晄 ,L,`GHFH` U,0ɛȄ ؐL,HI h 8d}ԅԩՅL%?S, ,򦅩DEBHIL,ɛ +` +` %HI BL,e}՝HIB VL,L%B Vú.hh -l. -0dd-8/ i - 0-- ,f}@ . ,... + x' $(.Ԏ.8ե ".LO-- , `,ɛD(C` ذ -L- -L 2 -- ,g}L- - -L-l lp '8`ERROR- ?Run address> BASIC exitTrace:P8Յթԅ` ,.L, .-h}ȘH *h00,)` & ҅ԭ ) |*օեׅ` L,0թԅթᨊઐi}```Յ`8Յթԅ`0 ԩ`ԅ`` ' %`BԝK)I JD/ELVS:)H)h yj}` & % & %TԅUՅV`&B ,NLսM` & %ԝL՝MN%BL, & /` BHIL, & /`k}B JKL, %ԅUՅV & %ԅT`)ҩҊ H) hҘ` %)xԩL% %))Lc&LZ& %l})pԩL% %)|LZ&Lc& V0L-$2~2'@'@DDhDDL 2 $ppҠD Z$1@ H$ ?$ $ <m}G@vD $K@D $5@ !$PD '$5@ !$R22D '$N@hD $Z@D $a@n} !$ $D $ h9 Z$ ?$ Z$c@ H$ Z$ -$ᢐD <$2}3թ@D $L*3Lo}3ԩթ@D $LY3L3ԩթ@D $~33L3@wD $L3 h9p}L2 h9 Z$ ?$ Z$@ H$ Z$ -$ᢐD <$ԩթ@D $L43{4L%6ԩթ@q}D $L/4L%6ԩթ@D $Ls4@D $Ly4 h9L3 h9|44 Z$ ?$ Z$@ r}H$ Z$ -$ᢐD <$ԩթڅ@D $L4LV5ppҠDԩթ@4z5D s}$L5LV5ԩթ܅@D $LP5/@ !$PD '$LV5 h9Ly4 h9 Z$ ?$ Z$ޠ@ H$ Z$ -${55t}ᢐD <$ԩթڅ@D $L5L%6ԩթ@D $L5L%6ԩթ@u}5y6D $L6/@ !$RD '$L%6 h9LV5 h9 Z$ ?$ Z$A H$ Z$ -$ hD <$ԩթ @hv}D $z66L6N@hD $L> h9 Z$ ?$ Z$A H$ ?$ Z$ ?$ Z$5A H$ ?$Щ r$LD '$LD !$C@w} $L6L7LD6x7 !$?@ $L7L 2L6 Z$1@ H$ ?$8 %vD{D $hD~D $ Z$x}{D f$ Q$ Z$y77ᢌD f$ Q$ppҠD =ԩթ@D $L8 Z$1@ y}H$ ?$ Z$ ?$ Z$ ?$ Z$ ?$ Z$Q7x8A H$ ?$ Z$ `$FD '$ԩթjAD $L?8 ~; Z$FD !$ z}$ᢀ K$FD !$a@ $L8 Z$y88ᢧD K$ ?$L8é r$HD '$RHD !$pA $L8 Z$ ?$ Z{}$rA H$ ?$ Z$ ?$L9 Z$ ?$ Z$A H$HD !$ E$8x9A H$ ?$ Z$ T$ Z$ T$0 Z$ T$ppҠD Z$A H$ ?$Щ|} r$LD '$LD !$C@ $L_9Lb9L69L 2L$5@ !$OA $$ $y99 Z$ؠA H$ ?$A !$B $$ $ Z$wD K$ ?$}}ԩթjAD $L9A !$A@ $$ $ Z$B H$9x: ?$ԩթ@D $LH:~}A !$A@ $$ $ Z$ B H$ ?$PD !$5@ $L:A !$B $$ $ Z$By:: H$ ?$PD !$/@ $L:A !$}B $$ $ Z$B H$ ?$RD !$5@ $L:A !$'B $$ $ Z$)B H$ ?$RD !$/@:v; $L$;A !$'B $$ $} Z$,B H$ ?$A !$'@ $$ $ Z$0B H$ ?$A !$'@ $$ $ Z$ hD K$ ?$5@ !$E@w;; $$ $`T r$JD '$}^D !$3@ $L; Z$ ?$ Z$ $L> Z$A@ !$ $ᢀ K$RD !$/@ $L> Z$)D !$ $ᢀ K$-D !$ $}ᢀ K$/D !$n>> $ᢀ K$` Z$1@ H$ ?$/@ !$^D '$8 %vDD $0 Z$ T$ R Z$1@} H$ ?$0 Z$ᢓD f$>l? Q$ppҠD Z$3D H$vD K$7D H$ ?$ Z$ ?$? %/@ !$ND '$0 Z$ }`$`D '$ Z$`D !$ $ᢀm?? K$`D !$a@ $L? Z$ᢧD K$ ?$ ~;ND $BD $LE?é r$HD }'$pA $L?L83@ !$^D '$ ~;R?b@ Z$ ?$0 Z$ T$5@ !$^D '$ Z$1@ H$ ?$ Terminate when condition met.o30WHILE WHILE Start a WHILE-}WEND loop to end when condition met.o30WEND WEND Terminate a WHILE-END loop.o30ELSE ELSE } Optional extension for IF. The IF condition must not be followed by a "THEN", but terminated by end-of-line or c}olon.o30ENDIF ENDIF Ends an IF-ELSE-ENDIF or IF-ELSE condition. Note that this allows an IF condition to} span more than one BASIC line, provided the "IF" statement is structured as shown in Note 4.o30DO DO } Starts an "infinite" DO loop.o30LOOP LOOP Cycle back to the start of a DO loop.o30EXIT EXIT } Exit a DO-LOOP loop.o30PROC PROC name Start definition of procedure.o30ENDPROC ENDPROC } End definition of procedure.o30EXEC EXEC name Execute procedure name.General Programmingo}30PAUSE PAUSE n Pause processing for n/50 seconds.o30RENUM RENUM n,i,j Renumber the program sta}rting at line n,first number is i, increment is j. This function will handle GOTOs, TRAPs, and all other line referenc}es except those which involve variables or computed values.o30DEL DEL n,i Delete lines n-i.o30DUMP } DUMP Display all variables and values. For numeric arrays, the numbers are the DIMed values plus one. For s}trings, the first number is the current LENgth of it and the second number is the DIMed size of it. DUMP also lists procedur}e names and labels with their line values.o30 DUMP name DUMP to device name, such as "P:" or "D:DUMP.D}AT".o30TRACE TRACE Trace program during execution.o30 TRACE - Turns trace mode off} (Default).o30DSOUND DSOUND n,f,d,v Form of SOUND which activates channel-pairing for increased frequency range.o}30 DSOUND Turns off all sounds.o30GO TO GO TO n Alternate form of GOTO.o30*L } *L Turn line-indent on (Default).o30 *L - Turns line-indent off.o30*F *F} (or *F +) Special mode for FOR..NEXT loops which corrects a bug in Atari BASIC. Seems that in Atari BASIC, an "illeg}al" reverse loop like "FOR X=2 TO 1:PRINT X:NEXT X" will execute once even though the condition is met initially (X is alread}y greater than 1). Turbo BASIC fixes this bug, but leaves it available for Atari BASIC programs which may take advantage of }it.o30 *F - Turns off the special FOR..NEXT mode to make Turbo BASIC act like Atari BASIC.o30*B } *B (or *B +) Command which allows the break key to be trapped via the "TRAP" command within a program.o30 } *B - Turns off the special BREAK key mode.o30-- -- Special form of REM which pu}ts 30 dashes in a program listing.Line Labelso30# # name Assigns the current line number to the }label name. This is a convenient way to get around the problem of renumbering when using variables as line numbers. Label}s can be thought of as a special form of variable, as they occupy the variable name table along with the "regular" variables.} We also believe that the number of variables allowed has been increased from 128 to 256 to allow for the addition of these }labels.o30GO# GO# name Analagous to the GOTO command.Modificationso30CLOSE CLOSE } Close channels 1-7.o30DIM DIM a(n) Will automatically assign a value of zero to all elements of the numer}ic array being dimensioned, and null characters to all elements of a string (The LEN is still variable, however, and initiall}y zero).o30GET GET name Wait for a key press, assign the value to name. Same as "OPEN #7,4,0,"K:":GET #}7,name:CLOSE #7".o30INPUT INPUT "text";a,b... Prints text as a prompt before asking for variable(s), same as Microsof}t-BASIC.o30LIST LIST n, List program from line n to end.o30ON ON a EXEC n1,n2,... Variation of }ON...GOSUB for procedures. N1, n2 and so on are names of procedures to be run.o30 ON a GO# n1,n2,... Similar to }ON...GOTO except that line labels are used instead of line numbers.o30POP POP This command now pops t}he runtime stack for all four types of loops.o30PUT PUT n Same as "PRINT CHR$(n)";o30RESTORE RESTOR}E #name Restores the data line indicated by the label name.o30RND RND Parentheses are no long}er needed at the end of this command, but it will still work if they are there.o30SOUND SOUND Turn off al}l sounds.o30TRAP TRAP #name TRAPs to the line referenced by the label name.TURBO BASIC FUNCTIONS:Ar}ithmetic/Logico30HEX$ HEX$(n) Convert n to hex string.o30DEC DEC(a$) Convert hex str}ing A$ to decimal.o30DIV n DIV i Integer quotient of n/i.o30MOD n MOD i Integer remai}nder of n/i.o30FRAC FRAC(a) Fractional part of a.o30TRUNC TRUNC(a) Truncates fractional p}art of a.o30RAND RAND(n) Generates random number 0-n.o30$ $nnnn Allows input of he}xidecimal numbers, but they are converted to decimal. Ex: "FOR I=$0600 to $067F" => "FOR I=1536 to 1663".o30& n &} i 8-bit boolean AND.o30! n ! i 8-bit boolean OR.o30EXOR n EXOR i 8-b}it Exclusive-OR.Memoryo30DPEEK DPEEK(m) Double-PEEK of m,m+1.o30TIME TIME Time o}f day(numeric).o30TIME$ TIME$ Time of day string, HHMMSS. Unfortunately, the time commands don't work pr}operly because they were written for European Ataris which operate at 50 Hz, instead of 60 Hz like American ones, the net res}ult being that they gain 12 minutes each hour.o30INKEY$ INKEY$ Returns last character typed.o30INSTR }INSTR(x$,a$) Returns relative location of start of string A$ within X$ (returns 0 if not found). The match must be ex}act; strings with the same letters but differences in case or type (normal or inverse) will not be found.o30 INSTR}(x$,a$,i) i specifies the starting point of the search.o30UINSTR UINSTR(x$,a$) Same as INSTR, does not dist}inguish between case or inverse characters. Ex: UINSTR("HeLlO","hello") returns 1.o30 UINSTR(x$,a$,i) Specifie}s optional starting point.o30ERR ERR Value of last error number.o30ERL ERL Li}ne last error occurred at.Constants%0%1%2%3These four constants simply stand for the numbers 0-3, respectively. }The difference with using these in a program is that "X=1" requires 10 bytes, whereas "X=%1" only needs 4 (numbers require 7 }bytes, 6 for the number plus an identifier preceeding it. It is always a good practice to make variables for numbers that ar}e used more than three times in a program).NOTES:1. Variable, Procedure and Label names may contain the underscore (_)} character.2. To print a double-quote (") in a text string, use two of them together, instead of the Atari BASIC method of }using CHR$(34). Ex: "TEST";CHR$(34);"TEXT" becomes "TEST""TEXT" in Turbo-BASIC, both of which produce the output => TEST"TE}XT.3. Upon initial boot-up, TURBO-BASIC looks for a BASIC file named AUTORUN.BAS. If it finds an AUTORUN.BAS file, it will }automatically load and run this file.4. Turbo-BASIC also prints out English descriptions of all errors, including several n}ew ones for errors involving the new commands:Error - 22 ?NEST = Loops not properly nested.Error - 23 ?WHILE = WEND with no} corresponding WHILE.Error - 24 ?REPEAT = UNTIL with no corresponding REPEAT.Error - 25 ?DO = LOOP with no corresponding DO}.Error - 26 ?EXIT = EXIT is outside a loop.Error - 27 ?XPROC = Error executing PROC.Error - 28 ?EXEC = ENDPROC with no cor}responding EXEC.Error - 29 ?PROC = Procedure does not exist.Error - 30 ?# = Label does not exist.Also, Error 15 has been e}xpanded to include an UNTIL which relates to a REPEAT which has been deleted.4. A multiline IF is constructed like this:1}0 IF X > 1020 PRINT X-1030 GO# TOO_BIG40 ELSE50 PRINT X60 GO# X_IS_OK70 ENDIFNote also the use of line la}bels in the GOTO statements.---Dave & Laura YearkeE50 PRINT X60 GO# X_IS_OK70 ENDIFNote also the use of line la5 THE TURBO COMPILER Documentation and Operating Instructions by Dave Arlington } Original Program by Frank Ostrowski This documentation is provided by the Western New York Atari Users Group and ma }y be reprinted freely provided this credit is included. I know everyone is still rubbing their hands in glee over  }TURBO-BASIC, the new public domain Basic interpreter imported from Holland and Germany. This month we are proud to present } a new treat from our international friends overseas, the TURBO COMPILER. The TURBO COMPILER will increase the speed } of your TURBO BASIC programs 3-5 times and regular Atari BASIC programs can be speeded up to 10-15 times faster. Unfortu }nately, like TURBO BASIC, the TURBO COMPILER will only run on the XL/XE series of computers. In addition, the finished com}piled programs will also only run on the XL/XE series. The TURBO COMPILER is very easy to operate. It can be used wi}th more than one disk drive, even Drive 8, the 130XE ramdisk. On the TURBO COMPILER disk, you will find several files. Th}e important ones for the operation of the TURBO COMPILER are COMPILER.COM and RUNTIME.COM. Before you begin, you should pr}epare two disks. The first one should be a blank formatted disk with DOS.SYS and DUP.SYS written on it. Your second disk }should contain your BASIC program (TURBO or ATARI BASIC). To begin, insert the TURBO COMPILER disk into your drive a}nd turn your computer on. When it has finished loading you will be in TURBO BASIC. Type DOS to get to the DOS 2.5 menu. C}hoose DOS Option 'L', Load Binary File and load the file COMPILER.COM. After a short while, you will see a screen full of} German. If you do not read German, do not worry, that is what this article is for! At any time that you are on this scree}n, you may reboot your system by hitting Control-R or you may return to DOS by hitting Control-D. You will be asked if you} really want to do this. If you do, don't forget to 'J' for Ja and not 'Y' for Yes!! To compile your programs, remo}ve the TURBO COMPILER disk from the drive and insert the disk with the program you want to compile. (If you have two drive}s, insert your disk with the program to compile in Drive 2 and the blank DOS disk in Drive 1.) Press the number 1 key (Nu}mber 2 if you have two drives). A complete listing of all the files on that drive will appear on the screen with one highl}ighted in inverse video. Using the arrow keys, highlight the file you want to compile and hit Return. That's all there is} to it! At the top of the screen, you will see the line numbers fly by as the program is compiled. When it is finish}ed, you will be prompted for a file name to save your compiled program under. It has to have an extender of CTB (for Compi}led Turbo Basic). The program will not let you use any other extender. At this time, if you have one drive, you should re}move your disk with your original program on it and replace it with your blank DOS disk. If you want your compiled progra }m to be an AUTORUN file, you should name it AUTORUN.CTB. Then the file will automatically load and run at bootup time. !} There is one more step that you must do to get a completely runnable compiled program. Go back to DOS and copy the fil"}e RUNTIME.COM from the TURBO COMPILER disk to the disk with your compiled program on it. Rename the RUNTIME.COM file to th#}e name AUTORUN.SYS. Your disk is now ready to go. The TURBO COMPILER does not compile to runnable code, you must run the $}RUNTIME.COM file to run your compiled program. One technical note on the TURBO COMPILER: If you're not familiar with%} other compilers for the ATARI computers, you should know that many have trouble compiling certain types of statements or &}insist that you organize your program structure in a certain way. So far none of these problems have occured on any progr'}ams we have tested with the TURBO COMPILER. The only statement that wouldn't compile so far is the END statement. The only(} program structure that we have had trouble with is a FOR-NEXT loop that has two or more NEXTs for one FOR. For example:)} 10 FOR X=1 TO 5 20 IF X=3 THEN NEXT X 30 NEXT X Other than those two examples, we have had no problems compilin*}g any type of program, either TURBO or ATARI BASIC. Please let us know of any problems you run into compiling any types o+}f statements or programs. Whether you program in TURBO BASIC or just want to turbocharge your old Atari BASIC program,}s to super speed, I'm sure you will find the TURBO COMPILER will fit all your speed needs. -------------------------------}----uper speed, I'm sure you will find the TURBO COMPILER will fit all your speed needs. ------------------------------ Text Tidier 1.0 by Dave Yearke As you may recall, we received from a Dutch users' group Tu/}rbo BASIC, a language for XL/XE computers which is compatible with Atari BASIC but offers over 60 new features and is thr0}ee times faster. Well, they've done it again, this time they sent us the Turbo BASIC Compiler, a program which compiles B1}ASIC programs so they run three times faster than Turbo BASIC! I wanted to write a program to demonstrate the power of th2}ese two new programs, so after a few nights of work Text Tidier was born. Text Tidier was designed to eliminate much3} of the editing that goes into processing files downloaded from such services as CompuServe. These files often have exce4}ss spaces for justification, carriage returns every line, and all kinds of other annoying things that must be weeded out. 5} The most bothersome types of text files are those which use the Control-J Control-M combination for linefeed and carriag6}e return. For MS-DOS machines that's fine, but our Ataris use a totally different character. In its simplest form, T7}idier strips out linefeeds (^J) and turns ASCII carriage returns (^M) into ATASCII returns (code 155). It also breaks do8}wn the file into smaller pieces that will fit into a word processor like AtariWriter or PaperClip. I've downloaded files9} that were over 100K long, far too big to fit into any word processor for the Atari! When you run the program, the f:}irst thing it asks for is the maximum file size for the output files. 12,000 is pretty good for AtariWriter, although thi;}s depends on what DOS is being used, whether a printer driver is loaded, and so on. For PaperClip, I've found that on my <}XL about 24,000 bytes can be loaded, although I would recommend about 20,000 so you have room to edit the file. Next it a=}sks for the Input file. Put the disk in the drive and enter the name. If you don't enter a device like "D:" it will defa>}ult to drive one. All Output files will be named "SPLIT.0xx", where "xx" is the number of the file being written, starti?}ng at zero. Be careful not to overwrite any existing files with the same name! Now come the formatting parameters. @} When it asks "CONVERT RETURN TO SPACE (Y/N)" type "Y" if you want all carriage returns to be converted. This is nice if A}you want to reformat the text in your word processor. This option only converts single returns; if it encounters more aB}fter the first one it will leave them alone because it assumes that it is a break between two paragraphs. The next optionC}, "TIDY UP SPACING (Y/N)", is probably the most powerful. It will get rid of multiple spaces between words, excess spaceD}s before return characters, convert ASCII Tab characters (^I) to 5 spaces, and will make sure that two spaces follow all E}periods, colons, question marks, and exclamation points, and that one space follows all commas, even if it has to add themF}. One note: it will not add spaces to periods which have no spaces after them, because it can't tell if it is part of aG} decimal number. The next option, "PROMPT BEFORE WRITING (Y/N)", should get a "Y" response if you need to switch diskH}s between reading and writing, and an "N" response if you want to let it go without interruption. The "BREAK FILES ON SPI}ACE (Y/N)" simply assures that a word won't be split over two files (this may not work if the last word before writing is J}over 15 characters long, but that's pretty rare). The last option is a convenience to those with the AtariWriter or PapeK}rClip word processors. If you select either "A" or "P" at the prompt, it will write the "chain next file" command at theL} end of all files except the last one. In addition, it will put a paragraph symbol where it thinks it's appropriate, and M}convert the ASCII formfeed character (^L) to its AW or PC equivalent. If you select "N" for "neither", then the paragrapN}hs will be indented five spaces and formfeeds will be left alone. By the way, the program only allows character codeO}s within the range 26-127, plus CR (13) and FF(12). Characters higher than 127 have the high bit stripped to make them "P}normal," while control characters are ignored. If you want to allow inverse and control characters (although this can be Q}a potential problem with true ASCII files; control characters can have bizarre meanings, and true ASCII does not allow chR}aracter codes higher than 127. If you get any, it's probably a transmission error), change line 215 to: 215 REPEAT :GES}T #1,N:UNTIL (N<>LF) This will only filter linefeed characters. This program was written out of necessity, but I hT}>also had a lot of fun doing it. If you have any questions, comments, or suggestions, please let me know (I can be foundU} lurking at the meetings or on BATES in the "Ask Dave Y!" message base). I'd like to correct any bugs you find (gasp!) quiV}ckly, and any features I haven't thought of we'll make part of Text Tidier 2.0! to correct any bugs you find (gasp!) quiT>><s3>00x|73>00x`c6<9c` 33c366fffg~33>00xgfffff<11111X}{UUUU *U@PTUTP@U* 0b1<=?<GD0EHI BY} V`}   Turbo BASIC XL                Z}                                 [}Version 1.1 (C) 1985 Frank Ostrowski0} ! @} RLl LwD1:*.*P:E: VH) h(`h\}h@,lHH HHHHHHӍl"H HHl !`GHFHJ*K+\`* ` ӥԤ`pp@F]!B]}A8!452"/"!3)#8,#ompilerc &rank/strowski` a$%Ȏ$!%!xөˍ ^} e` e`@X ` ~   ʎDL ՠԢӱԙӹ`֝DEIH_}B V0ZڝDa۝E8օܥׅݥܝHݝI V02Ӡڑڑ0 BLVl `= X`}ixD!YiE!80!1T  T \L/ 䥐 LZ Keine FehlerProgrammlaenge = 8o"a} Bytes GL# ĩ 䛛Bitte eine Taste dr cken L# ĩjB JKD E 0٩̍` !b}0` StoppedLL '!`HHBHI ąhh`旽`L5 ' '0 ' åc}ȥȥȥ ,© ĥŔHȱhL`Ԅթօׅآ&եeօ֥eׅץe؅` ٥ ¥ ¥d} ¥`HJJJJ h) 0HHH hhh`  F¥ =¥HJJJJ Fh) !`:eileO™!BHIԝDe}E L¥ Kein Basic-ProgrammLڥ۰ 'ܥݰ- ' ' ? ' ' ' ' ' 'iڐ۰`of}"ܙݙ `ŭJ++i2R|+\Ng\+++c|dHyksg}|cc.t++i+`bfzvR+++++C|"u q}b%DOS SYSb*)DUP SYSbBSAUTORUN SYSbREADME bbTURBODOCTXTb'TCOMPILRTXTb).TIDIER TXTbPWCOMPILERGERbXRUNTIME GERb{GENTURBODOCbGEMSET DOCb&TIDIER TURb PUTGET TURbPMMOVE TURBCIRCLES TURSpeicher vollLei8eieiee褩%Ʀƨr}` B 0`H I/O Error - h L ' 'Ȧ䖐Ȅ !Ås}Թ"Å ť æّ`l Aƛƛ HiH Eh h L1ɭHisHL&Š Őƅڽ't}ş`Ɯ ŅԽŅ L]ť<.ڈX"k87 9;?੃ 驏 饞7<:ƛƛșڥșڄLP H u}0.) ` &Ơ & H H` HIH hۆ `e (iLǽǽǽǽǽ"v}"țILFFȕ ȦǛǦǦǛǛǡǛǛǦǛǛǛǛǛǛǛǰǰǰǰǡǡǡ#ǡǦǽǛǽțǛljȉȉȉ#w} ,(""(2000000..222222222222222222222222222222**22*22(222(2222222222 ,(""(0000x}000--**2*(22(2222222FL驃 ǩFL驃 驗 LFLj ǩL驀,y}ɏɓ ɕ LǩLjȩ 驗Lj FL驃 驟 jȩL`FƠƠ 驉 jȩL驫,,eez}H 馜Ɯڹۅh LǠ EL1ɠ Eũ L1ɘH Ǥh8f@iiz (iLHLhhLm{}ؙěƛLȊȹؙěƛL8 ː#H Integer <0 oder >65535hԅթإԙإՙLȩ ƛgɻbɯ\[ɖX|}ɁSɌOɎKɔGɚXɜWɘ9ɀ<ɂNɃVɄYɈ\ɉcɊɋ-ɍɆɓ ɇoɅL;ě`ɃLLLˢ,,Ƀ}}LLL^LȹF ɗUЮ,L-ɩLLLɹɅ IL-ɹɅ積 ILȊ8$יL~}șؘHؙěƛh`Lɩ,,LȹɃ ˈiإԙLʹV W Zл,,ة}L-I#HɠA6'؅չ؅ԢIL-ɹؙěƛLLɹ(iL-ɩL-ɘHȹ؅ȹ؅ *!h`'} hhՠ L HH` 䅤 ř 轊轊) ½  nicht compilierbar`  ***} MUELL ***LLISENTECONNELOASAV4CSAV5CLOA7ERROS*URENUVDEWDUMXTRACTOKEN  :, ,Lhh}ՠ LHH`H QJSBh` L Compiler FehlerL%ɂɸɠؠL}ěAت0װ)? Խչ L婢 ȹ )? !ěп`8P,,,,ȹ؅ȹ؅}4@.f"g6hLiOj26FɀQɁJTPq,p,o,r,C,BL!sv@ ԩt,u,yH }6hL!x,wH Lm楂ń兰!0$iԐń児ߩ àԈ 8 驠 (  ;}?L!F 橠L6ȹ؅ȹ؅ ذ А,  ,LL6hhH hLU L 8 驠 ( ȹ}؅ȹ؅Hi⢆ àhL!U,,, 詄,L6 ,),I 驪 驘 驨 驊L} !"#$%&'()*/012346=>ADEFGHIJKLMNOPQRSTUVWXYZ[\]^_5789:kl†,-+ ÈƇ.}L>}!.8NQ 驠,,$ ȹL L 颺,,ԩ 6詤L6 橱L6멢Ⱦ 6<,L!m,nH ȹ }hL!, L=,,,,,  QJSA`ު 阆٦` Ausdruck zu komplexLHH }àّٙhh`ئ`, 魁I& L= zȤɉ  L L XL L= }L- p L奝` LLL L꥝ 줗  Hdqr p> +HT V=,Ɂ%؅ԭ؅ՠ} ȱԪ 6+ L L $0 L 饙3 ` F HL L驅L驕,H zh ~} ɉ` E)  ذА جL- LL E2 ذ'#А ج -L2멄L} LL Zahl>255` zȩ LL!,,,H B LhL  hi  ` E멑 zȩ 륝 z L'L E LL}魁 H ,L L魁 LL #L餗 H , L HH 1hh`$,%H E LhL,H E멑 } ~ LhLLé,H hȥȥ`8Ƌ` `iȥi`H h DO fehlt` REPE}AT fehlt` WHILE fehlt` ,H hгȱȱLLL,H pɄ 񩄠  L婥 hL饀HH }ĩ  hh`ԥՠ8԰ձ ĩ L{ h L  Ħ {` zȤؠ }馕䔰 'LB` Ħ {`:LȱHeȱih` h ` IF fehlt` 2 H 饝}٢ æّ` E멑 t$0= L&L ŤH L phH t Lh 6(() 驰 6 ĩL } Ƭ*L FOR fehlt` + 饝` p L, 饝`-,J,.H h,KH hH 饝h` B L}/ 0L E L1L 쭁2,6,4H hHi 饝h` p ة9,:;LH 렌 =h,8H } = 렊 = hL魁6=,TH! H h?7 驠 L L H HI} Hۅ` L魁?L@,A,B,C,D,E,F,GH p LhL 렌 =I,HH 레 = 렊 =L pɄƛ L ĥ}b:j3L_L,N(' zȥ7ج ٥`P,R(/ ٥` ON.GOTO/GOSUB expLƛ }1LL LƚƚƚWL } Turbo BASIC XL Compiler Version 1.1 ===================================Welches Programm soll} compiliert werden? Geben Sie zuerst die Laufwerksnummer zwischen 1 und 8 ein, und w hlen das Programm dann mit den Pfe}iltasten , ,  und . Dann RETURN dr cken.Control D = R ckkehr zum DOSControl R = Reboot )LL}19卣 H $!h)!! ĩBD EJK  '0$ '  'ɛ撦? Ǝ LhT }T ĩLXixYii Ǝ   ɛI'-#4=0+&*"1}9L)0dž )L䒰D :)i  . (8 !BDE}JK ĩ}  L ԠʯΠ J LL ӠʯΠ JL o")1 )  } eŀ偐LM' :'7? / LLLL6墄,ȱuuL ,Lȱȱ }LL,ҩȱӠ$0 ,Lȱ iiҠLՆԥ֥נȱհ } J Zeile fehltȱ֪ȱ`ܹ J Label fehlt`Ԇե֥נȱȱհ8ְױօօ`ȱ}ܑݑ 7L LH Nh-:H NEXT fehltL EXIT ohne ...L LOOP fehltL UNTIL fehlt}L WEND fehltL# N ENDIF fehlt` Filename fuer das compilierte Programm?1 D}  :.CTB@ !0A+19ߐ~ © ƥLɛ%0:A[H h У.C}TBD:TUZ[ oT"U8oX"Y } Noch einmal speichern (J/N) ? !)_JN`LG R 0`H I/O Error - h LG 0` éȑ}ȑȑ 驛 Ģ éȑȩ` ""!B+W!k!}Tɩf{KH-}2(*oi.LG;3609JNxPSPS};wU >kQt3J,HNjv;}>WToU!J 1!^u$`@!r4 %gs}}8 4"+F 1!^u$`@!r4 %gs:} }  Lll L"! L"! VL"! l Lq!! "!LD:*.*S:P:E:l"!q"H) !}h(`ӅԄՠ`ӅԄՠԨ`L)ӑ) `Ӣhh@,lHH!HwHHHHHӍl"H!H!}yHl !`GHFHJ*K+\`* `Ӧee褌%ƉƋL"!!}Ӡȱȱȱ㦌L"! ` ` `2a$%Ȏ!!xө~!!!} ` `@X ` ~  } Ӣ ʎDy` SLD1:AUTORUN.CTBՠԢӱԙӹ!}`֝DEIHB V0Z3ڝDa۝E8օܥׅݥܝHݝI V04Ӡڑڑ0!} BLVl `˩`80 ` .JJJJ)iFiFi1FicFi'ȐȦoFiUȐFii!}Fi#iFiGi Fii@F iiFiiciՊFigi'iՊօשBL`I))83!}Ԥԥդե֤֥פץؤإ٤LK6"ХLaLaLa!}E0:e٥eإeץe֥eՐ؅٥ׅإօץՅ֩L8٥إץ֥հ'I8م٘؅ؘׅט!}օ֘ՅLؤm\G0Q@Ն֩م؅2եمֆשم"ե؅֥م׆ةեׅ֥؅ץم؆لԘ)q!} ` ? 7i ? %!Ls`ԅՅօׅ؅م`ԍՍ֍!}׍؍ٍ`ԍՍ֍׍؍ٍ``, Խսֽ׽ؽ` ,!}`+ĕ ԅ)@ޥ)JJJe)e e Je0F g!} Lm8`@ԠՈքׄ؄`==W3>Tvb>2b'?h`06?2'A?%C4Vu?f'70P@U??CBH ? & ? QL!}m8`0 I@ԥ) oǢҠ 1  ؠ e Q ?P ¥Ii )ԅ +ĕ!}Lm`@"wf?IWQpIG?9 Wa9cU? 0d? 9`?BXGB?7?()q?D>DIh8E?hyx? )D?@ (1V?!}wD3331??xS48`$)Ԧƅƅƅƅƅƅ mť)8@0$Յ)e)e F!} 䰃 e Q F I`U9>`D'RFuCU?b9dYdg@W2@?tS)%)@0)%ԅ!}P 1 ;  e°0 Q (Vŕ ԅԥ  ƕ m`8``0?i? Q !}ԍՍ֍׍؍ٍ * m N ǥ N 0 -åJeF g`L ) e٥eإe!}ץe֥eՊi؊؅٥ׅإօץՅֆե1ԥ'JffffJffffJffffJffffم`ԩ&&&&*&&&&*&!}&&&*&&&&*``ۄܱ T **m ȰҠݤܱEۅڦڱ= bܥeƥ!}iեL@ ` **)]P` 00`` ( ((((((((8`W)ߥ & &e!} &߽aȅŊِ׼Ȅ⹕ȍqȅJJJJ&eXޥeYߥ䥈 9ȅFfЎᰈ Tȍ`Ȅ佘ȅ !}M 8*` Ȱi祍La L< ʘ0  L !} ȑ  L ʘ# ` |ʠ)ȱ Lt nʤ n |ʠ)ȱ)!} `ʠ)ȱ ʆ8ƍ0eސ`Ɗ8ް`)ȱJJJ```=!}`]``` H} h`Pi`)JJJeԅԘ)Peԅ`եԆ8@EB)JJJeԅԥ)Pe!}ԅԘ)eԅԽeՅ՘)JJJ}˅ԥ}˅`)JJJeԅԥ)PeԅԹeԅԹeՅդЧ` 0@P`'Nu pX@(#!}d,X 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*!} &ОL6 e e e e e i !} } } } } } } ǭ m m m m m m  } }!} } } } } ǥՅօׅ؅مԅՅօׅ؅`hh !LHH`ؠ!}ɀhhHH֥ץ?ȱȱӰ8ְױօօ0LB Fehler - à  in Ze!}ile  ($8H h ) Programmende : os, un oder oad ?@ !D L RL L Filen!}ame D: Jȱɛ):ȱɛ.ȩCȩTȩBȥ SLȹD:LKHJJJJ h) 0:iLp 8!}` B 0`L<馒撥ԝޥ՝*ޥ֝Tޥם~ޥ؝ޥٝ` ƒޅԽ*ޅսTޅֽ~ޅ׽ޅؽޅ`ƒޅ*ޅTޅ~ޅ㽨ޅ!}`撝ޘ*` ӥԝإ՝٥֝ڥםۥ؝ܥٝݥ`LT؅Խمսڅֽۅ׽܅ؽ݅`؅مڅۅ܅݅`!}ȱȱȱȱȱ`ȱȱȱȱȱ`٩@ةڝ۝ܝ`թ@ԩօׅ؅`  !}LQȱȱȱȱȱ`ȥȥȥȥȥ` wLH wh LQԄՠԅք` L !} !ԝD՝E֝HeםI L`Laee 8厅叅eeL!)!}L)`x,Ң⅌Ҙ襉ҥ `8$ L8$ ȍ` JKiLH h)!}I ! SLJUVT`T L) ʥԤհ` L ` !L8, !L8 ` iLJ놈 LJ놈 ,LQ!} HԝDEILꆓBJKԝD՝E CL8醈 B LJ놈& LM J릓N!}LJL)NLM%L L j L `L=! Sp D o 8!} LpL ,#,$,!pLL ,HBDEhHIL oL8馓HIBL !L8ɅĈeɐ ň!}`֥ԅԅՅ,`$8n!?! D i\ iU?! iD iE=D iH ih8DHEI!}HI C ,!L `L= JhhlԄե֥נȱհ  ȱօȱօ` L=Ԅ՘0)!}ȱհ ȱe懰楆ƇƆ`L)L=醈ɛi懠,ɛ󥆦 Seօ` Lt Ԥբ!}H e" hLQL=醈 *? , DEHI ` DLr 4 e"ɛ ,ЬLQ DL!} 4eɛ SLtI L L L L L@ ; ` ; ` ; !} ` ; m` L=@@ȅ@`I`)` ; USN ; FG ; ?: ; !}201 ; &' ;  ;% ;L Lå ` : : :ڰ :ΰ :ǰ :оE%!} jE `0``֪ (ϰ`(8`8` !}ԤՅ` e"4 L= Ԅձ80  &ԅ L  eԪp`L) HJJJJ !}h) 0:i`Ԅ 0 ["ȱ)ȥ,  ՅԄ֩`?Ԣ )ɠڭ ) ڕL!} ^ L)8@L` )8@D:)8@-٩֔$ሄL` !} ^Ű$` hŰ` &ư` Rİ` Vİ ` rð` ƐL=0L L ;&)ԥ)8@עJjH@M!}C)JJJe)e F ¥P & F Q LL)HHHHHH Vİhhhhhh ðh!}ԅ` L %ઘ%ᨊ` ઘᨊ` EઘEᨊ`<|'gԥ0L=`  *  &L_,!}ڄ  eڅԥeۅհ"8څ֥ۅא8ܥݰ`۠Q%0ԅإՅ٥ަ0%Q% L!}ե0Lڤ`օנ6&֐ eו`L)ԘբՅ Ԣ Յ֠&&֐eܥe!}ېڈ $0!ee80å/8ܥ۰uڕ0eUiV`T!}UV`8UV`eTi`8TȢ` !L8醊 æ f Ŋ :ƒޑȽ*ޑ!}ȽTޑȽ~ޑȽޑȽޑȥԑȥՑȥ֑ȥבȥؑȥّȥȩhihHiH&HHH wh Lhh`hh`8!}` L=醊 f ŊHȱȱȱȱȱ妊 w Qh LhhHHe`*ȱȱ!}ȱȱȱjEE `EjI ` p D il ie o"p"q" i i i i i io"8!}o" K膖  Lo"L=؝ٝڝ۝ܝ륄Lei  !}`L=饏őŐ%Ƒ8 Ƒ` f,L= fhhHH`, :hihHi!}H`` J :hihil  ¥Ӡ L  @Մ$ Q` Q` QLQH !} h @Յ՘JJJJ y) 0:i`AVC2 5 - <) - < !}L L e e`e`&&&&&&eee` &&eee&*` u"}8)Ӱ% hhȱԅȱԅl ʰԤզ`hhheӨhiHH` u u88Ӱڪ :(jheӑhi Lh"}פօۄڠ܄ݠFfؐeڅܥeۅ0&ۈ`L >ӆiHi0Hƒiֹ*i0Ѕ &ݤݥ &e܅ܘe݅"}hhLlӅ؄م܄0օצӽАԥեܤ Q `ƒ*ޅޅ wإ"}ٰ5֥װ+ eܥe*ݨ &eܪeeըeԐ`L L L ӆ 4Ԥզ L_ ӆ Ԥզ L"}_ L LL=ӦԆՆֆ׆Lw Y٤ ۘ` Y  L~ Y ې Hh`פōČԅe"}Յe &"8ӥب`ƒޅ*ޅ L=؅مƒ8*ޥ֥אeԥe`"} w㰶H wֆ׆h8Lԩ!HHֆ׊HHʽ޼*ԆեHL!àLLeԐ `8԰L)"} w㰶H wֆ׆h8Lԩ!HHֆ׊HHʽ޼*ԆեHL!àLLeԐ `8԰L)  TURBO BASIC COMMAND LIST Compiled and Translated by & } Dave and Laura Yearke This documentation is provided by the Western New York Atari Users Gro& }up and may be reprinted freely provided this credit is included. In case you've just landed from Mars, or just plain h& }aven't heard yet, TURBO BASIC is the exciting new Public Domain Basic Interpreter that we recieved from the Atari Users Gro& }up in Holland. It works on the XL or XE series of Atari computers. It's almost too good to be true and should be a definate & }must for all XE or XL Atari owners. Turbo BASIC, in addition to offering 42 more commands and 22 more functions than At&}ari BASIC, gives the user 1603 more bytes of program space by "hiding" part of itself under the XL/XE's operating system. I&}t also runs 3 times faster than Atari BASIC, includes most DOS commands, has advanced graphics and programming functions, an&}d is insensitive to lower case or inverse characters for most commands.TURBO BASIC COMMANDS:Name Syntax &} Description Disk I/OBLOAD BLOAD "D:name" Binary loa&}ds file name (DOS option L with /N).BRUN BRUN "D:name" Binary load and run file name DOS option L).DELETE DEL&}ETE "D:name" Deletes the file name (DOS option D).DIR DIR Disk directory (DOS option A). &} DIR "Dn:*.*" Directory of drive n, note that wildcard extenders may be used.LOCK &} LOCK "D:name" Locks the file name (DOS option F).RENAME RENAME "D:old,new" Renames the file name (DOS option E).&}UNLOCK UNLOCK "D:name" Unlocks the file name (DOS option G). &}GraphicsCIRCLE CIRCLE x,y,r Plots a circle with center at x,y and radius r. CIRCLE x,y,r,r2 R2 is a&}n optional "vertical radius" for true circles or ellipses.CLS CLS Clear&}s the screen. CLS #6 Clear screen opened in channel 6.FCOLOR FCOLOR n Determines fill c&}olor.FILLTO FILLTO x,y A fill command analagous to the BASIC commands "POSITION x, &} y: XIO 18,#6,0,0,"S:"PAINT PAINT x,y Another type of fill command, this one is a recursive &} routine that will fill any closed object as long as x,y are inside it.TEXT &}TEXT x,y,a$ bit-blocks text in a$ at x,y. MemoryDPOKE &}DPOKE m,v Pokes location m,m+1 with 2-byte integer v (0 <= v <= 65535).MOVE M&}OVE m,m1,m2 Block transfer; moves m2 (number of bytes) from starting position m to new & }starting position m1. TURBO BASIC COMMAND LIST Page 2Name&!} Syntax Description-MOVE -MOVE m,m1,m2 Same as MOVE but copies starting with the last byte of t&"}he block.BPUT BPUT #n,adr,len Block Put; same as FOR I=0 TO len-1:PUT #n,PEEK (adr+I&#}): NEXT IBGET BGET #n,adr,len Block Get; same as FOR I=0 TO len-1:GET #N,A: POKE adr+&$}I): NEXT I%PUT %PUT #n,a Until now, there was no convenient way to put numeric &%} values onto disk or cassette files other than by using PRINT, w&&}hich converted them to strings first, a slow and cumbersome process. %PUT puts the number to &'}the device "as is," in 6-byte FP format.%GET %GET #n,A Get a number stored wit&(}h %PUT from the device and store it in variable A. Again, this is much faster than using &)} "INPUT #n, A". Structured ProgrammingRE&*}PEAT REPEAT Start a REPEAT-UNTIL loop.UNTIL UNTIL Terminate when condition met.WHILE &+} WHILE Start a WHILE-WEND loop to end when condition met.WEND WEND Terminate a WHIL&,}E-END loop.ELSE ELSE Optional extension for IF. The IF condition must not be &-} followed by a "THEN", but terminated by end-of-line or colon.ENDIF ENDIF &.} Ends an IF-ELSE-ENDIF or IF-ELSE condition. Note that this allows an IF condition to span &/}more than one BASIC line, provided the "IF" statement is structured as shown in Note &0} 4.DO DO Starts an "infinite" DO loop.LOOP LOOP Cycle back&1} to the start of a DO loop.EXIT EXIT Exit a DO-LOOP loop.PROC PROC name Start definition&2} of procedure.ENDPROC ENDPROC End definition of procedure.EXEC EXEC name Execute procedure nam&3}e. General ProgrammingPAUSE PAUSE n Pause processi&4}ng for n/50 seconds.RENUM RENUM n,i,j Renumber the program starting at line n,first number is i, &5} increment is j. This function will handle GOTOs, TRAPs, and all other line re&6}ferences except those which involve variables or computed values.DEL DEL n,i &7} Delete lines n-i.DUMP DUMP Display all variables and values. For numeric arrays, the &8} numbers are the DIMed values plus one. For strings, the first number is the cu&9}rrent LENgth of it and the second number is the DIMed size of it. DUMP also lists procedure &:} names and labels with their line values. DUMP name DUMP to device name, suc&;}h as "P:" or "D:DUMP.DAT".TRACE TRACE Trace program during execution. TRACE - Turns &<}trace mode off (Default).DSOUND DSOUND n,f,d,v Form of SOUND which activates channel-pairing for increased &=} frequency range. TURBO BASIC COMMAND LI&>}ST Page 3Name Syntax Description DSOUND Turns off all sounds.GO TO GO TO&?} n Alternate form of GOTO.*L *L Turn line-indent on (Default). *L - &@} Turns line-indent off.*F *F (or *F +) Special mode for FOR..NEXT loops which corrects a bug in &A} Atari BASIC. Seems that in Atari BASIC, an "illegal" reverse loop like "&B}FOR X=2 TO 1:PRINT X:NEXT X" will execute once even though the condition is met initially (X &C} is already greater than 1). Turbo BASIC fixes this bug, but lea&D}ves it available for Atari BASIC programs which may take advantage of it. *F - &E} Turns off the special FOR..NEXT mode to make Turbo BASIC act like Atari BASIC.*B &F} *B (or *B +) Command which allows the break key to be trapped via the "TRAP" comma&G}nd within a program. *B - Turns off the special BREAK key mode.-- -- Specia&H}l form of REM which puts 30 dashes in a program listing. &I} Line Labels# # name Assigns the current line number to the label name. This is &J} a convenient way to get around the problem of renumbering when us&K}ing variables as line numbers. Labels can be thought of as a special form of variable, as the&L}y occupy the variable name table along with the "regular" variables. &M} We also believe that the number of variables allowed has been increased from 128 to 256 &N}to allow for the addition of these labels.GO# GO# name Analagous to the GOTO&O} command. ModificationsCLOSE CLOSE Close channel&P}s 1-7.DIM DIM a(n) Will automatically assign a value of zero to all elements &Q} of the numeric array being dimensioned, and null characters to all elements of a string (The &R}LEN is still variable, however, and initially zero).GET GET name Wait for a &S}key press, assign the value to name. Same as "OPEN #7,4,0,"K:":GET #7,name:CLOSE #7".INPUT &T} INPUT "text";a,b... Prints text as a prompt before asking for variable(s), same as Microsof&U}t-BASIC.LIST LIST n, List program from line n to end.ON ON a EXEC n1,n2,... Variation of ON...GOSUB&V} for procedures. N1, n2 and so on are names of procedures to be run. ON a GO# n1,n2&W},... Similar to ON...GOTO except that line labels are used instead of line numbers.POP &X} POP This command now pops the runtime stack for all four types of loops.PUT &Y} PUT n Same as "PRINT CHR$(n)";RESTORE RESTORE #name Restores the data line indicated by the labe&Z}l name.RND RND Parentheses are no longer needed at the end of this command, &[} but it will still work if they are there.SOUND SOUND Turn off all sounds. &\} TURBO BASIC COMMAND LIST Page 4TRAP TRAP #name TRAPs to the line refer&]}enced by the label name. TURBO BASIC FUNCTIONS: &^} Arithmetic/LogicHEX$ HEX$(n) Convert n to hex string.DEC DEC(A$) Convert h&_}ex string A$ to decimal.DIV n DIV i Integer quotient of n/i.MOD n MOD i Integer remaind&`}er of n/i.FRAC FRAC(a) Fractional part of a.TRUNC TRUNC(a) Truncates fractional part of a.&a}RAND RAND(n) Generates random number 0-n.$ $nnnn Allows input of hexidecimal numbers,&b} but they are converted to decimal. Ex: "FOR I=$0600 to $067F" => "FOR I=1536 to &c} 1663".& n & i 8-bit boolean AND.! n ! i 8-bit boolean OR.&d}EXOR n EXOR i 8-bit Exclusive-OR. MemoryDPEEK &e}DPEEK(m) Double-PEEK of m,m+1.TIME TIME Time of day(numeric).TIME$ TIME$ T&f}ime of day string, HHMMSS. Unfortunately, the time commands don't work properly because they &g}were written for European Ataris which operate at 50 Hz, instead of 60 Hz &h} like American ones, the net result being that they gain 12 minutes each hour.INKEY&i}$ INKEY$ Returns last character typed.INSTR INSTR(x$,a$) Returns relative location of start of st&j}ring A$ within X$ (returns 0 if not found). The match must be exact; strings &k} with the same letters but differences in case or type (normal or inverse) will &l}not be found. INSTR(x$,a$,i) i specifies the starting point of the search.UINSTR UINSTR(x$,a$) Same &m}as INSTR, does not distinguish between case or inverse characters. Ex: UINSTR("HeLlO","hello")&n} returns 1. UINSTR(x$,a$,i) Specifies optional starting point.ERR ERR Value of last erro&o}r number.ERL ERL Line last error occurred at. &p} Constants %0 %1 &q} %2 %3 These four constants simply stand for the&r} numbers 0-3, respectively. The difference with using these in a program &s} is that "X=1" requires 10 bytes, whereas "X=%1" only needs 4 (numbers require 7 byt&t}es, 6 for the number plus an identifier preceeding it. It is always a good practice to &u} make variables for numbers that are used more than three times in a p&v}rogram). TURBO BASIC COMMAND LIST Page 5NOTES:1. Vari&w}able, Procedure and Label names may contain the underscore (_) character.2. To print a double-quote (") in a text string, u&x}se two of them together, instead of the Atari BASIC method of using CHR$(34). Ex: "TEST";CHR$(34);"TEXT" becomes "TEST""T&y}EXT" in Turbo-BASIC, both of which produce the output => TEST"TEXT.3. Upon initial boot-up, TURBO-BASIC looks for a BASIC f&z}ile named AUTORUN.BAS. If it finds an AUTORUN.BAS file, it will automatically load and run this file.4. Turbo-BASIC also p&{}rints out English descriptions of all errors, including several new ones for errors involving the new commands:Error - 22 ?&|}NEST = Loops not properly nested.Error - 23 ?WHILE = WEND with no corresponding WHILE.Error - 24 ?REPEAT = UNTIL with no co&}}rresponding REPEAT.Error - 25 ?DO = LOOP with no corresponding DO.Error - 26 ?EXIT = EXIT is outside a loop.Error - 27 ?XP&~}ROC = Error executing PROC.Error - 28 ?EXEC = ENDPROC with no corresponding EXEC.Error - 29 ?PROC = Procedure does not exis&}t.Error - 30 ?# = Label does not exist.Also, Error 15 has been expanded to include an UNTIL which relates to a REPEAT which&} has been deleted.4. A multiline IF is constructed like this:10 IF X > 1020 PRINT X-1030 GO# TOO_BIG40 ELSE50 &} PRINT X60 GO# X_IS_OK70 ENDIFNote also the use of line labels in the GOTO statements. &} ---Dave & Laura Yearkete also the use of line labels in the GOTO statements. $)@M 9UHBM ave & Laura Yearkete also the use of line labels in the GOTO statements. ("#+STARTUINIT_VARDEFINE_CONSTANTPROMPT_INPUMAIN_LOOEND_OF_FILATEMAFETCH_CHACFACTOSPACWASNT_CSAP.}NOXSPERIOCOLOQMARXPOINCOMMTAATANEW_PARBREAWRITE_FILBELEOLDELINFNUPROMPKEFILEINTEMPLGET_MAGET_NAMN.}AME_ERROGET_RETURGET_XSGET_PROMPGET_BREAGET_WORD ;dBCnD-;>.} ; .}A ?!A"#$%&'.}()*+,-D.E/H0E15F2F39G4Gd##----------------.}-------------i##-- ***Text Tidier 1.0*** --n##-- by Dave Yearke for --s##-- POKEY, the official --x##-.}- newletter of the --}##-- Western New York --##-- Atari Users' Group. --##---------------------.}--------]PPPT] E 6.-$i@#(0  -g++aA.},"f,-$i@# A]?< )g)=++!@&,)+",)+",,1+,?6-VA' ")" .}*6-@6-A 6-f@ 6-g7 +",6-h%i@*6-AB-@1\4A7AA+",*.}+",\ 0,+",*+",*(++",)+",)+",)+",,0\ +,:%+",*++",)+",)+",)+",,267<,. :6-%.}g +",67<,.  6-%gH++",)+",)+",,!>+!g,4+7&g<&g,4 ,<6-&g?@BGEAH?"8+",)+",*6.}7<%@,. 46-%h%i8\'+",*+,*+,P,A1A6 6-6-67<,.>:,; ++&, @,.}**+", G@ EPJFOTT]YLlA6-h@A(!ERROR. PLEASE CHECK AND RESTART.EPIPL^ 6.}-gc-h@h  END OF FILE.PPmPr-h@**w DONE.PP| -gi%i* ..}  FILE!g S A.  WRITTEN.TO -h$h2. %INSERT DESTINATION DISK, PRESS RETURN2.}P)Ah@f 6-%g(  67<,.0@67<,.>:+],%@H,A.}67%g<%g,.>:%@H,H67%g<%g,.>:@",067%h<%%h,.:6-%%iH67<,.>:,]67%g<%g,.>:AH.},067%h<%h,.IA67%i<%%i,.O6-%@]67<,.>:,A-$i@# BhC:,B:,h.}(/-@@# 7i,/-@8@#  -h$h**-)  INSERT SOURCE DISK, PRESS RETURN-P.}) -h$h**!A&A+Q0T5O:?2f@@Mh%i$-h6h42f@@8Mg< ?2?QD.}TIONv67<,.>:@,#6-%g&@*>67<,.>:A6,F6-%gI@b67<%@,. p6-%@sA.}vASQXT]Ob&&;BPP,;@,;@,g";@,"@el! 6-f6-f!6. D:SPLIT.000.}q! 6-f6-f6-g6-f!6-fvQ{TO6-AUATARI RETURN6-@ASCII RETURN 6-@.} ASCII LINEFEED 6-@ ASCII FORMFEED6-@2ASCII SPACE6-@ ASCII TAB6-A'A.}TASCII TAB6-@F6-@X-@D6-@c6-@36-AV6-AW"6-@.}"NUMERIC CONSTANTQTO`%*%( *** Text Tidier 1.0 ***!*!( POKEY, June 1985>+.} A,)+!BP, ] -h@*MAXIMUM FILE SIZE? ]  -h@* .}PLEASE ENTER FILE NAME+X:<:-h.}@*C''CONVERT RETURN TO SPACE (Y/N)H7g?j ~ DECLARINIPM_BAUEEINXYLOOK1PMLOOK2LOOK3LOOK4LEER:<>@6}@ dPLAYER/MISSLE STEUERUNGn. IN TURBO-BASICx6}von Wolfgang CzernyTP +@1PPE<)CC=+!@H* @S,)"@6}B)"@C)"@E)"@a'!@H* @S'6-&@H#"@B#68,-8,%@$#"@C6}#68,-8,&@.#"@E#68,-8,&@8#"@a#68,-8,%@B!8,!AU!68,-L6}!8, !68,-AUV!8,!AU!68,-`!8, !68,-AUjB2G%8,t3"6}@39C:,%A$%8@,@~3"@39C:,%A%8@,@3"@39C:,%A66}%8@,@3"@39C:,%A%8@,@F3T'O'9@,9@,.'6};@,;@,8';@,;@,B';AV,L'A0@V'#`'-@@j'"6}67<,.>:,t' ~'-@@'"67<,.>:,' '-@@'"67<,.>:,' '6}-@@'"67<,.>:,' ) LOOK1)!!0,1,2,4,8,144,224,224,240,0) LOOK2")!!0,240,224,224,1446},8,4,2,1,0,) LOOK36)0,128,64,32,16,9,7,7,15,0@) LOOK4J)0,15,7,7,9,16,32,64,128,0*Q*T*O+&6-F:A6},&@@&BBy +6-$AV6-@+#AY@b#SINGLE RES. +-B2VB2Y*+6}4+ >+-AAH+AUR+ \+-A$AAVf+9C:,%AVp+ +B68@6},-@P-68@,-@PB68@,-@`+B68@,-@`-68@,-@pB68@,-@p+-6}68@,-@-68@,-@+Q+T.O.''9C:,%A$%8@,@.''9C:,%A%8@6},@.''9C:,%A5%8@,@/''9C:,%A%8@,@/-@@/B2G6}%8,&/ 0/B2w@:/Q D:PMMOVE.TUR%A%8@,@/-@@/B2G4?JUjXDIV1YDIV1@Y@%@d+@%@n >" :}NEVER HAPPENS!x6-d:A ,}6-d:@`,~6-d:@ , @##b@ %@ %@%d::}@,_@ %@ %A]@"@AY@%+]@,CIRCLES ARE FUN? D:CIRCLES.TUR:}@,_@ %@ %A]@"@AY@%+]@,CIRCLES ARE FUN? D:CIRCLES.TUR8