@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`  `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 ALLOWED697 FREE SECTORS COPYING---D8:COPY32.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- 164ɛ+,' 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 D8u8<<  B JKIHiDiELV`L8 8 BLV`LxT}8t8l Lu8hihiHHȱȱL8c !#3`Lu8JJJJ`H 8h`HU}ȩh Q8L8 Z8L8 8L8 8L8 8L8S:@9E:E9H '9 H9I9 8 '9h)0ICV}9D9L8 L :::: :Lr:::IEL[::i:iIIL[:`:i::iX}::L:`L{:w:w: C`L:L: D8:MEM.SAV: 8| 9 '9`L:L: D:DUP.SYS:̩ 8Y} x:ɀL: '9`88 |9Y:X: '9L); D8:DUP.SYS; 8::88 9 '98? :`;WL`; 9Z}Ln; ` :Y;Y;L;L;)} Setting Up ATARI 130XE Ram Disk; 9L; ; -9  [} L;D8:; :9 :Y;L:AS,#n}ҠӠԠġD-@A % B0@: AuD A"$$o}*** FRAME1 ***(>:A%,(11(& EXTENDED ATARI BASIC 11(& p} (11(&The disk needs to be set up so that 11(&it autoboots. We recommend that you q}11(&first make a back up to work with use-11(&ing either DOS or a sector copier. (11(&Use the r} as your EAB master 11(&disk. First delete the AUTORUN.SYS 11(&file. Next RENAME the AUTORUN.EAB s}11(&file to AUTORUN.SYS.  (11(&That's it! Now just boot the disk 11(&and Extet}nded Atari Basic is installed.(11(&Be sure to read all the DOCumentation!"11(&Boot TUTORIAL.OBJ to view ou}r print the'11(&documentation files DOC.000, DOC.001. , ( (1..(" Ӡ٠٠ϠϠϠӠ6?6v}-A 6-A'6-A36-@"?6-@5; Au A@O(>:A%,"AdAU4ARw}7.OTHIS IS THE LAST LINED:INTRO@5; Au A@O(>:A%,"AdAU4AR2 EDHI BLVH BHIhLV BLVԄ̢ + + ؠȹ),  BDE Hy}I V˦˽  L̅L]I/O Error -   Lt  '('(i%%i%%ɍ! "z} S " 8U"V" " % \C*((/X!Y!0!1"{}"/( ((  i) )y ؅y z!!?!t!4!`!'%xtended!tari"!3)#4ime|}UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUppN!B!!BN!A!HЍ h@D˽E̠˙~ɛL*}}"'L"'''LW"  ɛ(Lm"((`( " ((LH#HH( "L"&(*I` L"z~}L"8 (`% F$&'R݀ Q#L" Q# Q# Q# Q#L"ȱ̠轀ɛ }'L##'Ilhh((`ii`''IӠ`'*( R+(+( ' QکILD#!}!L#!!!L#!!((<L@$(!!L@$!!!L@$!! &!L@$!!L@$!}!!!L@$!!< (`ɛ{Ȣ, ɛ'' %H ٥ԍ(Ս(hɛ4Ȣ0 :' ' }% ٥ԍ(Ս(L$ ((L$ (((( Q8(((((( (©((`υ'`"(#(#( #(}I ((L|%'(L|%(x  L|%L|%L|%L|%(\X((L%((m((}(m(((ԭ( ؠ)L%''(( % Q ( ( #LbH' h(`AUTOCPLAYCSTOP"LOCK*UNLOC}K/RENAME4DELETE9DIRbREBOOTwREN̠WDOS#FORMATbSINGLEgVERIFYVNTBASICOFFTDECPRONPROFFSIZE¨LOM}EM1(DEF{PROTECT*KEYERROR6TIMEHEXCONVERTNOCONV BLOADhBSAVE>FLASHNOFLASHBANK˳|||||vD1:*.*D}1:DOS.SYSD1:Good file.Lowest usable address: Highest used address: Highest usable address: Variable Name Table: un}dimensioned Length: DIM: L.0|||||@@NEW'( (((#(<%(9(READYI`}1(]&(`!L_#&(!L_#4L_#<L_##L>$L> L>!L>BםD'EJK VL3L_#'ɛ'1'}BD'EJK VL3BםD'EHI V +L_#ש' L'ɛY',LΠ'Ȣ' (ɛ}L蠩' ٥ԅՅ ( ٥ԅL_ׅ' ٥ԅՅLW > " '}'L_#S " ˥̥˅ȱ˅8劥6ȱ˅ȱ˅ ࡥeυ˥i̥eЩЩ#   } #`GGIȱD@>Ȅ˅ȱ˅ȱ˅ȱ˅׈ 8ͥ 8'ΐ#=55-`S R   `}ܥݥڥ۩gggǥ˅ܥ̅ݥڥۥ8ȥM8܅ȥ8:܅4eڐۥq܅ܐݩW}MMMN F  ڥ ؠ߱ )    `;: `ȱ i }0`ȱ iȘа`؅ ٥ԅՅ`/څԥۅ ٥㨥ԑȥՑȥ֑ȥבȩ`˥̥}8劥+˅ߥ˥ȑ˥ee߅ː̩ʩ'L_#'ɛ'L51'BD'EJK VL3 +}L_#LiB'ɛ#'L1#'"D'EJK VL_#L3BםD'EJK VL3BHI V }L3 +&' L_#|' *( ͥΥ˥̥ń ŅLQ0 )̠ɛ8 ]ɛ $( $(h!( h@Q)j)))))))4 = } 5 = 6 = 7 = 8 = 9 = } 0 = XIO 255,#5,0,0,"E:M)f)))))) ˥ ̩0 * Lt ˅ ̅ LtL@*ˢ}*D*EHI B VˤL_#ׅ' ٥0 {D|ELm }D~EDE L_#}}ʬެ}.=_nέ}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}!-?}RhxҮ >]h}}}}}}}}}}}}įد%=IYhw}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}That error doesn't exist!Insufficient memoryValue errorToo many variablesString length errorOut of dataLine number > 32}767Input statement errorArray or string DIM errorStack overflowFloating point overflow/underflowLine not foundNo matchi}ng FOR statementLine length errorGOSUB or FOR line deletedRETURN errorSyntax errorInvalid string characterLOAD program }too longDevice number errorLOAD file errorBREAK abortIOCB already openNonexistent deviceIOCB write-only errorInvalid c}ommandDevice or file not openBad IOCB numberIOCB read-only errorEnd-of-fileTruncated recordDevice time-outDevice NAKS}erial bus input framing errorCursor out of rangeSerial bus data frame overrunSerial bus data frame checksumDeice doneRea}d after write compare errorFunction not implementedInsufficient RAMDrive number errorToo many open filesDisk fullUnreco}verable System I/O errorFile number mismatchFilename errorPOINT data length errorFile lockedInvalid commandDirectory fu}llFile not foundInvalid POINTIllegal appendBad sectors at format time'ɛJ !' !' !' !(< (}!! L_#Clock set. L_#I need a time!8 `ׅ' ٠5JJJJ L5 L0 0ii0`} L_#LBHI V0`hhL +BםD'EJK VL3 k(( k)((( k(( k)(((˭)(}̢ k(( k)( k˥(()(L +L_#,tH BHIhLV',󩛙Ȣ','򩛝'}' (ɛBDEJK VL3 , ,'$&''ɛ%( 'ɛ ($$ (}'ɛ%(  (ɛ%(' ٢ , ,ԅ˥Յ ݩ ( ٢ , , ` }iԥiբ˝D̝EԝH՝I B V +L_#"('ɛׅ' ٥ԍ%L_#"(L_#'12-3;4I} 0ө!!Lr I ө!L4 Iө!L4 Iө!L4 ө!'AC$ 0I0ө!Lr 0I ө!}!Lr 0I#!L_#C*g*     ILC* ө!'AC$ 0I0ө!Lr 0I ө!GSR d FDSBREAKHL Bh@B@P@QAp llThis progra}m provides an example of using the BANK command on Atari 130XE computers. It uses the extra(kkmemory for "page-flipping" b}y drawing four squares of different sizes. Then it switches between these222four squares to achieve an animation effect.<}FP%;@,;@,%+Zdn``The following line disables the BREAK key by replacing its v}ector with a PLA,RTI sequence.xhhThe only way out of this program is to press RESET. You can use this routine in your own }programs,ggsince it is unaffected by GRAPHICS, PRINT, and OPEN commands, as the more conventional method is.}K 6.h@ 6-P:C:,'AV,36-C:,&AV$?AfKAg@'@@dI6-F:A`},%AV$F:Aa,]%@q%@@dAR@22AU@ E:BA}NK 1B A -@@ (BANK 1 @:,],'/@99/@9@#K/}@#]/22AU@ E:BANK 2B A -@@ (BANK 2} @:,],@@'/@5@9/@5@ K/@@ ]/@@22AU@} E:BANK 3B" A, -@@ (BANK 36 @:,@],@@'/@0@}9/@0@K/@@]/@@J22AU@ E:BANK 4BT A^ -}@@ (BANK 4h @:,r],@@ '/@%@ 9/@%@K/@@]/@@} |6. E:BANK 1A-@:2,@:4,267@<@,.>:,2Change BANK number((AU@} AWait a while... -@:3,@:1,6@67@<@,.>:,((AU@} AWait again...  A-@@P $*-BcBsD}#' *$ D:BANK.EABWait again...  A-@@P $*-BcBsD%  8NPHRASELINE kkThis program demonstrates using the flashing cursor and capitaliz }ation routines to input information.(2<;A ,FV#@@E:VOpen IOCB #2 for I/O wi }th the screen editor (E:)PO0@@ @70@@OSet new screen colorsZ`3AU@ } E:FLASH 15`Make the cursor flash two times per seconddq2AU@ E:CONVERT }qConvert all inverse and lower-case characters to normal textn//(@>:A%,Enter a line below:x2-@ }@%(@2@5-@@5(@Here is your line:"-@@"(@ }(@(@$$(Press RETURN to do it again.@ AD:CONVFLSH.EAB"(@ nH\E@" d nnThis program will print a list of error messages to the screen, with an op$}tion to send it to the printer(llinstead. It demonstrates the ERROR, CONVERT, NOCONV, PRON, and PROFF commands of Extended$} Atari BASIC.2<FR;A,?AU@ E:CONVERTRCapitalize inputPOK(B}Do you wa$}nt to print the list of errors on the printer (Y/N)OZZ7@<@,4YHAU@$}E:PRONZTurn on printerdK1AU@E:NOCONVKTurn off capitalizationn (}x-@$}@!(6.E:ERROR(67B:,%@,.=:,3 @( 3Right-justify numbers < 10( - ((AU$}@ C0AU@E:PROFFCTurn off printer D:ERRORS.EAB$|$7 (c)1983 Action Computer Services  B JKIHiDiELV`L=$(} =$ BLV`$L$$l L$ &` Fj`8冨凪` $EӅӥ(} $`ʆǪƩ Ɛee` $ƦʆǢ &Ɛeǐ % %L$ $'&&&8儨児(}祂*L$&&*ń8&&L$ [%`hihiHHȱȱL$c !#3`(}L$JJJJ`H $h`Hȩh r$L% {$L% %$L% -$L% 3$H8(}`HhHh _&L% BHI V䅠L% L& =$L%Ԇ ؠPIPP`(} &P -$L% &L& &L& 'L&H- &8塪墨hL' 'L& &'L& &ȹP`(}텠8堨塪 &芨Oȩ-`PP &P棩 Ѥģ0-ģ6000:,80H (}& &ehe&eģ0ʥ 8堅塅`$ &&*i0:0i &Ʀ`¢ 护(}°ڱ%ȱ%E &L`(担CS R&L`(I 'L`(H (L`( &L`( &B V %NLMȑ(}` MLN%B VL%S:)E:)H L& ) ) & L&h)0I))L&[\ZUVT` @)))(}` G)L& :)L& @)L&) ` G)L& &%` 0d $ҥ `2)2(}ҩ`҅`0)9*`@0)ӈJJJJ)`Ѕ`ȱ`` 5*ȥ`Hh(}ƣĢ`ƥĤ`Ѣ *`ȱѢĦ`膡`(}`ťƤe8夰L* Ƥ8`ŦeѠe桊L*O $AD(}:+ ]+DOT+x+ IF HEAD2(I)#32 THEN]+&+ SCOPYS(HEAD3,HEAD2,I,HEAD2(0))x++ SCOPY(HEAD2,HEAD3)+ + EXIT+ + FI(}+ +OD+ +RETURN+++++++*#,#PROC DLSETUP(); custom Day List+ 0,BYTE I#,B, GRAPHICS(0)0,V, DL(}IST=SDLST B,m,DLIST(3)=64+7 ;2V,,DLIST(6)=7 ;2m,, DLIST(10)=6,,DLIST(11)=6 ;1 ,,FOR I=14 TO 17 , (},DO,,DLIST(I)=6 , ,OD, ,R(N,-, --!-BYTE FUNC TITL(--N-&BYTE I,X,CRSINH=752,COL2=710,(}C(709,!-'u- COL0=708,COL3=711,COLLr-n-n-M+` L-j %*8J+K+K+J+ &%J+K+ L&L- D:FONT.SET(}- &}-|-|-}-L(. &~-L. L&`J+m|-K+m}-~- 5*|-й}-L- L&`3=234L6...0.(}/.0/.u0.L.2.Ȍ1...p.p.1.2.L|.I1.2.L`./.0.LB.`3,L. :)L. ˠҢ. ?& 3.`O7L..(}..L. D:DOC.000.Ɉ m.*(m.L. D:DOC.001.ȑ􈑮 m.*(m.L(/ D:DOC.002/ȑ m(}.*(m.LR/ D:DOC.003/ȑH m.*(m.L|/ D:DOC.004/ȑr m.*(m.L/ D:DOC.005/ȑ m(}.*(m.L/ D:DOC.006/ȑƈ m.*(m.L/ D:DOC.007/ȑ m.*(m.L$0 D:DOC.0080ȑ (}m.*(m.LN0 D:DOC.0090ȑD. m.*(m.ȱ, *`(L00M+0 . L&, &M+`RL(}0, z&- z&0,00ͮ0L1O0,I L1,0,-F *-F, *L10L00-+1+1ͮ0Lf1(}0-I L`1-0--F *-F- *Lf10L 1`Lk1 )1,0,,i,iG,i,i,i (},i,i ,ig1g1L1,mg1,ig1L1`LIL1 h1K+J+ (}[% 5*L=22< R& :)L^2 A.C.E. N.S.W.2P R& :)Lv2 2q R& :)L2 2 R& :)L2 (}2 R& :)L2 2 R&  :), R& :)- R& :)L83 (}3 R& :)Ln3"Press for Screen, for Printer3K R& L&L3K:3} &@ (}&11IP 1ISL3 L&1`3 L333333 :)L4à3 R& L&L4K:(}4 & &33ILC4 L&3`33 :)Lm4 4Q R& L&`4 L4 Ȣ, N*P(}+,P+L+L4+P F&`~48L+44~4L[5E8L+~444P+44I LU54L+55́4L5P4m4P+4(},4L484P+8L+4,+P F&,+P *P+i44`~4L4+P F&`Y=1Lo5i5i5j5L+55j5L5v &(}k5k5IL5L5k5j5P+j5L~58j5P+`G=1 L555 055IL55`55 l5 45O+N+ILI68O+LI65(} ͻ5L#6 &5L6O+ 355ILI6 L&5`TLx6 35} &5ILx6 L&5`L5 L&`ET(}L6 :)L6ҠӠԠ΢6 ?& 3.`EN CL6$6$6q-$p-$ - 06 06O+ 16 &6IP(}LT7N+PL+M+ L&L&7P:7# &dM+LQ7 & 6L7L7N+$L+ L&Li7E:7f & &)}6 566IL7 36L7L76IL7L7L76 ͽ6L7L7L7L7L6L66$6$``67f & &(e888888ffffff~~`~~fl0fF>6xo~{>>888>|||f<-}c6>8pp8?-}w><~~~<||`x`~<~~<-}0~0 ~ <~~<~~f~``~~f~~~``~~~f~~f~`~~~~f~~``~~ff8888<>>``f||f88<<w-}wk~~fff~~ff~~~f~``~~f~~~```~`~~~~fff~~ff~<ckwf~<~fff~~~~~0~<~~<- }~x|ngTTTTTT~f~``~~f~~~```~`~~~~fff~~ff~<ckwf~<~fff~~~~~0~<~~<,EXTENDED ATARI BASIC Thanks for downloading Extended Atari BASIC. It is advised that you use the DOS Copy command to c1 }opy this file directly to your printer, as you will want to have it around for reference. Make sure your printer's print hea1 }d is on a perforation, then copy the file from D:EXTBASIC.DOC to P:. This program and its documentation are distributed as S1 }hareware; neither may be distributed without the other, and neither can be modified. If you like Extended Atari BASIC, pleas1}e send $10 to: Robert Berry Rt. 3 Box 519LL Tampa, FL 33619 Thanks for supporting the Shareware system! Exte1}nded Atari BASIC Copyright (c) 1988, 1989, 1991 by Robert Berry Extended Atari BASIC ('EAB') is a machine language1} utility that adds over 30 commands and functions to Atari BASIC. It requires an Atari 800XL, 65XE, or 130XE (with a disk dr1}ive) to operate, and uses about 3K of what is normally free RAM. The extensions themselves are actually over 7K in length; h1}owever, EAB takes advantage of the extra memory in these machines to effectively "hide" most of itself from Atari BASIC. Ext1}ended Atari BASIC is not a replacement version of BASIC; instead, it is a supplement to the existing Atari BASIC built into t1}he Atari computers. EAB's commands are all executed in the immediate mode (i.e., when BASIC is awaiting input), not as state1}ments within a program line; however, a method for indirectly accessing the added commands from within a program is discussed1} in Section 4. EAB has been tested and works with DOS 2.5. It also works well with MyDOS, as long as you don't utilize 1}subdirectories; still, using MyDOS will provide you with double-density storage on drives capable of that density. EAB IS NO1}T compatible with SpartaDOS; they both try to use the same memory locations. I would be willing to bet that it doesn't work 1}with DOS XL for the same reason, but that hasn't been tested. Loading Extended Atari BASIC To make a working copy o1}f Extended Atari BASIC, copy the file EXTBASIC.OBJ from this archive to a blank, formatted disk with DOS, and rename it to AU1}TORUN.SYS. To load Extended Atari BASIC, simply reboot the computer with the new disk. The Disk Operating System will be lo1}aded, then EAB itself. When it's finished loading, the first thing you'll notice is a different display. There will be a tw1}enty-fifth line at the top of the screen, with the Extended Atari BASIC title and a clock (the clock is explained later in th1}e "Special Functions" section). The remaining 24-line display acts as it normally would, and won't interfere with programs t1}hat don't issue a GRAPHICS command (which will turn off the extra line). Introduction to EAB This documentation is1 } divided into five sections: DOS Commands, BASIC Helpers, Miscellaneous Commands, Special Functions, and Sample Programs. T1!}he first three sections describe added commands, most of which follow the general syntax described below; if a particular com1"}mand doesn't follow this syntax, its syntax will be discussed within that command's explanation. The syntax for EAB commands1#} is simply that the command must begin on the left margin; preceding spaces will result in an error. If the command requires1$} any parameters, they should be typed in after the command itself; at this point, extra spaces are ignored, and can be added 1%}wherever you wish. In describing each EAB command, several symbols are used to clarify the usage of that command. These sym1&}bols are: 1. [ ] - Designate optional parameters; Example: DIR[n] indicates that the 'n' is optional. 2. n - Represe1'}nts a drive number, 1-8. 3. hexnum - Represents a 1-4 digit hexadecimal number. 4. decnum - Represents a decimal number b1(}etween 0 and 65535. Some EAB commands require a filename as a parameter; in all such commands, the Dn: prefix of the fi1)}lename can not be omitted. Other commands (such as DIR) don't require a filename, just a drive number; in these cases, enter1*} only the drive number as a parameter. If no drive number is specified, drive 1 is always assumed. DOS Commands Th1+}e following commands allow DOS functions, such as listing directories and formatting disks, to be executed without going to A1,}tari DOS. Command: DIR[n] Displays the directory of the drive specified. Example: DIR2 shows the directory of drive 21-}, and DIR1 (or just DIR) displays the directory of drive 1. If the drive being used is an Atari 1050, and the disk being use1.}d is enhanced-density, the files which extend into sectors not accessible by a single-density drive will be enclosed in '<' a1/}nd '>'. Example: DOS SYS 037 042 This means that the file DOS.SYS can be accessed by any drive, but part (or all) 10}of DUP.SYS can be accessed only by an enhanced-density drive. Command: LOCK Dn:FILENAME.EXT Locks (protects) the file s11}pecified. Command: UNLOCK Dn:FILENAME.EXT Unlocks (unprotects) the file specified. Command: DELETE Dn:FILENAME.EX12}T Deletes the file specified. Command: RENAME Dn:OLDNAME, NEWNAME Renames the first file specified to the new name. On13}ly the first file name requires the Dn: prefix. Command: WDOS[n] Writes the DOS.SYS file to the drive specified. WDOS14} will not write DUP.SYS to the disk. Command: FORMAT[n] Formats the disk in the drive specified, in enhanced density on15} a 1050 drive. Be careful with this command, since no verification prompts are printed. Command: SINGLE[n] Formats the16} disk in the drive specified in single density, even if the drive is a 1050. Otherwise, it operates just like the FORMAT com17}mand. Command: BSAVE Dn:FILENAME.EXT, start, end Saves the data in memory between 'start' and 'end', inclusive, to the 18}file specified. 'Start' and 'end' are assumed to be decimal numbers, but either (or both) can be a hexadecimal number if pre19}ceded by a '$' character. Examples: BSAVE D:FILE, 1536, 1792 - Saves all memory locations between 1536 and 1792 (inclusive)1:} to D:FILE. BSAVE D:FILE, $600, $700 - Saves the same memory as the above example. Command: BLOAD Dn:FILENAME.EXT Load1;}s the binary file specified, but doesn't run or initialize the file as DOS would. Before trying to BLOAD a file, make sure t1<}hat the file won't over-write any memory used by EAB (use the SIZE command, described later, to determine the current memory 1=}bounds). Both BSAVE and BLOAD are intended primarily for advanced BASIC programmers and are provided for their convenience.1>} Command: DOS The first time this command is executed, EAB is deactivated and the system is returned to the way it was b1?}efore EAB was loaded. The second time, it goes to DOS. EAB is not available after this command is executed; you must reboot1@} to re-enable EAB. BASIC Helpers EAB provides several commands which are intended to actually aid the user in writi1A}ng BASIC programs. This section deals with these commands. Command: AUTO [start, [inc]] This command turns on automati1B}c line numbering starting at START and incrementing by INC. If only one parameter is specified, it is used as the first line1C}, and subsequent lines will be numbered in increments of ten. If there are no parameters, numbering starts at ten and contin1D}ues in increments of ten. Press BREAK to turn off line numbering. Examples: AUTO - Starts numbering at 10 in increments of1E} 10. AUTO 100 - Starts numbering at 100 in increments of 10. AUTO 100, 5 - Starts numbering at 100 in increments of 5. 1F} Command: REN [start, [inc]] Renumbers the BASIC program in memory; START and INC are used the same as in the AUTO command a1G}bove. For example: REN - Renumbers starting at ten, in increments of ten. REN 100 - Renumbers starting at 100, in incremen1H}ts of ten. REN 100, 5 - Renumbers starting at 100, in increments of five. When using the REN command, two problems may 1I}occur. The first is if a GOTO, GOSUB, IF...THEN, etc., references a nonexistent line; EAB reports this occurance as NF LINE,1J} where LINE is the new line number on which the reference is made. A common way to turn off BASIC's TRAP command is by using1K} TRAP 40000; EAB reports this as a nonexistent line, but there is actually nothing wrong with it, and the rest of your progra1L}m will be correctly renumbered. The second problem occurs when a symbolic reference is made; EAB reports this as SR LINE. F1M}or example, if this were a BASIC line: 200 RESTORE 1000+A the REN command would print SR 200, telling you that a symbolic re1N}ference was made on line 200. However, the remainder of the program is renumbered as instructed, so all symbolic references 1O}will have to be manually corrected. Command: VNT Displays the current Variable Name Table. The VNT is simply a list of1P} all variables used by the program in memory. As each program line is recognized by BASIC, the line is scanned for any varia1Q}bles. When a variable is found, the VNT is searched for that variable name. If it is found, the variable already exists, so1R} BASIC does nothing to it. Otherwise, the new variable name is appended to the end of the VNT. Then, space is reserved for 1S}the variable in the VVT (Variable Value Table). EAB uses both the VNT and the VVT to display all variables and their cu1T}rrent values. If a variable is a scalar (numeric) variable, it is shown like this: VAR = 0 This simply means that the varia1U}ble VAR currently has a value of 0. If a variable is a one- or two-dimensional array, it is shown as NAME(one, two), where O1V}NE is the first dimension and TWO is the second. If the array is one-dimensional, TWO will be 0. Example: VAR1(05, 10) VAR1W}2(05, 0) In this example, VAR1 is a 5 by 10 matrix, while VAR2 is a one-dimensional array DIMensioned to 5 (i.e., DIM VAR2(5)1X}). The values of arrays and matrices aren't displayed by EAB; however, if you need to see what each element of a matrix cont1Y}ains, the following routine can be used (it uses VAR1 from above as an example): 1000 FOR Y=1 TO 5 1010 FOR X=1 TO 10 101Z}20 ? "VAR1(";X;", ";Y;")=";VAR1(X, Y) 1030 NEXT X 1040 NEXT Y String variables use a completely different format. Firs1[}t, the string's name is given, followed by the current length and DIMensioned length. Then, on the next line, the contents o1\}f the string are displayed in quotes. Example: A$ Length: 06 DIM: 10 "ABCDEF" B$ Length: 0 DIM: 10 "" In the first exam1]}ple, A$ was DIMensioned to 10, the current length is 6, and it currently contains "ABCDEF". In the second example, B$ was DI1^}Mensioned to 10, but hasn't yet been assigned a value, or it has been assigned a null value (i.e., by a statement such as B$=1_}""). Both arrays and strings must be DIMensioned before they can be assigned any values. If an unDIMensioned array or strin1`}g is encountered by the VNT command, the variable name is printed, then the word UNDIMENSIONED, like this: A$ undimensioned 1a}A( undimensioned Command: VERIFY D:FILENAME.EXT Verifies the file specified, to make sure that it was SAVEd properly; i1b}f the file was good, you will be told so. Otherwise, an error message will be printed. This command also works with LISTed 1c}and SAVEd cassette files (not CSAVEd ones); to use it, type VERIFY C:. Command: DEC hexnum Converts the specified hexad1d}ecimal number to decimal. Command: HEX decnum Converts the decimal number specified to hexadecimal. Examples: DEC E471e}7 HEX 58487 The first example prints 58487, the decimal equivalent of $E477, and the second example prints E477 (just th1f}e opposite). Command: ERROR num Prints the English error message represented by the number given. If, for example, a B1g}ASIC program prints ERROR- 141 AT LINE 100, you can type ERROR 141, and CURSOR OUT OF RANGE will be displayed. EAB will auto1q}?b%DOS SYSb*)DUP SYSb SRAMDISK COMb\AUTORUN SYSB ]INTRO SYSBiINTRO b@xAUTORUN EABbBANK EABbCONVFLSHEABbERRORS EABb)TUTORIALOBJb FONT SETbf DOC 000bayDOC 001matically print the error number and error message if one of its own commands generates an error (for example, the DIR comman1r}d used on a nonexistent drive will print ERROR- 138, DEVICE TIMEOUT). Command: PROTECT This command makes the computer 1s}appear to have "locked up". It can be used if you don't want someone to see a program you're working on. The only way out o1t}f the PROTECT mode is to press START, SELECT, OPTION, and RESET together. Command: CONVERT Causes the screen editor to 1u}convert all lower-case characters to upper-case, and un-invert all inverse-video characters. When the CONVERT mode is active1v}, a diamond appears on the top line of the screen; pressing RESET won't affect this mode. Remember when using CONVERT that A1w}LL characters are un-inverted, and all letters are capitalized (even those in REM and PRINT statements). This allows users t1x}o type in any way they feel most comfortable with. Command: NOCONV Turns off the CONVERT mode.). This allows users t0f Section 3 - Miscellaneous Commands EAB has some commands that don't comfortably fit into either the DOS Commands o5z}r BASIC Helpers sections. These commands are listed below. Command: CPLAY If a cassette recorder (the Atari 410 or 1015{}0 program recorder) is connected when the CPLAY command is executed, an audio tape can be inserted and played through the tel5|}evision or monitor speaker. Same as POKE 54018, 52 Command: CSTOP Turns off the audio tape; same as POKE 54018, 60. 5}} Command: PRON This command redirects output from the screen to the printer. The commands entered by the user will not go5~} to the printer; they are still shown only on the screen. For example, if PRON is entered, then LIST, the program listing wi5}ll be sent to the printer (along with the READY prompt). The PRON command can also be used to get a printed copy of the disk5} directory, the VNT, or even a list of error messages, as described in Section 5. Command: PROFF Turns off the PRON com5}mand; redirects output back to the screen. Command: REBOOT Does a cold-start from the keyboard; this is the same as tur5}ning the computer off, then back on again, with the advantage that power is never actually cut off. Some sources say that tu5}rning a computer on and off too many times can result in damage to the computer; since it's always better to be safe than sor5}ry, the REBOOT command was added to EAB. Command: BASICOFF Turns the built-in BASIC off and attempts to go to the Disk 5}Operating System; the file DUP.SYS must be on the disk in drive 1 if BASICOFF is to be used. Remember, turning BASIC off wil5}l disable Extended Atari BASIC, and will erase anything that was in memory at the time. This command has the same result as 5}turning on the computer while pressing OPTION. Command: SIZE Displays the current low-memory pointer, the current highe5}st-used address, and the highest usable address. This information is of use to programmers who want to reserve space for cha5}racter sets, Player/Missile Graphics, etc., and need to know the current memory limits. Command: LOMEM decnum Changes t5}he current low-memory pointer to the address specified; for example, LOMEM 12000 means that the lowest address usable by BASI5}C is to be set to 12000. EAB uses memory up to 10779 ($2A1B). Be sure not to set LOMEM to less than this value, and be sure5} not to POKE anything into memory from 7420 ($1CFC) up to these addresses. Command: BANK [n][A, C, B] The BANK command 5}allows 130XE users to control the built-in extra 64K RAM. It simplifies the process of selecting which 16K bank of RAM is to5} occupy the addresses between 16384 and 32767. As explained in the 130XE manual, the extra 64K is divided into four 16K bank5}s of memory. Depending on what number is stored at location 54017, the CPU and/or ANTIC have access to either the main bank 5}of RAM normally at locations 16384-32767, or one of the extra banks. In order to select a bank to use, simply type BANK [n][5}A, C, B], where 'n' is the bank number, 0-4, with '0' representing the normal bank, and 1-4 designating the corresponding ext5}ra bank; the default (if no bank is specified) is the normal bank. The letter following the bank number decides what has acc5}ess to the bank. If the letter is an 'A', the ANTIC chip has access to the extra memory; if it's a 'C', the CPU has access; 5}and if it's a 'B', or if it isn't specified, both the CPU and ANTIC can access the extra RAM. When the CPU is to access the 5}extra RAM, it is important that your BASIC program doesn't extend past location 16384 (you can check this by using the SIZE c5}ommand and noting the second address given). If it does, your program will probably crash, and the computer may lock up. Wh5}en ANTIC is given access to the extra memory, you can make ANTIC use it for screen memory, facilitating "page-flipping." When5} the CPU is given access, you can POKE directly into the extra locations, for storing data, character sets, etc. However, th5}e BANK command shouldn't be used in conjunction with the 130XE RAMdisk, or, if it is, nothing should be changed. Doing so co5}uld destroy the files stored in the RAMdisk. The BANK command is of most use in the program mode, an example of which is des5}cribed in Section 5. Section 4 - Special Functions This section deals with extra functions provided by Extended At5}ari BASIC. These functions are not commands, even though some commands are described in this section; these few commands are5} used to set up certain functions the way the user wants them to operate. Each function is presented and explained, and an e5}xample is shown for each one; if any commands relate to this function, they are given below the function itself. Functio5}n: Joystick cursor control The cursor can be moved around the screen by moving the joystick (plugged into port one) in the d5}esired direction. By pressing the button at the same time, the cursor can be made to move faster, in order to get to a certa5}in part of the screen more quickly. The way the joystick cursor control works is by continuously checking the joystick. If 5}it is pointed in a certain direction, the computer is made to think that the corresponding arrow key was pressed. Some BASIC5} programs rely on the joystick for moving an object around the screen, selecting from a menu, etc. These programs may also r5}equire keyboard input. If the joystick was pressed prior to the input, the computer will move the cursor at the input prompt5}, usually resulting in an error. To avoid this problem with such programs, simply press SELECT and RESET at the same time. 5}This will disable the joystick cursor control, and the program will work correctly. Function: Real-time Clock The clock5} appears at the right of the twenty-fifth line at the top of the screen, and defaults to 1:00 when EAB is booted. When I/O o5}perations are performed, the clock will usually stop until such operations are complete. If you do a lot of I/O, you may hav5}e to reset the clock every now and then, but otherwise it will keep fairly accurate time (it's off by about six seconds each 5}hour). In order to set the clock, you must use the TIME command. Command: TIME hh:mm This sets the clock to the hour (5}hh) and minute (mm) specified. You MUST give two-digit numbers, separated by any character except a space. Example: TIME 05}5:00 sets clock to 5:00. TIME 11:30 sets clock to 11:30. Another feature of EAB is the inclusion of seven function keys5}. These keys enable a programmer to enter a string of up to twenty characters for one key to represent. Each time that key 5}is pressed with the CONTROL key, the characters assigned to it will appear. If the key is pressed with both CONTROL and SHIF5}T, the string will appear, and the computer will act as if RETURN was also pressed, thus executing the command. These functi5}on keys are numbers 4-0 at the top of the keyboard. To assign a value to a key, use the DEF command. Command: DEF key,5} string KEY represents the key number, and STRING represents the string of characters to be assigned to that key. Example: 5} DEF 4, DIR This assigns "DIR" to key 4. Whenever CONTROL and 4 are pressed simultaneously, "DIR" will be printed on the 5}screen, and the cursor will be left right after the "R". If CONTROL, SHIFT, and 4 are pressed, "DIR" will be printed, as wel5}l as executed, displaying the directory of drive one. DEF 0, ML$(LEN(ML$)+1)=" This assigns key 0 to 'ML$(LEN(ML$)+1)="', wh5}ich is a common method used to build up strings in Atari BASIC; since such assignments commonly occur in many places within t5}he same program, the function keys will help in typing these programs. You'll probably want to see what you've defined these5} keys as, without having to press each one individually to see what it contains. The KEY command provides a simple method fo5}r this. Command: KEY This displays all seven of the function keys as well as the value they contain. There are also five o5}ther special function keys that aren't user-definable. These keys are described below, along with their function. CONTROL-E5}SC: Takes the cursor to the left margin. SHIFT-ESC: Takes the cursor to the right margin. CONTROL-CLEAR: Takes the curso5}r to the top left corner of the screen, without clearing the screen. CONTROL-INV: Takes the cursor to the bottom left corne5}r of the screen. SHIFT-INV: Toggles keyclick on/off. Function: Flashing cursor Command: FLASH [rate] This command st5}arts the cursor flashing at the rate specified. RATE can be a number between 0 and 255, and is expressed in jiffies (1/60's 5}of a second). The smaller the number, the faster the cursor will flash. If no rate is given, the cursor will flash at the r5}ate last specified, which defaults to 20. Command: NOFLASH This command will cause the cursor to stop flashing and retu5}rn to normal. Function: Accessing EAB's commands from within a BASIC program. Since EAB's commands can only be execute5}d from the immediate mode (when BASIC is waiting for input), a provision has been made to allow most of these commands to be 5}executed by a running BASIC program. This involves an addition to the existing screen editor (E: device), and takes the for5}m of an XIO function. This XIO command follows the usual XIO syntax: XIO cmd, #iocb, icax1, icax2, filespec where "cmd" is 5}the command byte (0-255), "iocb" is the IOCB number, "icax1" and "icax2" are auxiliary bytes, and "filespec" is the filename.5} In the new XIO command, any number greater than 12 will work for the command byte (cmd), any IOCB can be used (except 0), I5}CAX1 and ICAX2 are ignored, and FILESPEC is "E:" followed by the command to be executed. Examples: XIO 255, #5, 0, 0, "5}E:DIR" This will cause the directory of drive 1 to be displayed while the BASIC program is running. XIO 255, #5, 0, 0, "E:LO5}CK D:FILE" This will lock D:FILE on the disk in drive one. XIO 255, #5, 0, 0, "E:FLASH" This will make the cursor flash at t5}he default rate. XIO 255, #5, 0, 0, "E:TIME 12:00" This will allow a BASIC program to set the time; in the example, it will 5}be set to 12:00. The XIO command may be too cumbersome to type each time you wish to use it, so another function key was add5}ed to EAB. By pressing CONTROL and "/" at the same time, this will be displayed: XIO 255, #5, 0, 0, "E: This can aid BASIC5} programmers wishing to use the added commands from their own programs. Pressing CONTROL, SHIFT, and "/" will, unlike the ot5}her function keys, have the same effect as pressing just CONTROL and "/". There are some commands that should never be used 5}in this mode. They are REN, AUTO, and LOMEM; since each of these changes the BASIC program in memory, the computer may lock 5}up when these commands are executed. Also, be aware that REBOOT will do just that, and BASICOFF will go directly to DOS, wit5}hout giving you a chance to recover your program. Section 5 - Sample Programs To help clarify the usage of some of5} EAB's commands, I've included three sample programs in this archive. To use them, first boot the disk containing EAB, then 5}LOAD the proper filename. The first program, CONVERT.EAB, is just a simple demonstration of the CONVERT and FLASH commands. 5} It isn't terribly exciting, but it shows the general format of calling EAB commands from a program. The second program, ERR5}ORS.EAB, provides a means of generating a list of BASIC error messages, with the option of having the list printed. If you c5}hoose to have it printed, be sure the printer is on-line before you run the program. The third example, BANK.EAB, shows how 5}the BANK command works. It draws four different sized boxes on the screen and stores each of them in a different memory bank5}, then it flips through them one by one. Before it draws each box, you can watch it clear out the garbage stored in the extr5}a RAM; it will be erased from the top of the screen down to the bottom. This program will only work correctly on a 130XE, an5}d will most likely erase the contents of the RAMdisk if it is currently activated.THE END... work correctly on a 130XE, an4_