@L `}/j5  $% l0?$)$$Hȱ$ ShL$ `e$$%` h?/ `  !I PR@1 YL I`! S S) H$ЙH 0}Џ$%`@ $% CC$$%e%dU$% ]0%$% DDmLp   % J)Lz J  (( o L (y/)  [L< ( yL Z 0o Tya y }4IB [y32C/10m?4 V V  wLL a ` V y/})23LzA! ߰")-݈ y" $zzG@LL 08` k")};1k0 -G$Ș݈ SL! 9 y8(()(0˥)Nk`$GȘ݈LS )L ݈ L GzȘ} ݈LL )W>Z   HH)H o h  yhy00hy11/ V  }L> L JJaHJJJh) yLT J u (`  IBLH % 6h HHGH`LdJ })LJJLw!,"!,/@F  L! ! 0E^  }^ E E7EȩEdE/EȩE / ! Vΐ )L   mx n wym }?x7x?4 ( ) w y32 R V LL n w ) V  L y / o   }E` , ny/) / V Ly/) 0BM݌L݋ ML  N݈ L }NLML [ fEqEHȱEqEh 3Gȹ G KLL GzɛL  L}FREE SECTORSy /H) *Gȩ GȽ4G GȌyh%*J >G<-+=!*?%% &%z3%$$HEL{*DIR*LOC.CLR.LOA-VER%INI+UNL.FMS.SAV,MODg%CARR*REN?,FME.H"}EAP)BAC_%BONo1DEL.FMD.SUM(RUNm*BOF|1COP3&FMQ.TYP.)EXE$ 1Y5P" O."8""@R'S15%#}0i5i5501ȊԢx5"JFJPWy"HH *5")IAY54 4> 4,0$}L#N #L|*J #L*J #14"4`J # 1Lk*v} 4 *%H$H`)?4 $ 4 #$0 %} 2 4 $ y$, L$LL-19" !"H "H` $ $Ѻ Ѻ걺 2ȱ 4ɛL"ȱH&}H 2e滠滱 u2`> 8e滐`+"`e` y$ 2" 2Execute: W. /p O. '}/ 1L"*ԆՎ l$ 2 \*L#L)4 % HJJJJ 3. 4h 3 3XFHSEX; 4L4(}"݅pq y$ 2ݹp` %ݱp 3`,5 2`N5 l$ /0 / 1 l$L$$8n" }$ 2pq y$I eppq> )}4pq 3 3p,"0 ' 4 3L& 3`p8pqŠ 2ݑpȥpȄ(` /5D . 5 - #( l*}$ / #(莉5 2Reading: . .ii e֥iש 0( . `1,P3 1S / / 1&+}& 5$?♵5 -8tu E( rȥs(0 O. .Еߥ .8 ' 0( 2Writing: rȱsr* / /,} ,` / 1rs8 E($0 O. . .C .L'5  e . 'Lx&,5PJC`,50 2I-}nsert ( 2sourceL' 2destination 2 & hit key ! #ڭ ҍ5L25`5օtׅu` S2tu /.} 1HrettIseuu(` (x / / O.L1`$0'5 / S2 1XY O./}8` W.r n( (errstuvw 2LEN: vw 3u 3 2 SUM: st 3rL3 W.$0 * n( ( 4LB)0}N` W.ʆ n( ($0,F (!$0բ 2No COM-File !LO. (8ԨՐυلإ5 * 1}2# 2RUN: E* 3 2INIT: E*L^) * 3 2. ԥ 3- 4֥ 3 2 LEN:إ 3 (L)إL^) 2}( ( 3L3 1 y$T 4T l y$l 2l *" 4 3 * $ $ 4 2 *ݥURL4` 3}, /$0"I" 1 n+,"0e+Di5Ei Q2 1 2 V/8," 24}LV+ԩ 3: 4 4I 4L+ 2D5:1 4 2: $;0+ 2SINGLE 2 DENSITY 2 RAMDISKL* 2ENH5}ANCEDp 2DOUBLE 2QUAD }/5,5$ 1 O.$0 `DOS.SYS8f5ȩU5ȩP5婿t"Y56}L, / - l$ / /X,L. /,55 5.5 橛5L/LL$ }/ l$ 2 2刄t( 287}$, 2RUN : y-ft 2INIT: y-ft 1 -$tP`$tPF$6ee8}ȄԄՠ$0֩ /$0 q- /8ਥi S2 L15 4ɛ 2` y$ 2 " 2Load: W.9} /$莞 1 -5 lL"0L2`")i"` 1 . / Q2 1'  Q2 1٠:}0 V/ .L.L2 BLVhihi / -i(i( -8((((.. . `1 1 - .;}`5  e`,,,,"H 0hZ,!,#,$/ /$0 $0ZL/ -/L. / /"L11/2/5<} 5 H.5h5ک5`5c/d/ 5? $08`$0`45 [2519 5=}55 /$05455 /5ED` *50 4`5008f [2R0/@ 2.>}/ȱ 280@0  eiȱ/\FȢɛ  o- *  D.8;+"/+ȱ0"?}LL$V ȱ+F/ڊ u2 80 ? 00 0/+$0Wy`5 ` 2Sure ? 1Q`$O 2es, @}o or bort? 81YN 4(` 'ɛ)YN A 2AL"` * 4 `)  ӆiA}j O.+ /  /$0Ș,J, 1B V0`1 O.:>ݩ,".U * 2 is locked !Unlock file? 1ݐ`B}$ 1УԢ5 )p O. * * 2# 4 3L"IH`:;:` ,ɛ`` u2` *C}hihi 4eiHH` ," 4 2 8`0:` 3` 2iԥiդ o$ԥ(`LL$ 2ԍ2Ս2D}Ԇՠ+22ȱ.6'`0#: AG6  &&`8`芄  (` }$ 2 2 3 E}2=' 38nɛL4ԥ 3 2=.݆ކ&բuݕت 3ߊ, 3HJJJJ 3h) 0:i,  F}4,500 BHI V,L2,"p:ɛUR.* t4 t4^ 81 t4( $x0Nhh`S8R^`倈G}HH`p@BDE-HI V0H-` O. 4L2L"ȱ 4ɛ`D1:*.*pB 5H}0#452"/ $/38%by("arth&"ruchhaeuserc -2eitershan#omputertechnikI"L2L"ȱ 4ɛ`D1:*.*pB 5[ 3c+L!b; b`8`E)))8i@0 ڄԠ\(\!\\\J} \L*\\\\\\&О\(\!\\\ \L*\K}\\\\\&О\(\!\\\ \L*\\\\\L}\&О\(\!\\\ \L*\\\\\\&О\(M}\!\\\ \L*\\\\\\&Оd\(\!\\N}\ \L*\\\\\\&ОL"6\e\\e\\e\\e\O}\e\\i\\}\\\}\\\}\\\}\\\}\\\}\\ǭ\m\\\m\\\m\\\m\\\m\\\P}m\\\}\\\}\\\}\\\}\\\}\\\}\\ǥՅօׅ؅مԅՅօׅ؅`Pi`)JJJeԅԘQ})Peԅ`եԆ8@EB)JJJeԅԥ)PeԅԘ) eԅԽ eՅ՘)JJJ} ԥ} `)JJJeԅԥ)PeR}ԅԹ eԅԹ eՅդЧ` 0@P`'Nu pX@(#d,X ԥՅ .JJJJ)iFiFi1FicFS}i'ȐȦoFiUȐFiiFi#iFiGi Fii@F iiFiiciՊFigi'iՊT}שBL"`I))83Ԥԥդե֤֥פץؤإ٤L!K6"ХL"U}L"L"E0:e٥eإeץe֥eՐ؅٥ׅإօץՅ֩L"8٥إץV}֥հ'I8م٘؅ؘׅטօ֘ՅL"ؤm\G0Q@Ն֩م؅2եمֆשم"ե؅W}م׆ةեׅ֥؅ץم؆لԘ)q ` # j# wb7i j# !%!L-#`X}刱䈱㈱∱ሱ`ԅՅօׅ؅م`ԍՍ֍׍؍ٍ`ԍՍ֍׍؍ٍ`L#L#Y} Խսֽ׽ؽ` L$`ޕ wbԅ)@ޥ)JJJe)eZ} " M # tbJe0F ]' # $L?8`@ԠՈքׄ؄` # j# ! # # j# ! $L?8`0 I@[}) e'f $ # tb r # $ wb?P ! #Iiԩ )ԅ ! ޕL?`8`$\})Ԧ & & & &&& ?ť)8@0$Յ)e)e "F # $ ! # tb% # $ wbF]} I`U9>`D'RFuCU?b9dYdg@W2@?tS)%)@0)%ԅԢ $ # tb; #0 $ wb(^}ߕ !ԅԥ & ?`8``0?i? # # $ ! $ wbԍՍ֍׍؍ٍ # _}# ? $ ! ' $ !0 #JeF ]'`L) #e٥eإeץe֥eՊi؊؅٥ׅإօ`}ץՅֆե1ԥ'JffffJffffJffffJffffم`ԩ&&&&*&&&&*&&&&*&&&&*`ߍD'E&Ha}I BLVTurbo Basic Version 3.2q  g% D:AUTORUN.BASʭȅiȅb}iȅȩȩ LEإ/. ' $( < VG( = ުNOOANĨ<<>STRCHRUSASVALEADATCOPEESIr}RNFREXLOCLOSQSGABINPADDLSTICPTRISTRIDPEE˦INSTINKEYEXOHEXDEDIFRATIMETIMMOEXERNRANTRUN%%%%GOUs}INSTERER+,%5&6(+8,<Xk`fghilm^deDѳHc?,Ќ,е,Y_t}Ҳ+7,/01 2!3"4Ɛ"-"."-؂ٿ֐ːu}ĐאŐbj+9,+;,v}ʐͭͭ@ABC\=>[<+:е<,&%`+,+&-S+++`-73w}00000001H1111a21r1|1}1K12Y111111p11111k2u11o2D1g1(2+2.2011 1111!1l2$1b2,1c1w11111111111x}222"2226292]2Y2@2J2P2S2112<211k1w2 z+(+VWZ ]a8`L+')Q ȱ8y} e新`8`LYU齀).Q Ӱȱ8e新ϊHHHHHH O/40ȑȑz}ޠhhhhhh`HHHHHHHHHH 4 = O$H <hȥLT4hhh{}hL4ň剰)i桰` C)``LDħ D$ x Hҩ|} Ch$襚ҥ ԝ` DUV DT` D` D`,H '5ȍ` JKhLA9 ;8 D5)I 6L}}7S: '5Ȣ`L5 5 5 E8L7 5J*K+ 5L8GHFH`L7 5L( 5`H 7 @8h 6`~}H 5hH 7 G8 7 8}} LQU 6 ]Mh`L(LNU 5 8倝偝} 7 G8 7 7󥃅 I8 7L;8 6Ld6 6L6HІ6h 6 7`C:H 5hKJ P8LQ D, 7 DH} DhHHħ B 8 7hKhJ E8 8L7+7 $@L7D:*.* 7 ]8Lc8& 8LM e8 7NLc8 7 D 7ԝL՝M D 7ԝN}%L8 /[Hħ 7} 5hL5 7 D 5ħ` 9 c8ħ` 7 7 9 8 c8ħ` '5` H} LYU 7Cݠɀ L}(Ɉ ;8 ML[U] ;8L( 7 L]8IHEDBLVHH Bh}h LD ;8`ħ 7 [8L78 5`YDAER CԅՅ֦󅗄`LQک 5p} 90 5Hp @8hɈLYU` ,#,$,!L6 ,H 7 C 7DEԝH՝Ih ]8L5,H B Cְ֙0}La9hꩀL5LYULG8 cb`2ƪƪ^ D^Ƚ_Ƚ!_ȽA_Ƚa_Ƚ_``氤hhL#C}@$ƪư D0 D0 `D$P`LDFҐ֥װ綾إٰو Lg:Ffؐ ee}&ee* &eeeԪeըee$.ƪ^Ƚ_Ƚ _Ƚ@_Ƚ`_Ƚ_`檦_`_@}_ __^^^` b; b;8 `D ٥L#;֤צưĘ=ŗ78֪א& Ceԥe$}`L,D DLYU CԅՅօׄ #Cפ& C٤ţĢԅeՅe8包卅 'H C8Ԩժ}%אְ`ֆLDħ` BFҰg8&0ei֥i0Tׅiإi0BJe؅eم0&ffff&0} &0 eeLDօפإ颎 XG8包ԥ卅 D L; = ȱъ}Še拰8``,ªȱȱI Dѝ3ȥL;=HHO]  ȥ}e暰Х ȥL~=ȱhh` w8l w8Lq DԪԅԆL0? CȥՑ` CL'H CLG D }!L(D D !L(D D wbL(D D ?L(D^I^` >b`P >KW >RB >=;G >4@ >;+ƪƪ^=^ (ƪƪ^^ }ƪ^ ,@@檦^_^ _@_`__`ƪ^ ǩjҤ]/L>ƪƪ^^, 舽__ _ _@_@_}`_`__ـ_`^jI*` C # C֪ (ϰ`(8` C֤ׅԄ ҅L,D D}L,?ƪ8吪周L,? 8 8LTU CL,? 8Ԅ , 8L0? CL0?   D e쪽pL,?LD Qڠ} ?HJJJJ ?h) 0:i` D ?; `D ؠȱ)ȥ%ݕB 9L@ DԍՅԄׅ֩өL,Dƪ?} )ɠ )  "L,D 9@ =L@^)^`L\\@\`]\ @ Pb L,D PbLD\HH D0 HHL@Hl `}D)8@ "L,D` = `D)8@I= `D)8@/ѩ֔$ሄ !L,D } `D T%L*D `D ^%L*D `D &L*D `D $L*D `D $L*D `D 2$L*D `D &L*DLQ>L_>LD D&)ԥ)8@}JjH@MC)JJJe)e #F $ #P # tbF # $ wbL DLDHHHHHH $hhh}hhh wb A$hԅL,DLD C`,` DLD aB%ᨥ%L,? aBᨥL,? aBEᨥEL,?<|'g D}0LB`^^^^i ` B @ =L=L?L,?] AC ,DLC]]*^Ŭ]Ʃ :C}LCș]LC` ?Cl]樱0ZS'`ȱȱȱȱȱȱȄ`ȱօȘuԩׅu՘e֨҄`樱I }DҠȱȱȱȱȱ` `D$҅J?eԨe` DLYU D D B `D  Ԥ` Dҩ, , , }LYU檤 ٙ_ؙ`_י@_֙ _ՙ_ԙ^ә^ҙ^` Bƪ_ٹ`_ع@_׹ _ֹ_չ^Թ^ӹ^`ƪ_a_A_!}__^LbD DґȥӑȥԑȥՑȥ֑ȥבȥؑȥّ` ***j)e)e`&LEMENEOE`[ 5} U] 5LQE L LYU L C EO K }ƹƹ0`H uTh`I&K` =? FQA` ILIȱI BĦ O ąŅ }VN ]D N $䧰 ]D N O,Ǡ ĩJH VNhĥȑĥȑĦʊȑ`HHąŅH Ch Lhhhh O}ȱIEL\O LYU`ȱI O Hȱȱȱȱȱ C ! Dh L@ &ML-PL D}*ȱȱȱȱȱjEE `EjI `e`ħ 5 OM0 N N N`} ML( B_ 䧰L;E A@L O`I&M`MLYU M 5څM ILU0`STOPPED} <hhLuE E` ]D  Hƹ wTh`hbjH Ch %LԤL>EQ %LLPLPei}  `LYUԑȥՑȥ֑ȥבȥؑȥّ``䈥剰#)ii}L=Lw8I& O`2O6O:Oץğ=ȱȄ `L!O  L}LYU0e拠0ȱȄL!O L B_' O>?L O B O(<ж_  &MЛ -P`,LYUő}Ő78Ƒ8 Ƒ`8` O- PѠ`,,LYU O}L O OPQ 8,LYU LȱI Dѝߠȱ`ԩ,LYU OE  &MEL-PL_O_,}ߤ Dڄ C # Ceڅԥeۅհ"8څ֥ۅא8ܥݰLQ>۠Q%0ԅإՅ٥ަ0%}Q% LKQե0L$QڤL,?HՄ "R wb #hԩ !҅L,D ~Qƪ(R ?@}Մ$ Q` Q` QL"@H " # $h wb@Յ՘JJJJ R) 0:i`AVC2 B 8 ~R5 R ~R<}) R R ~R< R R RL8 8LTU e e`e`&&&&&&eee}` R&&eee&*`LD L C0襙 <⥋㩀 T0ɥ0DȱȱȄ }   ik#ZMkVgğe拰ㅋ⅊0 eee拰 =LI uTдƨħ SLhS u}TК,樥ŧH Sh wTLS樤ܱ.* AC  0  TԄ (fԤԈ`ř嚰Ԥ`ڥۥड़0-}԰eڅڐۈ0eeL:T8` AC]` L 3 C C <Ԑe拢 GLT 2}4LIħ 5 54 Cň剰' T K Jɀ8@4= 5LU ;8`OJ ]J?L5 MKԪȱLUHH}צ U, 5hhLU,,,؍ M0âL>EɀLM 57 HK UbL U I I0U U}Ո U 5 EL(Ն إ􅕄LI 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 ONLEOTRUNTIMEOU}NA!FRAMCURSO!OVERRUCHKSUDONMODNOT IMPRA͠D?>#FILEDSK FULFATAL I/FILENAMPOINLOCKEDCM>DI?FILPOIN}?APPNBAD SECTOR` C B^0 ? Cۄܱ W **m %XݤܱEۅڦڱ= Z }YܥeƥiեLYW@ ` **)]W` 00`` ( ((((((((8`W)}ߥ & &e &߽Wřِ׼XXWJJJJ&eXޥeYߥ䥛 9XFfЎᰈ W}`XX M 8*` C %X󥐅i祣L}N 1ZLY &Z }Z0 1Z &ZL"Y Z ȑ Z 1Z &ZLFY Z# Y Z)ȱ LX Y Y Z})ȱ) Y)ȱ Z Z8ƣŐő0eސ`ƙ8ް`)ȱJJJ`}``=`]```օנ6&֐ eו`LD CHħ DhբՅ JZԢ JZ}Յ֠&&֐eܥeېڈ ![ F[ ![ T[ 8[ F[ 8[ T[$0!ee80å/8ܥ۰}uڕ0eUiV`TUV`8UV`eTi`8TȢ` 5L5}==fF45I5BrMK}L;E;E8EM=M;8]MYB;lM(65_617=7T76NQBYH\BEEP4MMOYH77_55'5=D5474H66BWU===O LOOOMM9 9A5 LPT}P8 9 999B.RPPfP:5K=RTTDBWG9J9P=MXy74jZ`@ g:,,,}=>>>>>A====H>7>&>=99o;=>>>>>==:99999?@t@k?Y?%??L}ACAi@@????=kByBP?B?u?@@Q~QB=9@`@@Q>_>Y>V>=PBB ,(""(222000000..222}222222222222222222222222222**22*22&222$2222222222 ,(""(0000000--**}2*&22$2222222.:,g+ BdD& A,S-0H,AAA}cg' qV }]\}?,Ќ,е,Y_Ҳ+7,/01 2!3"4Ɛ}"-"."-?}ʩ   ʎD TB>LOAD_PR.BAST!!This program is meant to be(used with the PRTB.COM2program, which is an R:<handle}r for theFP:R: Connection.PIt will load it in, andZinitialize the system fordusing a P:R: Connection.n}Tx6-U: AC, A Av +TF: A,"@:R,((((R: device already installed.}( Skipping.ATF: A,@:S,$($(This program is meant to""(be ran ONLY on Sparta Dos. }( Aborting.AT88@@@@A(D3:>TB>PRTB.COM"T,Now to initialize the6handl!}er and the o.s.@TJ6-U: @,T8 BPV%@^8 @ BPVh BPV%@aAVr BPV"}%@]AV| BPU A=PLA6-?: BPU,T#(#(}R: handler successfully( installed.#}TD3:>TB>LOAD_PR.BAS A=PLA6-?: BPU,T#(#(}R: handler successfully( installed.,0  RRP`ȌLYt6C JJJJEQ` b%}*` 0M 䰥i,,0/x4ӥ)DžҢ <X`,0&}` b,w Y048)8)* b"( Z Y  ,E*` '}"%,0*)Js ԥ* A @$*+)&а*ѭ^ X @0S)ҍҹҍҩҍ(}ҍҍxsҩxҠ \  X`C)0 Cɛ H0  `)C)C JCI fCȘ) )}0/ͦCHh, Ș)ͦL 䰠`,0T 0O쥳سC))  )ECI  CFC)0*}C ) `L$0 `,`ؘHH짳)ҩ) Ҏ-hhh@ؘH Ҭسҍ I) Ș)ͤ+} Ș) S@oGnV( LE=. HH,H HELLO 0ȑȑޠ,}hhhh0,.RPGnV( LE=. HH,H HELLO 0ȑȑޠ Turbo Basic 3.2q (C) 1992 CTH Enterprises by Tom Hunt All rights reserved This ARC m.}ay be freely distributed as long as it remains intact, and as long as no moneys are exchanged, except for the nominal cost of/} media. This program is based upon Turbo Basic for the old Atari 400's and 800's, by Frank Ostrowski. That particular v0}ersion had it's own mini-dos embedded in it, which was compatible only with Atari dos 2.0/2.5 . This version, 3.2q, was1} specifically made to run only under Sparta Dos 3.2. It works fine under both a floppy based system, and a hard drive based s2}ystem. It is an interpreter, not a compiler or a runtime for compiled programs. It is by far the fastest Basic interpreter.3} You load it by simply typing "TB32Q" at Sparta's D1: prompt. Once loaded, you may return to dos and back without destroy4}ing your Basic program, as long as you do not use any destructive commands while in dos. A destructive command would be the C5}OPY command, for instance. To return to Turbo Basic 3.2q after going to DOS, you simply type RUN at Sparta's D1: prompt. As l6}ong as you haven't loaded or executed any other machine language program, you will return to Turbo Basic 3.2q, with your Basi7}c program intact.TECHNICAL STUFF FOR PROGRAMMERS This version of Turbo Basic occupies from $1C20 to $63E5. Once loade8}d, Turbo Basic 3.2q should give you 22313 bytes of FRE(0) memory. There are two functions that are not supported in this vers9}ion of Turbo Basic, which are in the other versions. The BLOAD and BRUN functions will return an ERROR 255 if executed. These:} functions are easily implemented through XIO statements, so it's no big loss. Also included in this ARC is a special P;}:R: Connection R: handler, and a Basic loader to load it in. They are named PRTB.COM and LOAD_PR.BAS, respectivly. Change lin<}e 280 in the basic program so that the loader can find PRTB.COM. This should allow some enterprising Turbo Basic programmer, =}who owns a P:R: Connection, to create a modem program using Turbo Basic 3.2q. Also included in this ARC is a text file called>} BATTLE.TXT. It is an article I wrote to review various Basic's, and how well they performed a simple benchmark program.---?}----------------------------------------------------------------------------Send ShareWare donations to:Tom Hunt1704 Twp.@} Rd. 65Jeromesville, OH44840 I may be contacted at the following BBS:Tom Hunt (Sysop)Closer To Home BBS419-368-44A}1324 Hours/7 Days300/1200/2400 I may be contacted at the following BBS:Tom Hunt (Sysop)Closer To Home BBS419-368-44"This is a version of TurboBasic thatwill run with SpartaDos 3.2d.This version was put together by TomHunt of CTH BBS. IncC}luded with thisarc is an R: handler and loader for theP:R: Connection. TB32q can not becompiled but will run as fast TB1.D}5xl. with thisarc is an R: handler and loader for theP:R: Connection. TB32q can not becompiled but will run as fast TB1. EXPANDED TURBO BASIC DOCUMENTATION ================================== by Ron. FetzerThis expanded documentat!F}ion isbased on the pioneering work of Daveand Laura Yearke of the Western NewYork Atari Users Group.The superb Turbo Bas!G}ic by FrankOstrowski from Germany works only onthe Atari XL and Atari XE computers.It is completely compatible withATARI !H}BASIC. In addition to theregular Atari Basic commands you get42 more commands and 22 morefunctions. You have a useable RAM!I} of34,021 bytes. This is 1,747 morebytes than Atari Basic. It runs 3times faster than Atari Basic and youhave a BASIC COM!J}PILER that increasesthe speed 10 to 15 times more.The DOS commands are accessed inthe direct mode or the programmedmode.!K} There is no Turbo Basic DOS.You have new graphics commands notavailable before. Turbo Basic isinsensitive to upper or low!L}er orinverse characters for most of itscommands. You can have 256 variablenames.This documentation tries toprovide prog!M}ramming examples for thenew commands. There is an index atthe end of this documentation foreasy finding of commands !N}** LOADING TURBO BASIC ** --------------------------Turbo Basic gets loaded withouta cartridge. 1. Turn on your disk!O}drive. 2. Insert the Turbo Basicdisk. 3. On the XE hold down theOPTION key and turn on the computer. ** DISK COM!P}MANDS ** -------------------The DOS functions are accessedin the direct or the programmed mode.There is no Turbo!Q}-DOS. If you typeDOS you are directed to DOS 2.5. Youare now out of Turbo Basic. It issuggested that you save your program!R}first otherwise it is lost. You canget back into Turbo Basic by usingOPTION L on the DOS and typingAUTORUN.SYS for the fi!S}le name. FORMAT: BLOAD "D:name" EXAMPLE: BLOAD "D:TEST.BIN"This command is used to load binaryfiles. The file!T} will automatically loadwithout having to give a memoryaddress. It is just like Option L with/N on DOS 2.0 FORMAT: !U}BRUN "D:name" EXAMPLE: BRUN "D:COMPILER.COM"This is used to load and RUN amachine language(Binary) file. Thefile wi!V}ll run automatically withouthaving to give a memory address. Itis the same as Option L and Option Mon DOS 2.0 FORMAT!W}: DELETE "D:name" (Wild cards are O.K.) EXAMPLE: DELETE "D:TEST.BAS" DELETE "D8:test.bas"!X} delete "D2:*.*" Delete "D2:TEST.???" 90 DELETE "D:*.*"This command erases from th!Y}e disk afile specified. The wild cardsymbols (*.* and ???) are permitted.The device name (D:) has to be incapital letters!Z}. Inverse file namesare not permitted. In the programmedmode it has to be the last item onthe line. This is the same as Op![}tionD on DOS 2.0 FORMAT: DIR (Wild cards O.K.) EXAMPLE: DIR DIR "D:*.*" DIR "D2:*.B!\}AS" DIR "D:???.*" DIR "D8:*.*" 90 DIR "D8:*.*"This command gives you the diskdir!]}ectory. Wild cards are permitted.In the programmed mode it has to bethe last item on the line. This isthe same as Option A!^} on DOS 2.0 FORMAT: RENAME "D:old name,new name" EXAMPLE: RENAME "D:FILE.OLD, FILE.N!_}EW" RENAME "D8:*.TXT, *.BAS"This command renames a file. Thefirst name is the OLD name, these!`}cond name is the NEW name. Thecomma between them is important. Wildcards are permitted. This is the sameas Option E on DOS!a} 2.0 FORMAT: LOCK "D:name" EXAMPLE: LOCK "D:TEST.BAS" LOCK "D2:SCREEN.???" LOCK "D8:!b}*.*" 90 LOCK "D:*.*"This command locks a file so youcannot change it or erase it untilyou unlock it. Wild c!c}ards arepermitted. In the programmed mode ithas to be the last item on the line.This is the same as Option F on DOS2.0 !d} FORMAT: UNLOCK "D:name" EXAMPLE: UNLOCK "D:TEST.BAS" UNLOCK "D2:SCREEN.???" UNLOCK "D8!e}:*.*" 10 UNLOCK "D:*.*"This command is the opposite of LOCK. It opens a file so it can bechanged. Wild card!f}s are permitted. Inthe programmed mode it has to be thelast item on the line. This is thesame as Option G on DOS 2.0 !g} ** MEMORY ** ------------ FORMAT: DPOKE m,v EXAMPLE: DPOKE 88,32750 90 DPOKE 8!q}BDOS SYSB(!DUP SYSBITB32Q COMB?BATTLE TXTB LOAD B $PRTB COMB-TB32Q DOCBBTB32Q TXTB}ETURBAS1 DOCBzTURBAS2 DOCBqETURBAS3 DOCBTBASIC4 DOC8,32750This command puts 2 bytes of data into2 consecutive memory locations. In theexample above at POKE 88 and POKE 89i!r}nteger 32750 is stored. FORMAT: DPEEK(m) EXAMPLE: ? DPEEK(88) 90 ? DPEEK(88)This is the opposite!s} of DPOKE.It retrieves a 2 byte integer from 2consecutive locations. In the exampleabove at PEEK(88) and PEEK(89) FO!t}RMAT: MOVE m,m1,m2 EXAMPLE: MOVE 53248,32768,1024 MOVE $D000,$8000,$400This moves a whole block of dat!u}a. The'm' is the old address, the 'm1' is thenew address and the 'm2' is the lengthof the data in bytes. FORMAT: -M!v}OVE m,m1,m2 EXAMPLE: -MOVE 53248,32768,1024 -MOVE $D000,$8000,$400This is the same as above exceptit c!w}opies with the last byte of theblock. FORMAT: BPUT #n,adr,len EXAMPLE: BPUT #3,ADR(B$), LEN(B$)!x} EXAMPLE #2 100 CLS 110 GRAPHICS 5:ADDR=DPEEK(88) 120 PRINT " FILL THE SCREEN" 130 FOR X!y} = 1 TO (20*40) 140 POKE ADDR+X,RAND(125) 150 NEXT X 160 ? "Now BPUT data onto RAMDISK D8:SCREEN" !z} 170 CLOSE:OPEN #1,8,0,"D8: SCREEN" 180 BPUT #1,ADDR,20*40 190 CLOSE 200 ? "IT IS DONE!" 210 F!{}OR Y= 1 TO 6000:NEXT Y 220 GRAPHICS 0This outputs a block of data to adevice specified by the channelnumber(1-7). Th!|}e block starts at'adr' and ends at 'len'. In theexample above we wrote to the RAMDISK the screen data under the filename !}}"SCREEN". It can be recoveredwith BGET. See the next command. FORMAT: BGET #n,adr,len EXAMPLE: BGET #3,ADR(B$),!~} LEN(B$) EXAMPLE #2 100 CLS 110 GRAPHICS 5:ADDR=DPEEK(88) 120 CLOSE:OPEN #1,4,0,!} "D8:SCREEN" 130 ? "BGET data from RAM DISK D8:'SCREEN'" 140 BGET #1,ADDR,20*40 150 CLOSE !} 160 FOR Y=1 TO 6000:NEXT Y 170 GRAPHICS 0BGET recovers a block of data savedwith BPUT. The '#n' is the channelnum!}ber(1-7), 'adr' is the memoryaddress and 'len' is the length ofthe data. FORMAT: %PUT #n,a EXAMPLE: %PUT #1,A!} EXAMPLE #2 10 CLS 20 CLOSE:OPEN #1,8,0,"D8:TEST" 30 FOR X = 1 TO 5 40 INPUT "GIVE ME A NUM!}BER>",A 50 %PUT #1;A 60 NEXT X:CLOSE 70 ?:? "I have saved the the numbers with %PUT to the RAM!} DISK under 'TEST'" 80 ?:?:DIR "D8:*.*"This is the same as 'PRINT #1;A',except it is much faster and usesless memory!}. You must open a channelfor %PUT. See the demonstartionprogram on the TURBO-UTILITY-DISK.Use RUN "D:PUTGET.TUR". If you h!}ave aXL computer list the program andchange all referrences from D8: toD1: and then run it. You can retrievethe numbers i!}n EXAMPLE #2 by usingthe %GET program that follows. It isused with NUMBERS only. FORMAT: %GET #n,a EXAMPLE: %G!}ET #1,A EXAMPLE #2 10 CLS 20 CLOSE:OPEN #1,4,0,"D8:TEST" 30 FOR Y = 1 TO 5 40 %GET #1;A !} 50 ? A 60 NEXT Y:CLOSE 70 ?:? "I have retrieved the numbers saved with %PUT by using %GET" !} 80 LISTIt retrieves the numbers savedwith %PUT. You must have a channelopen. It is the same as 'INPUT #1;A',except it i!}s much faster. ** GENERAL PROGRAMMING ** -------------------------- FORMAT: CLS EXAMPLE: CLS !} 10 CLS EXAMPLE #2 10 CLS 20 FOR X=1 TO 50 30 ? " CLEAR SCREEN "; 40 NEXT X !} 50 GOTO 10This command clears the screen.It is the same as pressingCNTRL+CLEAR or ? CHR$(125) FORMAT: CLS #n(cha!}nnels 1-7) EXAMPLE: CLS #3 90 CLS #3 EXAMPLE #2 10 CLS 20 ?:?:?:?:?:?:? "THIS W!}ILL NOT BE ERASED - IT IS BEFORE LINE 30(OPEN). TO STOP -->'BREAK'" 30 CLOSE:OPEN #3,4,0,"K:" !} 40 CLS #3 50 ? "PRESS ANY KEY"; 60 GET #3,L 70 ?:? "YOU PRESSED THE "; CHR$(L);" KEY":? 80 CLS!} #3 90 GOTO 40This command clears the screenof any information that was therebecause of the opened channel. Thisis !}different from CLS which clearsthe whole screen. FORMAT: PAUSE n EXAMPLE: PAUSE 50 90 PAUSE 100!} EXAMPLE #2 10 CLS 20 REPEAT:A=A+1 30 ? A;", "; 40 PAUSE 100 50 UNTIL A=20 !} EXAMPLE #3 10 CLS 20 X=10 30 REPEAT:A=A+1 40 ? A;", "; 50 PAUSE 10*X 60 UNTIL A=20This c!}ommand puts a time delayof about 1/60 of a second into yourprogram for each number. PAUSE 60 =about 60/60 or 1 second dela!}y. It isthe similar to 'FOR X = 1 TO 60:NEXTX'. Computed values are allowed.Negative values are not allowed. FORMAT:!} RENUM n,i,j EXAMPLE: RENUM 10,100,10 90 RENUM 100,10,10 EXAMPLE #2 10 CLS 20 ?!} "RENUMBER PLEASE!" 30 PAUSE 100 40 LIST 50 RENUM 10,100,20 60 LIST EXAMPLE #3 10 CL!}S 20 X=3 30 ? " HELLO "; 40 GOTO X*10 50 REM X*10 WILL NOT BE RENUMBERED 60 RENUM 10,100,20!} 70 LISTThis command renumbers your program.The 'n' is the program line numberthat you want to start renumberingwith!}. The 'i' is the first NEW number.The 'j' is the increment. It will notrenumber line references which involvevariables or !}computed values. Seeexample #3. FORMAT: DEL n,i EXAMPLE: DEL 60,100 90 DEL 50,80 E!}XAMPLE #2 10 CLS 20 ? "THIS LINE STAYS" 30 ? "30 GOES" 40 ? "40 GOES" 50 ? "50 GOES" 60 DEL 30!},50 70 LISTThis command deletes lines out ofyour program. 'n' = the startingnumber and 'i'= the ending number. Itca!}n be used in the direct orprogrammed mode. FORMAT: DUMP EXAMPLE: DUMP 90 DUMP EXAM!}PLE #2 10 CLS 20 DIM A$(35),B(5) 30 A$="DUMP - VARIABLES AND THEIR VALUES" 40 REPEAT:X=X+1 !}50 INPUT "GIVE ME A NUMBER>",C 60 B(X)=C:REM NUMBER ARRAY 70 UNTIL X=5 80 ? " NUMBERS" 90 FOR T = 1 TO !}5 100 ? B(T) 110 NEXT T 120 ?:? A$ 130 DUMPThis command dumps the variablesused and their values. For !}numericarrays the DUMed value will be shownas: (B,6. The DUMPed value is theDIMed value +1. String values areshown with t!}heir length first andthen their DIMed value. PROCEDUREnames and labels and their linevalues are also listed. The NEWcomma!}nd clears the DUMPed values.This command can be used in thedirect or the programmed mode. FORMAT: DUMP name EX!}AMPLE: DUMP "P:" DUMP "D8:VARIB" 90 DUMP "P:" EXAMPLE #2 10 CLS 20 DIM !}A$(40),B(5) 30 A$="DUMPed - VARIABLES" 40 FOR X = 1 TO 5 50 INPUT "GIVE ME A NUMBER>",C 60 B(X)=C:REM NUM!}BER ARRAY 70 NEXT X 80 FOR Y = 1 TO 5 90 ? B(Y):LPRINT B(Y) 100 NEXT Y 110 LPRINT:LPRINT A$ 120!} DUMP "P:"This command is the same as above,except we DUMP to a device specified."P:" = printer or "D8:VARIB" = RamDisk.!} For example #2 turn on yourprinter. This command can be used inthe direct or the programmed mode. FORMAT: TRACE !} TRACE - EXAMPLE: 10 TRACE 90 TRACE - EXAMPLE #2 10 TRACE 20 CLS !} 30 ?:? " TRACING" 40 REPEAT:A=A+1 50 ? A;", "; 60 UNTIL A=10 70 TRACE - 80 ?:? 90 ? " NO T!}RACING" 100 REPEAT:B=B+1 110 ? B;", "; 120 UNTIL B=10This command tells you what lineis about to be execute!}d. It is shownin [ ] on the screen. The TRACE isthe way you turn it ON. The TRACE - is the way you turn it OFF. This isa !}great aid in de-bugging a program. FORMAT: INPUT "text";a,b... INPUT "text >",a,b... EXAMPLE: 20 I!}NPUT "Numbers";A 50 INPUT "Names";B$ 70 INPUT "Names &" Ages >>",A$,B !} 90 INPUT "ADDRESS >" ,ADR$ EXAMPLE #2: 10 CLS 20 DIM A$(10) 30 ? "THIS WI!}LL PRINT ?":? 40 FOR X = 1 TO 3 50 INPUT "Names";A$ 60 NEXT X 70 ?:? 80 ? "No Symbol - Use your own"!} :? 90 FOR Y = 1 TO 3 100 INPUT "Numbers >>",B 110 NEXT YThis command lets you use a promptwith the!} INPUT for easier programming.If you use a semicolon after the promptthe usual '?' will be printed. If youuse a comma afte!}r the prompt nothingwill be printed and you have to includeyour own symbol with the prompt. Seeexample #2. FORMAT: !}GO TO EXAMPLE: 50 GO TO 20 GO TO 100 EXAMPLE #2 10 CLS 20 ? " HELLO "; 30 !}GO TO 20This command is the same as theusual GOTO FORMAT: *L (DEFAULT) *L - EXAMPLE: 30 *L !} 90 *L - EXAMPLE #2 10 CLS:? 20 *L 30 ? "LINE # 50-70 INDENT ON" 40 FOR X = 1 TO !}5 50 ? " "; 60 ? " "; 70 ? " "; 80 NEXT X 90 LIST 100 PAUSE 300 110 CLS:? 120 *L - !} 130 ? "LINE # 50-70 INDENT OFF" 140 LISTWhen listing a program with loops thiscommand either turns on the indent o!}nthe loops or turns them off. The *Lturns it ON. This is the normal defaultcondition. The *L - turns the indentOFF. This !}works not only on the screenbut also on the printer. FORMAT: *F (or *F+) *F - EXAMPLE: 70 *F !} 90 *F - EXAMPLE #2 10 CLS 20 ? "ILLEGAL REVERSE LOOP":? 30 FOR X = 2 TO 1 40 ? !}X 50 NEXT X 60 PAUSE 200 70 *F 80 ?:? "ILLEGAL LOOP - NO EXECUTION - '*F'" 90 FOR X = 2 TO 1!} 100 ? X 110 NEXT X 120 PAUSE 200 130 LISTAtari Basic has a bug. It allowsexecution of an illegal rev!}erse loop.(FOR X=2 TO 1:? X:NEXT X). Thiscommand allows you to turn thisfeature off or on. *F or *F + turnsit OFF. *F - t!}urns the bug ON if youwant it. FORMAT: *B (or B+) *B - EXAMPLE: 90 *B 200 *B - !} EXAMPLE #2 10 CLS:? 20 CLOSE:OPEN #1,8,0,"D8:TEST" 30 FOR X=1 TO 3 40 INPUT "GIVE ME A NUMBER!}";A 50 %PUT #1;A 60 NEXT X:CLOSE 70 PAUSE 100:?:? 80 ? " I AM TRAPPING 'BREAK' KEY" 90 *B !} 100 CLOSE:TRAP 180: OPEN #1,4,0,"D8:TEST" 110 ?:? 120 FOR Y = 1 TO 3 130 PAUSE 100 140 %GET #!}1;A 150 ? A;" TRY BREAK KEY" 160 NEXT Y:CLOSE 170 END 180 REM TRAP 190 ?:? "BREAK KEY TRAPPED!" !} 200 GOTO 90This command lets you trap thebreak key so your program cannotaccidentally be stopped by hittingthe BREAK ke!}y. This command workswith the TRAP command. The *B turnsit ON. The *B - turns it OFF. FORMAT: -- EXAMPLE: 10 -!}- 90 -- EXAMPLE #2 10 -- 20 CLS 30 ? " 30 DASHES " 40 ? " HELLO " 50 -!}- 60 LISTThis command prints 30 dashesacross the screen or the page whenyou LIST your program. It can be usedto mak!}e your program listingclearer. *** END OF PART I *** page whenyou LIST your program. It can be usedto mak G FORMAT: DSOUND n,f,d,v DSOUND EXAMPLE: 10 DSOUND 1,72,12,8 90 DSOUND %} EXAMPLE #2 10 CLS 20 ?:? "PRESS 'RESET' TO STOP" 30 X = RAND(255) 40 ? X;", "; 50 DSOUND 1,X,12,8%} 60 PAUSE 25 70 DSOUND 80 DSOUND 0,X,12,8 90 GOTO 30This command pairs channels forincreased frequency%} range.n=channels(0-3). f=frequency range(0-255). d=distortion(0-15) 10 and 14produce pure tones. v=volume(0-15). 0is sil%}ent 15 is the laudest. DSOUNDturns all sound OFF. ** LINE LABELS ** ------------------- FORMAT:%} # name EXAMPLE: 120 # END 120 # END_OF_FILE EXAMPLE #2 10 CLS 20 CLOSE:OPEN #%}1,8,0,"D8:TEST" 30 REPEAT:X=X+%1 40 INPUT "GIVE ME A NUMBER";A 50 %PUT #1,A 60 UNTIL X=%3 70 CLOSE %} 80 CLOSE:OPEN #1,4,0,"D8:TEST" 90 TRAP # END:%GET #1,A 100 ? A 110 GOTO 90 120 # END:IF ERR=136 THEN %}CLOSEThis command gives the line numberthat has the '#' the VARIABLE LABELthat follows the '#'. For example:'120 # END' %}will now become a VARIABLELABEL and it will be in the variablename table listed as such (Use DUMP tosee it). In example #2%} see line #90'90 TRAP # END...".It will go to line 120. This is thesame as if we wrote '90 TRAP 120...'except it is clea%}rer the first way.When there is an EOL error(136)channel #1 will be closed so no erroris printed. A better way would hav%}e been'120 # END_OF_FILE...' Theunderscore (_) is allowed invariables and labels and makes forclearer listings. We would%} have abetter discription of WHERE and WHATthe program does if we had used it.If you use line labels they can berenumbere%}d. %1 and %3 in line 30 and60 are used because they save us 6bytes each and stand for the number 1and 3. See dicussion on %}constants. FORMAT: GO# name EXAMPLE: 60 GO# GET_KEY 100 GO# ERROR EXAMPLE #2 1%}0 CLS 20 ?:? "PRESS ANY KEY" 30 CLOSE:OPEN #1,4,0,"K:" 40 # GET_KEY:GET #1,A 50 ? CHR$(A);", "; 60 G%}O# GET_KEYThis is the same as GOTO exceptthe GO# looks for a label. You cannothave a space between the GO and #.For the %}(_) in line 40 see '# name'above. Line 40 has the variable labelof '# GET_KEY'. Line 60 looks forthis label and it works j%}ust like aGOTO except the listing is clearer. * MODIFICATION OF ATARI COMMANDS * ---------------------------------- %} FORMAT: CLOSE EXAMPLE: 90 CLOSE 120 CLOSE: OPEN #1,4,0,"D8:TEST"This command closes AL%}L openedchannels. It is a good practice toclose a channel first before openingit. This command is the same as 'FORX=1 TO %}7:CLOSE X:NEXT X' FORMAT: DIM a(n) EXAMPLE: 10 DIM A(6) 30 DIM B$(20)This command automatically %}assigns avalue of 0 to all elements in a numericarray and null characters to allelements of a string. The LEN functionis %}still variable and initially 0. FORMAT: GET name EXAMPLE: 20 GET A 90 GET K EXAMPLE%} #2 10 CLS:?:? 20 GET A 30 ? "The key is ";CHR$(A); 40 ? " the ATASCII = ";A 50 GOTO 20This comma%}nd returns the ATASCIIvalue of the key pressed. It is thesame as 'OPEN #1,4,0,"K:":GET#1;A:CLOSE #1'. The command waits fo%}ra key press and assigns the ATASCIIvalue to the variable. FORMAT: LIST n, EXAMPLE: LIST 90,This command lis%}t the programfrom the line specified to its endprovided the comma is used. FORMAT: ON a EXEC n1,n2,... EXAMPLE%}: 30 ON X EXEC START, MAIN_PROG,ENDINGThis command is the same as'ON...GOSUB' except it is used withPROCEDU%}RE. The command executes thePROCEDURES named. Instead of 'ON XGOSUB 200,300,400' we use variablelabel names of the PROCEDU%}RES. SeePROCEDURE FORMAT: ON a GO# n1,n2,... EXAMPLE: 70 ON X GO# NORMAL, UPSIDE_DOWN %} EXAMPLE #2 10 CLS:DIM A$(1) 20 ?:? 30 INPUT "Normal or Upside down";A$ 40 IF A$(1,1)="N" THE%}N X=1 50 IF A$(1,1)<>"N" THEN X=2 60 ?:? 70 ON X GO# NORMAL,UPSIDE_DOWN 80 # NORMAL 90 POKE 755,2 %} 100 ? "THIS IS PRINTED NORMALLY" 110 GOTO 20 120 # UPSIDE_DOWN:CLS 130 POKE 755,7:?:? 140 ? "%}THIS IS PRINTED UPSIDE DOWN" 150 PAUSE 200:POKE 755,2 160 GOTO 20This command is the same asON...GOTO e%}xcept we use variablelabel names instead of line numbers.In example #2 see line 70. FORMAT: POP EXAMPLE: 100 P%}OP EXAMPLE #2 10 CLS:?:? 20 GOSUB 50 30 ? "I am the next line" 40 END 50 REM SUBROUT%}INE 60 POP 70 GOTO 90 80 RETURN 90 ? "I POPPED the RETURN line 30" 100 LISTThe POP command%} will work withall 4 loops, the DO-LOOP, WHILE-WEND,FOR-NEXT and GOSUB. When TURBO BASICsees a DO, WHILE, FOR or GOSUB it%}saves its RETURN address on theruntime stack so it knows to whatline to return to. If you want BASICto 'FORGET' this retur%}n line use POP.Too many POPs can lead to errors andmake for poor programming. FORMAT: PUT n EXAMPLE: 60 PUT 90%} 20 PUT 89,69,83 EXAMPLE #2 10 REM SIMPLE WORDPROCESSOR 20 CLS:? 30 OPEN #1,4,0,"%}K:" 40 GET #1;A:R=R+1 50 IF R=37 THEN ? CHR$(155):R=0 60 PUT A 70 GOTO 40This command is the same as'P%}RINT CHR$(A)';. It takes theATASCII number and converts it into acharacter. FORMAT: RESTORE #name EXAMPLE: 120%} RESTORE #AGAIN 160 RESTORE #NUM_AGAIN EXAMPLE #2 10 CLS:? 20 DATA 1,2,3,4,5 30 %}# AGAIN 40 DATA 6,7,8,9,0 50 READ A 60 IF A=0 THEN 100 70 ? A;", "; 80 PAUSE 10 90 GOTO 50 %} 100 ?:? "NOW DOING LN 40 DATA AGAIN" 110 PAUSE 120 RESTORE #AGAIN 130 READ A 140 IF A=0 THEN 170%} 150 ? A;", "; 160 GOTO 130 170 ?:LISTThis command moves the datapointer back to the variable label inthe %}DATA chain. In example #2 theRESTORE printed only the numbers inDATA ln. 40 because it came after '30#AGAIN'. It did not s%}tart with ln.#20. It is the same as RESTORE 40except we use a variable label forclearer programming. The 0 was theflag. W%}hen the READ saw a 0 then theIF-THEN came in and directed it tosome other line. FORMAT: RND EXAMPLE: 20 RND %} 40 X=RND 90 X=INT(RND*10) 100 X=INT(RND*10)+1 200 X=INT(RND*100) &} EXAMPLE #2 10 X=RND 20 ? X;", "; 30 GOTO 10 EXAMPLE #3 10 CLS:? 20 X=INT(R&}ND*10) 30 PAUSE 25:? X;", "; 40 GOTO 20In this command the dummy variable (0)has been eliminated. You can still &}usethe ATARi way RND(0) if you want to.In the example ln. 90 you get randomnumbers from 0-9. In ln. 100 you getrandom num&}bers from 1-10. In ln. 200you get random numbers from 0-99 FORMAT: RAND(n) EXAMPLE: 10 X = RAND(10) &} 90 X = RAND(100) EXAMPLE #2 10 CLS 20 X = RAND(100) 30 ? X;", "; 40 PUASE 25 50 G&}OTO 20In this command the random numbers areprinted as integers. They start with 0and end with the number-1 in theparent&}heses. FORMAT: SOUND EXAMPLE: 90 SOUND EXAMPLE #2 10 R=R+1 20 Y = RAND(255) 30 SO&}UND 0,Y,10,8 40 PAUSE 100 50 SOUND 60 X = RAND(255) 70 SOUND 1,X,12,8 80 PAUSE 50 90 SOUND &} 100 IF R=8 THEN SOUND: R=0:GOTO 120 110 GOTO 10 120 ENDThis command turns all sounds off. Itis the sam& }e as 'SOUND 0,0,0,0 FORMAT: TRAP #name EXAMPLE: 90 TRAP #END 95 TRAP #END_OF_FILEThis command is& } the same as '90TRAP 150' except it uses variablelabel names. For an application seeexample #2 on the command '#name' & } ** STRINGS AND ERRORS ** ------------------------- FORMAT: TIME EXAMPLE: 95 ? TIME/60 & } EXAMPLE #2 10 CLS:?:? 20 ? "TIMING A LOOP":?:? 30 S=TIME:REM STARTING TIME 40 FOR X=1 TO 120:? X;", ";& }: NEXT X 50 E=(TIME-S)/60:REM E=ELAPSED TIME-S, STARTING TIME 60 ?:?:? INT(E*100)/100; " SE&}CONDS"The TIME counter is active assoon as you turn on your computer. Itcounts 60 numbers per second. To geta readout in&} seconds use TIME/60. Toget a readout in minutes useTIME/3600. To get a readout in hoursuse TIME/216000. The TIME counter&}will continue as long as yourcomputer is turned on. If you want tostart the time counter from thebeginning then press the &}RESETbutton. FORMAT: TIME$ EXAMPLE: 30 ? TIME$ EXAMPLE #2 10 CLS:?:? 20 DIM T$(6) &} 30 INPUT "SET TIME - HHMMSS"; T$ 40 INPUT "WHEN TO STOP - HHMMSS";S 50 CLS 60 TIME$=T$ &}70 REPEAT 80 POKE 755,0:REM NO CURSOR 90 POSITION 10,10:? "HOURS, MIN,SEC:";:? TIME$ 100 X=VAL(TIME$)&} 110 UNTIL X=S 120 POSITION 10,12:? "RING! RING! RING!" 130 POKE 755,3:REM CURSORThis command prints&} the time ofday in the form of HOUR MINUTE SECOND(HHMMSS). In Europe we use 50 cyclecurrent and European ATARI'S run onth&}is current as against 60 cycle inthe USA. As a result of this theTIME$ function is not accurate andgains 10 minutes each h&}our. FORMAT: INKEY$ EXAMPLE: 70 ? INKEY$ 90 A$=INKEY$ EXAMPLE #2 10 REM SCREE&}N WRITER 20 ? INKEY$; 30 GOTO 20 EXAMPLE #3 10 CLS:DIM A$(1):?:?:REM GAME 20 ? "HIT THE KEY &}OF THE LETTER ON THE SCREEN!" 30 PAUSE 150 40 R=RAND(90):IF R<65 THEN 40 50 CLS:POSITION 19,12: &} ? CHR$(R) 60 PAUSE 55 70 A$=INKEY$ 80 IF A$=CHR$(R):GOTO 90: ELSE:GOTO 100:ENDIF 90 ?:? "YOU GO&}T IT!":PAUSE 90: GOTO 40 100 ?:? "YOU MISSED IT!": PAUSE 90:GOTO 40This command returns the character &}ofthe last key hat was pressed. Inexample #3 please note line 70. Line80 uses and IF-ELSE-ENDIF command. FORMAT: IN&}STR(x$,a$,i) EXAMPLE: 50 ? INSTR(X$,A$,1) EXAMPLE #2 10 DIM X$(30),A$(5) 20 X$="MY HEART BELO&}NGS TO DADDY" 30 A$="DADDY" 40 ? "DADDY IS AT POSIT. "; 50 ? INSTR(X$,A$,1)This command returns the &}beginning ofa sub string. The x$ = the originalstring. The a$ = the substring you wantto find. The i = the position innum& }eric form that you want to searchthe original string.This command will return the positionnumber where the sub string star&!}ts.Spaces are also counted. FORMAT: UINSTR(x$,a$) UINSTR(x$,a$,i) EXAMPLE: 50 ? UINSTR(X$,A$) &"} 20 ? UNISTR(X$,A$,5) EXAMPLE #2 10 DIM X$(40),A$(8) 20 X$="WHERE HAVE ALL THE S&#}OLDIERS GONE" 30 A$="soldiers" 40 ? "soldiers IS AT POSIT"; 50 ? UINSTR(X$,A$) EXAMPLE #3 &$} 10 DIM X$(40),A$(8) 20 X$="ICH BIN EIN BERLINER" 30 A$="berliner" 40 ? "berliner IS AT POSIT."; 50 ? UIN&%}STR(X$,A$,5)This command is the same asINSTR above. It searches for thebeginning of a sub string.x$=original string. a$=&&}sub string.i=starting position of the search.With UINSTR you can have lower case,upper case or inverse as the substring. &'}It does not distinguishbetween case. You can include oreliminate the starting position ofthe search. See example #2 and #3&(}. FORMAT: ERR EXAMPLE: 20 ? ERR 90 ? "ERROR # ";ERR; " AT LINE ";ERL &)} EXAMMPLE #3 10 CLS:DIM A$(15):?:? 20 TRAP 90:READ A$ 30 ? A$ 40 GOTO 20 50 DATA MONDAY,TU&*}ESDAY, WEDNESDAY 60 DATA THURSDAY,FRIDAY 70 DATA SATRUDAY,SUNDAY 90 REM ERROR TRAP ROUTINE 100 ?:&+}? "ERROR # ";ERR; " AT LINE ";ERL 110 LIST DPEEK(186):REM LIST ERROR LINEThis command list the last &,}errornumber FORMAT: ERL EXAMPLE: 20 ? ERL 90 ? "ERROR # ";ERR; " AT LINE ";ERL&-}This command prints the line numberwhere the last error occurred.See example #3 at 'ERR" ** LOOPS AND SUBROUTINES &.}** -----------------------------In TURBO BASIC you call a subroutinein 3 ways: 1) GOSUB - by line number.2) PROCEDURE&/} - by name.3) USR - by address. FORMAT: REPEAT - UNTIL - EXIT EXAMPLE: 10 REPEAT:A=A+1 20 ? A &0} 30 UNTIL A=6 EXAMPLE #2 10 CLS 20 A=64 30 ?:?:?:? 40 REPEAT:A=A+1 50 ? CH&1}R$(A);", "; 60 UNTIL A=90This command is a loop. It willrepeat itself till the end conditionis met. The end conditio&2}n must beincluded with the UNTIL statement.EXIT gets you out of the loop. SeeDO-LOOP FORMAT: WHILE - WEND - EXIT &3} EXAMPLE: 10 A=10:WHILE A 20 ? A 30 A=A-1:WEND EXAMPLE #2 10 CLS:? 2&4}0 A=90:WHILE A:? CHR$(A); ", "; 30 IF A=65 THEN A=1 40 A=A-1:WENDThis command is a loop. As longas the W&5}HILE remains NON-ZERO theloop will execute. All statementsbetween WHILE and WEND will beexcecuted. In example #2, A=A-1 is&6}the reverse counter. We terminate theloop before it becomes zero with theIF-THEN. If you go out of this loopwith GOTO use&7} the POP to clear thestack. Example #2 is the same as 'FORX=90 TO 64 STEP-1'. EXIT gets you outof the loop. See DO-LOOP &8} FORMAT: DO - LOOP - EXIT EXAMPLE: 10 DO:A=A+1 20 ? A;", "; 30 IF A=15O THEN EXIT &9} 40 LOOPThe DO-LOOP is an infinte loopunless you use the EXIT command toget out of it. The DO and the LOOPare th&:}e 2 parts needed for this loop.Anything between them will beprinted. FORMAT: IF - ELSE - ENDIF IF - E&;}NDIF EXAMPLE: 90 IF X>3:? "TOO LARGE:ELSE:? "OK": ENDIF 10 IF A<7 ?&<} "YES" :ENDIF EXAMPLE #2 10 CLS:?:? 20 INPUT "GIVE ME A NUMBER";A 30 IF A>5 40&=} PRINT A 50 GO# TOO_BIG 60 ELSE 70 PRINT A 80 GO# A_IS_OK 90 ENDIF 100 # TO_BIG:? "&>}THIS NUMBER IS TOO LARGE":?:GO TO 20 110 # A_IS_OK:? "THIS NUMBER IS JUST RIGHT" 120 END &?} EXAMPLE #3 10 CLS:?:?:DIM A$(1) 20 INPUT "IS THIS PORRIDGE OK(Y/N)";A$ 30 IF A$(1,1)="N":GO# T&@}OO_HOT: ELSE:GO# JUST_RIGHT:ENDIF 40 # TOO_HOT:?:? "THIS PORRIDGE IS TOO HOT SAID GOLDILOCKS" :E&A}ND 50 # JUST_RIGHT:? :? "THIS IS JUST RIGHT SAID GOLDILOCKS"This command has NO THEN in it.It can be used wi&B}th an ELSE or not.If you use it on one line be sure tohave a colon before and after theELSE (:ELSE:). This command must be&C}terminated with an :ENDIF. The ENDIFhas a colon in front of it if it isused on one line. See example #3 line30. &D} *** END OF PART II ***he ENDIFhas a colon in front of it if it isused on one line. See example #3 line30. $ FORMAT: PROC - ENDPROC -(EXEC) EXAMPLE: 10 EXEC START_PROG 20 END 30 PROC START_PR*F}OG 40 ? "HELLO" 50 ENDPROC EXAMPLE #2 10 CLS:?:? 20 EXEC TOO_HARD *G}30 EXEC TOO_SOFT 40 EXEC JUST_RIGHT 50 END 60 -- 70 PROC TOO_HARD 80 ? "GOLDILOCKS SAID THIS BED *H} IS TOO HARD!":? 90 ENDPROC 100 -- 110 PROC TOO_SOFT 120 ? "GOLDILOCKS SAID THIS BED IS TOO *I}SOFT!":? 130 ENDPROC 140 -- 150 PROC JUST_RIGHT 160 ? "GOLDILOCKS SAID THIS IS JUST RIGHT!" *J} 170 ENDPROCThis command is used like GOSUBexcept we use a variable label name.Just like GOSUB you should have anEND sta*K}tement somwhere in yourprogram. The PROC stand for procedureand is called by the EXEC (execute)command. The EXEC looks for*L} the PROCname and then executes it. Thecommand is terminated with ENDPROC.Anything between PROC and ENDPROCwill be execut*M}ed. ** GRAPHICS ** ----------------To get a clear understanding ofthe various graphics modes, colo*N}rs,screen postions and text windows etc.see the book "YOUR ATARI COMPUTER" byLon Poole et al. published byOsbrone/Mc Graw*O}-Hill FORMAT: CIRCLE x,y,r EXAMPLE: 40 CIRCLE 160,96,20 EXAMPLE #2 10 GRAPHICS 8+16 20*P} COLOR 1 30 FOR X = 1 TO 90 STEP 3 40 CIRCLE 160,96,X 50 NEXT X 60 GOTO 20 EXAMPLE #3 *Q} 10 GRAPHICS 8+16 20 COLOR 1 30 FOR X=20 TO 300 STEP 20 40 CIRCLE X,96,80 50 NEXT X 60 GOTO 20Thi*R}s command draws a circle. Thegraphic mode has to be stated in theprogram. x and y are the centerposition of the circle. r *S}is theradius of the circle. FORMAT: CIRCLE x,y,r,r2 EXAMPLE: 30 CIRCLE 160,96,50,70 EXAMPLE #2*T} 10 GRAPHICS 8+16 20 COLOR 1 30 FOR X=1 TO 75 STEP 3 30 CIRCLE 160,96,X,X+25 40 NEXT X 50 GOTO 2*U}0This command is the same as aboveexcept we have a vertical radius r2 sowe can draw true circles or ellipses.x,y is the *V}center of the circle, r isthe radius and r2 is the verticalradius. FORMAT: FCOLOR n EXAMPLE: 30 FCOLOR 3 *W} EXAMPLE #2 10 GRAPHICS 7+16 20 COLOR 1 30 CIRCLE 80,48,45 40 FCOLOR 3 50 FILLTO 80,48 *X} 60 FCOLOR 1 70 FILLTO 80,93 80 GOTO 20FCOLOR is usually used in conjunctionwith the FILLTO command.FCOLOR sel*Y}ects the fill in color. Thenumber of fill in colors depend onthe graphics mode. FORMAT: FILLTO x,y EXAMPLE: 70*Z} FILLTO 80,93This command fills in a shapewith the color selected by the FCOLORcommand. It is the same as XIO18,#6,0,0,"*[}S:". The x and y are thestarting position INSIDE the shape.See example #2 under FCOLOR. FORMAT: PAINT x,y EXAM*\}PLE: 40 PAINT 80,48 EXAMPLE #2 10 GRAPHICS 7+16 20 COLOR 1 30 CIRCLE 80,48,45 40 PAINT 80*]},48 50 GOTO 20This is also a type of fill incommand. This is a recursive routinethat will fill any closed shape. The*^}x and y have to be the positioninside the shape to be filled. FORMAT: TEXT x,y,a$ EXAMPLE: 40 TEXT 3,8,A$ *_} EXAMPLE #2 10 CLS 20 DIM A$(4) 30 A$="WIND" 40 TEXT 3,8,A$This command bit-blocks the text*`}in A$ at position x,y ** CONSTANTS AND ERROR CODES ** --------------------------------- FORMAT: %0 %1 %2 %3 *a} EXAMPLE: 20 X=%1 50 FOR T = %1 TO %3: ? T:NEXT TThese 4 constants stand for thenumbers*b} 0 to 3. They are used likeregular numbers. "X=1" uses 10 byteswhile "X=%1" uses 4 bytes. When youuse these numbers you sa*c}ve on eachnumber 6 bytes. It is goodprogramming to make variables ofnumbers that are used more than 3times. *d}NEW ERROR CODES ---------------TURBO-BASIC prints out in English allerrors. You do not have to look up theerro*e}r code numbers anymore. TURBO-BASIChas 8 new error codes not findable inATARI-BASIC. The new error codes arefrom 22 to 30*f} FORMAT: Error - 22 ?NESTThe loops are not properly nested FORMAT: Error - 23 ?WHILEA WHILE-WEND loop with n*g}o correspondingWHILE FORMAT: Error - 24 ?REPEATAn UNTIL with no corresponding REPEAT FORMAT: Error - 25 ?DO*h}A DO-LOOP with no corresponding DO FORMAT: Error - 26 ?EXITEXIT is outside a loop FORMAT: Error - 27 ?XPROC*i}Error in executing a procedure( There is no END line in your programetc.) FORMAT: Error - 28 ?EXECENDPROC with no*j} corresponding EXEC. FORMAT: Error - 29 ?PROCPROC does not exist FORMAT: Error - 30 ?#Variable name label d*k}os not exist. FORMAT: Error - 15Error 15 has been expanded to includean UNTIL which is in a REPEAT-UNTILloop and *l}which has been deleted bymistake ** ARITHMETIC AND LOGIC ** ---------------------------- FORMAT: HEX$(n)*m} EXAMPLE: 20 ? HEX$(32) EXAMPLE #2 10 CLS:?:? 20 INPUT "GIVE ME A DECIMAL NUMBER";A *n} 30 ? "DECIMAL ";A;" = HEX "; HEX$(A) 40 ?:GOTO 20This command takes a decimal number andconverts it into a*o} HEXIDECIMAL number FORMAT: DEC(a$) EXAMPLE: 20 A$="FF":? DEC(A$) EXAMPLE #2 10 CLS:?:?: DI*p}M A$(8) 20 INPUT "GIVE ME THE HEX NUMBER";A$ 30 ? "HEX ";A$;" = DECIMAL "; DEC(A$) 40 ?:GOTO 2*q}0This command changes a HEXIDECIMALnumber to a decimal number. The HEXnumber must first be put into a string. FORMA*r}T: n DIV i EXAMPLE: 20 A=9:B=4:? A DIV B EXAMPLE #2 10 CLS:?:? 20 INPUT "GIVE ME A NUMBER";A*s} 30 INPUT "GIVE ME A SMALLER NUMBER";B 40 Q=A DIV B:R=A MOD B 50 ? A;"/";B;" = "; 60 ? Q;" REMAIN*t}DER ";RThis command gives you the wholenumber part of a division orfraction. Example 9/4=2 R 1. Thiscommand prints the 2*u}. FORMAT: n MOD i EXAMPLE: 20 A=9:B=4:? A MOD BThis command returns the remainder ofa division as a whole nu*v}mber. Example9/4=2 R 1 This command will print 1.See example #2 above. FORMAT: FRAC(a) EXAMPLE: A=22/7:? FRAC(*w}A) EXAMPLE #2 10 CLS:?:? 20 A=22/7 30 ? "THE FRACTION 22/7 = ";A 40 ? "THE DECIMAL PART O*x}F 22/7 = ";FRAC(A)This command prints the decimalpart of a fraction ONLY. Example22/7=3.142857... This command pr*y}ints142857... FORMAT: TRUNC(a) EXAMPLE: A=22/7:? TRUNC(A) EXAMPLE #2 10 CLS:?:? 20 A=2*z}2/7 30 ? "THE FRACTION 22/7 =";A 40 ? "THE INTEGER PART ="; TRUNC(A)This command prints the Integerpart *{}of a fraction ONLY. Example22/7=3.142857 it will print only 3 FORMAT: $nnnn EXAMPLE: 20 POKE $8000 *|} EXAMPLE #2 10 CLS:?:? 20 FOR T = $0F TO $FF 30 ? T;", "; 40 NEXT TThis command allows you to usehe*}}xidecimal numbers but they areconverted to decimal numbers. Inexample #2 line 20 is converted to'FOR T = 15 TO 255. *~} ** BOOLEAN LOGIC ** ---------------------The &, !, EXOR, are used inBOOLEAN logic. They are usually usedto *}compare 2 bits. The bits have tobe positive. Negative numbers willgive you an error. Each program willprint out a table fo*}r you of theresult of comparing 2 bits FORMAT: n & i EXAMPLE: 10 CLS:?:? 20 ?,"BOOLEAN 'AND' (&)" *} 30 ? 40 ? "BIT ONE","BIT TWO", "RESULT" 50 ? "1 &","1 =",1&1 60 ? "0 &","1 =",0&1 70 ?*} "1 &";"0 =",1&0 80 ? "0 &";"0 =",0&0This command is the BOOLEAN 'AND' FORMAT: n ! i EXAMPLE: *} 10 CLS:?:? 20 ? ,"BOOLEAN 'OR' (!)" 30 ? 40 ? "BIT ONE","BIT TWO", "RESULT" 50 ? "1 !","1 *}=",1!1 60 ? "0 !","1 =",0!1 70 ? "1 !","0 =",1!0 80 ? "0 !","0 =",0!0This command is the BOOLEAN*} 'OR' FORMAT: n EXOR I EXAMPLE: 10 CLS:?:? 20 ? " BOOLEAN 'EXCULSIVE OR' (EXOR) 30 ? *} 40 ? "BIT ONE","BIT TWO", "RESULT" 50 ? "1 EXOR";"1 =",1 EXOR 1 60 ? "0 EXOR";"1 =",0 EXOR 1 70 ? *}"1 EXOR","0 =",1 EXOR 0 80 ? "0 EXOR","0 =",0 EXOR 0This command is the BOOLEAN"Exclusive Or' ** SELF BOOTIN*}G PROGRAMS ** -----------------------------If you want to have a program that runsitself upon booting up the disk na*}me it'AUTORUN.TBS'. TURBO-BASIC looks for aBASIC file by this name when the bootprocess is in operation... **}* NOTES ** -------------Variables, Procedure Names andlabels may contain the underscore(_). Now you can com*}bine severalwords into a name that tells you WHATand WHERE it goes. This is a powerfulfeature to make your programs morel*}egible. EXAMPLES: 10 TRAP 200 10 TRAP #END_OF_FILE 60 X = 65 60 # LAST_CHAR = 65 90*} IF A$(1,1) = "Y" THEN 60 90 IF A$(1,1) = "Y" THEN # FETCH_LABEL DOUBLE QUOTES --------*}-----Double quotes are allowed inprint statements. Whenever you want aquote in a print statement put indouble quotes. *} EXAMPLE: 30 ? "SHE SAID ""GOODBYE"" ANDSLAMMED THE DOOR" MULITIPLE LINE IF-ELSE-ENDIF ---------*}-------------------You can use several lines between IFand ELSE and ENDIF. See example #2 ofIF-ELSE-ENDIF on page 24 *} ARRAYS ------You can have only NUMBER arrays.Just like ATARI BASIC, TURBO-BASICdoes not allow*} string arrays. Numberarrays can be one or two dimensional.You must DIM each array.One dimensional array 'DIM A(5)'. Twod*}imensional arrays 'DIM A(5,8)'. Fora tutorial on arrays and sorting seethe TURBO-UTILITY-DISK. SORTING *} -------For a tutorial on sorting of numbersand strings also see the TURBO-UTILITYDISK. ***********}******* * * * PUBLIC DOMAIN * * * *****************I am*} collecting TURBO-BASICUtilities to be put into the PublicDomain. Your help is appreciated. Ifyou have a utility to share *}pleasesend it to the author (I prefer it ona disk if possible)This documentation is in thePublic Domain and may be copie*}d byanyone!The author of this documentaionapologizes for any omission ormistakes - they were accidental.If you cannot *}get this diskthrough any Public Domain sourceplease send $5.00 to the author tocover the expense of the disk, themailer a*}nd postage.If you have any comments orsuggestion about this documentation - they are welcome. Please write to: *} RON FETZER 22 MONACO AVE ELMONT, N.Y. 11003 TURBO-BASIC DOCUMENTATION INDEX ==============*}================= NAME PAGE ---- ---- ARITHMETIC 29 ARRAYS *} 33 *B 12 BGET 5 BLOAD 2 BOOLEAN LOGIC 31 *} BPUT 4 BRUN 2 CIRCLE 26 CLS 6 CLS #n *} 6 COMPUTERS 1 DEC 30 DEL 8 DELETE 2 DIM *} 15 DIR 2 DISK COMMANDS 1 DIV 30 DO-LOOP *} 24 DOS COMMANDS 1 DOUBLE QUOTES 33 DPEEK 4 DPOKE 3 DSOUND *} 13 DUMP 8 DUMP name 9 ERL 23 ERR 22*} ERROR 15 29 ERROR 22 28 ERROR 23 28 ERROR 24 29 ERROR 2*}5 29 ERROR 26 29 ERROR 27 29 ERROR 28 29 ERROR 29 *}29 ERROR 30 29 ERROR CODES 28 EXOR 32 *F 11 FCOLO*}R 27 FETZER, RON 34 FILLTO 27 FRAC 30 GENERAL PROGRAM *} 6 %GET 6 GET name 15 GO #name 14 GO TO 11 GRAPH*}ICS 26 HEX$ 29 IF-ELSE-ENDIF 24, 33 INKEY$ 21 INPUT *} 10 INSTR 21 *L 11 LINE LABELS 13 LIST n 16 *} LOADING 1 LOCK 3 LOOPS & SUBROUTINES 23 MEMORY 1, 3 MOD *} 30 MODIFICATIONS 15 MOVE 4 -MOVE 4 #nnnn 31 *} # name 13 NOTES 33 NUMBER SORT 34 ON a EXEC n1,n2 16 ON a GO# n1,*}n2 16 OSTROWSKI, FRANK 1 PAINT 27 PAUSE 7 POP 16 *} PROC-ENDPROC 25 PUBLIC DOMAIN 34 %PUT 5 PUT n 17 RAND *} 18 RENAME 3 RENUM 7 REPEAT-UNTIL 23 RESTORE #name 17 *}RND 18 SLEF-BOOTING 32 SORT 34 SOUND 19 STRING SORTIN*}G 34 TEXT 28 TIME 19 TIME$ 20 TRACE 9 *} TRAP #name 19 TRUNC 31 UINSTR 22 UNDERSCORE 14, 33 UNLOCK *} 3 USEABLE RAM 1 VARIABLE LABLES 14 VARIABLES NUMBERS 1 WHILE-WEND 23 *} ! 32 & 32 %0 - %3 28 -- 13 *** E*}ND OF DOCUMENT ***32 & 32 %0 - %3 28 -- 13 *** E( --------------------------- INFO for TB Docs + Files: ---------------------------This disk contains Turbo B.}asic XLfrom Frank Ostrowski plus additionaltools, like the Compiler, the Runtimemodule and some helpful documents.1) Fir.}st check out all docs !!!2) TB and Runtime have been patched to automatically disable Basic. Thus you should use AUTOR.}UN.TBS or AUTORUN.CPB to load a file automatically with TB or the Runtime module.3) The Compiler has been patched,.} it now includes a short ENGLISH (instead of german) description. Runtime module.3) The Compiler has been patched,,H