@L}5 _$% l0$)$$Hȱ$ UhL" `e$$%`$%`  R@W!( L(1   Y I`  d  Ld M * @  $ % CC$$)%1 Udߥ$9%: !0 S$% DD˙`  }J)Lr ɩeFFe8ɢ,  )8)80hl 0 H载hL< /) H轥heeL 0ԩe1Lg3%!44,%05'%43/5.$ !4!2) #/-054%2%.4(53)!343 present $)3+02/'2!--).'!)$3-ay.keFSP]d+d+ddnP!nnnnndnnoo.nnkpoooooojc fY fYfY fY fYfYqfYrfYrfYfYfYfYfYfYfYfYfY kAhiC=li]fY 4PWEV(TQJ"fY 4PWE<XP$fY 4PiE"Zh1]fY =PWE<`R"fY 0[WEVTVR"fY ]YIhiC.>=,?fY@ C4&$"m44fY@ C4s$"b4140fY@ U9_a*MT;,;0fY@ _UP -"0acY_UP 27P&6\@_UP 2%"0:H_UP .,3"1gNR!_UP 1>"0"4@_UP 1"0&4@_UP (, lh_T_UPU_PU_PU_PU_PU_P o5oU_PU_PU_PU_P kbk>B!@*OU_P 4V4TaAK@U_P 4V0P4$@U_P 4V<=_! !U_P 4V001E U_P 4V5RHU_P k>?X`ccdfflpqsvwx|~6  (*  (@AEPQTUUUUUUUUUUUUUUUUUUUW__}t 2kZkkkl,lblpBkOp]AeLd 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 0} L ? .  t`GBJ ~DEHI B V0dV1}QDEHI VF9 ,0 ,0 s0hhL  L` H hDHEh2}DEL8HI4 0 HI,0 0  9 .G VLO3},0 L4*IJ`llD1:A*.SYSNEED MEM.SAV TO LOAD THIS FILE.D1:MEM.SAV J y08 B|DEHI4} V0 0`B;DEL`?<0LV`@ʆ v s? F0Ξ05: [ BDEHI5} VY8 B V  @  /DE `E:D1:DUP.SYSERROR-SAVING USER MEMORY ON DISKTYPE Y TO 6}STILL RUN DOS B;DE J  (` 9 V⪍ ઍ  -7}LLu ÝDEHILV 9 .l 9 .l  `` s$B BH8}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 !BD@}ED:}:1BJ|DE 1DEBHI 1 h0ߢ 0.A}  0?詛 1 y0YЛ 1 ;#L" ;#L! BL1TYPE "Y" TO DELETE...DELETE FILE SPECB}COPY--FROM, TO?OPTION NOT ALLOWED265 FREE SECTORS COPYING---D1:DISKFIX.COMl# 0|D .L/%#C}##JB|DE 1BHID#E 1#0: B 1L!#͑### B 1#c$0SYD}S1}:## # # .#Ƚ# # 𩛙## 1,#PD#ELJ- <.BJD#E E}1 1HH 0hh|DL%1}:̳# L% #D#EL% 1 0 . .0O% 1L!WILD CARDS NOT AF}LLOWED IN DESTINATION 0 <.|K L :::: :Lr:::IEL[::i:iIIL[:`:i::i h}::L:`L{:w:w: C`L:L: D8:MEM.SAV: 8| 9 '9`L:L: D:DUP.SYS:̩ 8 i} x:ɀL: '9`88 |9Y:X: '9L); D8:DUP.SYS; 8::88 9 '98? :`;WL`; 9 j}Ln; ` :Y;Y;L;L;)} Setting Up ATARI 130XE Ram Disk; 9L; ; -9   k} L;D8:; :9 :Y;L"(>:,)7<,7%<%%,46-&$$+"%,>6-"$% 6-%6-%w}"%- &, ( -&((>:@:7%,,%$,, @  &"&(@(}RUx}N/ENTER,gg(_+LOAD rerun menu, miniDOS, printout more, *. files print to screen% )6y}-F:B2y,%6-")"II+"&,%+"%,$%+"A',$%+"AU,$+!%,$&%%I %)!%)!$*$z}I6-%$$+ @W,&&%++!%,,$$B !&6-$&&)67,.7<%,1->7<,0 B C7%<%{},0 !67<,..)6-%=67,.7%<%%,C %9 & +-+( 7,/59%V &|} )')7"AU*"<GV6-?:AUv,2 (ĺ#6-2 &$+F:,}}",g"6.}ˠ堭36. $#! Rr3c@9A&g(!}Ӻ (1) Unlock (2) LockS*("(3) Delete ~} (4) Rename (5) FormatS(#(6) Quit Rerun to MenuT )6-&@HH+ )!%,%+"&,%+"A,$}%%&T6-@:7,,#!%%6-@:7%,,# &67,.7,$67<,.$367<,.06}7%,.󠨧3$-*6. }Ԡ렭-$ + K ((=>#)/(}5"K &%@F$+0A,A4%+B:, ,&!-06-7<,4:=6.7$%,A  !%E!)"%}$4(堧٧;)E%[  6.67&$+!,,.+/@67,.DOS.SYSEP}U[6-$ $$(塠9  6--$ 9 &%$+F:,!,%$+",)6-%A}x$6-&!6-) %$D+(#CHOOSE: Enter Merge Return2):"&@D % &O &}(}NEW8(POKE842,12:GR.0:E.>:%,FAB%L-O&+7,4SYS)7,4COM!.+ B&7,0DO}C$A&%A(}7<%, documentation/ &6-$6-F:, (!%/6-( }(F:%,  &G --(٠ݠ4)A"$)F:,G % %%(} &}S 6-P:E6.'}堨 M&S &7( }Ǻ-(WEW}F1 76-+ B:, %(E @+ &(( 6-%"#6-(( &2 $.( } *** ERROR #F:, ***2 f;(%}Πխ堣>:%Av,B)P6-&@HV6-`!*}f6- 6-6- F((Write 'DOS.SYS' file also? =>/)96-"%F(>:&%$,@:,%)@:, %6.}9$D:MENU^Jtj.   G` e, M, , Y, u,`lK  +HH+L>HHHɛ%$ }  k  E! ;"L z"hhh(`@+ȱɛ#D EX"Lō @+`ꍧK L Lt- }@ ɛ)" J a{I 0L& `H-  - @ Li - @ h` 0/. 'Lo {! . 0 L }(` (轺 Lm 8`REN.UMBER"DEL.ETE&DI.RECTORY &RENA.ME 'ERA.SE!'LOCK.#'UNL.OCK$'QR.EF'REP.LACE}@(XR.EF)SI.ZE*MAR.GIN+DO.S?+H , -)@) )&) e, M,L!h`|!w" h8`+:"}+ #,ɛ0:Ly!N+:"+莗+ɛL! إH ٮ+ԝ+՝+hM:"L!,ɛ! "Ly!L!ȱPE}SLy!9"Lp!I B, , hhh -LLp!˩̩ͩΩnϩ -5- e, M, B V u, Y, @x"s#+` H H`+}+0E+0@+0;) ,ˍ+ȱˍ+) ++++) ++L"L-+ +橛M , , +L* % +L#ˑȱ}ȩȑ % +L"ȑ %͍-͍-+-+- -Lf#ͩ͠͠͠+ % %L%+18ͥt#o$Π͍-}͍-+-+- -L"% %+ͭ+ȑ %+m+++m++L% % , %iϥiРϑȱϑȱˍ+iϥiб}ˍ+ȱ #I#L$+͖+L# +L%ȱȘHihLR$h '%L$ $L$ȱ LX$ p$k%, },ȱ,Hi hL$h '%iL$ $L$ $Lz$ L$ , ,ИH˅ȱ˅h %`}+L%8 ȱ '%L$L*L-L-He˪i ٥Ս-ԍ-+-+- -I %ȱ %LSl%g}&%ˍ+ȱˍ+ %L%ͅȱͅ hHe˪i %h`iͥi`i`8``&#MH ++ԭ+}L%&VMH +&i&$ M , ,h`)`) ++++ , +L& &LO& +L&˅ͥ̅ & Ll& +}Llh&c'& +8˅ϥ̅8͍+΍+8++ - @+`ˍ-ˍ-+-+- -`ˍ-ˍ-+-+- }-` ')+L-i01' D'EBJ V0H& , j'0&  MȌ&& ,ک&M , B, }' u, Y, @d'_(+`L- iMDiEHIB V` B V`D1:*.* e, B," -ȘeDiE" -ѝB V0 u,} @+`L- J- ++ , ,0Η+ U-L' B, Y, u, @+`ɀL-ȩ" -LJ)Ș+Ί+Ό++A[L-̌+ [}A:1(`([)$̌+լ+$( +L?(+$( +L?(+ + + Y)LO)+ Y)LT)8+}++m+˭+i8+++m+ͭ+i8˅ϥ̅ - 8+m+i୓+˭+̭+ͭ+έ+ϩ - }@+`L-L-L-e\)W*ύ+iЍ+ + F+L)00Șeͥͅi F+إ͍+΍+`8` J- ++ ,L*}+ ,L* , , +L)+˅ȱ˅ȱˍ+ȱˍ+ȱ60)ȱ0$̒++͑+L) , ,͏++L*+=&+ԩ}թ +ѥυԥЅ +X*S+&i& M ,0: , +L)&婛M ,0 L)& M , B, u, Y, +`ɀL- e, M,}9"ԅ + , , +8刅ԥ剅թ +80劅ԭ1勅թ +M , u, Y,dͩ+ ,`)+)9+}+R+S @+`.`)A[T+g+ńŅ8``CLR+,e˅˥i̥̍-ˍ--- -``ͥ}`)/MHH) h0M)Mh`˥`i`Șq˨` F+!)M(0eͥͅiΩM`8` }B V`@y+`@y+` h+x+`h+ x+`,- -(+ ,`mD$Ei%8H+(I)`9"}םD,EJB V`P?9" BxHIMDE V`( M&`+`` u, Y,3ͩ- ,8`?"ERROR- } ";PEEK(203)9"} `9"BM B V䩝D-ExHI B -|.V J-+`-͠}0-L-0L-8L-`-- -- p `--p`I `8˪̨Ϙа :.L. .`ˑ}ˑ`e̥̅e΅Τ ˑΈˑ` K LE}..ԽձԙtHtHt}hihiJLk.*** EXTENDED BASIC TUTORIAL *** PART I. INTRODUCTION EXTENDED BASIC is a programmer's aid package which adds }12 useful commands to BASIC. The commands are Direct Mode commands and function as if they were included within the} BASIC Cartridge themselves. Various types of commands are DOS related, editing and reference. SYSTEM REQUIREMENT}S ATARI 400/800/XL/XE 32K Ram ATARI 810 Disk Drive or Equivalent ATARI BASIC Language Enabled (Cartridge in}stalled) Optional Accessories System Printer LOADING EXTENDED BASIC. 1. Turn the computer off. 2. In}sert the Basic Cartridge in the left slot (if 400/800/1200XL). 3. Turn on your disk drive. 4. When the BUSY light goes }out, open the #1 disk drive door & insert the EXTENDED BASIC disk (You should have previously copied the "EXTBASIC.ARS"fi}le to this disk and renamed it to "AUTORUN.SYS". Also, Atari DOS must havebeen written to the disk with the "DOS.SYS" file b}eing present.). 5. Turn-on your computer and your TV set. The program will load in memory and start automatically. } 6. After the system boots the top line on the screen should say: Extended Basic (in inverse text) You may n}ow edit and run Basic programs normally. PART II. USING EXTENDED BASIC CORRECT METHOD OF INPUT. All} Extended Basic commands must be entered in Direct Mode and there can be only one command per line. EXAMPLE: 1) DELETE }10,100 2) DELETE 10,100:LIST 10,100 3) LIST 10,100:DELETE 10,100 The correct method of en}tering the command is Example 1. In example 2 the DELETE command will be executed but the LIST command will be }ignored. In example 3 Basic will return a syntax error and neither command will be executed. COMMANDS } The following commands comprise the Extended Basic program: EDITING DOS UTILITIES REFERENCE CONTROL RENUMBER } DIRECTORY QREF @D DELETE LOCK XREF @E REPLACE UNLOCK SIZE @X } MARGIN RENAME ERASE EDITING IN EXTENDED BASIC. All direct mode input to BASIC is conver}ted from lower-case to upper-case and inverse to normal. The only text that is not converted is the text with}in double quotes. PART III. EDITING COMMANDS RENUMBER The Renumber command takes the program text i}n memory and renumbers it according to the parameters entered with the command. Extended Basic will renumber the pro}gram even if the program contains variable branching and unreferenced line numbers. Variable branching and unreferenced }line numbers are displayed during the renumber process. FORMAT: RENUMBER [strt][,new][,inc][,output] Short hand }for RENUMBER is REN. PARAMETER EXPLANATION strt Starting line number, the default is the first line of } the program. new New line number, the default is the starting line number. inc Increment} between line numbers, the default is 10. output Device which the error flags will be printed, valid } output devices are E:,S:,P:. The default is E: EXAMPLES: RENUMBER 10,,20,"P:" The program will be renumber}ed starting at 10 with increments of 20, the error flags will go the the system printer. REN.,,5 If the fir}st program line was 100 then the program will be renumbers starting at 100 with increments of 5, the error flags will }go to the screen. RENUM.,1000,,"E:" the program will now start at 1000 with increments of 10, the error } flags will go to the screen. RENUMBER ERROR FLAGS The error flags are printed whenever a variable bra}nch or a unreferenced line number is encountered. the types of error flags are as follows: V/1000 The} V indicates a variable branch and 1000 is the line number it occurs in. #/40000/1000 The # indi}cates a unreferenced line number, the 40000 is the unknown line number and the 1000 is the line } number it occurs in. DELETE The DELETE command will delete all line numbers within the two } parameters. FORMAT: DELETE strt [,END] Short Hand: DEL. PARAMETER EXPLANATION strt Start}ing line number. end Ending line number, the default is the starting line number. EXAMPLES}: DELETE 10,100 Lines 10 thru 100 are deleted. DEL.20 Line 20 is deleted. REPLACE Th}e REPLACE command will replace a variable name with a new variable name. FORMAT: REPLACE "old-var","new-var" S}hort Hand: REPL. PARAMETER EXPLANATION old-var Old Variable Name, this must be a valid variable name. ne}w-var New Variable Name, this must be a valid variable name and unique. If old-var is a string} then new-var must be a string. The same applies to array names. The format of the variable name is described in }the BASIC REFERENCE MANUAL. ERRORS RETURNED BY REPLACE ERROR CODE EXPLANATION 22 Old Variable Name} not found. 23 New Variable Name already exists. 24 Invalid Variable name. EXAMPLES: REPLAC}E "A$","B$" All occurences of A$ is replaces with B$ and A$ is removed from the Variable Name Table. REPL.}"ARRAY(","DARRY(" All occurences of ARRAY( is replaces with DARRAY( and ARRAY( is removed from the Variable N}ame Table. REPLA."COUNTER","LCOUNT" All occurences of COUNTER is replaces with LCOUNT and COUNTER is re}moved from the Variable Name Table. MARGIN The MARGIN COMMAND automatically sets the left and right margins fo}r you. FORMAT: MARGIN [left][,right] Short Hand: MAR. PARAMETER EXPLANATION left Left Ma}rgin, this must be greater than or equal to 0 and less then 40. The default is 2. right Right Margin,} The must be greater than or equal to 0 and less then 40. The default is 39. EXAMPLES: MAR.0,39 } The margins are set to the extreme left and right edges of the screen. MAR. The margins are set} as they are after System Reset. PART IV. DOS UTILITIES. Five Dos commands are included in the Extended B}asic program. They will allow the programmer limited file maintenence. ************* NOTE ***************** The} DOS command has been disabled for the reasons of giving the programmer the most free memory, and that DUP wi}ll overwrite Extended Basic's memory. If you need to go to DOS the following commands will get you there. @X } DOS DIRECTORY The DIRECTORY COMMAND will print the Directory of a Disk to the output device. }FORMAT: DIRECTORY [drive#][,output] Short Hand: DI. PARAMETER EXPLANATION drive# Disk Drive number the contains} the disk you wish the directory of, the default is drive 1. output Device in which the printed output} is to go valid devices are E:,S:,P:. The default device is E:. EXAMPLES: DIR. The directo}ry of drive #1 is displayed on the screen. DIR.,"p:" The directory of drive #1 is printed on the system printe}r. DIRECTORY 2 The directory of drive #2 is displayed on the screen. LOCK, UNLOCK AND ERASE }FORMAT: LOCK"D[n]:FILESPEC[.EXT]" This command will lock the selected file, or files that meet wildcard sp}ecs. FORMAT: UNLOCK"D[n]:FILESPEC[.EXT]" This command will unlock the selected file, or files that} meet wildcard specs. FORMAT: ERASE"D[n]:FILESPEC[.EXT]" This command will erase the selected file, o}r files that meet wildcard specs. PARAMETER EXPLANATION n Drive number. FILESPEC Filename & option}al Extension. RENAME This command will rename a file with a new file name. FORMAT: RENAME"D[n]:OLDNAME.}EXT,NEWNAME.EXT" PARAMETER EXPLANATION n Drive number. OLDNAME The old Filename. NEWNAME The new }Filename. PART V. REFERENCE COMMANDS Three reference commands are included. They are QREF, XREF and SIZE.} QUICK REFERENCE The QREF command is a quick dump of the Variable Name Table. When the Screen fills up pr}ess any key to continue to the next screen. FORMAT: QREF [ouput] Short Hand: QR. output Device in which} the printed output is to go valid devices are E:,S:,P:. The default device is E:. CROSS REFERENCE } The XREF command is a cross reference of all variables used in the program. It will print the variable name , and all }occurences of it. FORMAT: XREF [output] Short Hand: XR. output Device in which the printed output is to} go valid devices are E:,S:,P:. The default device is E:. EXAMPLE: XREF"S:" A$ 2/100 1/110} 10/1000 A$ is the variable name and in the second line the 2/100 indicates 2 occurences in line number 100}. The 1/110 indicates 1 occurence in line 110. SIZE The size command requires no parameters. It will ret}urn the number of variables in the program, The program length and the amount of free space remaining. } FORMAT: SIZE Short Hand: SI. OUTPUT FORMAT: number of variables / program size / free memory remaining } EXAMPLE: SIZE 12/500/28500 This indicates that there are 12 variables in the Variable Name Table.} The program length is 500 bytes and there is 28500 bytes of memory remaining. PART VI. CONTROL COMMANDS } There are three control commands which modify the control of Extended Basic. DISABLE The @D comma}nd will temporarily disable Extended Basic. This command should be used before running any program that contains an}y INPUT statements. FORMAT: @D ENABLE The @E command will renable Extended Basic. This is the }power up mode. FORMAT: @E TERMINATE The @X command will terminate Extended Basic in case it i}s not required of more memory is needed. A NEW command should be done after @X to reclaim lower memory. FOR}MAT: @X REFERENCE CARD EDITING COMMANDS COMMAND SHORT PARAMETERS RENUMBER REN. [strt][,n}ew][,inc][,output] DELETE DEL. strt[,end] REPLACE REPL. "old-var","new-var" MARGIN MAR. [left]}[,right] DOS UTILITIES COMMAND SHORT PARAMETERS DIRECTORY DI. [drive#][,output] LOCK LOC}K "D[n]:FILESPEC[.EXT]" UNLOCK UNL. "D[n]:FILESPEC[.EXT]" ERASE ERA. "D[n]:FILESPEC[.EXT]"} RENAME RENA. "D[n]:OLDNAME.EXT,NEWNAME.EXT" REFERENCE COMMANDS COMMAND SHORT PARAMETERS QRE }F QR. [output] XREF XR. [output] SIZE SI. CONTROL COMMANDS COMMAND EFFECT  } @D Temporarily disable Ext.BASic. @E Renable Ext.BASIC. @X Terminate Extended Basic. w&jH5:7kHuCK&&L&M&N& + 5J&&&© M2 -L*J&˜ ' 5&0& M2&! }& $+L*& & M2 H-ƅ& & M2 H- 1- *`RUNTIME ERROR AT LINE &&L*, ,L&! }` '' &L&PROGRAM STOPPED&&Ńł ȱ`iL 'HH Z*L/ * . M2 + Q. .!} @. M2 @. ' M2 + @. 'hhL@.ʥ`HHhh`8L'u!}`Huh` L*L' L*L' ) .. ( .. ' * @.L!}* ) .. ' :, ( .. ' + ' * ' + M2 :, @. *L* ) ' ' :, ( .. ' + ' * !}' + M2 :, .. /( @. *L* ' Z* Q.L/` ) * ..L.. ) . .. + ' .. ' :,L' ) !}' :, ' .. + 'L'K&L&M& ) M2 M2,M&eK&iL&`M&8LV& .. !}Q.M&`ʔȱȱȱ Z*Șe惠 惨65*66* L*jem#6m$6 ..вH!}Hhh```L*ʱ` +⅄* &JL&J *HHl !}JLw TO BOOT FOR DOS TO RERUNp B V8,` 3+ȱL*&&8#6$68凅刐S!}Jj)ee`ффiiLL+8LL+ LV&uuuL*8!}` ,L*iL*豂Hȱh`p ,L*,H, BHI, 5 ?-N&h`8`!} :,L, :,#` :,0 :,0L, :,0` :,0L,L,`޵` `Ȕ`!}ʔ惥u`, BHI DEH 5 ?-HyN&N&hL* , ?-N&`,JJJJ`-!},- +- -0 -L* t-L*` -H t-h 0 -`L,8 0ƅ`66&L-HH` B VhH)Kh!})0 IJD-EB 5hL*S:,L*TUVL* -`,,L, ?-N&8ɰɅ ,`ʱȱȱ`ȵ!}ȵL*L* Q. @. @.ʥ @. .. Q. @.L3 Q. .. . . Z*uȱuȱu * Z* ..!}0 j,L3 ȱL* ~,L.ʵ`eeLV&HHhh`ؐHH Z*L!}/ *HH . .6 +i i .i i @.hh @. @. 'hh @.`HH Z*% *!}HH `2LQ/ Z* Q. LV& .6 + .. +` Z* Q.ޠ .. `2 +L/ L0H, B Vh`ҩ2ҵ ҵ! }  *L*H,BHI 5,h,LM2,DuEu *,IHKJBH 5h!!} *L* -,H`B 5h`00LM2L*L* +`H *hLM21HZH e!"}HHƆeiH Q.lꦆ M2Օ`0  L,`8`1-1- R- M201LM21!#}01`K2 * Q.J2L2 M29 Ɔ채+K-J2L7280L2 .9K22K2LV& L2, Y2 . Y2 Y2 +!$}, M2 +ƆеJ2 +`ʕ`66`HHH66666uuuhhhL!%}* +愵 ' + 'I M2 380/66&&&`uuu` 3 3!&}Ј 3 * +` 4B3C3 .A3B3A3B3C3 LV&ȥC3iA3B3 4`L$+3B3!'} 3`LV&C38A3ƅ3 ȱC3A3B3` 3L33L3H 4 G3h`1+ %  !(}88L 4 * *` * *`  * *` 4$' 4"0 40 4L, {4L, t4L,L!)}M2LM25 M2 Q. .5555`H,? ,,HI5D55E5B 5H5h` VLV&5` !*}45 M2555 M2L5 45LV&55, 555 M258e555 M2K2L1 !+} 'L*hh iL* 5LD3 5L$+5B3&&ȱ0 6L5 6#6$6&& L5&&`!,}i`K&&L&M&` 3+ȱ&&%8e慱HȱhױM&iK&iL&L*, B!-}H Vh M2L*,&BH 5hN M2 *L M2ML*,%BNLMH 5hL*)*Z*w***`2`2+:,2+,,,j,Y!.},~,c,r,S,*$++++,,,1-.H----.`..0////D331000 1)&0001K0k04444{4t40&K'G(m(()0)])5555$155}1g1!/}53%636&66615: 9:_::(:2:<:F:P;Z;d;nD;xM;;;;;;;;<F<[<<<<!0}<=5="G=,e=6k=@|=J=T=^=h=r=|= >!>8>@>\>x>|>>>>>>??*?9?&K?0O?:Y?!1}Do?N?X?b?l?v????@g@@@@@@@AA/A :AKA gA*rA4A>AHARA\AfApAz!2}AA+B5B{BBBBBBBBBBCC9CHCCCC D`DD E[EEFxFF F!3}GCG(RG2G<GFHp-Hz`HiHjH!4}99D/ ?9 FRETURN=_:v99D/ 9 FRETURN=!5}:v@?:<:9 :$9F DATA=9F GOTO= :Pv:%:X :$9F D!6}ATA=9F GOTO= ;Pv:%X9GAI9*9( D;pM;d\;9P;$999(9(!7}F,9  9(;9(;9;99(9(9(P;%d;9;$9(;%!8};$99(<99(9(;%:9 ;$9(F<99(:;%49D7:}!9}?:9A9A< :<$9(<9QA9WB99D/=B99D/9(WB9D/9D/<!:}W 99D/ F:9A:99D/9DB99D/:B<%9D=G=,W 99D/ F:9!;}A?9GAI:*=<$999(9(F,9  9(=r9=9T9(=!<}99DA:9(9  >9 FTHEN9!>9GOTO QB99QB9WB9(9D/\>9W/!=}99(EBP@<%:9D/ ;$9F REM =>:9F:REM =>9D/>9F THEN!>} =>:;%P99 FA:99(F,9  9(*?09(9?v9K?9Y?69D/!?}o?99DAb9D/9D/?v 99D/:B99D/99(EB?6*,*99DA?*,b!@}*44}COMPRESSION COMPLETEM/" LINES IN INPUT FILE 9D LINES IN OUTP!A}UT FILE 9DOUTPUT FILE IN LIST FORMAT9::9D/@ 9F:REM =@+9F RE!B}M =@+@ 9F DATA =A9F:DATA 9A  :9:Az*/A+:f9F"-9KA* :!C}9"-Az*gAp:f*A\AH#: 9FA:9FZ8AR99(9(::!D}A+):,:9D/A):  : /:9D/ B#:B$9D9F=+B+B%#:+&:2:NB9!E}9D/BB$9F0:9F98{B&:9F.=BB9FE=B2:B9F-99F+!F}9B2:BB%9 B+99F,+9D/C+:9D9D/C+9D/;$9F =9C+;% REM!G}+91,91,91,91,91,91,91,C1,2,4,5,50,999,10009@9@9@9&9&9&9&9@9&!H}9@9@ Ҡ͠ S*P*A*C*E Version 1.0!The MASHER will compress a BASIC$progra!I}m by: removing REMs; combining$program lines; and replacing numbers!with variables. This process will%reduc!J}e the RAM used by 10-20% and the%number of program lines by about 25%.#The required disk sectors (in SAVEd!K}version) should be 10-25% less.$You will need to know the number of"variables in the original program."Use!L} EXTENDED BASIC or BASICSCH.LST%to get this count. Your program#must be in LIST format and not have#l!M}ine numbers below 20. Also, MASHERis VERY, VERY, VERY SLOW! Π9GAI9XXx}X!N}?"$Enter SOURCE filespec (D:FILENAME)9GAI49D7? "'Give a different DESTINATIO!O}N filespec9GAI49D7(? "'Give the number of variables used inthe SOURCE (original) program!P}9HI SCREEN WILL GO BLANK SOON.  THIS WILL TAKE A WHILE....9 ;$9(;%?/M!Q}dM/"SOURCE CODE ERROR, LAST LINE:9D& I30000 GRAPHICS 0:POKE 709,0:POKE 710,186:POKE 712,120:POKE 752,130001 ? "}THIS UTILITY IS INTENDED TOASSIST THE PROGRAMER%S} BY PROVIDING A"30002 ? "CONVENIENT MEANS FOR STORING ML DATA IN STRINGS. WHEN FINISHED YOUR STRING"30003 ? "WILL BE DEFIN%T}ED DIRECTLY WITHIN APROGRAM LINE STATEMENT (ie...."30004 ? "1000 ML$(1)=";CHR$(34);"kdwcRW ";CHR$(34);")"30%U}005 ? "ALL THE SCREEN EDITING CHARACTERSESPECIALLY THE RETURN AND QUOTATION"30006 ? "CHAR., WILL BE PROPERLY PLACED IN THE%V} STRING. THUS A CONSIDERABLE AMOUNT OF"30007 ? "INITIALIZATION TIME AND RAM CAN BECONSERVED IN YOUR OWN PROGRAM."30008 ? %W}"YOUR ML DATA CAN BE READ FROM A BINARY FILE OR FROM A STRING ALREADY"30009 ? "DEFINED IN RAM. SIMPLY RESPOND TO THE INST%X}RUCTIONS. WHEN FINISHED THE"30010 ? "PROGRAM LINES CONTAINING YOUR STRING WILL BE TO DISK."30013 ? " Ӡ٠%Y}٠Ϡ";:POKE 764,25530014 IF PEEK(764)=255 THEN 3001430020 DIM NAME$(15),D$(600),C34(25),C155(25),AN$(2),ST(5,5),FI%Z}LE$(15):A=0:FOR I=0 TO 5:FOR J=0 TO 2:ST(I,J)=030025 NEXT J:NEXT I30026 ? "}ENTER TYPE OF STORAGE FOR ML DATA:":? ". BINAR%[}Y FILE ON DISK":? ". CHARACTER STRING CURRENTLY IN RAM."30027 ? :? "ENTER . OR . ";:INPUT AN$:IF AN$<>"1" AND AN$<>"2" TH%\}EN ? "}":GOTO 3002630028 A=A+1:IF AN$="1" THEN GOTO 3008530030 ? "}ENTER NAME OF THE STRING WHICHCONTAINS THE ML DATA."%]}30040 INPUT NAME$:X=LEN(NAME$):IF ASC(NAME$(X,X))<>36 THEN GOTO 3040030060 ? "}30080 D$=";NAME$:GOSUB 3027030070 LCNT=0%^}:K=0:L=0:TRAP 3045030080 D$=PP$30085 IF AN$="1" THEN GOSUB 30500:NAME$="D$"30087 ? "}ENTER THE STARTING LINE NUMBER, INC%_}RE-MENT FOR LISTING OF ";NAME$:INPUT LN,N30090 ? "}":FOR I=0 TO LEN(D$)-1 STEP 80:? LN+I/80;" ";NAME$;"(";I+1;")=";CHR$(34%`});:FOR J=1 TO 8030100 IF ASC(D$(I+J,I+J))=34 THEN C34(L)=I+J:L=L+1:? " ";:GOTO 3012530110 IF ASC(D$(I+J,I+J))=155 THEN C15%a}5(K)=I+J:K=K+1:? " ";:GOTO 3012530120 ? "";D$(I+J,I+J);30125 IF I+J=LEN(D$) THEN ? CHR$(34):LINE=(LN+I/80)+N:GOTO 301603%b}0130 NEXT J:LCNT=LCNT+130140 ? CHR$(34):IF LCNT>4 THEN GOSUB 30270:LCNT=030150 LN=LN+N-1:NEXT I30160 IF K=0 AND L=0 THEN G%c}OSUB 30270:GOTO 3029030170 ? LINE;" ";:IF L=0 THEN 3023030180 IF L<4 THEN FOR J=0 TO L-1:? NAME$;"(";C34(J);",";C34(J);")=C%d}HR$(34):";:NEXT J:? "~":LINE=LINE+N:GOTO 3021030190 FOR J=0 TO 3:? NAME$;"(";C34(J);",";C34(J);")=CHR$(34):";:NEXT J:? "~":L%e}INE=LINE+N30200 ? LINE;" ";:FOR J=4 TO L-1:? NAME$;"(";C34(J);",";C34(J);")=CHR$(34):";:NEXT J:? "~"30210 GOSUB 30270:IF K=%f}0 THEN GOTO 3029030220 ? LINE;" ";30230 IF K<4 THEN FOR J=0 TO K-1:? NAME$;"(";C155(J);",";C155(J);")=CHR$(155):";:NEXT J:?%g} "~":GOSUB 30270:GOTO 3029030240 FOR J=0 TO 3:? NAME$;"(";C155(J);",";C155(J);")=CHR$(155):";:NEXT J:? "~":LINE=LINE+N30250%q}BŠb%DOS SYSb*9DUP SYSb cRAMDISK COMblAUTORUN SYSb mMENU b!EXTBASICARSb]EXTBASICDOCbG MASHER OBJb%RMLSTRINGLSTb.PAINLESSPLMbaPMMOVER bREPAIR OBJb TOOLBOX1LSTbSPACE15 DOC ? LINE;" ";:FOR J=4 TO K-1:? NAME$;"(";C155(J);",";C155(J);")=CHR$(155):";:NEXT J:? "~":GOSUB 3027030260 GOTO 3029030270 ?%r} "CONT":POSITION 0,0:POKE 842,13:STOP 30280 POKE 842,12:? "}":RETURN 30290 ? "}DO YOU WISH TO STORE THE ML STRING(S) YO%s}U HAVE JUST LISTED ( OR ). YOU CAN"30300 ? "LIST UP TO 5 SEPARATE STRINGS BEFORE SAVING TO DISK.";:ST(A,1)=LN:ST(A,2)=LIN%t}E30310 INPUT AN$:IF AN$="N" THEN 3039530320 LOW=ST(1,1):HIGH=ST(1,2):IF ST(2,1)=0 THEN 3037030330 FOR I=2 TO 5:IF LOW>ST(I%u},1) AND ST(I,1)<>0 THEN LOW=ST(I,1)30332 IF HIGH255 OR B2<>255 THEN ? "THIS IS NOT A BINARY FILE":? "TRY AGAIN.":FOR W=1 TO 20%|}0:NEXT W:POP :GOTO 3061030520 GET #1,B1:GET #1,B2:N1=B2*256+B130525 GET #1,B1:GET #1,B2:N2=B2*256+B130530 NUMBER=N2-N1305%}}35 FOR I=1 TO NUMBER:GET #1,B:D$(I,I)=CHR$(B):NEXT I30590 CLOSE #1:RETURN 30610 REM ŠϠԠś30615 ? "%~}"30620 TRAP 30450:NAME$="D:":INPUT FILE$:NAME$(3)=FILE$:IF NAME$="" THEN 3061530625 CLOS%}E #1:OPEN #1,4,0,NAME$30630 TRAP 34567:CLOSE #1:POKE 752,1:RETURN $D<JNSTKLCATTRACPLYRSKIQUICSPSPEEP0PSKHITCLSTRP0PHTCLP1SMILEP2P3EXPLODP0PAINLESWOBBLHPOSPXP)}OSIZEPTAGP0HLDP1HLDP2HLDP3HLDPMBAYPO@A2ARA@@ B)}2R B2x @ B2`@s ?7BRB2HA$)}B2VAU  !%"AD#A($A6rrӤҠҠ)}Ǡ󠸯ǠӪЪêŠì LLǺ堠 )} ӤҠқ `6-+@%A7AR@:(L( INITIALIZINGV A` )}AҠŠӠš1-@% !'6-1 @5Z @ @8(}ENTER NUMBE)}R OF PLAYERS<Z @)!@@ U @,/@91/@9@=/@I/@U6-)}AS @0+(} ENTER SPEED (1 TO 4)/56-S @)!@@0#& BF:AV,& A)}(( A -F-&@!%@ % +F󠦠1ΠŠР2D F:)},6-&@42A@@:D @`7>R:,@"6-%@%>2@@@<)}[ @&-@6@A%H:,$@%@E [A<"@&%@R:)},<堢עFF6-%@*F:B2y,"@06-<6-@F A K9 2!!6-%@)}/6-%A9 AP;#(}SCORE  SPEED '; @@PR4 F:,-@ %$ *)}4 @U @PY##ŠӠŠZ 6.6.6._F-@@P36-P:H:,$A`,%)}@F6.7<%@,d62@@%A66-H:,$@i*F:,&$@ *2n=)} A@@'@3@ = A sc"(}Š YOUR SCORE C(PRESS START FOR MORE PLAYERS)}c(PRESS TRIGGER FOR SAME PLAYx4F:B2y,"@$6-@*6-4 A@}4 T:,"$6-@5&+@ $,*6-)}4 A@P"F:@,"@&$@.6-@:6-@F6-@P A@ A O A#B")}+-A$Au/"59 O A &+@ $,= (}6-6-A!6-'9AdAU= )}ŠĠE0F:@ ,@/F:AV,"@2$E栴'-AVAu'(F:,A)} F:, @ F:,!A AV&-2F:,@@ *2-$+""Ԡ)}ҠŠ,50F:B7p,@ 6.&6.,6.26.5$?##ԠӠϠ̪@ 6.6.6.)}6.$(#GGӤӠΠŠ ٠,#!!Я͠-#6-F:A)},&@1#󠪛2#<<;@,;@,;@,;@,;A,;# )}󠪪<#6.gggg$A@@36. >EAAHT6.sO@fAAu6.Og>)}A@pI#""ǠӠ̪O# Ӥ󠪪P#36-A$6-A('6-A23)}6-ART#󠪪U#?6-B2H6-B2V'6-B2R36-B2`?6-B2xY#"")}󪪛Z#]];@,;@,;@,;@,;@,;@,;@,;@,d#?6.~Z~<!)}6.<<<<~06.<~?6.r#ᠪs# 6.6.6.6.')}堛'$'/ #B"!-A$Au%"+/ %'Ϡӛ&'90,110,130,150'')}Ϡӛ('20,58,68,78)'Ϡ˛*' 0,0,0,0+'ϠЯϠԛ,'16,25,25,25-')}Ϡ͠ԛ.'88,79,79,79/'ϠԠԛ0'48,57,57,571'ϠԠԛ2')}200,191,191,1913'РŠӛ4' 0,0,0,05'ϠÛ6'1,1,1,0,255,255,255,0,0,07')}ϠÛ8'1,255,0,0,1,255,0,0,1,255B'!!ŠҠˠԛC'!!ǠĠӤV'ZZ6.PLb)}آxJ80E }N  N N*}N  W'cc67@,.PN  NУL8)}<@Dм4HML-X'@@67Aa,.-O4NHMNMNLLФLb'Ġ)}Р'/ #Bb!-A6AF%"+/ '))216,104,201,11,240,3,76,116,228,104'''104,141,79,4,133,2,)}240,10,201,128'%%208,240,169,0,133,3,240,4,169,1'''133,3,104,133,1,104,133,0,208,222'%%170,240,13,165,0,24,101,2,133)},0'$$165,1,101,3,133,1,165,0,157,56'##4,165,1,157,60,4,172,79,4,169'&&0,145,0,136,208,251,104,157,68,4'))104,157,)}64,4,104,104,240,174,157,72'&&4,232,224,4,208,203,142,28,4,206'**79,4,104,170,104,168,169,7,76,92,228'!!)}'!!ŠŠ'jjX=USR(1536,0,(PMBAS*256)+1024,ADR(P0$),8,ADR(P1$),8,ADR(P2$),8,ADR(P3$))},8,ADR(PAINLES$)):POKE 559,62'!!ŠŠ'yg6-?:A6<A(<+$AV,%A?@ABpp-}Ҡﬠ㠸à笠𶶮 This program writes a complete subroutine for moving 1ffor 2 players vi-}a machine lang. NOTE: Your players MUST be designed prior to using this utility. U +@A@61A A-}=6-@I6-@U6-AV//;@,;@,9,9,9,9,H -#(@ LaR mEr/-}-@ H(@ Re sRt<o6-F:A,!6-F:A,06-F:A ,?6-F:A,KAWAc-}A oAF3-@ &F:B2y,"@)'3 @P  @`ZEA@@'A A-}-6-A@K:E+dM(ŠϠ͠ҡ6(A SERIES OF QUESTIONSM(WILL BE DISPLAYED.n:"(EACH QU-}ESTION WILL REQUIRE:(A NUMERICAL ANSWER.x])(!INDICATE CHOICE BY TYPING DIGITS.K(TYPE RETURN ONLY AFTER NUMBER]( IS-} COMPLETED.P)(!YOU CAN ABORT NUMBER AT ANY TIME,P(" TO RETURN,BY TYPING A SPACE."("(ӠԠΠٮ-}:B2y@*F:B2y,"@0(}: Ap APS A`1(INDICATE GRAPHICS MODE FOR YOURS(-}PROGRAM! ANY MODE EXCEPT 10.Q6-Ap6-!6-@+ Ap16-="@G AQ Apc A`/-}(INDICATE RAM IN YOUR MACHINE.<(TYPE 1-4I( (1)16KV( (2)24Kc( (3)32KB( (4)40-48K(?&6-A,6-}-26-< ApB6-` A`4(!CHOOSE NUMBER OF PLAYERS(1 OR 2)!@6-AF6-N6-%X Ap`6-&f-} A`4("DO YOU WISH SINGLE(1) OR DOUBLE(2)J(LINE RESOLUTION?V6-A` Apf6- A`}'(CHOOSE-} PLAYER ZERO SIZE(0,1,3)!4(NORMAL=0;(?G6-AM6-Y6-@_6-g6.2q Apw6-}6-d A`-}5(CHOOSE PLAYER ONE SIZE(0,1,3)!<(?H6-A0N6-X Ap^6-d6-` A`4("CHOOSE INITIAL HORIZO-}NTAL POSITIONF( RANGE=0-255.`(VISIBLE LIMITS=48-200N ( PLAYER ZERO(0-255)?,6-AP26->6-AUH A-}pN6-?#( PLAYER ONE(0-255)?/6-A`9 Ap?6-g A`-(CHOOSE LIMITS ON HORIZONTALC(PO-}SITIONS(0-255)!g(IF CHOOSE 0 AND/OR 255,WILL GET( WRAPAROUND!"O#( PLAYER ZERO LEFT MARGIN?/6-A9 Ap-}?6-E!O A ,P$( PLAYER ZERO RIGHT MARGIN?06-A: Ap@6-F P A 6R&( PLAYER -}ONE LEFT MARGIN?26-A< ApB6-H!R A @S'( PLAYER ONE RIGHT MARGIN?36-A = ApC6-}-I S A Jg6-A%+A$+",,;6-@%+@$+",,C6-%]6-A%%A($+",g A`T-}U!(INITIAL VERTICAL POSITION5(RANGE=2-.U(VISIBLE LIMITS=-)^F ( PLAYER ZERO(2-)?,6-AP-}6 Ap@ ApF6-hI#( PLAYER ONE(2-)?/6-A`9 ApC ApI6-rC A`+(CHOOSE -}LIMITS ON VERTICALC( POSITIONS(2-)!|Y#( PLAYER ZERO LOWER LIMIT?/6-A9 ApC ApI6-O Y -}A Y#( PLAYER ZERO UPPER LIMIT?/6-A9 ApC ApI6-O!Y A \&( PLAYER ONE LOWER-} LIMIT?26-A< ApF ApL6-R \ A L&( PLAYER ONE UPPER LIMIT?26-A< ApF -}ApL6- ! A Y A`'(CHOOSE PLAYER COLORS.<(HUES ARE ROUGHLYY( 0 BLACK TO WHITE-}j( 1-4 REDS+( 5 PURPLE?( 6-10 BLUEST( 11-13 GREENSj( 14-15 ORANGESZ(( PLAYER-} ZERO $ A*6-66-@B6-A@L ApZ6-$@f( PLAYER ZERO ! A -6-@:6.35-}79 @6-L6-APV Ap\6-f A@ 6-%T( PLAYER ONE $ A06-@<6-ApF A-}pT6-$@\( PLAYER ONE $ A 06-@66-B6-AL ApR6-\ A@ 6-%t-} A`*(CHOOSE BACKGROUND COLOR!2( < AH6-@T6-A\( f Apt6-$@#"@-}*6-# A0M (  A !6-@'6-36-A= ApG A@M6-#"@ *6--}# A@ 6-% A`u(CHOOSE PLAYFIELD TYPE!-( NARROW=0=( REGULAR=1J( WIDE=2Q(?Y6-%e6-}-Ao Apu6-` A`(9($PRIORITY CHOICES! NOTE THAT PLAYER 0`("ALWAYS HAS PRIORITY OVER PLAYER 1!h-}(TYPE DESIRED NUMBER.A( ALL PLAYERS OVER PLAYFIELDS(0)h(" PLAYERS 0 & 1 OVER PLAYFIELDS(1)&O(( ALL PLAYFIELDS -}OVER PLAYERS(2)O(" PLAYFIELDS 0 & 1 OVER PLAYERS(3)0. (?6-&6-A0( Ap.6-:_ A`(:(%WHER-}E DO YOU DESIRE TO STORE PM DATA?_( ABOVE A LOWERED RAMTOP(TYPE 0)D**(" BENEATH THE DISPLAY LIST(TYPE 1)N2 (?6-}-@"6-Ap, Ap26-Xf A`+(CHOOSE SPEED OF MOVEMENT.D( HALF SPEED(TYPE 0)_( NORMAL SPEED(-}TYPE 1)f(?b6-A Ap6-cm A`.(DO YOU WISH TO STORE THE VBI@( ROUTINE IN A:U( STRING(TY-}PE 0)m( IN PAGE 6(TYPE 1)d2 (?6-6-"6-A, Ap26-g A`ll(.(#INDICATE NUMBER OF BYT-}ES IN PLAYER.V(#BOTH PLAYERS MUST HAVE SAME NUMBER.l(MAXIMUM BYTES=10!v8 6-6-@(?(6-A2 Ap-}86-;,;,? -68,-68,-&68,-/68,-3 96-?6-l A`(2(TYPE IN DATA FOR PLA-}YER ZERO.P(START FROM TOP OF PLAYER.V6-b6-AUl A -: (?6-A Ap$,6-&0 -}: A ;"@468,-%67<,. -6-%1 ; A ;"AU68,-%67<,. -6-%1 ; A-} 67<,.>:, @ A`(4(TYPE IN DATA FOR PLAYER ONE:6-@6--A ((?6-}-A@' Ap+36-&7 A Au?"@468,-)67<,. 16-%5 ? Au?"AU-}68,-)67<,. 16-%5 ? Au67<,.>:,  B @+ ( ()(ǠҠ-}@(ŠϠ=%D:PM.LST16-+%%+$@,,$=AP / "%6-%%@$+!@,/ A-} *116-%@$+"@,%@$+!@,4UU(31000 PM=PEEK(106)-:POKE 106,PM:GR.:POKE 54279,PM:-}PMBASE=N256*PM>36-+&,$)6-%%%+A$+",,3 AH9%6-%A@%+A@$+",,/ A9 A R-} "%s6-@$+ @,%@$+"@,%@$+"@,%@$$+"@,%@6$+!@,6-+&,$-}\i "]6-@$+ @,%@$$+"@,%@2$+"@,%@@$+!@,i6-+&,$f'6-%%%+A-}$+",,' Ap/%6-%A@%+A@$+",,/ AzII( 31000 GR.:PM=PEEK(106)-:POKE 54279,PM:P-}MBASE=N256*PMmm(31010 DIM ZERO$(47):ZERO$=>:@4,/hhhhhhhϥ̦ ͈ψ`>:@4,-}EE( 31020 X=USR(ADR(ZERO$),0,PMBASE,A$%A$$+",)%%6-A&+@$+")"%,,PP(31030 POKE -}53256, :POKE 53248, :POKE 704,:POKE ,==( :POKE 53257, :POKE 53249, :POKE 705, -}"( <<(31040 DIM P0$():P0$=>:@4,>:@4,8,"A (31043 & -6-}-8,&(:))(P0$(, )=CHR$(34) ( 8,"A0(31047 & -}-6-8,&(:**(P0$(, )=CHR$(155) ( "A <<(31050 DI-}M P1$():P1$=>:@4,>:@4,8,"Au(31053 $& -6-8,&(:))-})(P1$(, )=CHR$(34). ( 38,"A 8(31057 B& -6-8,&(:-}L**(P1$(, )=CHR$(155)V ( `6-%%+A$+",,%j]]( 31060 FOR X=&@ T-}O 0 STEP-1:POKE PMBASE++X,ASC(P0$(X+1,X+1)):NEXT Xt"Ap~!!6-A@%+A@$+",,%]]( 31070 FOR-} X=&@ TO 0 STEP-1:POKE PMBASE++X,ASC(P1$(X+1,X+1)):NEXT Xll(31080 POKE 203,%@ :POKE 204,%-}@ :POKE 1000, :POKE 1002, :POKE 1004,88( :POKE 1006, :POKE 1008, :POKE 1010,BB(-}31090 POKE 1001, :POKE 1003, :POKE 1005,<<( :POKE 1007, :POKE 1009, :POKE 1011,--(3-}1100 POKE 1012, :POKE 1014,11(31110 POKE 1013, :POKE 1015,(31115 DIM PM$(211)uu(311-}20 PM$(1,65)=>:@4,Ax)%x)Wx)Hx)9Lbϝ>:@4,uu(31130 PM$(6-}6,128)=>:@4,?ͽα͈̅\B>:@4,qq(31140 PM$(129,196)=-}>:@4,D̅˽ͽα͈̅V(>:@4,V(31142 PM$(197,2-}11)=>:@4,>:@4,A##(31145 PM$(41,41)=CHR$(1) hh(Y31147 PM$(54,54)-}=CHR$(136):PM$(65,65)=CHR$(200):PM$(79,79)=CHR$(136):PM$(84,84)=CHR$(200)YY(J31148 PM$(113,113)=CHR$(200):PM$(129,-}129)=CHR$(198):PM$(130,130)=CHR$(203)[[(K31149 PM$(153,153)=CHR$(200):PM$(158,158)=CHR$(136):PM$(174,174)=CHR$(136-}):%%(PM$(194,194)=CHR$(200)#HH(931150 FOR X=0 TO 210:POKE 1536+X,ASC(PM$(X+1,X+1)):NEXT X(HH(31-}155 DIM SET$(11):SET$=>:@4, h  \`>:@4,); ";(*:AD=ADR(PM$):HI=INT(AD/N256):LO=AD-N256*HI*.}( -M "M(<31160 SET$(3,3)=CHR$(LO):SET$(5,5)=CHR$(HI):X=USR(ADR(SET$)).II(:31160 SET$(3,3)=CHR$(0):.}SET$(5,5)=CHR$(6):X=USR(ADR(SET$))2_E6-@D%+@$+",,%++",%@$+",%@$+"%,,_(31190 POKE 559.},<c56-+",%@$+",%$+"%,%@$+"&,c(:POKE 623,PEEK(623)+ :POKE 53277,3F( 32000 RETUR.}NPn@ A`A(FILE ON DISK IS CALLED 'PM.LST'k(%TO MERGE WITH YOUR PROGRAM,USE ENTER!nZ(6-F:@.},&A(( Ad@B7tn 6-6.6-x)@(>:,"AUAp.}L"@2(5(ǠҮŠή? A0E6-H'L 3 @H)!@W(& A,6-/'3 .}? "-B:,""@:7<,,%'((2 A86-;'?  " #67<,.>:,6-%# A# B:," .}A'6-# - 6-A:, )! A#')6--  ( $;.(&ԠšŠ٠Ρ8 A.}0;$( HUE(0-15)?$1( LUMINANCE.( (EVEN NUMBER 0-14)?1$-A $4")"@)". }@' A-6-0'4 $T-@@6'-%6?2@&@C G Q2T$")&. }6-+&+A'%A($+",,,$6)$,6-P:',6-&$$66-P:',6-&$$@X(( YOU HAVE EXCEEDED THE NUMB. }ER OFF(BYTES ALLOWED WITH VALUESX( OF 155 OR 34!J;%(PLEASE USE A DIFFERENT VALUE!/ A76-&; Tk%(. }ԠӠŠO(%ŠȠŠ̠Ρg(Šˠk ^G.(&GR.11 NEEDS A BACKGROU. }ND HUE OF ZERO!A(I'VE SET THAT!D(G$hL*("GR.9 NEEDS A BACKGROUND LUMINANCEF(OF ZERO! I'VE SET THAT!I(L$ D.}:PMMOVER, #00000llllllll~`~~fl0fF68of;00000000f< 800000 0 ~~`0 2}0`0xff|ff||ffffff`x`ff`x``||~ZZ~ xs6<8<6sx00006~2}||fff|`|vff|xl|||<xx0f<8pp8?2}ww<~~~<x`x`~<~2}~<0~0 ~ <~~<<>f>p`|ff|<```<>ff><>ff>|p`|ffw8<  xp`lxlf82}<fkc|ffffff>|f```>`<|~ffff>fff<ck>6f< x~ 0~<~~<2}~x|nf8x8&l;==7lLJ&&K&L&ʩ * d5I&&&© 1 -L*I&˜ '2} 4&0& 1&& *L*& & 1 -& & 1 - - *`RUNTIME ERROR AT LINE &&Lr*2}+ +L&` '& &L&PROGRAM STOPPED&&Ńł ȱ`iL'HH 1*L2}/ r* . 1 + '. . . 1 . ' 1 + . 'hhL.ʥ`HHhh`82}L'u`Huh` Lr*L' Lr*L' ) . (2} . ' r* .Lo* ) . ' , ( . ' + ' r* ' + 1 , . o*Lr* ) ' ' , (2} . ' + ' r* ' + 1 , . (( . o*Lo* ' 1* '.L/` ) r* .L. ) . . + ' . 2}' ,L' ) ' , ' . + 'L'J&K&L& ) 1 1,L&eJ&iK&`L&2}8LM& . '.L&`ʔȱȱȱ 1*Șe惠 惨6,*6-* L*HH2 }hh```Lo*ʱ` ** &JL&J *HHl JLw2!} TO BOOT FOR DOS TO RERUNp B V8+` +ȱLr*&&8558凅刐SJj)e2"}e`ффiiL#+8L#+ LM&uuuLr*8` +Lr*2#}iLr*豂Hȱh`p +Lr*+H+ BHI+ 4 -h`8` ,L, ,2$}#` ,0 ,0L, ,0` ,0L,L,`޵` `Ȕ`ʔ2%}惥u`+ BHI DEH 4 -HyhLo* + -`+JJJJ`d-+e- +2&}- c-0 c-Lr* J-Lr*` f-H J-h 0 c-`L+8 0ƅ`66&Ln-HH` B VhH)Kh)0 IJ2'}D-EB 4hLr*S:+Lr*TUVLo* -`++L+ -8ɰɅ +`ʱȱȱ`ȵȵLr*2(}Lr* '. . .ʥ . . '. .L3 '. . . . 1*uȱuȱu W* 1* .0 @,2)}L3 ȱLr* T,L.ʵ`eeLM&HHhh`ؐHH 1*L/ r*2*}HH . .6 +i i .i i .hh . . 'hh .`HH 1*% r*HH 1L2+}'/ 1* '. LM& .6 + . +` 1* '.ޠ . 1 +L/  o*Lr*H+ B Vh` ҵ  o*Lo*H2,}+BHI 4+h+L1 g0+KJBD0EH 4h o*Lr* r* '.0Ɔ򩛙0`2-} -H`B 4h`00L1Lr*Lr* +`H o*hL11HH eHHƆeiH 2.}'.lꦆ 1Օ`0  L,`8`|1rd-1e- (- 10|1L1|10|1`1 r* '.1 12/}`+6-1L1801LM& + 1 . 1 1 ++ 1 +Ɔʭ1 +`ʕ`66`HHH20}66666uuuhhhLr* +愵 ' + 'I 1 2821}0/66&&&`uuu` 2 2Ј 2 o* +`@32@2 .222222}2 LM&ȥ2i223`L*32 3`LM&2@82ƅ3 ȱ222` w23}3L?33L?3H3 2h`1+ %  88L3 o* o*` o* o*` 24} o* o*` 3$' 3"0 30 !4L, 4L, 4L,L1L14 1 '. .4444`H+? ++HI25}4D44E4B 4H4h` VLM&4` D44 14α44 1L4 D44LM&44, α4426}4 148e44α4 11L1  'Lr*hh iLr* (5L2 (5L*42&&ȱ0 27}5Lw5 555&& L5&&`i`J&&K&L&` +ȱ&&%828}e慱HȱhױL&iJ&iK&Lr*+ BH Vh 1LW*+&BH 4hN 1 W*L 1MLW*+%BN29}LMH 4hLo*)}*1*N*W*v*11+,J2+,a,s,@,/,T,9,H,),**++++,,-------6.c./x///2:3}10000)/2:}//0090.444(4!4440&D'@(f(()))V)4440T5\5A1+1d5355&(6@6j6S1;=ZU=d=n=o=p=s=u.>\>\>>>2;}>(?^???@@@j@@@ AA A|AAA,A6A8B:"B<LB>zB?BJCKCOMCQxCTCYC^ChC2<}rD| D}RD~DDDDEZEnEEEE F FaF&F0FX)Gb)GcDGdtGgGhHikHvH{HH&IgII2=}IIIIIJ,J0J^J^JJJKaKKLDL[LqLqLLLPLZLdMn[MwsMtMtMMM2>}NBNSNpNNpNzNO&O@O'AOt'AOy'GO~'MO'O'O'O'O'O'P'0P'RP'P'P'P'P(P(Q (:Q(>Q(IQ(2?}Q(Q(Q(R(R#(&R((?R-(TR<(mRF(mRK(RM(RP(=SU(SSZ(S[(S\(S](S^(T_(LT(YT(YT(pT(zT(T NTNTNTNTNTNTNU2@}NUN>UNZUNUNUNUNVN!VN!VNJVO]VOwVOV$OVKOVLOVVOVO&WO&WOP*R } "2J}  Insert disk with   file for repairs 2K}  into drive # ONE   then press  2L} <<@R<}&2M}&٠ƠӠ&P*'*<<<(*2N}} The file for repairs is ]32699 THEN 3000030020 TRAP 30020:? "}Enter for regular lines":? "OR for DATA lines.":INPUT A:IF ABS(A)<6}>1 THEN 3002030030 E=0:IF A=1 THEN GOTO 3031030040 X=1:C=0:I=ABS(I):? "}:":? :? "Enter your items, or none, & hit 6}Π twice when finished."30050 ? :? L;" Item #";X;:INPUT Z$:Y$(LEN(Y$)+1)=",":X=X+1:C=C+130060 IF Z$<>"" THEN E=0:GOTO6} 3005030070 IF Z$="" THEN Y$(LEN(Y$))="":X=X-1:C=C-1:E=E+1:IF E=2 THEN 3009030080 IF E=1 THEN 3005030090 IF Y$="" THEN 3016}2030100 T=T+C:Y$(LEN(Y$))=""30110 E=0:? "}";Y$:? :? :? "":POSITION 0,0:POKE 842,13:STOP 30120 GOSUB 30300:LIST L:?6} :? "Proposed next line is ";L+I:? :LIST L+I:? :? "Π => CONTINUE":? 30130 ? "٠٠ => MENU":CLOSE #1:OPEN #1,4,06},"K:":GET #1,K:CLOSE #1:IF K=ASC(CHR$(155)) THEN 3029030140 GOSUB 30300:LIST L:? :IF A=-1 THEN ? L;:? " Item count = ";C:? "6}Items in current block = ";T:? :? 30150 ? :? "CURRENT LINE ";:? " = ";L:? "PROPOSED NEXT LINE = ";L+I:LIST L+I:? :? " 6}=> NEXT LINE":? " => EDIT"30160 ? " => CHANGE INCREMENT":? " => SHIFT MODES":? " => RESTART (no lines lost)":? " => DEL6}ETE A LINE RANGE"30170 ? :? "Š:";:IF A=1 THEN ? "REGULAR LINES":? :? "Š = ";FRE(0)30180 IF A=-1 THEN ? "DATA LI6}NES":? :? "Š = ";FRE(0)30190 IF FRE(0)<400 THEN ? "٠̠":? " or your program lines":? "to TAPE 6}or DISK.":END 30200 CLOSE #1:OPEN #1,4,0,"K:":GET #1,K:IF KASC("6") THEN 3020030210 IF K=ASC("2") THEN ? "}6}: When done, hit over CONT":LIST L:? 30220 IF K=ASC("2") THEN ? :? L;" ";:IF A=-1 THEN ? "DATA";" ";30230 IF K=AS6}C("2") THEN ? Y$:? :? :? "CONT":POSITION 0,0:STOP 30240 IF K=ASC("2") THEN ? "}":Y$="":LIST L:? :GOTO 3015030250 IF K=ASC("6}3") THEN ? "}Enter the new line increment.";:INPUT I:? "}":? :LIST L:Y$="":? :GOTO 3015030260 IF K=ASC("4") THEN ? "}":? :? 6}:LIST L:Y$="":X=1:A=-A:GOTO 3015030270 IF K=ASC("5") THEN GOTO 3000030280 IF K=ASC("6") THEN GOTO 3039030290 Y$="":? "}":X6}=1:L=L+I:I=ABS(I):GOTO 3003030300 POKE 842,12:? "}":RETURN 30310 ? "}ҠŠ":? "Type in the line or just press":? "6}Π to skip to the MENU.":? :? L;" ";30320 CLOSE #1:OPEN #1,4,0,"K:":GET #1,K:Y$(LEN(Y$)+1)=CHR$(K)30330 IF K=ASC(CHR$6}(155)) THEN GOTO 3035030340 ? CHR$(K);:GOTO 3032030350 IF Y$=CHR$(155) THEN ? "}No new entry on line ";L:I=ABS(I):GOTO 30156}030360 IF K=ASC(CHR$(155)) THEN GOTO 3037030370 ? :? :? "CONT":POSITION 0,2:POKE 842,13:STOP 30380 GOSUB 30300:I=ABS(I):LI6}ST L,L+I:? :? :GOTO 3012030390 POKE 82,0:? "}ŠŠٺàՠԠɠϠΠ":? "٠ŠŠ٠Š"36}0395 ? "Even this program, if you wish."30400 TRAP 30400:? :? " line to delete";:INPUT Q:? " line to delete";:6}INPUT U:IF Q>U THEN 3040030410 POKE 82,2:? "Enter the line increment.":? "(If unsure, use for this value)":INPUT S:IF Q>6}32700 THEN 3040030420 ? "}LOWEST LINE =";Q:? "HIGHEST LINE =";U:? "Šՠſ ":? :? "Press ٠ to continue,":POKE 702,66}430430 ? "or ٠ to abort.":CLOSE #1:OPEN #1,4,0,"K:":GET #1,K:IF K<>ASC("Y") THEN ? "}":GOTO 3015030440 ? :? "If you w6}ant to watch the process,":? "press . If you would like speed,"30450 ? "٠ will blank the screen":? "during the dele6}te to initiate":? "DIRECT MEMORY ACCESS."30460 CLOSE #1:OPEN #1,4,0,"K:":GET #1,K:? "}":IF K<>ASC("1") THEN POKE 559,0:CLOSE6} #130470 POSITION 2,11:? "POKE 842,12:POKE 559,34:CONT":POSITION 2,4:? "POSITION 2,6:? Q:POSITION 2,4"30480 POSITION 2,7:? 6}"Q=Q+S:IF Q<=U THEN POSITION 2,1":POSITION 2,0:POKE 842,13:STOP 30490 ? "}":TRAP 30000:POKE 559,34:GOTO 301504o CONTENTS (front of disk):1. EXTBASIC.ARS. Adds many usefulcommands to Atari BASIC. Must rename toAUTORUN.SYS. See :}EXTBASIC.DOC for fullinstructions/tutorial. For all Ataris.2. MASHER.OBJ. Compacts BASIC programsS*P*A*C*E compiled for :}improved speed.Disk I/O intensive and SLOW (RAMdiskuse is recommended).4. MLSTRING.LST. Converts memory orDATA into a s:}tring. To use LOAD yourprogram, ENTER "D:MLSTRING.LST", andGOTO 30000. (Tom Powers, S*P*A*C*E)5. PAINLESS.PLM. A FAST pl:}ayer/missilemover. (ANALOG #26,1/85)6. PMMOVER. Writes an entire Player/Missile subr. (ANTIC 12/83)7. REPAIR.OBJ. Rep:}airs or makes BASICfiles listable! (Joel Greenberg)8. TOOLBOX1.LST. "TYPER'S TOOLBOX" - aBASIC program line editor. (ANT:}IC 1/84)Refer to SPACE15B.DOC for informationabout the back side of this disk. Thank you for supporting S*P*A*C*E!8zSEATTLE-PUGET SOUND ATARI COMPUTERENTHUS- IASTS Disk #15Utilit- iesUpdated:May11,86Librarian - Jim Chapman