@L4}5 _$% l0$)$$Hȱ$ UhL" `e$$%`$%`  R@P!( L(1   Y I`  d  Ld M * @  $ % CC$$)%1 Udߥ$9%: !0 S$% DD˙`  }J)Lr  WNY Atari Users Group Turbo Basic Disk Help File Hi! Welcome to possibly }the greatest public domain program of 1986! If you have not tried Turbo Basic yet, try this simple test. Boot the old Ata}ri Basic with one of your favorite Basic programs, preferably a nice SLOOOOW one. Now boot the other side of this disk and} run the same program. Pretty impressive, huh? Now that you have an inkling of what you've got in your hot little mitts, }let me tell you what is included on this disk. SIDE 1: TURBO BASIC - the AUTORUN.SYS file The TURBO COMPILER - } COMPILER.COM RUNTIME.COM - The runtime package for Turbo compiled programs. TIDIER.TUR - A great program for anyone }who uses downloaded text files (or the text files on this disk!!) MAGIC.TUR - A Koala type drawing program written in T }urbo Basic. PMMOVE.TUR and PUTGET.TUR - Two demo programs that show off some of TBs power. SIDE 2: README } - Hopefully obvious by now! TIDIER.TXT - Documentation for using Text Tidier TURBODOC.TXT - A complete translation o }f every Turbo Basic command, feature, and function. (PLEASE NOTE: Unlike the other text files on this side of the disk, th}is file is in PaperClip format. When printed out with the PaperClip Word Processor, the result is a nicely formatted thre}e page command list.) TCOMPILR.TXT - Complete instructions on using the TURBO COMPILER. Please enjoy using this} disk. We are always looking to publish new Turbo programs in our newsletter, read by over 500 people. If you would like }to see your program published in POKEY, the newsletter of the W.N.Y. Atari Users Group, please submit them (along with any} comments you may have on this disk) to: W.N.Y. Atari Users Group P.O. Box 59 Buffalo, N.Y. 14216} mments you may have on this disk) to: W.N.Y. Atari Users Group P.O. Box 59 Buffalo, N.Y. 142162595TURBO BASIC COMMAND LISTCompiled and Translated byDave and Laura YearkeThis documentation is provided by the W}estern New York Atari Users Group and may be reprinted freely provided this credit is included.In case you've just landed }from Mars, or just plain haven't heard yet, TURBO BASIC is the exciting new Public Domain Basic Interpreter that we recieved }from the Atari Users Group in Holland. It works on the XL or XE series of Atari computers. It's almost too good to be true an}d 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 Atari BASIC, gives the user 1603 more bytes of program space by "hiding" part of itself under the XL/XE's ope}rating system. It also runs 3 times faster than Atari BASIC, includes most DOS commands, has advanced graphics and programmi}ng functions, and is insensitive to lower case or inverse characters for most commands.Name Syntax Descrip}tionho30Name Syntax DescriptionTURBO BASIC COMMANDS:35Disk I/Oo30BLOAD BLOAD "D:name"} Binary loads file name (DOS option L with /N).o30BRUN BRUN "D:name" Binary load and run file name (DOS} option L).o30DELETE DELETE "D:name" Deletes the file name (DOS option D).o30DIR DIR Disk }directory (DOS option A).o30 DIR "Dn:*.*" Directory of drive n, note that wildcard extenders may be used. }o30LOCK LOCK "D:name" Locks the file name (DOS option F).o30RENAME RENAME "D:old,new" Renames the file !}name (DOS option E).o30UNLOCK UNLOCK "D:name" Unlocks the file name (DOS option G).Graphicso30CIRCLE C"}IRCLE x,y,r Plots a circle with center at x,y and radius r.o30 CIRCLE x,y,r,r2 R2 is an optional "verti#}cal radius" for true circles or ellipses.o30CLS CLS Clears the screen.o30 CLS #6 $} Clear screen opened in channel 6.o30FCOLOR FCOLOR n Determines fill color.o30FILLTO FILLTO x,y %} A fill command analagous to the BASIC commands "POSITION x,y: XIO 18,#6,0,0,"S:"o30PAINT PAINT x,y Anothe&}r type of fill command, this one is a recursive routine that will fill any closed object as long as x,y are inside it.o30TE'}XT TEXT x,y,a$ bit-blocks text in a$ at x,y.Memoryo30DPOKE DPOKE m,v Pokes location m,m+1 (}with 2-byte integer v (0 <= v <= 65535).o30MOVE MOVE m,m1,m2 Block transfer; moves m2 (number of bytes) from st)}arting position m to new starting position m1.o30-MOVE -MOVE m,m1,m2 Same as MOVE but copies starting with the la*}st byte of the block.o30BPUT BPUT #n,adr,len Block Put; same as FOR I=0 TO len-1:PUT #n,PEEK (adr+I):NEXT Io30BG+}ET BGET #n,adr,len Block Get; same as FOR I=0 TO len-1:GET #N,A: POKE adr+I):NEXT Io30%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, which c-}onverted them to strings first, a slow and cumbersome process. %PUT puts the number to the device "as is," in 6-byte FP form.}at.o30%GET %GET #n,A Get a number stored with %PUT from the device and store it in variable A. Again, thi/}s is much faster than using "INPUT #n, A".Structured Programmingo30REPEAT REPEAT Start a REPEAT-UNT0}IL loop.o30UNTIL UNTIL Terminate when condition met.o30WHILE WHILE Start a WHILE-1}WEND loop to end when condition met.o30WEND WEND Terminate a WHILE-END loop.o30ELSE ELSE 2} Optional extension for IF. The IF condition must not be followed by a "THEN", but terminated by end-of-line or c3}olon.o30ENDIF ENDIF Ends an IF-ELSE-ENDIF or IF-ELSE condition. Note that this allows an IF condition to4} span more than one BASIC line, provided the "IF" statement is structured as shown in Note 4.o30DO DO 5} Starts an "infinite" DO loop.o30LOOP LOOP Cycle back to the start of a DO loop.o30EXIT EXIT 6} Exit a DO-LOOP loop.o30PROC PROC name Start definition of procedure.o30ENDPROC ENDPROC 7} End definition of procedure.o30EXEC EXEC name Execute procedure name.General Programmingo8}30PAUSE PAUSE n Pause processing for n/50 seconds.o30RENUM RENUM n,i,j Renumber the program sta9}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 A} *L Turn line-indent on (Default).o30 *L - Turns line-indent off.o30*F *FB} (or *F +) Special mode for FOR..NEXT loops which corrects a bug in Atari BASIC. Seems that in Atari BASIC, an "illegC}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 alreadD}y greater than 1). Turbo BASIC fixes this bug, but leaves it available for Atari BASIC programs which may take advantage of E}it.o30 *F - Turns off the special FOR..NEXT mode to make Turbo BASIC act like Atari BASIC.o30*B F} *B (or *B +) Command which allows the break key to be trapped via the "TRAP" command within a program.o30 G} *B - Turns off the special BREAK key mode.o30-- -- Special form of REM which puH}ts 30 dashes in a program listing.Line Labelso30# # name Assigns the current line number to the I}label name. This is a convenient way to get around the problem of renumbering when using variables as line numbers. LabelJ}s can be thought of as a special form of variable, as they occupy the variable name table along with the "regular" variables.K} We also believe that the number of variables allowed has been increased from 128 to 256 to allow for the addition of these L}labels.o30GO# GO# name Analagous to the GOTO command.Modificationso30CLOSE CLOSE M} Close channels 1-7.o30DIM DIM a(n) Will automatically assign a value of zero to all elements of the numerN}ic array being dimensioned, and null characters to all elements of a string (The LEN is still variable, however, and initiallO}y zero).o30GET GET name Wait for a key press, assign the value to name. Same as "OPEN #7,4,0,"K:":GET #P}7,name:CLOSE #7".o30INPUT INPUT "text";a,b... Prints text as a prompt before asking for variable(s), same as MicrosofQ}t-BASIC.o30LIST LIST n, List program from line n to end.o30ON ON a EXEC n1,n2,... Variation of R}ON...GOSUB for procedures. N1, n2 and so on are names of procedures to be run.o30 ON a GO# n1,n2,... Similar to S}ON...GOTO except that line labels are used instead of line numbers.o30POP POP This command now pops tT}he runtime stack for all four types of loops.o30PUT PUT n Same as "PRINT CHR$(n)";o30RESTORE RESTORU}E #name Restores the data line indicated by the label name.o30RND RND Parentheses are no longV}er needed at the end of this command, but it will still work if they are there.o30SOUND SOUND Turn off alW}l sounds.o30TRAP TRAP #name TRAPs to the line referenced by the label name.TURBO BASIC FUNCTIONS:ArX}ithmetic/Logico30HEX$ HEX$(n) Convert n to hex string.o30DEC DEC(a$) Convert hex strY}ing A$ to decimal.o30DIV n DIV i Integer quotient of n/i.o30MOD n MOD i Integer remaiZ}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 resa}ult being that they gain 12 minutes each hour.o30INKEY$ INKEY$ Returns last character typed.o30INSTR b}INSTR(x$,a$) Returns relative location of start of string A$ within X$ (returns 0 if not found). The match must be exc}act; strings with the same letters but differences in case or type (normal or inverse) will not be found.o30 INSTRd}(x$,a$,i) i specifies the starting point of the search.o30UINSTR UINSTR(x$,a$) Same as INSTR, does not diste}inguish between case or inverse characters. Ex: UINSTR("HeLlO","hello") returns 1.o30 UINSTR(x$,a$,i) Specifief}s optional starting point.o30ERR ERR Value of last error number.o30ERL ERL Lig}ne last error occurred at.Constants%0%1%2%3These four constants simply stand for the numbers 0-3, respectively. h}The difference with using these in a program is that "X=1" requires 10 bytes, whereas "X=%1" only needs 4 (numbers require 7 i}bytes, 6 for the number plus an identifier preceeding it. It is always a good practice to make variables for numbers that arj}e used more than three times in a program).NOTES:1. Variable, Procedure and Label names may contain the underscore (_)k} character.2. To print a double-quote (") in a text string, use two of them together, instead of the Atari BASIC method of l}using CHR$(34). Ex: "TEST";CHR$(34);"TEXT" becomes "TEST""TEXT" in Turbo-BASIC, both of which produce the output => TEST"TEm}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 n}automatically load and run this file.4. Turbo-BASIC also prints out English descriptions of all errors, including several no}ew ones for errors involving the new commands:Error - 22 ?NEST = Loops not properly nested.Error - 23 ?WHILE = WEND with nop} corresponding WHILE.Error - 24 ?REPEAT = UNTIL with no corresponding REPEAT.Error - 25 ?DO = LOOP with no corresponding DOq}.Error - 26 ?EXIT = EXIT is outside a loop.Error - 27 ?XPROC = Error executing PROC.Error - 28 ?EXEC = ENDPROC with no corr}responding EXEC.Error - 29 ?PROC = Procedure does not exist.Error - 30 ?# = Label does not exist.Also, Error 15 has been es}xpanded to include an UNTIL which relates to a REPEAT which has been deleted.4. A multiline IF is constructed like this:1t}0 IF X > 1020 PRINT X-1030 GO# TOO_BIG40 ELSE50 PRINT X60 GO# X_IS_OK70 ENDIFNote also the use of line lau}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 w} Original Program by Frank Ostrowski This documentation is provided by the Western New York Atari Users Group and max}y be reprinted freely provided this credit is included. I know everyone is still rubbing their hands in glee over y}TURBO-BASIC, the new public domain Basic interpreter imported from Holland and Germany. This month we are proud to presentz} 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 thr }ee times faster. Well, they've done it again, this time they sent us the Turbo BASIC Compiler, a program which compiles B }ASIC programs so they run three times faster than Turbo BASIC! I wanted to write a program to demonstrate the power of th }ese two new programs, so after a few nights of work Text Tidier was born. Text Tidier was designed to eliminate much } of the editing that goes into processing files downloaded from such services as CompuServe. These files often have exce }ss spaces for justification, carriage returns every line, and all kinds of other annoying things that must be weeded out. } The most bothersome types of text files are those which use the Control-J Control-M combination for linefeed and carriag }e return. For MS-DOS machines that's fine, but our Ataris use a totally different character. In its simplest form, T }idier strips out linefeeds (^J) and turns ASCII carriage returns (^M) into ATASCII returns (code 155). It also breaks do }wn the file into smaller pieces that will fit into a word processor like AtariWriter or PaperClip. I've downloaded files } 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 }you want to reformat the text in your word processor. This option only converts single returns; if it encounters more a }fter the first one it will leave them alone because it assumes that it is a break between two paragraphs. The next option }, "TIDY UP SPACING (Y/N)", is probably the most powerful. It will get rid of multiple spaces between words, excess space }s before return characters, convert ASCII Tab characters (^I) to 5 spaces, and will make sure that two spaces follow all }periods, colons, question marks, and exclamation points, and that one space follows all commas, even if it has to add them }. 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 a } decimal number. The next option, "PROMPT BEFORE WRITING (Y/N)", should get a "Y" response if you need to switch disk }s between reading and writing, and an "N" response if you want to let it go without interruption. The "BREAK FILES ON SP }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 }over 15 characters long, but that's pretty rare). The last option is a convenience to those with the AtariWriter or Pape }rClip word processors. If you select either "A" or "P" at the prompt, it will write the "chain next file" command at the } end of all files except the last one. In addition, it will put a paragraph symbol where it thinks it's appropriate, and }convert the ASCII formfeed character (^L) to its AW or PC equivalent. If you select "N" for "neither", then the paragrap }hs will be indented five spaces and formfeeds will be left alone. By the way, the program only allows character code }s within the range 26-127, plus CR (13) and FF(12). Characters higher than 127 have the high bit stripped to make them " }normal," while control characters are ignored. If you want to allow inverse and control characters (although this can be }a potential problem with true ASCII files; control characters can have bizarre meanings, and true ASCII does not allow ch }aracter codes higher than 127. If you get any, it's probably a transmission error), change line 215 to: 215 REPEAT :GE }T #1,N:UNTIL (N<>LF) This will only filter linefeed characters. This program was written out of necessity, but I h }>also had a lot of fun doing it. If you have any questions, comments, or suggestions, please let me know (I can be found } lurking at the meetings or on BATES in the "Ask Dave Y!" message base). I'd like to correct any bugs you find (gasp!) qui }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!) qui T>><s3>00x|73>00x`c6<9c` 33c366fffg~33>00xgfffff<11111}{UUUU *U@PTUTP@U* 0b1<=?<GD0EHI B} V`}   Turbo BASIC XL                }                                 }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"} Bytes GL# ĩ 䛛Bitte eine Taste dr cken L# ĩjB JKD E 0٩̍` !}0` StoppedLL '!`HHBHI ąhh`旽`L5 ' '0 ' å}ȥȥȥ ,© ĥŔHȱhL`Ԅթօׅآ&եeօ֥eׅץe؅` ٥ ¥ ¥} ¥`HJJJJ h) 0HHH hhh`  F¥ =¥HJJJJ Fh) !`:eileO™!BHIԝD}E L¥ Kein Basic-ProgrammLڥ۰ 'ܥݰ- ' ' ? ' ' ' ' ' 'iڐ۰`o}"ܙݙ `ŭJ++i2R|+\Ng\+++c|dHyks}|cc.t++i+`bfzvR+++++C|"u }Speicher vollLei8eieiee褩%Ʀƨ}` B 0`H I/O Error - h L ' 'Ȧ䖐Ȅ !Å}Թ"Å ť æّ`l Aƛƛ HiH Eh h L1ɭHisHL&Š Őƅڽ'}ş`Ɯ ŅԽŅ L]ť<.ڈX"k87 9;?੃ 驏 饞7<:ƛƛșڥșڄLP H }0.) ` &Ơ & H H` HIH hۆ `e (iLǽǽǽǽǽ"}"țILFFȕ ȦǛǦǦǛǛǡǛǛǦǛǛǛǛǛǛǛǰǰǰǰǡǡǡ#ǡǦǽǛǽțǛljȉȉȉ#} ,(""(2000000..222222222222222222222222222222**22*22(222(2222222222 ,(""(0000}000--**2*(22(2222222FL驃 ǩFL驃 驗 LFLj ǩL驀,}ɏɓ ɕ LǩLjȩ 驗Lj FL驃 驟 jȩL`FƠƠ 驉 jȩL驫,,ee}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 0} ȑ  L ʘ# ` |ʠ)ȱ Lt nʤ n |ʠ)ȱ)1} `ʠ)ȱ ʆ8ƍ0eސ`Ɗ8ް`)ȱJJJ```=2}`]``` H} h`Pi`)JJJeԅԘ)Peԅ`եԆ8@EB)JJJeԅԥ)Pe3}ԅԘ)eԅԽeՅ՘)JJJ}˅ԥ}˅`)JJJeԅԥ)PeԅԹeԅԹeՅդЧ` 0@P`'Nu pX@(#4}d,X L `8` ¥E)))8@8e0 څۅ܅݅ޅ߄ԠF0y ޥy ݥy ܥy ۥy5} ڥy و0ǠF0y ݥy ܥy ۥy ڥy ٥y ؈0ǠF0y ܥy ۥy ڥy ٥y إy6} ׈0ǠF0y ۥy ڥy ٥y إy ץy ֈ0ǠF0y ڥy ٥y إy ץy ֥y Ո7}0L`8`E)))8i@0 ڄԠ ( !   L* 8} &О ( !   L* 9} &О ( !   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 FilenA}ame D: Jȱɛ):ȱɛ.ȩCȩTȩBȥ SLȹD:LKHJJJJ h) 0:iLp 8B}` B 0`L<馒撥ԝޥ՝*ޥ֝Tޥם~ޥ؝ޥٝ` ƒޅԽ*ޅսTޅֽ~ޅ׽ޅؽޅ`ƒޅ*ޅTޅ~ޅ㽨ޅC}`撝ޘ*` ӥԝإ՝٥֝ڥםۥ؝ܥٝݥ`LT؅Խمսڅֽۅ׽܅ؽ݅`؅مڅۅ܅݅`D}ȱȱȱȱȱ`ȱȱȱȱȱ`٩@ةڝ۝ܝ`թ@ԩօׅ؅`  E}LQȱȱȱȱȱ`ȥȥȥȥȥ` wLH wh LQԄՠԅք` L F} !ԝD՝E֝HeםI L`Laee 8厅叅eeL!)G}L)`x,Ң⅌Ҙ襉ҥ `8$ L8$ ȍ` JKiLH h)H}I ! SLJUVT`T L) ʥԤհ` L ` !L8, !L8 ` iLJ놈 LJ놈 ,LQI} HԝDEILꆓBJKԝD՝E CL8醈 B LJ놈& LM J릓NJ}LJL)NLM%L L j L `L=! Sp D o 8K} LpL ,#,$,!pLL ,HBDEhHIL oL8馓HIBL !L8ɅĈeɐ ňL}`֥ԅԅՅ,`$8n!?! D i\ iU?! iD iE=D iH ih8DHEIM}HI C ,!L `L= JhhlԄե֥נȱհ  ȱօȱօ` L=Ԅ՘0)N}ȱհ ȱe懰楆ƇƆ`L)L=醈ɛi懠,ɛ󥆦 Seօ` Lt ԤբO}H e" hLQL=醈 *? , DEHI ` DLr 4 e"ɛ ,ЬLQ DLP} 4eɛ SLtI L L L L L@ ; ` ; ` ; Q} ` ; m` L=@@ȅ@`I`)` ; USN ; FG ; ?: ; R}201 ; &' ;  ;% ;L Lå ` : : :ڰ :ΰ :ǰ :оE%S} jE `0``֪ (ϰ`(8`8` T}ԤՅ` e"4 L= Ԅձ80  &ԅ L  eԪp`L) HJJJJ U}h) 0:i`Ԅ 0 ["ȱ)ȥ,  ՅԄ֩`?Ԣ )ɠڭ ) ڕLV} ^ L)8@L` )8@D:)8@-٩֔$ሄL` W} ^Ű$` hŰ` &ư` Rİ` Vİ ` rð` ƐL=0L L ;&)ԥ)8@עJjH@MX}C)JJJe)e F ¥P & F Q LL)HHHHHH Vİhhhhhh ðhY}ԅ` L %ઘ%ᨊ` ઘᨊ` EઘEᨊ`<|'gԥ0L=`  *  &L_,Z}ڄ  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"8a}o" K膖  Lo"L=؝ٝڝ۝ܝ륄Lei  b}`L=饏őŐ%Ƒ8 Ƒ` f,L= fhhHH`, :hihHic}H`` J :hihil  ¥Ӡ L  @Մ$ Q` Q` QLQH d} h @Յ՘JJJJ y) 0:i`AVC2 5 - <) - < e}L L e e`e`&&&&&&eee` &&eee&*` uf}8)Ӱ% hhȱԅȱԅl ʰԤզ`hhheӨhiHH` u u88Ӱڪ :(jheӑhi Lhg}פօۄڠ܄ݠFfؐeڅܥeۅ0&ۈ`L >ӆiHi0Hƒiֹ*i0Ѕ &ݤݥ &e܅ܘe݅q}BREADME BbTURBODOCTXTB'vTCOMPILRTXTB)TIDIER TXTBPCOMPILERGERBXRUNTIME GERB{wGENTURBODOCBGEMSET DOCB&TIDIER TURB PUTGET TURB"PMMOVE TURB%4DOS SYSB*YDUP SYSBBAUTORUN SYSB DISKFILECTBhhLlӅ؄م܄0օצӽАԥեܤ Q `ƒ*ޅޅ wإr}ٰ5֥װ+ eܥe*ݨ &eܪeeըeԐ`L L L ӆ 4Ԥզ L_ ӆ Ԥզ Ls}_ L LL=ӦԆՆֆ׆Lw Y٤ ۘ` Y  L~ Y ې Hh`פōČԅet}Յe &"8ӥب`ƒޅ*ޅ L=؅مƒ8*ޥ֥אeԥe`u} w㰶H wֆ׆h8Lԩ!HHֆ׊HHʽ޼*ԆեHL!àLLeԐ `8԰L)v} w㰶H wֆ׆h8Lԩ!HHֆ׊HHʽ޼*ԆեHL!àLLeԐ `8԰L) TURBO BASIC COMMAND LIST Compiled and Translated by x} Dave and Laura Yearke This documentation is provided by the Western New York Atari Users Groy}up and may be reprinted freely provided this credit is included. In case you've just landed from Mars, or just plain hz}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 } 4.DO DO Starts an "infinite" DO loop.LOOP LOOP Cycle back} to the start of a DO loop.EXIT EXIT Exit a DO-LOOP loop.PROC PROC name Start definition} of procedure.ENDPROC ENDPROC End definition of procedure.EXEC EXEC name Execute procedure nam}e. General ProgrammingPAUSE PAUSE n Pause processi}ng for n/50 seconds.RENUM RENUM n,i,j Renumber the program starting at line n,first number is i, } increment is j. This function will handle GOTOs, TRAPs, and all other line re}ferences except those which involve variables or computed values.DEL DEL n,i } Delete lines n-i.DUMP DUMP Display all variables and values. For numeric arrays, the } numbers are the DIMed values plus one. For strings, the first number is the cu}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 } Atari BASIC. Seems that in Atari BASIC, an "illegal" reverse loop like "}FOR X=2 TO 1:PRINT X:NEXT X" will execute once even though the condition is met initially (X } is already greater than 1). Turbo BASIC fixes this bug, but lea}ves it available for Atari BASIC programs which may take advantage of it. *F - } Turns off the special FOR..NEXT mode to make Turbo BASIC act like Atari BASIC.*B } *B (or *B +) Command which allows the break key to be trapped via the "TRAP" comma}nd within a program. *B - Turns off the special BREAK key mode.-- -- Specia}l form of REM which puts 30 dashes in a program listing. } Line Labels# # name Assigns the current line number to the label name. This is } a convenient way to get around the problem of renumbering when us}ing variables as line numbers. Labels can be thought of as a special form of variable, as the}y 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.GO# GO# name Analagous to the GOTO} command. ModificationsCLOSE CLOSE Close channel}s 1-7.DIM DIM a(n) Will automatically assign a value of zero to all elements } of the numeric array being dimensioned, and null characters to all elements of a string (The }LEN is still variable, however, and initially zero).GET GET name Wait for a }key press, assign the value to name. Same as "OPEN #7,4,0,"K:":GET #7,name:CLOSE #7".INPUT } INPUT "text";a,b... Prints text as a prompt before asking for variable(s), same as Microsof}t-BASIC.LIST LIST n, List program from line n to end.ON ON a EXEC n1,n2,... Variation of ON...GOSUB} for procedures. N1, n2 and so on are names of procedures to be run. ON a GO# n1,n2},... Similar to ON...GOTO except that line labels are used instead of line numbers.POP } POP This command now pops the runtime stack for all four types of loops.PUT } PUT n Same as "PRINT CHR$(n)";RESTORE RESTORE #name Restores the data line indicated by the labe}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.}RAND RAND(n) Generates random number 0-n.$ $nnnn Allows input of hexidecimal numbers,} but they are converted to decimal. Ex: "FOR I=$0600 to $067F" => "FOR I=1536 to } 1663".& n & i 8-bit boolean AND.! n ! i 8-bit boolean OR.}EXOR n EXOR i 8-bit Exclusive-OR. MemoryDPEEK }DPEEK(m) Double-PEEK of m,m+1.TIME TIME Time of day(numeric).TIME$ TIME$ T}ime of day string, HHMMSS. Unfortunately, the time commands don't work properly because they }were written for European Ataris which operate at 50 Hz, instead of 60 Hz } like American ones, the net result being that they gain 12 minutes each hour.INKEY}$ INKEY$ Returns last character typed.INSTR INSTR(x$,a$) Returns relative location of start of st}ring A$ within X$ (returns 0 if not found). The match must be exact; strings } with the same letters but differences in case or type (normal or inverse) will }not be found. INSTR(x$,a$,i) i specifies the starting point of the search.UINSTR UINSTR(x$,a$) Same }as INSTR, does not distinguish between case or inverse characters. Ex: UINSTR("HeLlO","hello")} returns 1. UINSTR(x$,a$,i) Specifies optional starting point.ERR ERR Value of last erro}r number.ERL ERL Line last error occurred at. } Constants %0 %1 } %2 %3 These 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 byt}es, 6 for the number plus an identifier preceeding it. It is always a good practice to } make variables for numbers that are used more than three times in a p}rogram). TURBO BASIC COMMAND LIST Page 5NOTES:1. Vari}able, Procedure and Label names may contain the underscore (_) character.2. To print a double-quote (") in a text string, u}se two of them together, instead of the Atari BASIC method of using CHR$(34). Ex: "TEST";CHR$(34);"TEXT" becomes "TEST""T}EXT" in Turbo-BASIC, both of which produce the output => TEST"TEXT.3. Upon initial boot-up, TURBO-BASIC looks for a BASIC f}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:<>@*#}@ dPLAYER/MISSLE STEUERUNGn. IN TURBO-BASICx*$}von Wolfgang CzernyTP +@1PPE<)CC=+!@H* @S,)"@*%}B)"@C)"@E)"@a'!@H* @S'6-&@H#"@B#68,-8,%@$#"@C*&}#68,-8,&@.#"@E#68,-8,&@8#"@a#68,-8,%@B!8,!AU!68,-L*'}!8, !68,-AUV!8,!AU!68,-`!8, !68,-AUjB2G%8,t3"*(}@39C:,%A$%8@,@~3"@39C:,%A%8@,@3"@39C:,%A6*)}%8@,@3"@39C:,%A%8@,@F3T'O'9@,9@,.'**};@,;@,8';@,;@,B';AV,L'A0@V'#`'-@@j'"*+}67<,.>:,t' ~'-@@'"67<,.>:,' '-@@'"67<,.>:,' '*,}-@@'"67<,.>:,' ) LOOK1)!!0,1,2,4,8,144,224,224,240,0) LOOK2")!!0,240,224,224,144*-},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:A*.},&@@&BBy +6-$AV6-@+#AY@b#SINGLE RES. +-B2VB2Y*+*/}4+ >+-AAH+AUR+ \+-A$AAVf+9C:,%AVp+ +B68@*0},-@P-68@,-@PB68@,-@`+B68@,-@`-68@,-@pB68@,-@p+-*1}68@,-@-68@,-@+Q+T.O.''9C:,%A$%8@,@.''9C:,%A%8@*2},@.''9C:,%A5%8@,@/''9C:,%A%8@,@/-@@/B2G*3}%8,&/ 0/B2w@:/Q D:PMMOVE.TUR%A%8@,@/-@@/B2G(?d M * @  $ % CC$$)%1 Udߥ$9%: !0 S$%.5} DD˙`  }J)Lr J  ((  p L ()   J.6}L= ( L 0q A    IB JC;? D W .7} LL  ` W )LA!  ߰")-݆ p" .8} $G@LL 08`Q")<2Q0 -G$Ș݆ UL# ; p8(()(0ʥ)NQ`.9}$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.A} C8jJ3j2CD( C202C ԠBX` N 1? l LlD:RAMDISK.O}.COMLu L1 L ;LHL  T`  `8  ɐ     `TU .P} L ? .  t`GBJ ~DEHI B V0dV.Q}QDEHI VF9 ,0 ,0 s0hhL  L` H hDHEh.R}DEL8HI4 0 HI,0 0  9 .G VLO.S},0 L4*IJ`llD1:AUTORUN.SYSNEED MEM.SAV TO LOAD THIS FILE.D8:MEM.SAV J y08 B|DEHI.T} V0 0`B;DEL`?<0LV`@ʆ v s? F0Ξ05: [ BDEHI.U} VY8 B V  @  /DE `E:D8:DUP.SYSERROR-SAVING USER MEMORY ON DISKTYPE Y TO .V}STILL RUN DOS B;DE J  (` 9 V⪍ ઍ  -.W}LLu ÝDEHILV 9 .l 9 .l  `` s$B BH.X}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 CARTRIDG2Z}E J. DUPLICATE DISKC. COPY FILE K. BINARY SAVED. DELETE FILE(S) L. BINARY LOADE. RENAME FILE M. RUN AT ADDRES2[}SF. LOCK FILE N. CREATE MEM.SAVG. UNLOCK FILE O. DUPLICATE FILEH. WRITE DOS FILES P. FORMAT SINGLEL !N'2\}#"&))9(&*)/h)''-&؆莟R'S  vL/ˢ L }Insert DOS 2.0s, type Y Λx 2]}DEfHI 1莏#q! @ y0ɛ8A0,' ȅ 1 1ild! 1L!NO SUCH ITEMSELECT2^} ITEM OR FOR MENU! 0 .z:*{}.|{ 1 0 0JB 18L%|DL2_}%DIRECTORY--SEARCH SPEC,LIST FILE?[# 0 0 &|D3" 1L!NOT A DISK FILEN !B 1L!E# 1 !BD2`}ED:}:1BJ|DE 1DEBHI 1 h0ߢ 0.2a}  0?詛 1 y0YЛ 1 ;#L" ;#L! BL1TYPE "Y" TO DELETE...DELETE FILE SPEC2b}COPY--FROM, TO?OPTION NOT ALLOWED011 FREE SECTORS COPYING---D1:PMMOVE.TURCl# 0|D .L/%#2c}##JB|DE 1BHID#E 1#0: B 1L!#͑### B 1#c$0SY2d}S1}:## # # .#Ƚ# # 𩛙## 1,#PD#ELJ- <.BJD#E 2e}1 1HH 0hh|DL%1}:̳# L% #D#EL% 1 0 . .0O% 1L!WILD CARDS NOT A2f}LLOWED IN DESTINATION 0 <.|K%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.Lk6}.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(L6}.L(L/L9/L6/L/L/L/L/L0L0L+0LC0L/L^(Lj(L)'L@'Lo/Lr/LO/L%L'L%L% -膚 ɩҍD҅ 2 226}2 a(2222 ` -Lq -l ԤՄԅ`ȱ`ȱ`ȥ`6}ԑȥՑ`ԤՄ`ԤԅդՅ` '0=D '04.5 '0.( '0 ' ' 8`ԅ`6} & & & &ѐ & &ʥ %аЪ %Зьɛ &0 &0 `6}ԥ`Ɠƒ` % &LS* %LS* %օ0֥0 S*` %eԥe` %La* % % o*L% %Lo* % &L|* %L|* %6}L% % Ʌ` BLV䅆L' %ԅ`TU HH 'hhL, B VԩL%p v'P6}KJBDEL, &fL=) %ԅ`Ę eĘ +L4( % & %` %Ԅԅ`6} -``&eԅԥeՅ`L% o(ԨL%Ԅ & %eԥe` Ԅ &ɛ +0` d) ذI6} ( 8ԅԩՅL%L,ȹɛ꩛` d)f & 8fԆՅɛ摥0L6}?)$0`2 2L,(,ɛM(M( )ɛ )򩀅` %ԍ`ԄL%6}ԄL%ɛԆL% &󅐩f =) ؐL(L4,ԅԥՅL%82ԭ 2L%ԤՄԅե`6}8ե`eեe` B* K+fL% B* +fL%8ԨՄԅL% & B*ԥՄԩՅօפԥFf G+6}ԥ K+ԅՅԥզЦ`ԅՅʩ0B+=+ B+ 08f$˹ `' d 6}+1ԦԄզՄFԐ eਊe&Lh+Ԇ`hh L, +Ff&֐ݥ ԆՅԠ&&&8થ6}օԈ`քע +Ե 8`晄 ,L,`GHFH` U,0ɛȄ ؐL,HI h 86}ԅԩՅL%?S, ,򦅩DEBHIL,ɛ +` +` %HI BL,6}՝HIB VL,L%B Vú.hh -l. -0dd-8/ i - 0-- ,6}@ . ,... + x' $(.Ԏ.8ե ".LO-- , `,ɛD(C` ذ -L- -L 2 -- ,6}L- - -L-l lp '8`ERROR- ?Run address> BASIC exitTrace:P8Յթԅ` ,.L, .-6}ȘH *h00,)` & ҅ԭ ) |*օեׅ` L,0թԅթᨊઐ6}```Յ`8Յթԅ`0 ԩ`ԅ`` ' %`BԝK)I JD/ELVS:)H)h y6}` & % & %TԅUՅV`&B ,NLսM` & %ԝL՝MN%BL, & /` BHIL, & /`6}B JKL, %ԅUՅV & %ԅT`)ҩҊ H) hҘ` %)xԩL% %))Lc&LZ& %6})pԩL% %)|LZ&Lc& V0L-$2~2'@'@DDhDDL 2 $ppҠD Z$1@ H$ ?$ $ <6}G@vD $K@D $5@ !$PD '$5@ !$R22D '$N@hD $Z@D $a@6} !$ $D $ h9 Z$ ?$ Z$c@ H$ Z$ -$ᢐD <$2}3թ@D $L*3L6}3ԩթ@D $LY3L3ԩթ@D $~33L3@wD $L3 h96}L2 h9 Z$ ?$ Z$@ H$ Z$ -$ᢐD <$ԩթ@D $L43{4L%6ԩթ@6}D $L/4L%6ԩթ@D $Ls4@D $Ly4 h9L3 h9|44 Z$ ?$ Z$@ 6}H$ Z$ -$ᢐD <$ԩթڅ@D $L4LV5ppҠDԩթ@4z5D 6}$L5LV5ԩթ܅@D $LP5/@ !$PD '$LV5 h9Ly4 h9 Z$ ?$ Z$ޠ@ H$ Z$ -${556}ᢐD <$ԩթڅ@D $L5L%6ԩթ@D $L5L%6ԩթ@6}5y6D $L6/@ !$RD '$L%6 h9LV5 h9 Z$ ?$ Z$A H$ Z$ -$ hD <$ԩթ @h6}D $z66L6N@hD $L> h9 Z$ ?$ Z$A H$ ?$ Z$ ?$ Z$5A H$ ?$Щ r$LD '$LD !$C@6} $L6L7LD6x7 !$?@ $L7L 2L6 Z$1@ H$ ?$8 %vD{D $hD~D $ Z$6}{D f$ Q$ Z$y77ᢌD f$ Q$ppҠD =ԩթ@D $L8 Z$1@ 6}H$ ?$ Z$ ?$ Z$ ?$ Z$ ?$ Z$Q7x8A H$ ?$ Z$ `$FD '$ԩթjAD $L?8 ~; Z$FD !$ 6}$ᢀ K$FD !$a@ $L8 Z$y88ᢧD K$ ?$L8é r$HD '$RHD !$pA $L8 Z$ ?$ Z6}$rA H$ ?$ Z$ ?$L9 Z$ ?$ Z$A H$HD !$ E$8x9A H$ ?$ Z$ T$ Z$ T$0 Z$ T$ppҠD Z$A H$ ?$Щ6} r$LD '$LD !$C@ $L_9Lb9L69L 2L$5@ !$OA $$ $y99 Z$ؠA H$ ?$A !$B $$ $ Z$wD K$ ?$6}ԩթjAD $L9A !$A@ $$ $ Z$B H$9x: ?$ԩթ@D $LH:6}A !$A@ $$ $ Z$ B H$ ?$PD !$5@ $L:A !$B $$ $ Z$By:: H$ ?$PD !$/@ $L:A !$6}B $$ $ Z$B H$ ?$RD !$5@ $L:A !$'B $$ $ Z$)B H$ ?$RD !$/@:v; $L$;A !$'B $$ $6} Z$,B H$ ?$A !$'@ $$ $ Z$0B H$ ?$A !$'@ $$ $ Z$ hD K$ ?$5@ !$E@w;; $$ $`T r$JD '$6}^D !$3@ $L; Z$ ?$ Z$ $L> Z$A@ !$ $ᢀ K$RD !$/@ $L> Z$)D !$ $ᢀ K$-D !$ $6}ᢀ K$/D !$n>> $ᢀ K$` Z$1@ H$ ?$/@ !$^D '$8 %vDD $0 Z$ T$ R Z$1@6} H$ ?$0 Z$ᢓD f$>l? Q$ppҠD Z$3D H$vD K$7D H$ ?$ Z$ ?$? %/@ !$ND '$0 Z$ 6}`$`D '$ Z$`D !$ $ᢀm?? K$`D !$a@ $L? Z$ᢧD K$ ?$ ~;ND $BD $LE?é r$HD 6}'$pA $L?L83@ !$^D '$ ~;R?b@ Z$ ?$0 Z$ T$5@ !$^D '$ Z$1@ H$ ?$  > +   w2 4 > w2 42 >  + :}# .    w2 4 > w2 42 > w   + 셈 W! :}셈 W! 셈 W! LR& w멞* L &  6+   {+ J  :}  셈 W! 셈 W! wԤբ! J! w며*  " Q! w " w며* ! Q 셈! W! 셈:}" W! 셈 W! 셈 W!~+ Ԥբ k# J L* +  쩗  2  2L' :} > > J L' > w1 >멬+   + w멶* L'* $  L(8}