@L}5 _$% l0$)$$Hȱ$ UhL" `e$$%`$%`  R@W!( L(1   Y I`  d  Ld M * @  $ % CC$$)%1 Udߥ$9%: !0 S$% DD˙`  }J)Lr d M * @  $ % CC$$)%1 Udߥ$9%: !0 S$%} DD˙`  }J)Lr J  ((  p L ()   J}L= ( L 0q A    IB JC;? D W } LL  ` W )LA!  ߰")-݆ p" } $G@LL 08`Q")<2Q0 -G$Ș݆ UL# ; p8(()(0ʥ)NQ` }$GȘ݆LU )L ݆ L GȘ ݆LL )W>Z   HH)H }p h  hyhy D L> L JJ    ! LA*` BF }7'8  M HN H` 8 Z  \LdJJ!"! GFE@F (!L }EE !E^ ^ E E7EȩEdE/EȩE  D } .L }  ;F d  ;?F7F? ( .   Z D LL d } . D  L    p  E` , d)  D L) 0BM݊L݉} ML  N݆ L NLML [ TEqEHȱEqEh 0Gȹ G} HLL GɛL  LFREE SECTORS G) *Gȩ GȽG GȌ*jj >G} C8jJ3j2CD( C202C ԠBX` N 1? l LlD:RAMDISK}.COMLu L1 L ;LHL  T`  `8  ɐ     `TU  } L ? .  t`GBJ ~DEHI B V0dV!}QDEHI VF9 ,0 ,0 s0hhL  L` H hDHEh"}DEL8HI4 0 HI,0 0  9 .G VLO#},0 L4*IJ`llD1:AUTORUN.SYSNEED MEM.SAV TO LOAD THIS FILE.D8:MEM.SAV J y08 B|DEHI$} V0 0`B;DEL`?<0LV`@ʆ v s? F0Ξ05: [ BDEHI%} VY8 B V  @  /DE `E:D8:DUP.SYSERROR-SAVING USER MEMORY ON DISKTYPE Y TO &}STILL RUN DOS B;DE J  (` 9 V⪍ ઍ  -'}LLu ÝDEHILV 9 .l 9 .l  `` s$B BH(}I|DE V BLV nB,DE JLV B V BLVDEIʩ BꭝLu } 3E:}DISK OPERATING SYSTEM II VERSION COPYRIGHT 1984 ATARI CORP.A. DISK DIRECTORY I. FORMAT DISKB. RUN CARTRIDG*}E J. DUPLICATE DISKC. COPY FILE K. BINARY SAVED. DELETE FILE(S) L. BINARY LOADE. RENAME FILE M. RUN AT ADDRES+}SF. LOCK FILE N. CREATE MEM.SAVG. UNLOCK FILE O. DUPLICATE FILEH. WRITE DOS FILES P. FORMAT SINGLEL !N',}#"&))9(&*)/h)''-&؆莟R'S  vL/ˢ L }Insert DOS 2.0s, type Y Λx -}DEfHI 1莏#q! @ y0ɛ8A0,' ȅ 1 1ild! 1L!NO SUCH ITEMSELECT.} ITEM OR FOR MENU! 0 .z:*{}.|{ 1 0 0JB 18L%|DL/}%DIRECTORY--SEARCH SPEC,LIST FILE?[# 0 0 &|D3" 1L!NOT A DISK FILEN !B 1L!E# 1 !BD0}ED:}:1BJ|DE 1DEBHI 1 h0ߢ 0.1}  0?詛 1 y0YЛ 1 ;#L" ;#L! BL1TYPE "Y" TO DELETE...DELETE FILE SPEC2}COPY--FROM, TO?OPTION NOT ALLOWED203 FREE SECTORS COPYING---D8:RAMDISK.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- 128ɛ+,' 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%9:9ROLINKEPPRINCHN1FLASESTARN1PLUSMINFIFILNULNHTOPSECASPTNSEN25NDAUXDAUXNNHEXNNERTT}RAWAIRTCOSCRNDSHELBORDEBACKGNCHANDCOMGSESNADMAXSEDENDRIVSECLOSECHSECNUPROCINSUBBACSECERERRFLSEU}TDSERERCLAFINUMRECOVCNTIPHELPSEPTRACPMOPDIPWRITPCHANGIINDISPLAMONBLCASBUWFLACHNGBSCRNRTSCANARPTV}EMNFITITLEPSTSERELFIDTRASEDRMADATREDAT@@ A @fAp@@ W}@! At @ A `@AAuVA@@AuUAGAEAV@AyX}Ax@@P@ A AP!@"A#A$AU%@&AQ'B(Y})*A+A,A -.@/Ap0@1@2@34A 56@7AZ}8@9Ab:A;AuP?A@AAPB(CAyDAwEAXFAPGB[}HAIAJA`KA0LA@M@NAOPQRS@T(((UA!VAuTWA\}w)XAVYA`Z[\]^@_`datbcdeA$f@]}gh p B p̠ᠨéǠͮ^}? <(- 㣬ìĬͬЬѬҬӬԬנ ?$V A 8(% ٠more rin_}t Screen Stop< H"@L V @0(6-+"AU,$2$@d!B7t@d$$d()(A``} A`i6-?:%, %$n 6.$6-F:,6- &q% 6-F:,6-F:,6-$%% &r 6-F:,6-F:,a}s 6.$67,.=:,tI6-P:',%#67B:,%,.7<,36-&+&,$%F67B:,%,.7<,I$x7Ad&6-@1b}7ٺ蠧} %(>:%%,a6-F:Ad,<+ &,%+"@9)"@`,A5MF:%, %c}%[6-@1&a %# ( +"%,& )#$K:$ 6-6-%A%d}( 6-!%%%@0$((} 6-Aa6-%&> 'AY@4*$>e}K@e6-F:,$,%:%@9K6-?:C:hLS,,6 @ef} 6-F:%,,"A826-6 9 6-"!6-A %A $+6.,SD/96.,ED$% - $%g}`Ai!3ArAS?AsQAvA']Aw`$6-%$+ ,h} % 6-& )!6- %$%%к 6-6-6-H 6- APi}6-6-) A /6->F:,"A8D6-H !"@)"Ab ! " 6-* *"( j}( %$ ( ̠ԡ 51(! ĠҠ (1-)5 -#(k})6-- "3/( **** SECTOR  IS WRITTEN! ***3 ,/%(*** ˠŠҡ ***+6-/ 68.(% l} *** ˠӠŠġ ***46-8 @-#(ŠӠԠġ)6-- J$ ( ĠŠm}$ T%%( ҠΧԠġ^>    #"A@+* 3(6$>қ!!кn}>' 6-6-6-A&6-%*66-AD>6-% Au6- % A@6.6- o}ЛH 6-B:,2"@*"*@6A@H!)$+ ,AP! 6-! \\+"@Cp})"AU,%$+"@E,%$+"@r*(,%$+"@,A A0QQ+")",%$+"@w,%$+"@h,%$+"q}@,%$+"@g,"@*"  5 "6-%+)"@6,#"56-%+"@6,$aS+"AUr},%$+"@*(,%+!,$+A &@0$+@:,"@6,,Ba"A.pG+",%+"@6,%$+!@G* @s}X,A AAp7<,4$*!@d* @qA86"A&( )6.7<&+!,,/"66.t}B %L#67%<%,.>:,(>:,# %` "6- AP j$)%6-$ ##u}웦= 6--B:,!7<,/936-$%A:7<,,= A6-$%@:7,,&@U 6.=:, " v}$##$ 6-6-A:, )!$6---ɯϠ$6-w}P:',6-P:&+$,,!$$ZZκ堫ЮD 6x}-% 6-+(),$6-06-A> AP%$D %* *( Getting Sector Data...7 -6-6-?:y}%,$6-+*,*6-1F:,7 &O 6-6-%O%+"A`,%$+!A`* Ai,A PA 0B &8(z}7@4,٠  ()B A ;'(àҺ360 $168 ;6-F:%,%$F:%,;6-{}%A!"A1( Ck.Sec1024; A I6-P:',6-&$ &.(%$ :@5?(I A , |}&!(Ժ7@7,',( / &"( Ժ7@7,*%/(, &( ̣ '@7}},(  F:,!(7F:,%,*0 -%&(Drive #$)-(0$4  UUźש~}뮠 W 6-6-@d6-!6-'6-06-+(,66-N Au&@u$+),W(}% A 1("ŧ٠٠٩5 =%A  & %6-?:, 6-& < 6-F:,86-}%+!,%+"AD,%@$+"A8,< HHźé򮛠M 6-}6-%6-6-&6-+(,,6-D Au&@u$+),M(%@ -%(7%,@(' 嬠}&&(** Sector Data Changed **. -%AR ".ARH2B:,!%*F:@,!*F:@}, %A@`:-%A(7,H(5 A A@d+A5%9 6-6-C:,%9(C}hanging Sector Data... 6-?:<, % %;;кȩ˭̠󮛈9 6-}%A%6-%) 5Aa9 oJJҺĩﮛpC 6}-6-6-!6-A`-6-AF7 AP=6-C6-z6 -6((ã ů ̣ / %} -"6-?:Ax#,)F:,/ &. @0 %"(* Ah. %@  %W<<ԺЩ}X=  6-33A0=( ǠΡb=6-F:%,%F:%,$7-}%%+"AF)"@,=6-l.-%@96-F:,$!%.6-&&v+!@c#!@ApP+6-% } 6-%%167,.>:,6-% 3-6-%@@1  6. $?66ĺͩ}宛@@ 6-6(' ٠ Sector # or ame : @J&))6- TT 6-6-@66-}+(,$6-< Au&@u$+),G6-?:%,NF:,T &^E )( Next Sec: - 9A0?E}h- -%( File #: #6-' -6-r2 6-A:,!@c$6-( 2 A@|`6-?:A,1( }ǠҠӡ`( FILE# is: F:,, NEXT SEC# is: (F:,$%F:,6-%6-F:,%F:,$& %!"}%  - A '#ooźԩҩ}宛(#.6. Ҡ"6..6-@2#< "6. Ҡ*6.66-Ab<<#0 6}-,( What File # 0 F#? 6-6-A:,%6-P:',%Aa1!Ah5 ? A P#6-&P:',$}6-$%Z#E 6-6- AP0(  <<~>>?6-?:<<<,E6-d# A 6-F:, &n#. F:,6}-F:,6-F:,.(F:,Ax#N @0A;(}<<~ҠŠ>>D6-?:,N A`'??Ժ}ө宛'<2( ԠנŠ>:%Av, < A@' 6-&$} )! $'7 & A6- )-%&/(76-!.'1%&$-%%&!(-%%$1 * }ԛ*_3( Ϻ ASIC, OS, enu-D , or 7 C"@hOARU._ B +`@f*@w'}A3"@w= B N6. D1:MENU*.*\67<,.=:,`% + + .::ΠŠ̠Ϡ}Ġٛ.Y3F:A(,"A*F:AD,"@@B `E@@O+@Y @P.A@f'A}@@9A@@KA @]A@@oAVA&(@ analog.(@} presents1-@@K(@ ]-@ @m(@by(@ tony messin}a.`AR@6(ӪЪêŠ`(%Refer to the ANALOG COMPENDIUM (pg75)/W,($or ANALOG Magazines }#8 (pg19) and #9W(%(pg33) for instructions and tutorial./\ACA'AD@@9A(AKA)}@@\% D:DISKTOOL.4/;A',;@f,&/ee6.[ S039  &       L~  }h`8  90/nn67@,.[#멼 9# &  L  9#8`ţ }ɼ :/nn67A,.[ 9#`) 0ii0` }ɀ ɼ ɠ.`  9# 9# `HJJJJ h `i}D/nn67At,.[  ``` 9#$ 9#`hhh͠ oiȱ ȱ oHL80N/nn67Ae,}.[ `Hȱ edh e d`L4  ` S0ͩΠ͝ ͍ȱ͍ȱ͍ȱ͍X/nn67AV,.[ȱ͍,}DLP%U ,*,2L1 +  /#     9# b/nn67AG,.[     9# }  +    +    +    l/nn67A8,.[9#  i͐Ω 9#} L 9# i  L v/nn67A),.[`L? SL4  L?** z}L?zH)hJJ`<hL hh /nn67A ,.[w#h v#hhhh SL< ͍͝ ͍ ͍͍u#L}#, !~/nn67A ,.[ !  /# } 'V !L*! %& !& !s# t#  S ' ! L0nn67A!,.[< %  {  !Ls%#xh  W }S & ! %L*! % !& ! u#L@ 0nn67A"v,.[R`N n jj8jH i hYx#x#{#{#}|#`Pass #1-Checking File C*0nn67A#g,.[ondition IS NOT DELETED!!, CANNOT BE RECOVERED!!FILE INTACTPass #2-}Recovering Fil40nn67A$X,.[eDIRECTORY ENTRY DONEREALLOCATING DELETED SECTORS HAS BEEN RECOVERED!ERROR IN VTOC}>0nn67A%I,.[ WRITE!!ERROR IN VTOC READ !!FILE READ ERROR!DIRECTORY READ ERROR!DIRECTORY WRIH0##67A&@,}.TE ERROR!Q0""̠R0LL6.Bhhhhhhhؠ<<ɼ80 }`\0\67@0,.>:@4,367@6,.>:AU,Y6-?:C:,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. ˑΈˑ` K LE}..ԽձԙtHtHt *** 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 0} The XREF command is a cross reference of all variables used in the program. It will print the variable name , and all 1}occurences of it. FORMAT: XREF [output] Short Hand: XR. output Device in which the printed output is to2} go valid devices are E:,S:,P:. The default device is E:. EXAMPLE: XREF"S:" A$ 2/100 1/1103} 10/1000 A$ is the variable name and in the second line the 2/100 indicates 2 occurences in line number 1004}. The 1/110 indicates 1 occurence in line 110. SIZE The size command requires no parameters. It will ret5}urn the number of variables in the program, The program length and the amount of free space remaining. 6} FORMAT: SIZE Short Hand: SI. OUTPUT FORMAT: number of variables / program size / free memory remaining 7} EXAMPLE: SIZE 12/500/28500 This indicates that there are 12 variables in the Variable Name Table.8} The program length is 500 bytes and there is 28500 bytes of memory remaining. PART VI. CONTROL COMMANDS 9} 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 LOCA}K "D[n]:FILESPEC[.EXT]" UNLOCK UNL. "D[n]:FILESPEC[.EXT]" ERASE ERA. "D[n]:FILESPEC[.EXT]"B} RENAME RENA. "D[n]:OLDNAME.EXT,NEWNAME.EXT" REFERENCE COMMANDS COMMAND SHORT PARAMETERS QREC}F QR. [output] XREF XR. [output] SIZE SI. CONTROL COMMANDS COMMAND EFFECT D} @D Temporarily disable Ext.BASic. @E Renable Ext.BASIC. @X Terminate Extended Basic. ECT w2CCCCCCCCC1C1C2C3C19COCOLCUMENSEMDOWAIERDDFABDRCFJBFSCRRXXF} G} H}!"#$%&'@@c(}88"I}VV1,2,3,4,5,7,8,9,11,17,21,32,195,82,712,752,32698,32712,32721,32737,32760,1,1,560:;%,;,;%,J};,"0K::%%$E:&$ 0O6-F:,%AV$F:%,%%&-&K}7%%A&%I&O6- 6-䛼C 6.D1:*.*"67<,.=:,'4%:6-@L}"C$7 6-&&%#6._.67%,.767,. 00M'(}  DRIVE #+(5M}%%9(A%G6-M6- (67,. 6-% %%%+"B:,&&)$,$>"(>:,)7<,7%<%N}%,46-&$$+"%,>6-"$% 6-%6-%"%- &, ( -&((>:@:7%,,%$,, BO}  &2(}RUN/ENTER,:0B0gg(_+LOAD rerun menu, miniDOS, printoP}ut more, *. files print to screen% )6-F:B2y,%6-")"II+"&,%+"%,$%+"A',$%+"AUQ},$+!%,$&%%I %)!%)!$*$I6-%$$+ @W,&&%++!%,,$$B !&6-$&&)R}67,.7<%,1->7<,0 B C7%<%,0 !67<,..)6-%=67,.7%<%%,C %9 & +S}-+( 7,/59%V & )')7"AU*"<GV6-?:AT}Uv,2 (ĺ#6-2 &$+F:,",Y"6.}ˠ堭36. $#! Rr3c@Y(!}Ӻ U}(1) Unlock (2) LockS*("(3) Delete (4) Rename (5) FormatS(#(6) Quit Rerun to MenuT )6-&@HV}H+ )!%,%+"&,%+"A,$%%&T6-@:7,,#!%%6-@:7%,,# &67,.7,$67<W},.$367<,.067%,.󠨧3$-*6. }Ԡ렭-$ + EX}((=>#)(/"E &%@F$+0A,A4%+B:, ,&!-06-7<,4:=6.7$%,Y}A  !%E!)"%$4(堧٧;)E%[  6.67&$+!,,.+Z}/@67,.DOS.SYSEPU[6-$ $$(塠9  6--$ 9 &[}%$+F:,!,%$+",)6-%Ax$6-&!6-) %$D+(#CHOOSE: Enter Merge Return2):"&@\}D % &O &(}NEW8(POKE842,12:GR.0:E.>:%,FAB%L-O&+7,4SYS)7,4C]}OM!.+ B&P7,4 DISKTOOL.4 %6-A-&7&%?$MA)%P$7,0DOC$A^}&%A(}7<%, documentation/ &6-$6-F:, (!%/6-( (F:%_},  &G --(٠ݠ4)A"$)F:,G % %%(} &K 6-`}P:E6.'}堨 K &7( }Ǻ-(WEWF1 76-+ a}B:, %(E @+ &(( 6-%"#6-(( &2 $.( *** ERROR #F:,b} ***2 f;(%}Πխ堣>:%Av,B)P6-&@HV6-`!*f6- 6-6-c} F((Write 'DOS.SYS' file also? =>/)96-"%F(>:&%$,@:,%)@:, %6.9$ D:SUPd}MENUYS 037 DUP SYS 042 DISKTOOL4 116 EXTBASICARS 033 EXTBASICDOC 093 SUPMENU 033 REPAIR OBJ 154 BASICOFFOBe}J 001 BASICON OBJ 001 042 DISKTOOL4 116 EXTBASICARS 033 EXTBASICDOC 093 SUPMENU 033 REPAIR OBJ 154 BASICOFFOB #00000llllllll~`~~fl0fF68of;00000000f< 800000 0 ~~`0 q}b%DOS SYSb*)DUP SYSbtSDISKTOOL4 b!EXTBASICARSb]EXTBASICDOCb!EMASTMENUBASbfREPAIR OBJb BASICOFFOBJb BASICON OBJb BLINK BASb README DOCbMENU b *RAMDISK COMb3AUTORUN SYSbXRESET BASbOXRESET OBJb1VXRESET DOCbGXRESET ASM0`0xff|ff||ffffff`x`ff`x``||~ZZ~ xs6<8<6sx00006~r}||fff|`|vff|xl|||<xx0f<8pp8?t}ww<~~~<x`x`~<~u}~<0~0 ~ <~~<<>f>p`|ff|<```<>ff><>ff>|p`|ffw8<  xp`lxlf8v}<fkc|ffffff>|f```>`<|~ffff>fff<ck>6f< x~ 0~<~~<w}~x|nf8x8&l;==7lLJ&&K&L&ʩ * d5I&&&© 1 -L*I&˜ 'x} 4&0& 1&& *L*& & 1 -& & 1 - - *`RUNTIME ERROR AT LINE &&Lr*y}+ +L&` '& &L&PROGRAM STOPPED&&Ńł ȱ`iL'HH 1*Lz}/ r* . 1 + '. . . 1 . ' 1 + . 'hhL.ʥ`HHhh`8{}L'u`Huh` Lr*L' Lr*L' ) . (|} . ' r* .Lo* ) . ' , ( . ' + ' r* ' + 1 , . o*Lr* ) ' ' , (}} . ' + ' r* ' + 1 , . (( . o*Lo* ' 1* '.L/` ) r* .L. ) . . + ' . ~}' ,L' ) ' , ' . + 'L'J&K&L& ) 1 1,L&eJ&iK&`L&}8LM& . '.L&`ʔȱȱȱ 1*Șe惠 惨6,*6-* L*HH}hh```Lo*ʱ` ** &JL&J *HHl JLw} TO BOOT FOR DOS TO RERUNp B V8+` +ȱLr*&&8558凅刐SJj)e}e`ффiiL#+8L#+ LM&uuuLr*8` +Lr*}iLr*豂Hȱh`p +Lr*+H+ BHI+ 4 -h`8` ,L, ,}#` ,0 ,0L, ,0` ,0L,L,`޵` `Ȕ`ʔ}惥u`+ BHI DEH 4 -HyhLo* + -`+JJJJ`d-+e- +}- c-0 c-Lr* J-Lr*` f-H J-h 0 c-`L+8 0ƅ`66&Ln-HH` B VhH)Kh)0 IJ}D-EB 4hLr*S:+Lr*TUVLo* -`++L+ -8ɰɅ +`ʱȱȱ`ȵȵLr*}Lr* '. . .ʥ . . '. .L3 '. . . . 1*uȱuȱu W* 1* .0 @,}L3 ȱLr* T,L.ʵ`eeLM&HHhh`ؐHH 1*L/ r*}HH . .6 +i i .i i .hh . . 'hh .`HH 1*% r*HH 1L}'/ 1* '. LM& .6 + . +` 1* '.ޠ . 1 +L/  o*Lr*H+ B Vh` ҵ  o*Lo*H}+BHI 4+h+L1 g0+KJBD0EH 4h o*Lr* r* '.0Ɔ򩛙0`} -H`B 4h`00L1Lr*Lr* +`H o*hL11HH eHHƆeiH }'.lꦆ 1Օ`0  L,`8`|1rd-1e- (- 10|1L1|10|1`1 r* '.1 1}`+6-1L1801LM& + 1 . 1 1 ++ 1 +Ɔʭ1 +`ʕ`66`HHH}66666uuuhhhLr* +愵 ' + 'I 1 28}0/66&&&`uuu` 2 2Ј 2 o* +`@32@2 .2222}2 LM&ȥ2i223`L*32 3`LM&2@82ƅ3 ȱ222` w}3L?33L?3H3 2h`1+ %  88L3 o* o*` o* o*` } o* o*` 3$' 3"0 30 !4L, 4L, 4L,L1L14 1 '. .4444`H+? ++HI}4D44E4B 4H4h` VLM&4` D44 14α44 1L4 D44LM&44, α44}4 148e44α4 11L1  'Lr*hh iLr* (5L2 (5L*42&&ȱ0 }5Lw5 555&& L5&&`i`J&&K&L&` +ȱ&&%8}e慱HȱhױL&iJ&iK&Lr*+ BH Vh 1LW*+&BH 4hN 1 W*L 1MLW*+%BN}LMH 4hLo*)}*1*N*W*v*11+,J2+,a,s,@,/,T,9,H,),**++++,,-------6.c./x///2:3}10000)/}//0090.444(4!4440&D'@(f(()))V)4440T5\5A1+1d5355&(6@6j6S1;=ZU=d=n=o=p=s=u.>\>\>>>}>(?^???@@@j@@@ AA A|AAA,A6A8B:"B<LB>zB?BJCKCOMCQxCTCYC^ChC}rD| D}RD~DDDDEZEnEEEE F FaF&F0FX)Gb)GcDGdtGgGhHikHvH{HH&IgII}IIIIIJ,J0J^J^JJJKaKKLDL[LqLqLLLPLZLdMn[MwsMtMtMMM}NBNSNpNNpNzNO&O@O'AOt'AOy'GO~'MO'O'O'O'O'O'P'0P'RP'P'P'P'P(P(Q (:Q(>Q(IQ(}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 NTNTNTNTNTNTNU}NUN>UNZUNUNUNUNVN!VN!VNJVO]VOwVOV$OVKOVLOVVOVO&WO&WOP*R } "}  Insert disk with   file for repairs }  into drive # ONE   then press  } <<@R<}&}&٠ƠӠ&P*'*<<<(*}} The file for repairs is ](:}(ERROR!(4(DATA INCORRECT IN LINE # > A0@%(%(NO ERRORS!... FILE WRITTENJ A0@TT:}T255,255,252,28,247,29,165,203,240,17,165,204,133,12,141,74,29,165,205,133,2952NN13,141,75,29,76,35,29,165,12,141,74,29,:}133,204,165,13,141,75,29,133,1712OO205,169,1,133,203,32,141,30,172,70,3,200,140,151,30,173,71,3,141,152,2220HH30,32,1:}54,30,165,6,240,14,169,0,133,8,141,68,2,133,9,230,9,76,1649KK0,160,96,32,73,29,32,141,30,32,154,30,216,88,169,34,141,47,2:9}YXLAPNB0 +Ad.}AUcAA'A @9@@K@@7Q(}cAR@++(#.}++(#| |++(#| P.D. DISK #46 - UTILITIES |++(#. }++(# @ -@A $ GG;@.!}@,;@ ,;@@,;A,;@,;@@, "D1:MENU" &&@@D:*.* 6,6." ."} 6 @0i6-%@(6.7@<@,A67@ <@ ,..i67@<@.#},.7@<@,3 6.|67B:,%@,.367B:,%@,.G67@<@,.(--@B:,:7.$}<,4 G67<,..] 6.=:, @D67@<@,.7@<@,]67@<@,.0$.%}@(''7@<@,4FREE@- @ 2() <@F''7@<@,4FREE.&}@K @ P(7@<@,)|U @0W'!-@6+'@,%@' |Z++(#| .'} |[ ( |  |\++(#xAR[@.(}@9'-@@C( SELECTIONM A0Q[ BP:,A00"@&6.7.)}@<@,0 AELB6.7+&@,$@%@<+&@,$@%@,L B37@<@.5}8<<  B JKIHiDiELV`L8 8 BLV`Lx2+}8t8l Lu8hihiHHȱȱL8c !#3`Lu8JJJJ`H 8h`H2,}ȩh Q8L8 Z8L8 8L8 8L8 8L8S:@9E:E9H '9 H9I9 8 '9h)0IC2-}9D9L8 L :::: :Lr:::IEL[::i:iIIL[:`:i::i2/}::L:`L{:w:w: C`L:L: D8:MEM.SAV: 8| 9 '9`L:L: D:DUP.SYS:̩ 820} x:ɀL: '9`88 |9Y:X: '9L); D8:DUP.SYS; 8::88 9 '98? :`;WL`; 921}Ln; ` :Y;Y;L;L;)} Setting Up ATARI 130XE Ram Disk; 9L; ; -9  22} L;D8:; :9 :Y;L key. Also included are theAMAC source code and BASIC object filecreator. Load with DOS (L) command.*},4 36.7@<@,!7@<@,4DOS!.0 6.-@B:,07<,4 AH67B:,%@.6},.7<,   6.! 6.D1:!67B:,%@,.?AR@'-@@?  LOADING ?.7} A@@91@@5%? BD-@@-  CANNOT RUN 7 @A B.8}D%D:MENU@91@@5%? BD-@@-  CANNOT RUN 7 @A B,,169,1675SS10,133,201,169,171,141,115,30,169,30,141,116,30,32,91,30,169,244,141,115,2278NN30,169,30,141,116,30,32,91,::}30,32,78,30,72,169,255,141,252,2,104,201,2005PP63,240,34,201,46,240,18,201,40,240,11,201,58,240,16,201,146,240,15,76,2527:;}PP82,29,108,252,255,169,125,32,150,30,96,108,10,0,76,119,228,169,98,141,2277LL115,30,169,31,141,116,30,32,91,30,169,4:<},141,167,30,32,78,30,160,0,1596TT185,212,31,205,252,2,240,10,185,212,31,201,56,240,236,200,208,238,140,169,3253MM30,1:=}85,228,31,32,150,30,32,41,30,56,173,167,30,201,3,144,9,173,168,1913RR30,141,166,30,76,243,29,173,168,30,141,165,30,206,16:>}7,30,173,167,248,29,2442PP164,30,30,208,190,169,136,141,115,30,169,31,141,116,30,32,91,30,32,78,1963RR30,201,12,240,1:?}0,201,18,240,19,201,28,240,144,208,239,169,255,141,252,2,2850NN169,125,32,150,30,108,165,30,76,82,29,173,167,30,201,4,240:@},19,201,3,2034OO240,4,201,2,240,11,173,169,30,24,109,168,30,141,168,30,96,173,169,30,2208PP10,10,10,10,141,168,30,96,:A}169,255,141,252,2,173,252,2,201,255,240,249,2666KK96,173,163,2,72,173,164,2,72,169,0,141,163,2,169,8,141,164,2,160,2036:B}PP0,140,170,30,185,171,30,240,13,32,150,30,172,170,30,200,140,170,30,76,2179OO114,30,104,141,164,2,104,141,163,2,96,169:C},73,133,12,169,29,133,13,96,1888 OO32,150,30,96,169,244,141,231,2,169,31,141,232,2,96,171,30,166,31,155,2319 II125,155,:D}155,155,127,17,18,18,18,18,18,18,18,18,18,18,18,18,18,5,973 LL155,127,124,32,88,32,82,32,69,32,83,32,69,32,84,32,124,155,1:E}27,26,1537 HH18,18,18,18,18,18,18,18,18,18,18,18,18,3,155,155,155,127,32,32,893 JJ32,32,79,80,84,73,79,78,83,155,155,0,:F}127,32,82,117,110,32,40,65,1535SS41,100,100,114,101,115,115,155,127,32,67,104,105,112,32,40,82,41,101,115,1799QQ101,1:G}16,155,127,32,40,87,41,97,114,109,32,83,116,97,114,116,155,127,32,1891PP40,68,41,111,115,32,83,116,97,114,116,155,127,32,:H}40,67,41,111,108,100,1714PP32,83,116,97,114,116,155,155,127,80,114,101,115,115,32,65,44,82,44,87,1874PP44,68,32,111,1:I}14,155,127,60,99,111,110,116,114,111,108,45,67,62,32,58,1744NN32,0,125,155,155,155,155,155,155,155,155,32,32,32,32,32,32,:J}32,32,32,1685OO69,110,116,101,114,32,72,69,88,32,97,100,100,114,101,115,115,58,32,0,1635LL155,155,127,32,32,32,32,32,:K}80,82,69,83,83,155,155,127,32,60,67,62,1652OO32,116,111,32,99,97,110,99,101,108,155,167,31,243,31,127,32,60,69,83,1903:L}MM67,62,32,116,111,32,114,101,100,111,155,32,32,32,32,32,32,32,32,60,1317JJ82,69,84,85,82,78,62,32,116,111,32,97,99,99,1:M}01,112,116,58,32,0,1547EE50,31,30,26,24,29,27,51,53,48,63,21,18,58,42,56,48,49,50,51,825EE52,53,54,55,56,57,65,66,67,:N}68,69,70,224,2,225,2,252,28,999,2464 D:XRESET.BAS8,63,21,18,58,42,56,48,49,50,51,825EE52,53,54,55,56,57,65,66,67,89̅ Jͅ KL# J̥ Kͩ FȌG D L` I  X"/ ɩst [st>P} [ NHh?".( :ɒLRl} `l Lwbst [ N 8  )8 L>Q}Χоst [ N } lLR m` ``HH>R} ȌLrhh`I  ` ``}| X R E S E T | >S} OPTIONS Run (A)ddress Chip (R)eset (W)arm Start (D)os Start (C)old StartPress A,R,W,D or : }>T} Enter HEX address:  PRESS to cancel to redo to accept: 2350>U}?:*80123456789ABCDEFess:  PRESS to cancel to redo to accept: 2350< XRESETREQUIRES: 24K, DISK Pressing the key on your ATARI will normallyBW} cause a warm start tobe performed. This feature allows RAM memory to remain intact while resettingmost of the O.S. variabBX}les to the powerup values. Control is then given to theloaded program or cartridge. Functional, yes, but not very elaboratBY}e,considering that the key is the only non-maskable interrupt availabledirectly from the keyboard. Extended Reset BZ}(XRESET) will give you someadditional options whenever you press . You can jump to any address from BASIC, eliminaB[}ting the extra PLAinstruction necessary when using the USR() command. This ends the need to keeptwo versions of a machine B\}language program, one for use with DOS and one forBASIC. Also, you have the ability to jump to ROM code from BASIC withoutB]}worrying about the "missing" extra PLA. If you like to experiment with machine language, you have probably at onetime or B^}another bought a one-way ticket to "LoopLand". can't help muchhere because the same loop is re-entered repeatedly, B_}after each warm start.XRESET can break out of these loops and allow you to perform some vital tasks(copying a ram disk downB`} to a floppy, etc...), before you re-boot the computer(highly recommended). The XRESET program can also save wear and tear Ba}on thepower switch and other components in your ATARI. Many times when you areforced to re-boot, the computer will refuse Bb}to respond to normal commands.Usually, the only way to handle this is to physically turn it off and on again.XRESET will reBc}main active, even when BASIC or the keyboard are disabled.NEW OPTIONS When XRESET is active, you will see a menu screen Bd}each time ispressed. You are given the following choices: Run (A)ddress, Chip (R)eset,(W)arm start, (D)os start orBe} (C)old start. Each function is invoked bypressing its highlighted letter, except (C)old start which must be selectedwith Bf}a keypress sequence. The Run (A)ddress option will prompt for a hexadecimal 4-digit address. Thecomputer wilBg}l validate each keystoke before accepting it. It is not necessaryto press after entering the last digit. You can Bh}then press toredo the address, to cancel the Run Address function, or to jumpto the address. Chip (R)Bi}eset will cause a 6502 chip reset, vectored through location $FFFC.I found conflicting sources as to whether or not this is Bj}part of a normal warmstart. Since putting in this extra routine was very simple, I added it withoutfurther investigation.Bk} Selecting (W)arm start will simply execute an RTS instruction. Thisduplicates the unaltered function of the key.Bl} The actual warm startprocess has already been completed before entry into XRESET. The normalfunction of the key Bm}is preserved and performed as usual. The (D)os start selection will jump to the vector stored at DOSVEC ($A).This is the Bn}same as typing "DOS" from BASIC and will bring up the DUP.SYS menu.(C)old start performs a re-boot and is the equivalent of Bo}switching your ATARIoff and on again. A jump is made to $E477, the cold start vector. You mustpress the combiBp}nation to make this selection. Each time is pressed, regardless of the option chosen, several newactions take plaBq}ce. Player/missle graphics are disabled using the DMA controladdress, SMDCTL at $22F. PTABW ($C9) is also reset to its defBr}ault value of 10.This is the number of columns between items separated by commas within a PRINTstatement. TABMAP, at $2A3,Bs} represents the spacing performed by the key,and is reset to its initial setting through the normal warm start processBt}.USING THE PROGRAM Type in Listing 1, XRESET.BAS, and remember to save a copy before you runit. This will create a disBu}k file, XRESET.OBJ, which is the executable machinelanguage program. You may now change the name of XRESET.OBJ to AUTORUN.SBv}YS, ifyou desire the program to self-load whenever you re-boot. The second listingis the AMAC source code. This is providBw}ed for your interest only, and it isnot necessary to type in this listing. It it easier to use XRESET when you understandBx} how it works. The programloads at MEMLO ($2E7), assumed to be $1CFC or lower. If you are using a DOSwith a MEMLO higher By}than $1CFC, you must reasssemble the source code at thehigher address. Also, you may need to relocate XRESET higher to makeBz} room foranother program that also loads at MEMLO, such as the RS-232 handler. XRESET,after loading, pushes up MEMLO to thB{}e next address above its own code. Page 6($600) and any memory reserved by lowering RAMTOP is left untouched. XRESETuses B|}three (3) zero page locations, $CB-$CD. You must have MEM.SAV active if you want XRESET to remain operable when go-ing toB}} the DUP.SYS menu (DOS command) from BASIC. Without a MEM.SAV file, XRE-SET can only be used from BASIC. When MEM.SAV is pB~}resent, you may go from BAS-IC to DOS (and back again) repeatedly, without losing XRESET. The saving andloading of the MEMB}.SAV file is almost unnoticable when using a RAM disk. The DOS Copy command will disable the MEM.SAV function. You must rB}eloadXRESET when you have finished copying. The Copy command will only prompt forpermission to destroy MEM.SAV during the B}first copy operation. Additionalcopying will not remind you that MEM.SAV no longer exists. So wait until youhave finishedB} copying altogether before you load XRESET into memory again. The XRESET program determines whether or not BASIC is loadedB} by looking atTRAMSZ, $06. A one (1) here means yes, BASIC is present and a zero (0)signifies "NO BASIC". Most BASIC on/oB}ff "switcher" programs (for the XL/XEseries) do not change TRAMSZ along with the other values they alter. If youwant to usB}e these switch-type programs (with XRESET), they must update TRAMSZwith the appropriate value. TRAMSZ was used to maintain B}compatibility with theolder 400/800 Operating System.pdate TRAMSZwith the appropriate value. TRAMSZ was used to maintain @7; XRESET.ASM;; *****************; * *; * XRESET *; * *; *****************;;; ThisF} program will execute whenever; the reset key is pressed (warmstart).;; In addition to the normal warmstart; function (W)F} of the reset key, it; provides the following choices:;; Run (A)ddress; Chip (R)eset; Start (D)isk software -DOS; (C)olF}d start;; (Press A,R,W,D, or [CONTROL-C] at; the prompt).;; The program will operate with the; 400/800 O.S. or XL/XE O.F}S.;; Player/Missle graphics are also turn-; ed off with each press of [RESET],; and the TAB width is also reset to; defaF}ult value.;;; O.S. EQUATES;ZFLAG = $CB; LOAD STATUSZADDR = ZFLAG+1; HOLDS ORIG. DINITMEMLO = $02E7; BOTTOMF} FREE MEMORYCOLDST = $244; COLDSTART FLAGWARMST = $08; WARMSTART FLAGBOOT = $09; BOOT SUCCESS FLAGBASIC F}= $A000; BASIC START ADDR.TRAMSZ = $06; RAM SIZESDMCTL = $022F; DMA CONTROLPTABW = $C9; TAB WIDTHTABMAP F}= $2A3; 15 BYTE TAB MAPCRESET = $FFFC; 6502 RESET VECTORDINIT = $000C; DISK BOOT INIT. VEC.DOSVEC = $000A; SF}TART NON-CART. VEC.CH = $02FC; CURRENT KEYPRESSIOCB0 = $0340; EDITOR DEVICEICPTL = IOCB0+6; EDITOR PUT BYTE;F} ROUTINE(-1); ORG $1CFC;;; * INITIALIZATION; *; * THIS SECTION EXECUTES ONLY ONCE; * AFTER EACF}H PROGRAM LOAD;; LDA ZFLAG; IS FIRST LOAD? BEQ LOAD; YES- JUMP AHEAD; LDA ZADDR; NO- F} STA DINIT; RESTORE ORIGINAL STA REINIT+1; DINIT LDA ZADDR+1 STA DINIT+1 STA REINIT+2 F} JMP RELOAD;LOAD LDA DINIT; CREATE JSR TO STA REINIT+1; DINIT WITHIN STA ZADDR; REINIT ROUTINEF} LDA DINIT+1; AND SAVE ORIGINAL STA REINIT+2; DINIT FOR RELOADS STA ZADDR+1; LDA #1; SIF}GNAL INITIAL STA ZFLAG; LOAD COMPLETED;RELOAD JSR INIT2; PUT REINIT; ADDR. IN DINIT F} LDY ICPTL; CREATE PUT BYTE INY; ADDR. (ICPTL-1) STY PUTB+1 LDA ICPTL+1 STA PUTBF}+2; JSR SETMEM; RESERVE MEMORY; LDA TRAMSZ; BASIC PRESENT? BEQ BASOFF; NO- JUMP AHEAD F}LDA #0 STA WARMST; INIT. BASIC FOR STA COLDST; NEW MEMLO AND STA BOOT; ALLOW AUTORUN.SYS F} INC BOOT; TO BOOT WITHOUT JMP BASIC; AN RTS;BASOFF RTS;;; * MAIN ROUTINE; *; * REINITIALIZES DINIT F}WITH ; * WITH THE ADDR. OF THIS PROGRAM; * AND ALSO RESETS MEMLO;;REINIT JSR REINIT; REINIT GETS DINIT;INIT JSR INITF}2 JSR SETMEM;BEGIN CLD; BINARY MODE CLI; ENABLE IRQ LDA #34; TURN OFF PLAYER/ F} STA SDMCTL; MISSLES LDA #10; RESET TAB WIDTH STA PTABW; TO DEFAULT;; PRINT INTRO MESSAGE; (PRINT SUBR. F}CANNOT PRINT MORE THAN; 256 BYTES AT A TIME, SO INTRO MSG.; IS PRINTED IN 2 SEGMENTS); LDA #MSG&255; MESSAGEF} STA PRINT+1; PART 1 LDA #MSG/256 STA PRINT+2 JSR PRT; LDA #MSG2&255; MESSAGE F} STA PRINT+1; PART 2 LDA #MSG2/256 STA PRINT+2 JSR PRT; JSR GETKEY; GET KEYPRESS PF}HA; YES - SAVE IT LDA #255; CLEAR KEYPRESS AGAIN STA CH PLA; RETRIEVE KEYPRESS CMF}P #63; -IS IT... BEQ ADDR; a? CMP #46 BEQ WARM; w? CMP #40 BEQ F}CHIP; r? CMP #58 BEQ DOSV; d? CMP #146 BEQ COLD; CTRL-c?; F} JMP BEGIN; NO MATCH - RETRY;; 6502 RESET;CHIP JMP (CRESET);; WARM START (RESET KEY);WARM LDA #125 JSF}R PUTB RTS;; START NON-CARTRIDGE SOFTWARE (DISK);DOSV JMP (DOSVEC);; COLD START (REBOOT);COLD JMP $E477;F}; THIS SECTION GETS AN ADDRESS, IN HEX,; AND JUMPS TO IT;; PRINT PROMPT MESSAGE;ADDR LDA #MSG3&255 STA PRINT+1F} LDA #MSG3/256 STA PRINT+2 JSR PRT;ADDR1 LDA #4; TOTAL KEY STROKES STA KEYN; TO ACCEPT F}= 4ADDR2 JSR GETKEY; GET A KEYPRESS LDY #0; Y IS OFFSETADDR3 LDA TABLE,Y; LOOK IT UP CMP CH; IS F}A MATCH? BEQ FOUND; YES- GO PROCESS IT LDA TABLE,Y; NO MATCH CMP #56; END OF TABLE? BEQ ADDF}R2; YES- GET NEW KEY INY; NO- CHECK NEXT BNE ADDR3; TABLE ITEM;FOUND STY WORK2; Y IS THE OFFSEF}T TO; ASCII VALUE AND; Y EQUALS THE NUMER-; IC VALUE OF THE KEY; F} PRESSED (0-15) LDA ASCII,Y; GET ASCII VALUE JSR PUTB; PRINT IT JSR BUILD; BUILD THEF} ADDRESS; SEC LDA KEYN; IS KEYPRESS THE CMP #3; 1ST OR 2ND DIGIT? BCC FOUND2; YES- JUMPF} AHEAD LDA WORK; NO, SO VALUE IS STA HOLD+1; NIBBLE OF MSB JMP FOUND3; -SAVE IN JMP ADDR.FOUND2 LDF}A WORK; VALUE IS LSB NIBBLE STA HOLD; -SAVE IN JMP ADDR.FOUND3 DEC KEYN; SET KEY COUNT (-1) LDA KEYN;F} 4 DIGITS ACCEPTED? BNE ADDR2; NO- GET NEXT ONE;; YES- LDA #MSG4&255; PRINT END F} STA PRINT+1; PROMPT LDA #MSG4/256 STA PRINT+2 JSR PRT;FOUND4 JSR GETKEY; GET KEYPRESS CMPF} #12; IS RETURN? BEQ FOUND5; YES- EXIT CMP #18; IS CANCEL? (C) BEQ FOUND6; YES- START OVER F} CMP #28; IS ESCAPE? BEQ ADDR; YES- GET NEW ADDR. BNE FOUND4; NO- NOT VALID KEY;FOUND5 LDA #255; F} CLEAR LAST KEY STA CH LDA #125; CLEAR SCREEN JSR PUTB JMP (HOLD); EXIT TO SPECIFIED; F} ADDDRESS;FOUND6 JMP BEGIN;;; * SUBROUTINES;;; THIS SUBROUTINE CREATES THE LSB/MSB; FOR THE JUMP USED ABF}OVE;BUILD LDA KEYN; GET DIGIT COUNT CMP #4; 4 AND 2 ARE HIGH BEQ TWO; NIBBLES CMP #3; F} 3 AND 1 ARE LOW BEQ ONE; NIBBLES CMP #2 BEQ TWOONE LDA WORK2; GET L.S. NIBBLE CLC F} ADC WORK; ADD TO M.S. NIBBLE STA WORK; SAVE IT RTSTWO LDA WORK2; GET M.S. NIBBLE ASL A F} ASL A; MULTIPLY BY 16 ASL A ASL A STA WORK; SAVE IT RTS;; CLEAR LAST KEY/GET NEWF} KEYPRESS;GETKEY LDA #255; CLEAR LAST KEYPRESS STA CHGETK2 LDA CH; WAS A KEY PRESSED? CMP #255 F} BEQ GETK2; NO- RETRY RTS;; PRINTS TO THE SCREEN THROUGH THE; EDITOR (ASSUMED IOCB0), USING ITS; ICPTL VECTOR F}(PUT BYTE); -(SOLVES "PUT BYTE" INCOMPATIBILITY; OF O.S. UPGRADES);PRT LDA TABMAP; SAVE FIRST 2 BYTES PHA; F} OF MAP (16 SPACES) LDA TABMAP+1 PHA LDA #0; SET BIT OF COLUMN STA TABMAP; NUMBER 13 F} LDA #8 STA TABMAP+1; LDY #0; Y IS OFFSET TO; MSG. CHARACTERS STY YHOLD; SAVE IF}TPRINT LDA MSG,Y; GET NEXT CHARACTER BEQ PRINT2; EXIT IF A ZERO JSR PUTB; PRINT IT! LDY YHOLD; RESF}TORE Y AFT. JSR INY; INCREMENT IT STY YHOLD; HOLD IT JMP PRINT; GET NEXT CHARACTERPRINT2 PLA; F} RESTORE TAB MAP STA TABMAP+1; FIRST 2 BYTES PLA STA TABMAP RTS;; PUT REINIT ADDR. IN DF}INIT;INIT2 LDA #REINIT&255 STA DINIT LDA #REINIT/256 STA DINIT+1 RTS;; PUT A BYTE TO SCREEN F}SUBROUTINE;PUTB JSR PUTB; PUTB GETS ICPTL(+1) RTS;; RESERVE MEMORY FOR THIS PROGRAM; BY PUSHING UP MEMLO (PROF}G. SIZE +1).;SETMEM LDA #ENDP&255 STA MEMLO LDA #ENDP/256 STA MEMLO+1 RTS;; PROGRAM STORAGE;F}HOLD ORG *+2KEYN ORG *+1WORK ORG *+1WORK2 ORG *+1YHOLD ORG *+1MSG DB 155,125,155,155,155 DB 127,17,F}18,18,18,18,18,18,18,18,18,18,18,18,18,5,155 DB 127,'| X R E S E T |',155 DB 127,26,18,18,18,18,18,18,18,18,1F}8,18,18,18,18,3,155 DB 155,155 DB 127,' OPTIONS',155,155,0MSG2 DB 127,' Run (A)ddress',155 DB F}127,' Chip (R)eset',155 DB 127,' (W)arm Start',155 DB 127,' (D)os Start',155 DB 127,' (C)old Start',1F}55,155 DB 127,'Press A,R,W,D or',155 DB 127,' : ',0MSG3 DB 125,155,155,155,155,155,155 F}DB 155,155 DB ' Enter HEX address: ',0MSG4 DB 155,155 DB 127,' PRESS',155,155 DB 127F},' to cancel',155 DB 127,' to redo',155 DB ' to accept: ',0TABLE DB 50,31,30,26,F}24,29,27,51,53 DB 48,63,21,18,58,42,56ASCII DB 48,49,50,51,52,53,54,55,56 DB 57,65,66,67,68,69,70ENDP OF}RG *+17,51,53 DB 48,63,21,18,58,42,56ASCII DB 48,49,50,51,52,53,54,55,56 DB 57,65,66,67,68,69,70ENDP ODSee XRESET.DOC for full instructions.d are theAMAC source code and BASIC object filecreator. Load with DOS (L) command.('See XRESET.DOC for full instructions.(M. Wallace)C source code and BASIC object filecreator. Load with DOS (L) command.(4