@L}5 _$% l0$)$$Hȱ$ UhL" `e$$%`$%`  R@P!( L(1   Y I`  d  Ld M * @  $ % CC$$)%1 Udߥ$9%: !0 S$% DD˙`  }J)Lr d M * @  $ % CC$$)%1 Udߥ$9%: !0 S$%} DD˙`  }J)Lr J  ((  p L ()   J}L= ( L 0q A    IB JC;? D W } LL  ` W )LA!  ߰")-݆ p" } $G@LL 08`Q")<2Q0 -G$Ș݆ UL# ; p8(()(0ʥ)NQ` }$GȘ݆LU )L ݆ L GȘ ݆LL )W>Z   HH)H }p h  hyhy D L> L JJ    ! LA*` BF }7'8  M HN H` 8 Z  \LdJJ!"! GFE@F (!L }EE !E^ ^ E E7EȩEdE/EȩE  D } .L }  ;F d  ;?F7F? ( .   Z D LL d } . D  L    p  E` , d)  D L) 0BM݊L݉} ML  N݆ L NLML [ TEqEHȱEqEh 0Gȹ G} HLL GɛL  LFREE SECTORS G) *Gȩ GȽG GȌ*jj >G} C8jJ3j2CD( C202C ԠBX` N 1? l LlD:RAMDISK}.COMLu L1 L ;LHL  T`  `1  ɐ     `TU  } L ? .  t`GBJ ~DEHI B V0dV!}QDEHI VF9 ,0 ,0 s0hhL  L` H hDHEh"}DEL8HI4 0 HI,0 0  9 .G VLO#},0 L4*IJ`llD1:AUTORUN.SYSNEED MEM.SAV TO LOAD THIS FILE.D1:MEM.SAV J y08 B|DEHI$} V0 0`B;DEL`?<0LV`@ʆ v s? F0Ξ05: [ BDEHI%} VY8 B V  @  /DE `E:D1:DUP.SYSERROR-SAVING USER MEMORY ON DISKTYPE Y TO &}STILL RUN DOS B;DE J  (` 9 V⪍ ઍ  -'}LLu ÝDEHILV 9 .l 9 .l  `` s$B BH(}I|DE V BLV nB,DE JLV B V BLVDEIʩ BꭝLu  } 3E:}DISK OPERATING SYSTEM II VERSION COPYRIGHT 1984 ATARI CORP.A. DISK DIRECTORY I. FORMAT DISKB. RUN CARTRIDG*}E J. DUPLICATE DISKC. COPY FILE K. BINARY SAVED. DELETE FILE(S) L. BINARY LOADE. RENAME FILE M. RUN AT ADDRES+}SF. LOCK FILE N. CREATE MEM.SAVG. UNLOCK FILE O. DUPLICATE FILEH. WRITE DOS FILES P. FORMAT SINGLEL !N',}#"&))9(&*)/h)''-&؆莟R'S  vL/ˢ L }Insert DOS 2.0s, type Y Λx -}DEfHI 1莏#q! @ y0ɛ8A0,' ȅ 1 1ild! 1L!NO SUCH ITEMSELECT.} ITEM OR FOR MENU! 0 .z:*{}.|{ 1 0 0JB 18L%|DL/}%DIRECTORY--SEARCH SPEC,LIST FILE?[# 0 0 &|D3" 1L!NOT A DISK FILEN !B 1L!E# 1 !BD0}ED:}:1BJ|DE 1DEBHI 1 h0ߢ 0.1}  0?詛 1 y0YЛ 1 ;#L" ;#L! BL1TYPE "Y" TO DELETE...DELETE FILE SPEC2}COPY--FROM, TO?OPTION NOT ALLOWED736 FREE SECTORS COPYING---D1:DIRECK.COMl# 0|D .L/%#3}##JB|DE 1BHID#E 1#0: B 1L!#͑### B 1#c$0SY4}S1}:## # # .#Ƚ# # 𩛙## 1,#PD#ELJ- <.BJD#E 5}1 1HH 0hh|DL%1}:̳# L% #D#EL% 1 0 . .0O% 1L!WILD CARDS NOT A6}LLOWED IN DESTINATION 0 <.|K}N 2 FORMAT. t* 5) 1L!`) 0NΞ 0 L1) 1 L!BAD LOAD FILELOAD FROM WHAT FILE?) 0 ?}0#B 1L!WHAT FILE TO LOCK?) 0 0$B 1L!WHAT FILE TO UNLOCK?DUP DISK-SOURCE,DEST DRIVES?TYPE "Y" IF OK TO US@}E PROGRAM AREACAUTION: A "Y" INVALIDATES MEM.SAV.FE! +L1   `*  70 2 2A} 0.* 1 y0 0)INSERT BOTH DISKS, TYPE RETURN^, 1 y038逍 N, 1L! ,B}C, t*  Lx+, 0 ^, 1 y0 , ,0,0 ,L+ ,I0 ,Vǭ0C}Ξ, 0 }, 1 y0C,ШC, 0K'!" H H 'h h Lx+!EF 5L1L!D,I,HhD}` NOT ENOUGH ROOMINSERT SOURCE DISK,TYPE RETURNINSERT DESTINATION DISK,TYPE RETURNE}`  `8 rL1`-* 1P* 1 y0Y`hhL!NAME OF FILE TO MOVE?- 0 0|DL% <.F},^ 1 70 0 .@L# .BJ 1  DEHIB V L1 ,} 1 70,L.  G}JB|,#P#DE 1 HI BDEHHII 1 B 1 ,^ 1 70,0La- B V,#PH},^ 1 70 0L#L!-* 1P* 1 y0Yj383}mm ݭI}}`8}``|* ? ɛ,`|:-)| / 1L!`DESTINATION CANT BE DOJ}S.SYS0 0H{ 24Δ 28/L!/) 2 Π 2 0 ξK}hAΞB,0 J 1 BDEHI,HÝDE 1HIHIDELSAVE-GIVE L}FILE,START,END(,INIT,RUN)O S0 1`BDEPHI V` S0H 1 L!M}0 0 1L~0`PLEASE TYPE 1 LETTER,0`hhL! 70 1L0L<1 ,;ɛ7,"ɛ:ݦ1ݥN}A"D|ݤD|ȩ:|ȩ|ɛ,,(/+.ީ1 1,ɛ`轤{NAMEO} TOO LONG B VL!` L1I H1EΝDL1|mDiE` V0`8d/8 i:222 1 LP}!ERROR- 138ɛ+,' 20*.. өr2 1``2TOO MANY DIGITSINVALID HEXAQ}DECIMAL PARAMETER800 0 8 00`,0'D800 H,ɛh`2L1NEED D1 THRU D8uR} ECIMAL PARAMETER800 0 8 00`,0'D800 H,ɛh`2L1NEED D1 THRU D8u>><s3>00x|73>00x`c6<9c` 33c366fffg~33>00xgfffff<11111T}{UUUU *U@PTUTP@U* 0b1<=?<GD0EHI BU} V`}   Turbo BASIC XL                V}                                 W}Version 1.1 (C) 1985 Frank Ostrowski0} ! @} RLl LwD1:*.*P:E: VH) h(`hX}h@,lHH HHHHHHӍl"H HHl !`GHFHJ*K+\`* ` ӥԤ`pp@F]!BY}A8!452"/"!3)#8,#ompilerc &rank/strowski` a$%Ȏ$!%!xөˍ Z} e` e`@X ` ~   ʎDL ՠԢӱԙӹ`֝DEIH[}B V0ZڝDa۝E8օܥׅݥܝHݝI V02Ӡڑڑ0 BLVl `= X\}ixD!YiE!80!1T  T \L/ 䥐 LZ Program length = 8o"]} Bytes GL# ĩ 䛛Press any key L# ĩjB JKD E 0٩̍` !^}0` StoppedLL '!`HHBHI ąhh`旽`L5 ' '0 ' å_}ȥȥȥ ,© ĥŔHȱhL`Ԅթօׅآ&եeօ֥eׅץe؅` ٥ ¥ ¥`} ¥`HJJJJ h) 0HHH hhh`  F¥ =¥HJJJJ Fh) !`,ineO™!BHIԝDa}E L¥ Not a BASIC ProgramLڥ۰ 'ܥݰ- ' ' ? ' ' ' ' ' 'iڐ۰`ob}"ܙݙ `ŭJ++i2R|+\Ng\+++c|dHyksc}|cc.t++i+`bfzvR+++++C|"u d}Disk Full Lei8eieiee褩%Ʀƨe}` B 0`H I/O Error - h L ' 'Ȧ䖐Ȅ !Åf}Թ"Å ť æّ`l Aƛƛ HiH Eh h L1ɭHisHL&Š Őƅڽ'g}ş`Ɯ ŅԽŅ L]ť<.ڈX"k87 9;?੃ 驏 饞7<:ƛƛșڥșڄLP H h}0.) ` &Ơ & H H` HIH hۆ `e (iLǽǽǽǽǽ"i}"țILFFȕ ȦǛǦǦǛǛǡǛǛǦǛǛǛǛǛǛǛǰǰǰǰǡǡǡ#ǡǦǽǛǽțǛljȉȉȉ#j} ,(""(2000000..222222222222222222222222222222**22*22(222(2222222222 ,(""(0000k}000--**2*(22(2222222FL驃 ǩFL驃 驗 LFLj ǩL驀,l}ɏɓ ɕ LǩLjȩ 驗Lj FL驃 驟 jȩL`FƠƠ 驉 jȩL驫,,eem}H 馜Ɯڹۅh LǠ EL1ɠ Eũ L1ɘH Ǥh8f@iiz (iLHLhhLmn}ؙěƛLȊȹؙěƛL8 ː#H Integer <0 and >65535 hԅթإԙإՙLȩ ƛgɻbɯ\[ɖXo}ɁSɌOɎKɔGɚXɜWɘ9ɀ<ɂNɃVɄYɈ\ɉcɊɋ-ɍɆɓ ɇoɅL;ě`ɃLLLˢ,,Ƀp}LLL^LȹF ɗUЮ,L-ɩLLLɹɅ IL-ɹɅ積 ILȊ8$יLq}șؘHؙěƛh`Lɩ,,LȹɃ ˈiإԙLʹV W Zл,,ةr}L-I#HɠA6'؅չ؅ԢIL-ɹؙěƛLLɹ(iL-ɩL-ɘHȹ؅ȹ؅ *!h`'s} hhՠ L HH` 䅤 ř 轊轊) ½  Not compilable `  ***t} MUELL ***LLISENTECONNELOASAV4CSAV5CLOA7ERROS*URENUVDEWDUMXTRACTOKEN  :, ,Lhhu}ՠ LHH`H QJSBh` L Compiler Error L%ɂɸɠؠLv}ěAت0װ)? Խչ L婢 ȹ )? !ěп`8P,,,,ȹ؅ȹ؅w}4@.f"g6hLiOj26FɀQɁJTPq,p,o,r,C,BL!sv@ ԩt,u,yH x}6hL!x,wH Lm楂ń兰!0$iԐń児ߩ àԈ 8 驠 (  ;y}?L!F 橠L6ȹ؅ȹ؅ ذ А,  ,LL6hhH hLU L 8 驠 ( ȹz}؅ȹ؅Hi⢆ àhL!U,,, 詄,L6 ,),I 驪 驘 驨 驊L{} !"#$%&'()*/012346=>ADEFGHIJKLMNOPQRSTUVWXYZ[\]^_5789:kl†,-+ ÈƇ.|}L>}}!.8NQ 驠,,$ ȹL L 颺,,ԩ 6詤L6 橱L6멢Ⱦ 6<,L!m,nH ȹ ~}hL!, L=,,,,,  QJSA`ު 阆٦` Term too complex LHH }àّٙ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 Byte>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 Error` REPE}AT Error` WHILE Error` ,H hгȱȱLLL,H pɄ 񩄠  L婥 hL饀HH }ĩ  hh`ԥՠ8԰ձ ĩ L{ h L  Ħ {` zȤؠ }馕䔰 'LB` Ħ {`:LȱHeȱih` h ` IF Error` 2 H 饝}٢ æّ` E멑 t$0= L&L ŤH L phH t Lh 6(() 驰 6 ĩL } Ƭ*L FOR Error` + 饝` 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 Translation by: Warren Lieuallen Compiler Operation:} For a directory of any drive, press the number 1 through 8. Then, choose the program to compile }by using the arrow keys, and press RETURN. Control D = Return to DOS Control 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 ԠٯΠ Y LL ӠٯΠ YL o")1 )  } eŀ偐LM' :'7? / LLLL6墄,ȱuuL ,Lȱȱ }LL,ҩȱӠ$0 ,Lȱ iiҠLՆԥ֥נȱհ } J Line Errorȱ֪ȱ`ܹ J Label Error`Ԇե֥נȱȱհ8ְױօօ`ȱ}ܑݑ 7L LH Nh-:H NEXT ErrorL EXIT without L LOOP ErrorL UNTIL Error}L WEND ErrorL# N ENDIF Error` Filename for the compiled program ? 1 D}  :.CTB@ !0A+19ߐ~ © ƥLɛ%0:A[H h У.C}TBD:TUZ[ oT"U8oX"Y } Another Save (Y/N) ?  !)_YN`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"+FU!J 1!^u$`@!r4 %gs.} }  Lll L"! L"! VL"! l Lq!! "!LD:*.*S:P:E:l"!q"H)  }h(`ӅԄՠ`ӅԄՠԨ`L)ӑ) `Ӣhh@,lHH!HwHHHHHӍl"H!H }yHl !`GHFHJ*K+\`* `Ӧee褌%ƉƋL"! }Ӡȱȱȱ㦌L"! ` ` `2a$%Ȏ!!xө~!! } ` `@X ` ~  } Ӣ ʎDy` SLD1:AUTORUN.CTBՠԢӱԙӹ }`֝DEIHB V0Z3ڝDa۝E8օܥׅݥܝHݝI V04Ӡڑڑ0 } BLVl `˩`80 ` .JJJJ)iFiFi1FicFi'ȐȦoFiUȐFii }Fi#iFiGi Fii@F iiFiiciՊFigi'iՊօשBL`I))83 }Ԥԥդե֤֥פץؤإ٤LK6"ХLaLaLa }E0:e٥eإeץe֥eՐ؅٥ׅإօץՅ֩L8٥إץ֥հ'I8م٘؅ؘׅט }օ֘ՅLؤm\G0Q@Ն֩م؅2եمֆשم"ե؅֥م׆ةեׅ֥؅ץم؆لԘ)q } ` ? 7i ? %!Ls`ԅՅօׅ؅م`ԍՍ֍ }׍؍ٍ`ԍՍ֍׍؍ٍ``, Խսֽ׽ؽ` , }`+ĕ ԅ)@ޥ)JJJe)e e Je0F g } Lm8`@ԠՈքׄ؄`==W3>Tvb>2b'?h`06?2'A?%C4Vu?f'70P@U??CBH ? & ? QL }m8`0 I@ԥ) oǢҠ 1  ؠ e Q ?P ¥Ii )ԅ +ĕ }Lm`@"wf?IWQpIG?9 Wa9cU? 0d? 9`?BXGB?7?()q?D>DIh8E?hyx? )D?@ (1V? }wD3331??xS48`$)Ԧƅƅƅƅƅƅ mť)8@0$Յ)e)e F } 䰃 e Q F I`U9>`D'RFuCU?b9dYdg@W2@?tS)%)@0)%ԅ }P 1 ;  e°0 Q (Vŕ ԅԥ  ƕ m`8``0?i? Q }ԍՍ֍׍؍ٍ * m N ǥ N 0 -åJeF g`L ) e٥eإe }ץe֥eՊi؊؅٥ׅإօץՅֆե1ԥ'JffffJffffJffffJffffم`ԩ&&&&*&&&&*& }&&&*&&&&*``ۄܱ T **m ȰҠݤܱEۅڦڱ= bܥeƥ }iեL@ ` **)]P` 00`` ( ((((((((8`W)ߥ & &e } &߽aȅŊِ׼Ȅ⹕ȍqȅJJJJ&eXޥeYߥ䥈 9ȅFfЎᰈ Tȍ`Ȅ佘ȅ }M 8*` Ȱi祍La L< ʘ0  L } ȑ  L ʘ# ` |ʠ)ȱ Lt nʤ n |ʠ)ȱ) } `ʠ)ȱ ʆ8ƍ0eސ`Ɗ8ް`)ȱJJJ```= }`]``` H} h`Pi`)JJJeԅԘ)Peԅ`եԆ8@EB)JJJeԅԥ)Pe }ԅԘ)eԅԽeՅ՘)JJJ}˅ԥ}˅`)JJJeԅԥ)PeԅԹeԅԹeՅդЧ` 0@P`'Nu pX@(# }d,X L `8` ¥E)))8@8e0 څۅ܅݅ޅ߄ԠF0y ޥy ݥy ܥy ۥy } ڥy و0ǠF0y ݥy ܥy ۥy ڥy ٥y ؈0ǠF0y ܥy ۥy ڥy ٥y إy } ׈0ǠF0y ۥy ڥy ٥y إy ץy ֈ0ǠF0y ڥy ٥y إy ץy ֥y Ո }0L`8`E)))8i@0 ڄԠ ( !   L* } &О ( !   L* } &О ( !   L* &О }( !   L* &О ( !   } L* &Оd ( !   L* } &ОL6 e e e e e i  } } } } } } } ǭ m m m m m m  } } } } } } } ǥՅօׅ؅مԅՅօׅ؅`hh !LHH`ؠ }ɀhhHH֥ץ?ȱȱӰ8ְױօօ0LB Fehler - à  in Ze }ile  ($8H h ) Programmende : os, un oder oad ?@ !D L RL L Filen }ame D: Jȱɛ):ȱɛ.ȩCȩTȩBȥ SLȹD:LKHJJJJ h) 0:iLp 8 }` B 0`L<馒撥ԝޥ՝*ޥ֝Tޥם~ޥ؝ޥٝ` ƒޅԽ*ޅսTޅֽ~ޅ׽ޅؽޅ`ƒޅ*ޅTޅ~ޅ㽨ޅ }`撝ޘ*` ӥԝإ՝٥֝ڥםۥ؝ܥٝݥ`LT؅Խمսڅֽۅ׽܅ؽ݅`؅مڅۅ܅݅` }ȱȱȱȱȱ`ȱȱȱȱȱ`٩@ةڝ۝ܝ`թ@ԩօׅ؅`  }LQȱȱȱȱȱ`ȥȥȥȥȥ` wLH wh LQԄՠԅք` L } !ԝD՝E֝HeםI L`Laee 8厅叅eeL!) }L)`x,Ң⅌Ҙ襉ҥ `8$ L8$ ȍ` JKiLH h) }I ! SLJUVT`T L) ʥԤհ` L ` !L8, !L8 ` iLJ놈 LJ놈 ,LQ } HԝDEILꆓBJKԝD՝E CL8醈 B LJ놈& LM J릓N }LJL)NLM%L L j L `L=! Sp D o 8 } LpL ,#,$,!pLL ,HBDEhHIL oL8馓HIBL !L8ɅĈeɐ ň }`֥ԅԅՅ,`$8n!?! D i\ iU?! iD iE=D iH ih8DHEI }HI C ,!L `L= JhhlԄե֥נȱհ  ȱօȱօ` L=Ԅ՘0) }ȱհ ȱe懰楆ƇƆ`L)L=醈ɛi懠,ɛ󥆦 Seօ` Lt Ԥբ }H e" hLQL=醈 *? , DEHI ` DLr 4 e"ɛ ,ЬLQ DL } 4eɛ SLtI L L L L L@ ; ` ; ` ; } ` ; m` L=@@ȅ@`I`)` ; USN ; FG ; ?: ;  }201 ; &' ;  ;% ;L Lå ` : : :ڰ :ΰ :ǰ :оE% } jE `0``֪ (ϰ`(8`8` }ԤՅ` e"4 L= Ԅձ80  &ԅ L  eԪp`L) HJJJJ }h) 0:i`Ԅ 0 ["ȱ)ȥ,  ՅԄ֩`?Ԣ )ɠڭ ) ڕL } ^ L)8@L` )8@D:)8@-٩֔$ሄL` } ^Ű$` hŰ` &ư` Rİ` Vİ ` rð` ƐL=0L L ;&)ԥ)8@עJjH@M }C)JJJe)e F ¥P & F Q LL)HHHHHH Vİhhhhhh ðh }ԅ` L %ઘ%ᨊ` ઘᨊ` EઘEᨊ`<|'gԥ0L=`  *  &L_, }ڄ  eڅԥeۅհ"8څ֥ۅא8ܥݰ`۠Q%0ԅإՅ٥ަ0%Q% L }ե0Lڤ`օנ6&֐ eו`L)ԘբՅ Ԣ Յ֠&&֐eܥe }ېڈ $0!ee80å/8ܥ۰uڕ0eUiV`T }UV`8UV`eTi`8TȢ` !L8醊 æ f Ŋ :ƒޑȽ*ޑ }ȽTޑȽ~ޑȽޑȽޑȥԑȥՑȥ֑ȥבȥؑȥّȥȩhihHiH&HHH wh Lhh`hh`8 }` L=醊 f ŊHȱȱȱȱȱ妊 w Qh LhhHHe`*ȱȱ }ȱȱȱjEE `EjI ` p D il ie o"p"q" i i i i i io"8 }o" K膖  Lo"L=؝ٝڝ۝ܝ륄Lei   }`L=饏őŐ%Ƒ8 Ƒ` f,L= fhhHH`, :hihHi }H`` J :hihil  ¥Ӡ L  @Մ$ Q` Q` QLQH } h @Յ՘JJJJ y) 0:i`AVC2 5 - <) - <  }L L e e`e`&&&&&&eee` &&eee&*` u }8)Ӱ% hhȱԅȱԅl ʰԤզ`hhheӨhiHH` u u88Ӱڪ :(jheӑhi Lh }פօۄڠ܄ݠFfؐeڅܥeۅ0&ۈ`L >ӆiHi0Hƒiֹ*i0Ѕ &ݤݥ &e܅ܘe݅ }hhLlӅ؄م܄0օצӽАԥեܤ Q `ƒ*ޅޅ wإ }ٰ5֥װ+ eܥe*ݨ &eܪeeըeԐ`L L L ӆ 4Ԥզ L_ ӆ Ԥզ L }_ L LL=ӦԆՆֆ׆Lw Y٤ ۘ` Y  L~ Y ې Hh`פōČԅe }Յe &"8ӥب`ƒޅ*ޅ L=؅مƒ8*ޥ֥אeԥe` } w㰶H wֆ׆h8Lԩ!HHֆ׊HHʽ޼*ԆեHL!àLLeԐ `8԰L) } w㰶H wֆ׆h8Lԩ!HHֆ׊HHʽ޼*ԆեHL!àLLeԐ `8԰L) 2595TURBO 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-UNT}IL loop.o30UNTIL UNTIL Terminate when condition met.o30WHILE WHILE Start a WHILE-}WEND loop to end when condition met.o30WEND WEND Terminate a WHILE-END loop.o30ELSE ELSE } Optional extension for IF. The IF condition must not be followed by a "THEN", but terminated by end-of-line or c}olon.o30ENDIF ENDIF Ends an IF-ELSE-ENDIF or IF-ELSE condition. Note that this allows an IF condition to} span more than one BASIC line, provided the "IF" statement is structured as shown in Note 4.o30DO DO } Starts an "infinite" DO loop.o30LOOP LOOP Cycle back to the start of a DO loop.o30EXIT EXIT } Exit a DO-LOOP loop.o30PROC PROC name Start definition of procedure.o30ENDPROC ENDPROC } End definition of procedure.o30EXEC EXEC name Execute procedure name.General Programmingo}30PAUSE PAUSE n Pause processing for n/50 seconds.o30RENUM RENUM n,i,j Renumber the program sta }rting at line n,first number is i, increment is j. This function will handle GOTOs, TRAPs, and all other line referenc!}es except those which involve variables or computed values.o30DEL DEL n,i Delete lines n-i.o30DUMP "} DUMP Display all variables and values. For numeric arrays, the numbers are the DIMed values plus one. For s#}trings, the first number is the current LENgth of it and the second number is the DIMed size of it. DUMP also lists procedur$}e names and labels with their line values.o30 DUMP name DUMP to device name, such as "P:" or "D:DUMP.D%}AT".o30TRACE TRACE Trace program during execution.o30 TRACE - Turns trace mode off&} (Default).o30DSOUND DSOUND n,f,d,v Form of SOUND which activates channel-pairing for increased frequency range.o'}30 DSOUND Turns off all sounds.o30GO TO GO TO n Alternate form of GOTO.o30*L (} *L Turn line-indent on (Default).o30 *L - Turns line-indent off.o30*F *F)} (or *F +) Special mode for FOR..NEXT loops which corrects a bug in Atari BASIC. Seems that in Atari BASIC, an "illeg*}al" reverse loop like "FOR X=2 TO 1:PRINT X:NEXT X" will execute once even though the condition is met initially (X is alread+}y greater than 1). Turbo BASIC fixes this bug, but leaves it available for Atari BASIC programs which may take advantage of ,}it.o30 *F - Turns off the special FOR..NEXT mode to make Turbo BASIC act like Atari BASIC.o30*B -} *B (or *B +) Command which allows the break key to be trapped via the "TRAP" command within a program.o30 .} *B - Turns off the special BREAK key mode.o30-- -- Special form of REM which pu/}ts 30 dashes in a program listing.Line Labelso30# # name Assigns the current line number to the 0}label name. This is a convenient way to get around the problem of renumbering when using variables as line numbers. Label1}s can be thought of as a special form of variable, as they occupy the variable name table along with the "regular" variables.2} We also believe that the number of variables allowed has been increased from 128 to 256 to allow for the addition of these 3}labels.o30GO# GO# name Analagous to the GOTO command.Modificationso30CLOSE CLOSE 4} Close channels 1-7.o30DIM DIM a(n) Will automatically assign a value of zero to all elements of the numer5}ic array being dimensioned, and null characters to all elements of a string (The LEN is still variable, however, and initiall6}y zero).o30GET GET name Wait for a key press, assign the value to name. Same as "OPEN #7,4,0,"K:":GET #7}7,name:CLOSE #7".o30INPUT INPUT "text";a,b... Prints text as a prompt before asking for variable(s), same as Microsof8}t-BASIC.o30LIST LIST n, List program from line n to end.o30ON ON a EXEC n1,n2,... Variation of 9}ON...GOSUB for procedures. N1, n2 and so on are names of procedures to be run.o30 ON a GO# n1,n2,... Similar to :}ON...GOTO except that line labels are used instead of line numbers.o30POP POP This command now pops t;}he runtime stack for all four types of loops.o30PUT PUT n Same as "PRINT CHR$(n)";o30RESTORE RESTOR<}E #name Restores the data line indicated by the label name.o30RND RND Parentheses are no long=}er needed at the end of this command, but it will still work if they are there.o30SOUND SOUND Turn off al>}l sounds.o30TRAP TRAP #name TRAPs to the line referenced by the label name.TURBO BASIC FUNCTIONS:Ar?}ithmetic/Logico30HEX$ HEX$(n) Convert n to hex string.o30DEC DEC(a$) Convert hex str@}ing A$ to decimal.o30DIV n DIV i Integer quotient of n/i.o30MOD n MOD i Integer remaiA}nder of n/i.o30FRAC FRAC(a) Fractional part of a.o30TRUNC TRUNC(a) Truncates fractional pB}art of a.o30RAND RAND(n) Generates random number 0-n.o30$ $nnnn Allows input of heC}xidecimal numbers, but they are converted to decimal. Ex: "FOR I=$0600 to $067F" => "FOR I=1536 to 1663".o30& n &D} i 8-bit boolean AND.o30! n ! i 8-bit boolean OR.o30EXOR n EXOR i 8-bE}it Exclusive-OR.Memoryo30DPEEK DPEEK(m) Double-PEEK of m,m+1.o30TIME TIME Time oF}f day(numeric).o30TIME$ TIME$ Time of day string, HHMMSS. Unfortunately, the time commands don't work prG}operly because they were written for European Ataris which operate at 50 Hz, instead of 60 Hz like American ones, the net resH}ult being that they gain 12 minutes each hour.o30INKEY$ INKEY$ Returns last character typed.o30INSTR I}INSTR(x$,a$) Returns relative location of start of string A$ within X$ (returns 0 if not found). The match must be exJ}act; strings with the same letters but differences in case or type (normal or inverse) will not be found.o30 INSTRK}(x$,a$,i) i specifies the starting point of the search.o30UINSTR UINSTR(x$,a$) Same as INSTR, does not distL}inguish between case or inverse characters. Ex: UINSTR("HeLlO","hello") returns 1.o30 UINSTR(x$,a$,i) SpecifieM}s optional starting point.o30ERR ERR Value of last error number.o30ERL ERL LiN}ne last error occurred at.Constants%0%1%2%3These four constants simply stand for the numbers 0-3, respectively. O}The difference with using these in a program is that "X=1" requires 10 bytes, whereas "X=%1" only needs 4 (numbers require 7 P}bytes, 6 for the number plus an identifier preceeding it. It is always a good practice to make variables for numbers that arQ}e used more than three times in a program).NOTES:1. Variable, Procedure and Label names may contain the underscore (_)R} character.2. To print a double-quote (") in a text string, use two of them together, instead of the Atari BASIC method of S}using CHR$(34). Ex: "TEST";CHR$(34);"TEXT" becomes "TEST""TEXT" in Turbo-BASIC, both of which produce the output => TEST"TET}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 U}automatically load and run this file.4. Turbo-BASIC also prints out English descriptions of all errors, including several nV}ew ones for errors involving the new commands:Error - 22 ?NEST = Loops not properly nested.Error - 23 ?WHILE = WEND with noW} corresponding WHILE.Error - 24 ?REPEAT = UNTIL with no corresponding REPEAT.Error - 25 ?DO = LOOP with no corresponding DOX}.Error - 26 ?EXIT = EXIT is outside a loop.Error - 27 ?XPROC = Error executing PROC.Error - 28 ?EXEC = ENDPROC with no corY}responding EXEC.Error - 29 ?PROC = Procedure does not exist.Error - 30 ?# = Label does not exist.Also, Error 15 has been eZ}xpanded to include an UNTIL which relates to a REPEAT which has been deleted.4. A multiline IF is constructed like this:1[}0 IF X > 1020 PRINT X-1030 GO# TOO_BIG40 ELSE50 PRINT X60 GO# X_IS_OK70 ENDIFNote also the use of line la\}bels in the GOTO statements.---Dave & Laura YearkeE50 PRINT X60 GO# X_IS_OK70 ENDIFNote also the use of line la5 THE TURBO COMPILER Documentation and Operating Instructions by Dave Arlington ^} Original Program by Frank Ostrowski This documentation is provided by the Western New York Atari Users Group and ma_}y be reprinted freely provided this credit is included. I know everyone is still rubbing their hands in glee over `}TURBO-BASIC, the new public domain Basic interpreter imported from Holland and Germany. This month we are proud to presenta} a new treat from our international friends overseas, the TURBO COMPILER. The TURBO COMPILER will increase the speedb} of your TURBO BASIC programs 3-5 times and regular Atari BASIC programs can be speeded up to 10-15 times faster. Unfortuc}nately, like TURBO BASIC, the TURBO COMPILER will only run on the XL/XE series of computers. In addition, the finished comd}piled programs will also only run on the XL/XE series. The TURBO COMPILER is very easy to operate. It can be used wie}th more than one disk drive, even Drive 8, the 130XE ramdisk. On the TURBO COMPILER disk, you will find several files. Thf}e important ones for the operation of the TURBO COMPILER are COMPILER.COM and RUNTIME.COM. Before you begin, you should prg}epare two disks. The first one should be a blank formatted disk with DOS.SYS and DUP.SYS written on it. Your second disk q}?B%DOS SYSB*)DUP SYSBPSCOMPILERCOMBXRUNTIME COMBbTBDOC1 TXTB&]TBDOC2 TXTBTURBO COMBSEARCH12LTBB9SEARCH12TXTBWZAPPER CTBBgZAPPER DOCBZAPPER LTBshould contain your BASIC program (TURBO or ATARI BASIC). To begin, insert the TURBO COMPILER disk into your drive ar}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. Cs}hoose DOS Option 'L', Load Binary File and load the file COMPILER.COM. After a short while, you will see a screen full oft} 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 screeu}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 youv} really want to do this. If you do, don't forget to 'J' for Ja and not 'Y' for Yes!! To compile your programs, remow}ve the TURBO COMPILER disk from the drive and insert the disk with the program you want to compile. (If you have two drivex}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 (Nuy}mber 2 if you have two drives). A complete listing of all the files on that drive will appear on the screen with one highlz}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. - your old Atari BASIC program`)6^^<s3>00x|73>00x`c6<9c` 33c366fffg~33>00xgfffff<}11111{!!\]_\ED!EOHI B V`}   } TURBO-BASIC XL 1.5 (c) 1985 Frank Ostrowski!  ӥL]""$$ (p}%J[WܠjeC /D%Zub2gTSt$8®݊Ò2% 5R}Ţtd.’$3@X7t5w5$?## $#L+D:*.*S:C:P:$#.#) `:#(6ENeU\l؏&/ؕ؄sأ$}LENeU\lأ$8آǔƐƉƐƇ4cY%٦rULۉCۄړp^gyض%iwܸJڅ*ܣ$ڭڞجئأأ}$ ,(""(222000000..222222222222222222222222222222**22*22(222(2222222222 ,(""(}0000000--**2*(22(2222222 V`hh@,lHH$HHHHHHӍl"}H$HHl $`GHFH\` ` 4ӭ l 4Lq ӠԪӅԆL} Ӡ L( }) ` b% +L:#HH 0 HHLj%ӥHlL{ee 8eee}eӦee褢%ƚƜ`88夅奅8}夕奕Ӡȱȱȱ㦢`L+`8` .E)))8@8e0 }*څۅ܅݅ޅ߄ԠF0y"ޥy"ݥy"ܥy"ۥy"ڥy"و0ǠF0y"ݥy"ܥy"ۥy"ڥy"٥y"؈}0ǠF0y"ܥy"ۥy"ڥy"٥y"إy"׈0ǠF0y"ۥy"ڥy"٥y"إy"ץy"ֈ0}ǠF0y"ڥy"٥y"إy"ץy"֥y"Ո0L-`8`E)))8i@0 *ڄԠ}"("!""" "L**""""""&О"("!""}" "L**""""""&О"("!""" "L**}""""""&О"("!""" "L**""""}""&О"("!""" "L**""""""&Оd}"("!""" "L**""""""&ОL-6"e"}"e""e""e""e""i""}"""}"""}"""}"""}"""}""ǭ"m"""m"}""m"""m"""m"""m"""}"""}"""}"""}"""}"""}""ǥՅօׅ؅مԅՅօ}ׅ؅`` ` ` `80 `ԥՅ +.JJJJ)iFiFi1FicFi'ȐȦoFiU}ȐFiiFi#iFiGi Fii@F iiFiiciՊFigi'iՊօשBL-`I}))83Ԥԥդե֤֥פץؤإ٤L,K6"ХL--L--L-}-E0:e٥eإeץe֥eՐ؅٥ׅإօץՅ֩L-8٥إץ֥հ'I8}م٘؅ؘׅטօ֘ՅL-ؤm\G0Q@Ն֩م؅2եمֆשم"ե؅֥م׆ةեׅ֥}؅ץم؆لԘ)q +` . |. &7i |. ,%!L?.`刱䈱㈱∱}ሱ`ԅՅօׅ؅م`ԍՍ֍׍؍ٍ`ԍՍ֍׍؍ٍ`L.L. Խսֽ}׽ؽ` L%/`ӽޕ &ԅ)@إ)JJJe)e - M} 1. &Je0F 2 . /L(8`@ԠՈքׄ؄` . |. , . . |. , #/L(8`0 I@ԥ)} 2f / . & r 1. #/ &?P , .Iiԩ +)ԅ ,ӽޕL(`8`$})Ԧ61718191:1;1 (ť)8@0$Յ)e)e -F . / , . &1 1.} #/ &F I`U9>`D'RFuCU?b9dYdg@W2@?tS)%)@0)%ԅԢ / . &G } 1.Ӱ6 #/ &.ӽߕ ,ԅԥ B1 (`8``0?i? . . / , #/ &ԍՍ}֍׍؍ٍ . . ( / , O2 / ,0 .JeF 2`L+) .e٥eإeץe֥e}Պi؊؅٥ׅإօץՅֆե1ԥ'JffffJffffJffffJffffم`ԩ&&&&*&&&&*&&&&*&}&&&*`Pi`)JJJeԅԘ)Peԅ`եԆ8@EB)JJJeԅԥ)PeԅԘ)3eԅԽ3eՅ՘)JJJ}3}}3`)JJJeԅԥ)PeԅԹ3eԅԹ3eՅդЧ` 0@P`'Nu pX@(#d,X L(  兢}0襙 bɥ⥋㩀 50ɥ0DȱȱȄ   ik#ZMkVgğe拰ㅋ}⅊0 eee拰 L f5дƨħ 4LY4 f5К,樥ŧH 4h h5L4樤ܱ.* O %30}  5Ԅ +(fԤԈ`ř嚰Ԥ`ڥۥड़0-԰eڅڐۈ0eeL+58` }O#`,#5  6`]5 6DE 68DHEIHI V0$ 6Sл B} V,# 6` $#LllBHI V0HH V0Ԩh``{a$%Ȏ$$xө$Ѝ$ `} `@X a Ӆʢ ʎD  _ɠ %` ɩHH `өL: g% D}:AUTORUN.BASөjJHH`ՠԢӱԙ!ӹ!`֝DEIHB V0Y|ڝDa۝E}օܥׅݥܝHݝI V0+Ӡڑڑ0`l `  䅠 _ɠԐ}e拢 &L &Lħ © ¥4 䥝ň剰' k ɀ8@4= LY ĩ`OJ ]J?L} KԪȱLRHHצ R, hhLRHHHHHH /0ȑȑޠhhhhh}h`HHHHHHHHHH $H bɐhȥLHhhhhLň剰)}i桰` )``L(兢ħ #$ x Hҩ h$襚ҥ ԝ`} UV #T` ` `,H ¥ȍ` JKhLŢ  #)I L ¤Ȣ`L¦ ¦ Lĩ} ½J*K+ $LąLĩ …L~ …`H Ġh é`,H hH Ġ  ĭ 8}}} L n [h`LkL © 8倝偝 Ġ  ĥ󥃅  Lĩ LH} éLH#h ĩ`H hKJ L+ , H hHHħ s hKhJ  Lĩ# qL } ŘL ũ& QŽLM " ĽNL  ĥԝL՝M  ĥԝN%LV  ¤ħ` Ťħ` ƪ Ċ }Ťħ` ¢`届 x݅ L ĽCӠɀ L]Ɉ L] Ln LŠI}HEDBL$HH hh +L `ħ LĢl ¦`YDAER ԅՅ֦}󅗄`L+ ¢p 0 Hp hɈL` ,#,$,!Lé ,H ĥDEԝH՝Ih L}©L $`L© , k ĩԅ  + ĥ 夨ħ`2ƪƪ ! A!Ƚa!Ƚ!Ƚ!Ƚ!Ƚ!}``氤hhL1@$ƪư 0 0 n$P`L+FҐ֥װ綾إٰو LǠFf}ؐ ee&ee* &eeeԪeըee$.ƪ@!Ƚ`!Ƚ!Ƚ!Ƚ!Ƚ!`檦}!!!!`!@!^!` Ȅ 8 n奱 ٥Lǥ֤צưĘ=ŗ78֪א& } eԥe$`L: L ԅՅօׄ 1פ& ٤ţĢԅeՅe8包卅 ]&} 8Ԩժ%אְ`ֆL夨ħ` FҰg8&0ei֥i0Tׅiإi0BJe؅eم0&f}fff&0 &0 eeL+օפإ颎 %8包ԥ卅 L ɥ }ȱъŠe拰8``,ªȱȱI ѝ3ȥLɥHHO]}  ȥe暰Х ȥL+ʅȱhh`Lħ OԪȱԨ``L :0} `L(奷 bɥ󥋅ȱȱȱȄ#鈄0B8eeŶ}ɛ,@LBˤ,ɛ`L?± ˤ樱f Oƨ x݅ + ~ [ˠ O樥0# +  L˥`}LL :ɛ,$PH h $P润䧰 ʐLʦ䧐 +` ʐL3LBˢ}ԝD՝E֝HםI L 兢L]& 兢L% ,L6 ,L6 &L6 (L6妪@!I@!` ؐb`P KW ؐRB ؐ}=;G ؐ4@ ;+ƪƪ@!=A! (ƪƪ@!A! ƪ@! ,@@檦@!`!!!!!!`ƪ@! ǩjҤ} /L.٤ƪƪ@!@!, 舽`!`!!ـ!!٠!!!!!`@!jI*` . ֪ (}ϰ`(8` ֤ׅԄ +҅L: Lyƪ8吪周Ly sũ + ŐL Ly sŠԄ h L}} L}٩    e쪽pLyL( + ڥHJJJJ h) 0:i`  ک; n +ȱ)ȥ%}ݓ Lh ԍՅԄׅ֩өL:ƪ?Ԣ )ɠ )  -L &Lڦ@!)@!` n)8@} -L:` / n)8@I= n)8@/ѩ֔$ሄ ,L: + n 0L8 n} 0L8 n H1L8 n /L8 n /L8 n D/L8 n 1L8LLإL( &)ԥ)8@JjH@}MC)JJJe)e .F / .P . &F . #/ &L.L(HHHHHH /hhhhhh &} Y/hԅL:,` L _ܘ%ᨥ%Ly _ܘᨥLy _ܘEᨥELyٚ<|'g 0L`}!!!!i ` &LإL٥LyɥLzvmZ ƨ!0 4 䦵 ¥ԝD՝E֝Heם}I Lܤį eį L` x݅ƨLLLܤ ©`#ۢ Lĩ_,ߤ} ڄ . eڅԥeۅհ"8څ֥ۅא8ܥݰL۠Q%0ԅإՅ٥ަ0%Q% }L-ե0LޥڤLyمօנ6&֐ eו`L( Hħ hբՅ `ޥԢ `ޥՅ֠}&&֐eܥeېڈ 7 \ 7 j N \ N j$0!ee80å/8ܥ۰uڕ0}eUiV`TUV`8UV`eTi`8TȢ` $L„')Q ȱ8 e}新`8`L齀).Q Ӱȱ8e新 O :L䅫# *$Ŭ} Ʃ HL"䥫ș L` Ml/#樱0ZS'`ȱȱȱȱȱȱȄ`ȱօȘuԩׅu՘e֨҄`}I 屝Ҡȱȱȱȱȱ` n$҅J?eԨe` L 兙 兛 n %3 Ԥ` ҩ,} , , L檤 ٙ!ؙ!י!֙!ՙ`!ԙ@!ә !ҙ!` 䤪ƪ!ٹ!ع!׹!ֹ`!չ@!Թ !ӹ!`ƪ!!}!㹁!a!A!Lp ґȥӑȥԑȥՑȥ֑ȥבȥؑȥّ` ***j)e)e`ʭȅiȅ}iȅȩȩ Lfإ  4  \ +] ¥򄟄}   넨ɛ$0L祔 Z f0#ڠ쩀 ߩ6ei$0 녖چ + !5}ɛȑ @膔7 ɛ 襔!ɛL! _ɩ8$IȢ %e拢 } &!$P* &8孨客 "&$ 1L~ L~ &L _ɰe拢 &L~ +0 %30Ԅ }L 9:枢0 O L :H9Hhh tLHH`h}hLCL馩`ʆLC枢0ְşLC`A枢Ɣ!L!L}!T 򈩛LQLD ijq ߰,iŰD VD8` 覲`8` 넬 S( +饰}0 S0:$$ p8`$p (ȩ@҅ҥ򄬤 ߰ A L8򨢄 %Ӥ򈦬ʽ ʽ % }+HH 屝EҨhh$P0Ƭ 襯I `_A[`8`80 &Ոԅ}` 넬$ +  + h갳 h) + , 褔ԙ!` "8` 襔 ɛ "ȱ"}嫤!`! `) ɛ%)a{)_0:A[_դ`RE͕DATINPUԑCOLOҝLISԖENTEҚLEԛIƜFO}NEXԑGOTϑGO TϑGOSU½TRAАBYŐCONԞCO͟CLOSŐCLҐDEǞDI͐ENĐNEנOPEΖLOAĖSAVŢSTATUӣNOTPOINԡXIϤOΒPOKťPRINԐRAęREA}ĨRESTORŐRETURΩRUΐSTOАPOХGEԫPUԑGRAPHICӒPLOԒPOSITIOΐDOӒDRAWTϓSETCOLOҬLOCATŔSOUNĦLPRINԐCSAVŐCLOAĚERROR- }DPOKœMOVœ-MOVŪ*ƐREPEAԑUNTȊWHILŐWENĐELSŐENDIBPUBGEԒFILLTϐDϐLOOШEXIDIҖLOC˖UNLOC˖RENAMŖDELETőPAUSŖTI}ME$PROøEXEÐENDPROÑFCOLOҪ*̕-RENU͒DEDUMЪTRACTEXԖBLOAĖBRUθGO*’PAINԟCLӔDSOUNCIRCLū%PUԘ%GEԚG}OTGOSUTSTETHEΣ<<>ުNOOANĨ<<>STRCHRUSASVALEADATCOPEESIRNFREXLOCLOSQSGABIN}PADDLSTICPTRISTRIDPEE˦INSTINKEYEXOHEXDEDIFRATIMETIMMOEXERNRANTRUN%%%%GOUINSTERER+,%5}&6(+8,<Xk`fghilm^deDѳHc?,Ќ,е,Y_Ҳ+7,/0}1 2!3"4Ɛ"-"."-؂ٿ֐ː}ĐאŐbj+9,+;,ʐͭ}ͭ@ABC\=>[<+:е<,&%rvnnxc<\}-78s_XV+@D&0d*"'2GJh N}Rl~&2 +饰(+VWZ ]a8`L`  ¤ħ.H h L5 䄡 } 䅭 bɠ04Ů .ŭ%) e拰 ĩ L+Ư0 Le}`毤Hɛ) h`  L ȱ R @ʆ ȱȄ Iğ` :62T F :}7 8 Lbԩ- L 8 8,I ɨ 8L.UH `ƨh $ %3   + \L L 8󅯩" } 8" ©" Ư" L8q :Z#]abj(=) W같  L樤ħ`hh`H YhZ }L<>EO ƹƹ0`H f5h`I&` =? FQA` L񄳱ȱI 䦐}Ħ ąŅ T k /䧰 k ,Ǡ ĩJH ThĥȑĥȑĦʊȑ`HHąŅ}H h hhhh ȱIELZ L`ȱI Hȱȱȱȱȱ }, h @ $L+L.*ȱȱȱȱȱjEE `EjI `e`ħ ¥}0 ` Lk 䦪`! 䧰L A@L `I&`L ©؅ L.}0`STOPPED륺 bɠhhL :ʅ` k %3Hƹ h5h`hbjH h # }ԤLQ #LLei  `LԑȥՑȥ֑ȥבȥؑȥّ``䈥剰 }#)iiLɠL4űI&`048ץğ=ȱȄ  }`L  L0e拠0ȱȄL  䦪`!' >?L (<ж`!  $Л +`,LőŐ78Ƒ8 Ƒ`8` - PѠ }`,,L L PQ 8,L ȱI ѝߠȱ`ԩ},L E  $EL+L],,,؍ 0âLɀL ©7 F󦹩 RbL g }0g `Ո V fL{Ն + +􅕄L AT LINE?BLOAMEVALU>#VAR$LE?DAT>3276INPUDISTACOVERFLO?LIN?}FOTOO LON?DE?GOSUGARBAG?CHMEͣ?LOA?NES?WHIL?REPEA?D?EXIXPRO?EXE?PRO?IS OPE?DEWR ONLCMNOT OPEΣRD ONLEOT}RUNTIMEOUNA!FRAMCURSO!OVERRUCHKSUDONMODNOT IMPRA͠D?>#FILEDSK FULFATAL I/FILENAMPOINLOCKEDCM>DI}?FILPOIN?APPNBAD SECTORӥHՄ +h & .hԩ + ,҅L: ƪn (@Մ$ 0` 0}` 0LoH - . /h &@Յ՘JJJJ X) 0:i`AVC2 sŠ 5  <)  <} L L + e +e`e`&&&&&&eee` &}&eee&*`` 兙 䦪!0 4 ۄܱ **m ݤܱEۅڦڱ= } ܥeƥiեLN@ ` **)]` 00`` ( ((((((((8}`W)ߥ & &e &߽řِ׼JJJJ&eXޥeYߥ䥛 9 FfЎᰈ } `  M 8*` 兙 󥐅i祣L{ &L}  0 & L ȑ & L; # )ȱ L })ȱ) )ȱ 8ƣŐő0eސ`ƙ8ް`)ȱJJJ`}``=`]``` E߭H Ġ} hL±&Lv`[  ȱ R] } L L  䅠 bɰhhğȱȄ L l"0e拱LjLx`[  ȱ R] h31000 --31001 REM Ҡ31002 REM à̠31003 REM 31004} REM 31005 --31006 # SEARCHER:ZSCRMEM=DPEEK(88)31007 GRAPHICS %0:TRAP 31011:POKE 709,12:POKE 710},%0:POKE 712,%2:POKE 752,%0:DPOKE 729,280:ZLM=%1:POKE 82,ZLM31008 DIM ZLINE$(200),ZNEWLINE$(200),ZSRCH$(200),ZRPLCE$(200),ZC }NFRM$(10),ZCASE$(10),ZBLNK$(840),ZINVERT$(41)31009 ZBLNK$(840)="":ZINVERT$="h`hhhhhh8)IԈ`"31010!} ZCNFRM$="Yes":ZCASE$="Yes":ZSTART=0:ZEND=3100031011 TRAP 31011:POSITION ZLM,%0:? "ͺ ";ZCNFRM$:POSITION ZLM+11,%0:"}INPUT " ",ZCNFRM$31012 ZCNFRM$=ZCNFRM$(%1,%1):IF ZCNFRM$="N" OR ZCNFRM$="n":ZCNFRM=%0:ZCNFRM$="No":ELSE :ZCNFRM$="Yes":ZCNFR#}M=%1:ENDIF 31013 POSITION ZLM+12,%0:? ZCNFRM$;" "31014 TRAP 31014:POSITION ZLM,%1:? "Ƞź ";ZCASE$:POSITION$} ZLM+11,%1:INPUT " ",ZCASE$31015 ZCASE$=ZCASE$(%1,%1):IF ZCASE$="N" OR ZCASE$="n":ZCASE=%0:ZCASE$="No":ELSE :ZCASE$="Yes":ZC%}ASE=%1:ENDIF 31016 POSITION ZLM+12,%1:? ZCASE$;" "31017 TRAP 31017:POSITION ZLM+17,%0:? "Ǡź ";ZSTART1:&}POSITION ZLM+31,%0:INPUT " ",ZSTART1:ZSTART=ZSTART131018 TRAP 31018:POSITION ZLM+17,%1:? "Ǡź ";ZEND:POSITION ZLM'}+31,%1:INPUT " ",ZEND31019 IF ZENDZEND THEN +}POP :GOTO 3105531027 POSITION ZLM,11:LIST ZLINE:POSITION ZLM-%1,12:POKE 842,13:INPUT " ",ZLINE$:POKE 842,12:ZS=%0:ZF=%13102,}8 WHILE ZF31029 IF ZCASE:ZF=INSTR(ZLINE$,ZSRCH$,ZS):ELSE :ZF=UINSTR(ZLINE$,ZSRCH$,ZS):ENDIF 31030 IF ZF31031 ZCNT=ZCNT+%1:-}ZCHG=%1:POSITION ZLM,11:LIST ZLINE31032 IF ZCNFRM:POKE 764,255:POSITION ZLM,23:? "ŠŠٯίѩ ";:ZJ=ZSCRMEM+480+.}ZF31033 ZJ=ZJ+(ZLM*(ZF>80-(ZLM*%2)))+(ZLM*(ZF>40-ZLM)):ZL=LEN(ZSRCH$)31034 IF ZF<40 AND ZF+LEN(ZSRCH$)>40 THEN ZL=ZL+13103/}5 IF ZF<79 AND ZF+LEN(ZSRCH$)>79 THEN ZL=ZL+131036 REPEAT :ZA=USR(ADR(ZINVERT$),ZJ,ZL):PAUSE 10:UNTIL PEEK(764)<>25531037 G0}ET ZKEY:PUT ZKEY:POSITION ZLM,11:LIST ZLINE:IF ZKEY=89 OR ZKEY=121:ZCHG=%1:ELSE :ZCHG=%0:ENDIF 31038 IF ZKEY=65 OR ZKEY=97 T1}HEN POP :POP :POP :POKE 752,0:CLS :GO# SEARCHER31039 IF ZKEY=81 OR ZKEY=113 THEN POP :POP :POP :POKE 752,0:END 31040 ENDIF 2}31041 IF ZCHG:ZCHNGD=ZCHNGD+%1:ZNEWLINE$=ZLINE$(%1,ZF):ZNEWLINE$(LEN(ZNEWLINE$))=ZRPLCE$31042 IF ZF+LEN(ZSRCH$)>LEN(ZLINE$)3} THEN GOTO 3104431043 ZNEWLINE$(LEN(ZNEWLINE$)+%1)=ZLINE$(ZF+LEN(ZSRCH$))31044 ZLINE$=ZNEWLINE$:MOVE (ADR(ZBLNK$)),ZSCRMEM+4}400,56031045 POSITION ZLM,12:POKE 766,1:? ZLINE$:POKE 766,031046 POSITION ZLM,19:? "CONT":POSITION ZLM,9:POKE 842,13:STOP 5}31047 POKE 842,1231048 ENDIF 31049 ZNEWLINE$="":ZS=ZF:ZS=ZS+((ZCHG)*(LEN(ZRPLCE$)-%1)):IF ZS>LEN(ZLINE$) THEN ZF=%031050 E6}NDIF 31051 MOVE (ADR(ZBLNK$)),ZSCRMEM+400,56031052 WEND 31053 ZSTART=ZLINE+%1:ZLINE$=""31054 LOOP 31055 POKE 752,%0:POSI7}TION ZLM,19:? ZSRCH$;" was found ";ZCNT;" times.":? "It was changed ";ZCHNGD;" times.":? "";31056 ? "8}";:GET ZKEY:IF ZKEY=81 OR ZKEY=113:END :ELSE :ZSTART=ZSTART1:GOTO 31020:ENDIF "";31056 ? "Y SEARCHER -------- for Turbo BASIC XL by Earl Davidson Version 1.2":} (4/87)Copyright 1987. All commercial rightsreserved. This program and documen-tation may be distributed freelyprovide";}d this notice is included andno charge is required, other thannominal fees for disks, download time,etc. User groups and "<}BBS's may postthis program and include it on publicdomain distribution disks. --------------SEARCHER is a Tur"=}bo BASIC XL utilityprogram allowing search and replacefunctions while in Turbo BASIC XL. USING SEARCHER ">} --------------To use the program, load Turbo BASICXL and type the following commands: ENTER "D:SEARCHER.LTB" "?} GO# SEARCHERSEARCHER will prompt you for thefollowing information: CONFIRM (Y/N)? MATCH CASE (Y/N)? STAR"@}TING LINE NUMBER? ENDING LINE NUMBER? SEARCH FOR? REPLACE WITH?Each line selected will be displayed.If the "A}"search for" string is foundit will be replaced with the "replacewith" string. If you answer "Yes" tothe CONFIRM prompt, "B}each time the"search for" string is found theprogram will pause, blink the string,and ask "Replace here? (Y/N/A/Q)?".Resp"C}ond for Yes, No, Abort, or Quit. PROGRAM NOTES: --------------Defaults are provided for the firstf"D}our propmts above. Press to accept the default or edit theline as you wish. After the searchis complete, SEARCHE"E}R returns you tothe "SEARCH FOR?" prompt. To changeany of the other prompts, press on a blank line for the "SEAR"F}CH FOR?" prompt.The program uses lines 31000 - 31056,so if your program uses these lines,they will be replaced. SEARCHER"G} maybe renumbered, if necessary, andLISTed to disk to eliminate any linenumber conflicts with otherutilities.All variab"H}les begin with a "Z" sothat you may identify those whichbelong to this utility. Thesevariables may be cleared out of your"I}program by using the followingcommands: LIST "D:PROGRAM.LTB",0,30999 NEW ENTER "D:PROGRAM.LTB" SAV"J}E "D:PROGRAM.STB"If you have any long lines that weretyped in with statementabbreviations, or if you use a"replace with""K} string longer than the"search for" string, you may haveproblems when the line is re-entered.Care should be taken to avoid"L} this.I suggest you use the CONFIRM optionuntil you are familar with theprogram. Sometimes the "search for"string is fo"M}und imbedded in unusualplaces!The MATCH CASE option allows you todetermine if upper case, lower caseand inverse is signi"N}ficant in thesearch. "Yes" requires an EXACTmatch. "No" will allow a search for"A" to find "A", "a" and the inverseof b"O}oth.When MATCH CASE is "No" the TurboBASIC command "UINSTR" is used.Apparently there is a bug in thisroutine. Searching"P} for "1" (dec. 49)will also find "ctrl Q" (dec. 17) andits inverse (dec. 145). Searchingfor "2" will also find "ctrl R" ("Q}dec.18) and its inverse (dec. 146). Thisis an offset of 32 and appears tohold true for all characters fromdec. 33 to 64."R} If you use SEARCHERwith the CONFIRM option off, MATCHCASE off, and search for onecharacter at a time, you may damageany"S} machine language routines youhave imbedded in strings. Use theseoptions carefully! Versions: "T} ---------1.1 Released March, 1987.1.2 Released April, 1987. Corrects the 'slow down' problem when searchin"U}g large Turbo BASIC programs. This version runs much faster!I hope you find SEARCHER to be auseful utility! "V} Earl Davidson 1505 7th Avenue Albany, GA 31707 (912) 432-2479eful utility! l†') *   ' 멄y  U@ U ˠ' y '    &X}  w멏'  w멕' L#L5' w멛' }  w멡' L>#L" (  t > > J&Y}    w J   w֤ע > w  >  > ( L# ꩉ'  w&Z}֤   "   Q ( 7( X(  t > > J  w L' > w&[} 4 > w 4  >  w \(     w멧'  w멭' L& w&\} 4  U ' sLa% f(     w멧'  w멭' LT%  ( La% &]}( L& (  > > > > > > > >  >à(  > >&^}Ġ(   w֤   Q  ꩹'  2LX& >  > Ơ( LS& > w  U&_}   wLu& w 6爫'  w 9 + Ƞ( L ' w멏'  w멕' L&L5' w멿' &`} wŠ' L& f f f Lo" Ҡ(  +L;$ (  w K ;Lo"@  &a} ( ( )  Lo" @A@I@V@A!@2@e@&b} àDrive # (- or to Quit):_D :*.*E S!ٽР嬠ѽ &c}Š堠D : п_ŠġˠϠп_&d}es!. ~~~~~ġ ~~~~~~ SparedӠĺ ң ţ 宮|yo"}yo"~yo"yo"yo"yo"yo"y&e}"y"y"y#y>#y#y#y#y#y#y#y#y$y;$yO$y$y$y$y$y$y%y%y@%yG%yQ%yT%y^%ya%ya%ya%yk%y%&f}y%y%y%y &yS&yX&yu&y}&y&y&y&y&y&y 'y 'y'y'y5'yM''%y%y@%yG%yQ%yT%y^%ya%ya%ya%yk%y%$P ZAPPER ------ for Turbo BASIC XL by Earl Davidson Version 1.01 *h}(5/87)Copyright 1987. All commercialrights reserved. This program anddocumentation may be distributedfreely provided n*i}o modifications aremade to the program; thisdocumentation file is included and nocharge is required, other thannominal fe*j}es for disks, downloadtime, etc. User groups and BBS's maypost this program and include it onpublic domain distribution d*k}isks. DESCRIPTION -----------ZAPPER is a Turbo BASIC XL utilityprogram allowing quick deletion*l} ofmultiple disk files while in TurboBASIC XL. The filenames on the diskare displayed, one at a time, and youhave the op*m}tion to DELETE the file orcontinue to the next file on thedisk. USING ZAPPER ------------To use*n} the program, load Turbo BASICXL and type the following commands: ENTER "D:ZAPPER.LTB" GO# ZAPPERZAPPER will prompt*o} you for thedesired drive number (1-8).The first filename on the disk isdisplayed, along with the prompt: ZAP?Your opt*p}ions are: Y> Yes, zap (DELETE) this file. A> Abort this run, start over. Q> Quit to BASIC. Any other key> NO*q}, do not zap it. The next filename is displayed, etc.If the file is LOCKed, a warning isdisplayed and you m*r}ay answer Y toconfirm the deletion of the LOCKedfile. PROGRAM NOTES: --------------The program us*s}es line numbers 31100to 31199, so be sure the program youhave in memory does not use theselines or they will be replaced w*t}henZAPPER.LTB is ENTERed.To remove ZAPPER and the variables ituses from your program, type thesecommands: DEL 31100,*u}31199 LIST "D:YOURFILE.LTB NEW ENTER "D:YOURFILE.LTBAll variable names begin with Z sothat you may easily identif*v}y thoseassociated only with ZAPPER when youuse the DUMP command. COMPILED VERSION: -----------------*w}The ARChive also contains a compiledversion of ZAPPER under the filenameZAPPER.CTB. This file, when LOADedfrom the Turbo*x} BASIC XL RUNTIME.COMprogram, allows the use of ZAPPERfrom DOS, without loading Turbo BASICXL. Versions: *y} ---------1.0 Released May, 1987.1.01 Released May, 1987. Minorchange corrects problem of printingto scree*z}n in incorrect position whenleft margin has been changed. Other: ------This is the second pr*{}ogram of aplanned series of utilities for TurboBASIC XL. SEARCHER was the first. It provides search and replacefunctions*|} within Turbo BASIC XL. Itis found on BBS's under these names: TBSCHARC, TBSEARCH, or TBSEARCH.ARCIf you cannot find SEA*}}RCHER, I willmail you a disk with all utilities inthe series, and Turbo BASIC XL if youneed it. Send a note and $5.00 for*~}the disk, shipping, etc. to theaddress below. Please specify diskformat: SINGLE, ENHANCED, OR DOUBLEdensity.I hope yo*}u find ZAPPER to be ausefulutility! Earl Davidson 1505 7th Avenue Albany, GA 31707 *} (912) 432-2479 on 1505 7th Avenue Albany, GA 31707 (>31100 --31101 REM Ҡ31102 REM à̠31103 REM 31104.} REM 31105 --31106 # ZAPPER:CLR :GRAPHICS %0:POKE 752,%1:POKE 709,12:POKE 710,%0:POKE 712,%2:DPOK.}E 729,280:ZCHG=%031107 TRAP 31108:DIM ZFN$(20),ZDIR$(1088)31108 ? "à":TRAP 31157:? "Drive # .}(- or to Quit):_";:GET ZKEY:? CHR$(ZKEY)31109 IF ZKEY=81 OR ZKEY=113 THEN GOTO 3115631110 IF ZKEY<49 OR ZKEY>56 THEN G.}OTO 3110831111 ZFN$="D :*.*":ZFN$(2,2)=CHR$(ZKEY):CLOSE #7:OPEN #7,6,0,ZFN$31112 REPEAT 31113 INPUT #7,ZFN$31114 ZDIR$(LE.}N(ZDIR$)+1)=ZFN$31115 UNTIL ZFN$(8,10)="E S"31116 CLOSE #731117 ZCNT=%0:ZEND=INT((LEN(ZDIR$)+%1)/17)-%131118 ? "ٽР.}嬠ѽ":? "Š堠"31119 ZFN$="D :":ZFN$(2,2)=CHR$(ZKEY)31120 WHILE ZCNT3231126 ? :? "ŠġˠϠп_";31127 GET ZKEY:? CHR$(ZKEY);31128 IF ZKEY=8.}9 OR ZKEY=12131129 ZLOCK=%131130 ? "";31131 ELSE 31132 ? "";3113.}3 GOTO 3114931134 ENDIF 31135 ENDIF 31136 ? "es!";31137 ZFN$(16,18)=ZFN$(12,14)31138 ZFN$(13,15)=ZFN$(16,18)31139 ZFN$(.}16)=""31140 ZFN$(12,12)="."31141 FOR ZA=LEN(ZFN$)-%1 TO 5 STEP -131142 IF ZFN$(ZA,ZA)=" " THEN ZFN$(ZA)=ZFN$(ZA+%1)31143 .}NEXT ZA31144 IF ZLOCK THEN UNLOCK ZFN$:ZLOCK=%031145 DELETE ZFN$31146 ZCHG=ZCHG+%131147 ? "~~~~~ġ"31148 ELSE 31149 I.}F ZKEY=81 OR ZKEY=113 THEN GOTO 3115631150 IF ZKEY=65 OR ZKEY=97 THEN POP :POP :POP :CLS :CLR :GO# ZAPPER31151 ? "~~~~~~ Sp.}ared"31152 ENDIF 31153 ZCNT=ZCNT+%131154 WEND 31155 ? :? "Ӡĺ ";ZCHG:PAUSE 75:GO# ZAPPER31156 TRAP 40000:POKE .}752,0:CLS :CLR :END 31157 ? :? "ң ";ERR;" ţ ";ERL:? "宮";:GET ZKEY:GO# ZAPPER000:POKE ,t