LT!}CD l0C)HCC YhL*h `CmCD`  R@P1 - L Y!ή0@R !L`@LAA C D  :CS S) )CDD 0 CD CDLLAA C D  :CS S) )CDD }0 CD CDLCiCD` DD `R   @}!LYH h` U ` = H!& ! S S!ʽ)ȭ) Șh  9J)LH }D Ln(( C C LLj() C ` &#%L Lf( L 0p  ` } #C?   * } JLL l '(` * ) }#$ `A! ߰")- /" $G@LLnL&0") C $ }G%H0 3S8`GȱGȱG /GȭGȭGG}GHiH8(()) C G$H%  u`) }(0)8` )LT LGȘ#$ LL  9  C LLj )N>Q F  (H' }H) C %#&$ NhyhyB  0L> L JJ 2  2 4 L *` B }%'8  \ H] H` o i   P LnL 9 Lj C J  O JHh ?   9 }L 9 ? J    0L ` C  C L  fL E`Lj  9 Lj)   }L) `Lp0AM"L! M$L#  NLrLLhN!L"MLHG!}@)1F GȱGLdLEEȩÑEȑEEȑE Ed E7EȩE 0} ε L ,0,0SGɛ L  L &EHEh  G LLSROTCES} EERF G) *Gȩ GȽG GȌd   (G`8 0G}`DCEDC0X:Ȣ ȱC* ? 0.. ,0%n?A[ 0 : L^`Lt  `},0``pi͵H 0)բ?ٞ 08}`0   0$L G$GȽ#G L'( #$`8"!L#!$"`}L/#$8`  05G),G)$ȱG#ȱGHh0})Hh` B! v8`8iiiLF}E`E8FEh(H)h l0`ɃLLx &L0!"8^"~!jj8jH!i hEEEiEȱEi}E` dTEH8EEȱEEȩEh JE8  .m#i$`LzI莯!E}FV) 3L|)J戩  GH`L~  )JJ`}HGH)h l`!"  L   8 rii `)вC}DCĢ YD  C  /L` W`DOS SYS IIIIIIIIIIIIIIIC`0}鮰 ߩ0}}A@-u TT"!TTTԈ0}}A##$$%%  DOS SYS }}}CDOS SYSb;9DOSXL XL btMENU COMbKCOPY COMbDO COMb DUPDBL COMb DUPDSK COMbI}NIT COM }!}`xB76   ((  }  o  A      0 0   0  0 706XB"}0`-2 2`-2 2`(ҩ`ҩ`ҩ``  2 ҅1 _2 /e1i1 _1 / ` #} 1 T2e1i100 _ T10 `H8M)Ǎҥh `8*) Ǎҥҭҍ 00)$} 0 `h0`NjNjLem` L   T>  u`%  ҥ) ҩ(ҩҍ%}ҍҤAҩ0`%ҩҍҍҍ`mi: ; < =:28394`888998`<`00&}>AC E0`238 9`  ɐ    D``_  1'}E m0  m0  m( m0 `_` LD:STARTUP.EXCD:DOSXL.SYSD:AUTORUN.SYSD:MENU.COM:(}ɛ o (`;LHLLLLLTD1:D:STARTUP.EXCZ;@CNIT.COM@INITOS.SYSTORSH a)}nd bootlly+I*}l LchdhefLfeHdH`lllc  L E: K o` >ccL +}0: @L* L T] =]8ʈ]08a{)(`] HH``__,}`Lg` :ٽ  b LD; 1:LMOC.REMCARENDSCRNOSRENPROUNPSAVLOARUNE-}RADIRTYP) W /#$! | L T  tL T: *. oLa ɛ.} a T oL ~L 2 0 a 2 ` TLI ɛ  L T o0'      /} 0L L T Lb o06_  I FɅ Ɉ bL L`  0 0}; ( LI  H h``bLȌ THhj)@ L)L @1} J 0a) )ύ L %  H &  L h0,p 2 `L)  2})@LLCXE.JH hLH ThLt 0 (  L 2L B VCɀ` L'3}! 8iL* L (L  (ED`IH`ܩ L(]] ]4}` ɛ :  `]^ 80$  ].^ ]]Ԍ5}]^` `ɛ, `ɦɐɠi,ɰ) 4!5!  ( LDRIVE NUMBER ERRORNO BUFFERSDISK FULL6}I/O ERRORSYSTEM ERRORINVALID FILE NAMEOSS DOS XL - ATARI version 2.35I1 Copyright (C) 1983 OSS,Inc.FILE PROTECT7}EDWRITE PROTECTEDDIRECTORY FULLFILE NOT FOUNDADR RANGE ERRORBREAK KEY ABORTINVALID DEVICENO CARTRIDGE # 6 A K U b t 8} ! U!!'}?? ? ?I ?(  B V` @  ?E ?D ? ??D:}E ??S` ? ?hh`l )` ```L L L  % ?#?@p;}E@L }6CD l0C)HCC WhL/h `CmCDiD`  R@P<}1&  Y&0@R !L(`) 4 B` 4 B` 4 7=} B` 4 B` 4H"h H"h B` 4 # B` 4 B`HӍK)h`HKh`>}?} j ~ `HӍ@} )L H H h`ɐ  `;LHLL L L L D1:A}B} v Il j L j r hs ht u Lu t Hs H ~ ` j L j L j W ~ ` v j `l v j C}`l v j `l DRIVE NUMBER ERRORNO BUFFERSDISK FULLI/O ERRORSYSTEM ERRORINVALID FILE NAMEOSS DOS XL - ATARI versionD} 2.30X Copyright (C) 1983 OSS,Inc.FILE PROTECTEDWRITE PROTECTEDDIRECTORY FULLFILE NOT FOUNDADR RANGE ERRORBREAKE} KEY ABORTINVALID DEVICENO CARTRIDGE * VL5 * YL5 H HHH h`H)h`e * f g H]Hlf F}5 e h@I_G}H} C D 343 8PX6CS S) 48CPDX  I} @0 C`Dp CDLCiCDiD` DD˙` J)J}L CD L(( LL(,L) (LL( u,Lh)0p- *,+. K}, Q( (,POCLNM?Q (  L,L . ` ,L}L)OP 9`/A! 'ȹ߰")-ݞ " A$//G@LLLI $j7")M} $G%H7 13S8`G0ȱG1ȱG2 0Gȭ1Gȭ2GG}GHiH8(()) 琡G$H% N}`%(0)8` )L꽟ݞ A 1LG/Ș ݞLL C LL )N>Q O}HH) 1 ,hyMMhyNNBL L> L轙JJ. - ,L*`P} B%'8  HH`S$LL: 4 CL  @4 ,PHOh z,?Q (Q} S쐸L C? u  @ S L , 驀L L 1 LE`L 66 CL,L) 6LR} SL,L) `L}0AMݢLݡ ML 9 NݞLLL⦅NLMLHS}G!@%1F GȱGLLEEȩÑEȑEEȑE Ed E7EȩE LT}- - @L6 C,0,60S6G/6ɛ 6L6 S CL EHEh y 6G 6LLSROTU}CES EERF G,L) *Gȩ GȽQG GȌ6,MNd G6`5438354 06GV}643`DCEDC0X:Ȣ 3ȱC* ? ,0.. ,30%n3?A[ 0 : ,L(`L  W}`,30``)-.p,.,i--H ,L0)բ?Q )-),*.+L0X}8(`0  0$L1 ("GGȽG 66L $`8L」Y}`L콣8` $ 05G)ݙ,G)ȱGȱGHh0})Hh` B! 8`8L-iiiLZ}E`E8FEh(% l0`ɃL L L8^~jj8jHi hEEEiEȱEiE`[} dTE3H8EEȱEEȩEh 4J3E83 3 .3m43i`L著I('(!PEX\}F8R%""1@L%J@舩A𩀙@𘝠`GpH`L@@%JJA`HGH]}h% l` z L   8 rii `%дCDCG^} W  C  L` `DOS SYS IIIIIIIIIIIIIII(C'(/`0( ߩ_}0}`}a}b}c}d} e} D `o n H  0 ( 0 o n `  L D:STARTUP.EXCD:DOSXL.SYSD:AUTORUN.SYSD:MEf}NU.COM[ ɛ r (`r L E : K r` Ar r L 0: g}@L* L Wl  @]8ʈl 08a{)(`l HH`o n n  o Lv ` h}:    q  LD 1 : LMOC.REMCARENDSCRNOSRENPROUNPSAVLOARUNERADIRTYP) Z"i} 2#$!  L W  wL W : * .  rLp ɛ p W rL j}L 5 0 p 5 ` WLL ɛ L W r0'  0L L W Lk}q  r06n  L IɅ Ɉ q L L`  0   +l} #LL  H h``q L Ȍ WH hm  )@ L )L @ #J 0am} ) )ύ   L % H & L  h0, p 5 ` L )  )@LLCn}XE.JH hLH WhLw  0 + # L 5L B VCɀ` L ' ! #8 o} iL- L  +˩ L# +ͩ ED`IH` #L+l l l `  p}ɛ :    `l m 8 0$  l .m l l Ԍ l m ` q}`ɛ, `ɦ ɐɠi,ɰ) &' # + L  * 7 I *  + q r}s}??hhEpE * SL5  ?E ?D ? ??D3PY iP`p S S T nRLP6G 6LLSROTCES EERF G,L) *Gȩ GȽQG 8fP gu}P dP ȱ ePP bP cP P LP PY`lbP?hPaP P`PHPH`FTCDEIPURSLGXQPQQCQ{QiQQQQQR'RDiDDCD 0D BD``D G,L) *Gȩ GȽQG 8fP gL@(@)@? D?UC?C?V? Y`*@Cee`&``8Ƹȥ`ȱ }i`Ȧ````8`ƶ`l8嶅`ȱ` g@` g@ȥ` }`EE`%%` BƵ` BƵ` ?@ BƵ` B0Ƶ` BƵ` B0Ƶ`Ŷŵ(` HAƵ` HAƵ` }?@ HAƵ` HAƵ` ?@*ff` ?@&`8嵅嶅`II` AL@$ 8嵅嶅$8峅崅 @ }&&&8嵨嶐泅$p8峅崅L6B8居岅$㥴`HI B V`H }IB VL@``0LBee`ee`ȱl g@L@ g@L@ꥴ0008嵅 }(`) eeFf&⥱`L+CUU`**`8履` } DdL D iD iD D D D 0! :8`ȱ >#<-R+R }0 :UCLD`LsDUCfCȱ A%[! i? <>Ș8?0 L'D UCH hA ['C0 :RCL'DUC }DiVCiCWC!D 0 ! C0CDUCL'D B P@ @ @ @ @ P@ B P@ @ @ @ @ @ @LKELE` B }B P@ B @ B P@ @ @ @ @ @LE B P@ @ @ @ @LaE B @ B` B @ P@ Vc B` B @ P@ Vc B B } A P@ ]c B` B6 B @ P@6 B @ P@6 B @ P@ B P@ :F B2 B @ P@ B P@ L B2 B` B P@ @ @ @ @ }@ P@: B g@ ALkFL:F B P@ @ @ @ @ P@ B P@ @ @ @ @ @ @ P@: B g@ ALFLkF B @ @L`G } B @ @ P@? B g@ ALG B @ P@ B @ @ @L!G B @ P@ B @ @ @ B P@ @ @ @ @ B P@ @ @ @ @ } B P@ @ @ @ @LF B @ P@ B @` B B P@ @ @ @ @ P@ B P@ @ @ @ @ @ @ P@: B g@ ALGLyG } B P@ B @ B P@ B @ B @ P@ B g@ @AL6H B @ P@ B P@ @ @ @ @ g@ *@ P@ B @LG B P@ B } @ B @ P@ B @ g@ *@ @ P@* B g@ A P@ B @ P@ B @ g@ *@ @ P@. B g@ A g@ A P@ B @ P@ B @ g@ *@ }@ P@ B g@ A g@ AL5I B @ P@ B P@ @ @ @ @ g@ *@ P@ B @ P@ B P@ @ @ @ @ g@ *@ @ @LFH B @ } P@ B @ g@ *@ @ P@* B g@ ALI B @ P@ B g@ @ALI B @ P@ B P@ @ @ @ @ g@ *@ P@? B @LhI } B @ P@ B @ g@ *@ @ P@. B g@ A P@ B @ P@ B @ g@ *@ @ P@ B g@ A g@ AL7J B P@ @ @ @ @LI } B @ P@ B @ g@ *@ @LK B P@ B @ B P@ @ @ @ @ B @ P@ B @ g@ *@ @ P@ B g@ A P@ B }@ P@ B g@ @A g@ A P@ B @ P@ B @ g@ *@ @ P@* B g@ A g@ AL[K B @ P@ B P@ @ @ @ @ g@ *@ P@ }B @ P@ B P@ @ @ @ @ g@ *@ @ @LJ B @ P@ B @ g@ *@ @ P@* B g@ ALK B @ P@ B g@ @ALK } B @ P@ B P@ @ @ @ @ g@ *@ P@? B @LK B @ P@ B @ g@ *@ P@ B @ B` B @ P@d P@ L B }B @ P@e- P@ L B 9O P@ B g@ ALLd P@ E BN P@ E BLLCh P@V B P@A B g@ A }g@ *@ @LLd P@ E BÅN P@ E B` B B P@ @ @ @ @ P@ B P@ @ @ @ @ @ @ P@: B g@ A }L0MLL B P@ B @ B @ P@ B @ g@ *@ @ P@ B g@ A P@ B @ P@ B g@ @A g@ ALM B P@ @ @ }@ @ P@ B @ P@ B P@ @ @ @ @ g@ *@ @ @L@M B P@ B @ B P@ @ @ @ @ P@. B @ B @ P@ B @ g@ *@ } @ P@ B g@ A P@ B @ P@ B g@ @A g@ ALN B P@ @ @ @ @ P@ B @ P@ B P@ @ @ @ @ g@ *@ @ @L }N B @ P@ B @ B` not copied copied B B P@ cB @ B @ P@ B g@ ALO B B` cB P@ B } g@ AL+OLO B @ B` B BCh P@Q B P@A B g@ A g@ *@ @L$PޅV P@ E Bd P@ E } B䅵V P@ E Be- P@ E B녵V P@ E B B P@ N @ P@Y B g@ A P@ B @ P@y B g@ A g@ A }L$P B A B` B P@ B @ B P@ B @ B @ P@ B g@ ALV B @ P@ B g@ A P@_e`e g@ @ }LNQ B P@d P@텵V P@ a B @ P@ B g@ @ALQV P@ E Bd P@ E BW P@ E }B B A B` B @ P@ B g@ ALNQ B @ P@ W B B P@ B @ P@ X B @ P@ B g@ @ALQW } P@ E Bd P@ E B$W P@ E B B P@ B @ P@ b B @_e`eL)R B @ P@ #X B B }@ P@ ib B&W P@ E B NCh P@F B P@A B g@ A g@ *@ @ P@ B g@ A P@ B @ P@ B g@ A g@ AL }Te- P@ B g@ *@ @ P@D B g@ A P@e- P@ B g@ *@ @ P@A B g@ A g@ @LT B P@e- P@FW } P@ a B @ P@ B g@ 8ALTe- P@ E BHW P@ E B B @ P@ ib BCh P@Q B P@A B g@ A }g@ *@ @ P@ B g@ ALAT\W P@ E B B P@ N @ B @ P@Y B g@ A P@ B @ P@y B g@ A g@ AL> }T_e`e P@ B g@ AL0T B @ P@ ib B B A B`LT_e`e P@ B g@ ALuT B @ P@ ib B }B A B` B @ P@ B g@ A P@Ch P@A B P@A B g@ A g@ *@ @ P@ B g@ A g@ AL U B P@e- P@q }W P@ a B @LU_e`e P@Ch P@A B P@A B g@ A g@ *@ @ P@ B g@ A g@ @LU B P@e- P@s }W P@ a B @ B @ P@ B g@ @ALUuW P@ E Be- P@ E BW P@ E B B A B` }B @ P@ B @ P@ 4Y B P@ B g@ @ALZVW P@ E Be- P@ E BW P@ E B_e`eL }V B @ P@ ib BW P@ E B N B P@ @ @ @ @LDP B @ P@ ib B B @ P@ ib B B B`Copy to } ?Rcopy: can't open: copy: read error on file Insert 'to' disk and hit returnR already exists OK to o }verwrite? WACan't open: copy: write error on file Insert 'from' disk and hit return B @ P@aebe P@ }cede P@ d B P@ B g@ @AL"X`Y P@ E B` B @ P@ B P@ c Bbeae P@ B g@ @ALrX }wY P@ E B B @ P@ B P@ c Bdece P@ B g@ @ALXY P@ E B` B B P@ P@ }eefe g@ A P@ A g@ A @ B @ P@eefe P@ B @ P@ mc B B` B @ P@eefe P@ B @ P@ c } B`copy: fatal i/o errorcopy: fatal i/o errorcopy: fatal i/o error B B B B @ P@ B g@ @A P@ B @ } P@ B g@ #A g@ @LZEd P@ E BCh P@S B P@A B g@ A g@ *@ @`e_e B @ P@ B :@ g@ *@ @ } P@ B P@ E B B @ P@ B g@ ALZ B`e_e B P@f B P@ E BLZ B @ P@ B :@ g@ *@ @ P@f } B P@ E B B P@ B P@ LE B P@ B g@ A g@ *@ @ P@: B g@ ALY[dd P@ B P@ B P@ LE B g@ *@ } P@ E Bd B P@f B P@ LE B P@ B g@ A g@ *@ @ P@: B g@ AL[id P@f B P@h B P@ LE B g@ *@ P@ } E B B P@ t^ B P@ B g@ A P@f B P@ t^ B P@ B g@ A g@ AL\ B P@ B g@ *@ @ P@D B g@ A P@ } B P@ B g@ *@ @ P@A B g@ A g@ @L\nd P@ E BCh P@W B P@A B g@ A g@ *@ @L\d } P@ E Bd P@ E B N B P@eg P@ B P@ ^ B @ P@ B A g@ AL:]Ņd P@ E B B @ } P@ B g@ ALl]ᅵd P@ E B B P@4 B P@ tG Bd B P@ B P@ tG Beg P@ B @ P@ B P@ B } g@ *@ g@ B g@ *@feee B P@ B @ B @ P@ B @ g@ @ALl^2 B P@ B P@eg P@ B P@ B g@ *@ }P@ B P@ @ @ @ @ g@ B g@ *@ P@ E BL]̠ B` B @ @L^ B @ @ P@? B g@ AL^ B` B P@ }@ @ @ @ @ P@* B g@ AL^ B`Lt^ B` B B: B @ P@ B g@ *@ @ P@D B g@ A P@< B @ P@ B g@ * }@ @ P@A B g@ A g@ AL_: B @ P@> B @ P@ E B B: B`6 B P@< B @ P@d P@ a B @ P@ B g }@ @AL_ B A: B`8 B P@ B @ B P@2 B P@: B @ P@ b B P@ B g@ ALa4 B P@ B P@ B g@ } *@ @ @4 B @ P@ B g@ A P@6 B @ P@* B g@ A g@ AL`6 B @ P@ ib B8 B @: B` B P@ B P@ B } g@ *@ g@ *@ P@ B @2 B P@ B @< B @ P@4 B @ g@ *@ P@< B @ P@6 B P@ @ @ @ @ g@ *@ @ @ P@: B g@ A }L5aL` B P@ B g@ *@ P@> B @ P@6 B @ g@ *@ P@ E B8 B P@ @ @ @ @< B P@> B @ P@ B g@ *@ P@ }B g@ *@ @L_6 B @ P@ ib B B A: B`o @B` aEDȱ$R W  }A DJ V Yb0L@ B V`Hƶh(` B V0 Yb`BHI` bɈ` }C`HȱILbHIDȱEB V Yb0/D}HE}I涩DE`` }DȱE BI ILAED`HI`NAB VNAC`eC 5A ECDFCE >A`(} 5AuC -AL>A}OSS DISK INITIALIZERATARI INDUS VERSION 2.351. FORMAT DISK ONLY.2. FORMAT DISK AND WRITE DOS.SYS.3. WRI}TE DOS.SYS ONLY.5. RETURN TO DOS XL.ENTER FUNCTION NUMBER: ENTER DRIVE (1,2,3 OR 4): FUNCTION ; DRIVE ARE YOU SURE} (Y OR N): *** ERROR ***TASK TERMINATED NORMALLYHIT RETURN FOR NEXT FUNCTIONINVALID RESPONSE4. REFORMAT BOOT TRA}CKS ONLY.CAUTION: DATA ALREADY ON THIS DISK WILL BE LOST!ERROR: SYNCHROMESH NOT ENGAGED!AAAAAB,BGB_BvBBBBBB$C}1"/2!Systems.VID: 01.01\01.01\01.01\01.21\01.21.---------------D1:DOS.SYS-----  OA OA mAL@ OA mAuC1[@@@? !F`@Fee`&``8Ƹȥ`ȱi`Ȧ }````8`ƶ`l8嶅`ȱ` O@` O@ȥ``EE`% }%` BƵ` BƵ` '@ BƵ` B0Ƶ` BƵ` B0Ƶ`Ŷŵ(` 0AƵ` 0AƵ` '@ 0AƵ` 0AƵ` '@ }*ff` '@&`8嵅嶅`II` AL@$ 8嵅嶅$8峅崅 @&&&8嵨 }嶐泅$p8峅崅LB8居岅$㥴`HI B V`HIB VL@ }``0L|Bee`ee`ȱl O@L@ O@L@ꥴ0008嵅(` }) eeFf&⥱`LCUU`**`8履` 8@ lB O@ @ 8@N lB @!} 8@ lB O@ @ 8@@ lB @ B @ 8@ 'E sBF 8@ lB "@ O@ @ @` B @ 8@ =C sB 8@ lB O@ @ @ 8@!} lB O@ (ALD߅E 8@ H sBF 8@ lB "@ O@ @ 8@ B @ @ B @LdDF 8@ lB "@ O@ @ 8@ !}lB @LDF 8@ lB "@ O@ @ 8@ A @ 8@ lB O@ @ 8@O lB @ 8@ lB O@ @ 8@ lB @ B @ !}8@ 'E sB 8@ lB O@ @ @ 8@ lB O@ (AL&EE 8@ H sB` 8@ lB O@ @ 8@1 lB @ 8@ !}lB O@ @ 8@ B @ @ 8@ lB "@ O@ @ 8@F @ 8@ lB "@ O@ @ 8@ lB @ 8@ lB "@ O@ @ 8@!} lB @ Y`initdbl: fatal I/O errorinitdbl: fatal I/O errorFJJ 8@ 5J sBJ 8@ lB 8@ lB 8@ I sB!}J 8@ lB O@ @ @ 8@ lB O@ @JJJ 8@ 5J sBJ 8@ lB 8@ lB 8@ I sBJJ 8@ 8!}@ C sB J 8@J 8@ DH sBJ 8@ lB O@ @ 8@JJ 8@0 lB O@ @ @ lB 8@ lB 8@ lB 8@ lB 8!}@J 8@ LJ sB 8@ lB O@ (ALGJ 8@ H sB̅J 8@J 8@ lB O@ @ 8@ DH sBJ 8@ԅJ! } 8@ H sBJJ 8@ lB O@ ALHօJ 8@ H sBJJ 8@ \I sBJJ 8@ lB 8@ C sB ` B 8@! } @ @ @ @ 8@ B 8@ @ @ @ @ @ @LHLDH` B @ 8@ 5J sBJJ 8@ lB 8@ C sB  lB A 8@ #<-R+R)}0 :UCLD`LsDUCfCȱ A%[! i? <>Ș8?0 L'D UCH hA ['C0 :RCL'DUC )}DiVCiCWC!D 0 ! C0CDUCL'D B P@ @ @ @ @ P@ B P@ @ @ @ @ @ @LKELE` B )}B P@ B @ B P@ @ @ @ @ @LE B P@ @ @ @ @LaE B @ B` B @ P@ h B`Ch P@N B P@A B)} g@ A g@ *@ @ P@ B g@ A P@jj P@ B g@ A g@ AL>Fjj P@jj P@ Z B  B @ P@ h )}B B A P@ h B` B6 B @ P@6 B @ P@6 B @ P@ B P@ F B2 B @ P@ B P@ L B2 B` B P@ @ @)} @ @ @ P@: B g@ ALFLF B P@ @ @ @ @ P@ B P@ @ @ @ @ @ @ P@: B g@ AL:GLF B @ @)}LG B @ @ P@? B g@ ALG B @ P@ B @ @ @LG B @ P@ B @ @ @ B P@ @ @ @ @ B P@ @ ) }@ @ @ B P@ @ @ @ @L:G B @ P@ B @` B B P@ @ @ @ @ P@ B P@ @ @ @ @ @ @ P@: B g@ AL)!}HHLG B P@ B @ B P@ B @ B @ P@ B g@ @ALH B @ P@ B P@ @ @ @ @ g@ *@ P@ B @LhH B )"}P@ B @ B @ P@ B @ g@ *@ @ P@* B g@ A P@ B @ P@ B @ g@ *@ @ P@. B g@ A g@ A P@ B @ P@ B @)#} g@ *@ @ P@ B g@ A g@ ALI B @ P@ B P@ @ @ @ @ g@ *@ P@ B @ P@ B P@ @ @ @ @ g@ *@ @ @LH)$} B @ P@ B @ g@ *@ @ P@* B g@ AL>J B @ P@ B g@ @AL>J B @ P@ B P@ @ @ @ @ g@ *@ P@? )%}B @LI B @ P@ B @ g@ *@ @ P@. B g@ A P@ B @ P@ B @ g@ *@ @ P@ B g@ A g@ ALJ B P@ @ @ )&}@ @L>J B @ P@ B @ g@ *@ @LdL B P@ B @ B P@ @ @ @ @ B @ P@ B @ g@ *@ @ P@ B g@ A P@)'} B @ P@ B g@ @A g@ A P@ B @ P@ B @ g@ *@ @ P@* B g@ A g@ ALK B @ P@ B P@ @ @ @ @ g@ *@)(} P@ B @ P@ B P@ @ @ @ @ g@ *@ @ @LK B @ P@ B @ g@ *@ @ P@* B g@ ALdL B @ P@ B g@ @A))}LdL B @ P@ B P@ @ @ @ @ g@ *@ P@? B @LL B @ P@ B @ g@ *@ P@ B @ B` B @ P@j[ P@ dM)*} B B @ P@j P@ dM B O P@ B g@ AL Mj[ P@ E B:O P@ E BLcMCh P@V B P@A B)+} g@ A g@ *@ @LcMj[ P@ E BGO P@ E B` B B P@ @ @ @ @ P@ B P@ @ @ @ @ @ @ P@: B),} g@ ALMLiM B P@ B @ B @ P@ B @ g@ *@ @ P@ B g@ A P@ B @ P@ B g@ @A g@ AL[N B P@ )-}@ @ @ @ P@ B @ P@ B P@ @ @ @ @ g@ *@ @ @LM B P@ B @ B P@ @ @ @ @ P@. B @ B @ P@ B ).}@ g@ *@ @ P@ B g@ A P@ B @ P@ B g@ @A g@ AL!O B P@ @ @ @ @ P@ B @ P@ B P@ @ @ @ @ g@ *@ )/}@ @LN B @ P@ B @ B` not copied copied B B P@ cB @ B @ P@ B g@ ALO B B` cB )0}P@ B g@ ALOLO B @ B` B BCh P@Q B P@A B g@ A g@ *@ @LP|W P@ E Bj[ )1}P@ E BW P@ E Bj P@ E BW P@ E B B P@ UO @ P@Y B g@ A P@ B @ P@y B g@ A g@ )2}ALP B A B` B P@ B @ B P@ B @ B @ P@ B g@ ALKW B @ P@ B g@ A P@jj g@)3} @LQjj P@jj P@ Z B  B P@j[ P@W P@ #g B @ P@ B g@ @ALQW P@ )4}E Bj[ P@ E BW P@ E B B A B` B @ P@ B g@ ALQ B @ P@ oX B B P@ B @)5} P@ fY B @ P@ B g@ @ALeRW P@ E Bj[ P@ E BƅW P@ E B B P@ B @ P@ g B @)6}jjLR B @ P@ X B B @ P@ g BȅW P@ E B UOjj P@jj P@ Z B Ch P)7}@F B P@A B g@ A g@ *@ @ P@ B g@ A P@ B @ P@ B g@ A g@ AL!Uj P@ B g@ *@ @ P@D B g@ A P@)8}j P@ B g@ *@ @ P@A B g@ A g@ @L!U B P@j P@腵W P@ #g B @ P@ B g@ 8AL!Uj)9} P@ E BꅵW P@ E B B @ P@ g B BLTW P@ E B B P@ UO @ B @ P@Y B g@ A P@ ):}B @ P@y B g@ A g@ ALTjj P@ B g@ ALT B @ P@ g B B A B`L!Ujj P@ B g@ );}ALU B @ P@ g B B A B` B @ P@ B g@ A P@Ch P@A B P@A B g@ A g@ *@ @ P@ B g@ A g@)<} ALU B P@j P@X P@ #g B @L$Vjj P@Ch P@A B P@A B g@ A g@ *@ @ P@ B g@ A g@)=} @L$V B P@j P@X P@ #g B @ B @ P@ B g@ @ALVX P@ E Bj P@ E B')>}X P@ E B B A B` B @ P@ B @ P@ Y B P@ B g@ @ALV)X P@ E Bj P@ E BI)?}X P@ E BjjL4W B @ P@ g BKX P@ E B UO B P@ @ @ @ @LP B @ P@ g B B @)@} P@ g B B B`Copy to ?Rsdcopy: can't open: sdcopy: read error on file Insert 'to' disk and hit re)A}turnR already exists OK to overwrite? WACan't open: sdcopy: write error on file Insert 'from' disk an)B}d hit return B @ P@jj P@jj P@ Qi B P@ B g@ @ALXZ P@ E B` B @ P@ B P@ i)C} Bjj P@ B g@ @ALYZ P@ E B B @ P@ B P@ i Bjj P@ B g@ @ALeY6Z)D} P@ E B` B B P@ P@jj g@ A P@ A g@ A @ B @ P@jj P@ B @ P@ h B B)E}` B @ P@jj P@ B @ P@ h B`sdcopy: fatal i/o errorsdcopy: fatal i/o errorsdcopy: fatal i/o error)F} P@ B g@ *@ P@N B @ P@ B g@ *@ P@@ B @ B @ P@ ;\ B]% P@ B :@ g@ *@ @` B @ P@ QZ)G} B P@ B g@ *@ @ P@ B g@ @AL[󅵩\ P@ E B]% P@ B :@ g@ *@ P@ B @ @ B @)H}Lx[]% P@ B :@ g@ *@ P@ B @L[]% P@ B :@ g@ *@ P@ A @ P@ B g@ *@ P@O B @)I} P@ B g@ *@ P@ B @ B @ P@ ;\ B P@ B g@ *@ @ P@ B g@ @AL:\ ] P@ E B` P@)J} B g@ *@ P@1 B @ P@ B g@ *@ P@ B @ @ P@ B :@ g@ *@ P@]% @ P@ B :@ g@ *@ P@)K} B @ P@ B :@ g@ *@ P@ B @ Y`sdcopy: fatal I/O errorsdcopy: fatal I/O error1]Zj B B B B @)L} P@ B g@ @A P@ B @ P@ B g@ #A g@ @L]xi P@ E B Bjj B @ P@ B :@ g@ *@ @ P@ B )M}P@ E B B @ P@ B g@ AL"^ B @ P@ B :@ g@ *@ @ P@f B P@ E BLQ^ B @ P@ B :@ g@ *@ @ P@f )N}B P@ E B B P@ B P@ LE B P@ B g@ A g@ *@ @ P@: B g@ AL^i P@ B P@ B P@ LE B g@ *@ )O}P@ E Bd B P@f B P@ LE B P@ B g@ A g@ *@ @ P@: B g@ ALE_i P@f B P@h B P@ LE B g@ *@ P@ )P}E B B P@ c B P@ B g@ A P@f B P@ c B P@ B g@ A g@ AL` B P@ B g@ *@ @ P@D B g@ A P@)Q} B P@ B g@ *@ @ P@A B g@ A g@ @L`i P@ E B B P@ B g@ *@ @ P@: B g@ AL?` Bj)R}jLm` B P@ B g@ *@ @ P@ B g@ Ajjd B P@ B g@ *@ @ P@: B g@ AL` BjjL`d B P@)S} B g@ *@ @ P@ B g@ Ajjjj P@jj g@ ALaÅi P@ E B酵i P@ E Bj P@ )T}E B UOjj P@ QZ BjjCh P@R B P@A B g@ A g@ *@ @ P@ B g@ A P@ g@ Bjj)U} P@jj g@ Ajj B P@jх P@ B P@ c B @ P@ B A g@ AL#b!j P@ E B B @ )V}P@ B g@ ALUb?j P@ E B B P@4 B P@ G Bd B P@ B P@ G Bjх P@ B @ P@ B P@ B )W}g@ *@ g@ B g@ *@jj B P@ B @ B @ P@ B @ g@ @ALUc2 B P@ B P@jх P@ B P@ B g@ *@ P)X}@ B P@ @ @ @ @ g@ B g@ *@ P@ gF BLbjj P@jj P@ Z B ̠ B` B @ @Lc B @ @ P)Y}@? B g@ ALc B` B P@ @ @ @ @ @ P@* B g@ ALc B`Lc B` B B: B @ P@ B g@ *@ @ P)Z}@D B g@ A P@< B @ P@ B g@ *@ @ P@A B g@ A g@ ALd: B @ P@> B @ P@ E B B: B`jj P@)[}jj P@ Z B 6 B P@< B @ P@Yj P@ #g B @ P@ B g@ .ALe B A: B`8 B P@ B @ B P@)\}2 B P@: B @ P@ g B P@ B g@ ALf4 B P@ B P@ B g@ *@ @ @4 B @ P@ B g@ A P@6 B @ P@* B g)]}@ A g@ ALe6 B @ P@ g B8 B @: B` B P@ B P@ B g@ *@ g@ *@ P@ B @2 B P@ B @< B @ P@4)^} B @ g@ *@ P@< B @ P@6 B P@ @ @ @ @ g@ *@ @ @ P@: B g@ ALhfLf B P@ B g@ *@ P@> B @ P@6 B @)_} g@ *@ P@ E B8 B P@ @ @ @ @< B P@> B @ P@ B g@ *@ P@ B g@ *@ @Le6 B @ P@ g B B A: B`o)`} @B` gEDȱ$R W A DJ V g0L@ B V)a}`Hƶh(` B V0 g`BHI` gɈ`C`HȱILgHIDȱE)b}B V g0/D}HE}I涩DE``DȱE BI ILohH V)c} g`LUhȱ)@`HȱIH ȱDȱEB V g`HI`HȱIHȱDȱ)d}E B V g`HI`&B V g0 N`LM`MLN%B V gL@usage: )e}sdcopy fn1 [fn2] [-fqr]**.***.*sdcopy: incompatible file specssdcopy: to and from drives not equalInsert disk(s) to b)f}e copiedand hit return when readysdcopy: can't read directorysdcopy: no files to copyDrrȥ`ȱ(e1000 .PAGE "OSS SYSTEM EQUATES FOR ATARI"1010 ;1020 ; FILE = #DN:SYSEQU.ASM1030 ;1040 ;1050 ; I/O CONTROL BLOCK EQUATE-q}pb5DOS SYSb;9DOSXL XL btMENU COMbKCOPY COMbDO COMb DUPDBL COMb DUPDSK COMbINIT COMbINITDBL COMbRS232 COMbVSDCOPY COMbgSYSEQU ASMbBMEM LISbRS232FIXCOMb'CONFIG BASb-GTRPM COMbVERIFY COMbNOVERIFYCOMb GTSYNC COMb;STARTUP EXCb$<CONFIG COMS1060 ;1065 SAVEPC = * ; SAVE CURRENT ORG1067 ;1070 *= $0340 ;START OF SYSTEM IOCBS1075 IOCB1080 ;1090 ICHID *= *+1 -r};DEVICE HANDLER IS (SET BY OS)1100 ICDNO *= *+1 ;DEVICE NUMBER (SET BY OS)1110 ICCOM *= *+1 ;I/O COMMAND1120 ICSTA *= *+1 -s};I/O STATUS1130 ICBADR *= *+2 ;BUFFER ADDRESS1140 ICPUT *= *+2 ;DH PUT ROUTINE (ADR-1)1150 ICBLEN *= *+2 ;BUFFER LENGTH11-t}60 ICAUX1 *= *+1 ;AUX 11170 ICAUX2 *= *+1 ;AUX 21180 ICAUX3 *= *+1 ;AUX 31190 ICAUX4 *= *+1 ;AUX 41200 ICAUX5 *= *+1 ;AUX-u} 51210 ICAUX6 *= *+1 ;AUX 61220 ;1230 IOCBLEN = *-IOCB ;LENGTH OF ONE IOCB1240 ;1250 ; IOCB COMMAND VALUE EQUATES1260 ;-v}1270 COPN = 3 ;OPEN1280 CGBINR = 7 ;GET BINARY RECORD1290 CGTXTR = 5 ;GET TEXT RECORD1300 CPBINR = 11 ;PUT BINARY RECORD-w}1310 CPTXTR = 9 ;PUT TEXT RECORD1320 CCLOSE = 12 ;CLOSE 1330 CSTAT = 13 ;GET STATUS1340 ;1350 ; DEVICE DEPENDENT COMMAND -x}EQUATES FOR FILE MANAGER1360 ;1370 CREN = 32 ;RENAME1380 CERA = 33 ;ERASE1390 CPRO = 35 ;PROTECT1400 CUNP = 36 ;UNPROTEC-y}T1410 CPOINT = 37 ;POINT1420 CNOTE = 38 ;NOTE1430 ;1440 ; AUX1 VALUES REQD FOR OPEN1450 ;1460 OPIN = 4 ;OPEN INPUT1470-z} OPOUT = 8 ;OPEN OUTPUT1480 OPUPD = 12 ;OPEN UPDATE1490 OPAPND = 9 ;OPEN APPEND1500 OPDIR = 6 ;OPEN DIRECTORY1510 ;1520 -{} .PAGE1530 ;1540 ; EXECUTE FLAG DEFINES1550 ;1560 EXCYES = $80 ; EXECUTE IN PROGRESS1570 EXCSCR = $40 ; ECHO EXCUTE I-|}NPUT TO SCREEN1580 EXCNEW = $10 ; EXECUTE START UP MODE1590 EXCSUP = $20 ; COLD START EXEC FLAG1600 ;1610 ; MISC ADDRESS -}}EQUATES1620 ;1630 CPALOC = $0A ; POINTER TO CP/A1640 WARMST = $08 ; WAR, START (0=COLD)1650 MEMLO = $2E7 ; AVAIL MEM (LOW-~}) PTR1660 MEMTOP = $2E5 ; AVAIL MEM (HIGH) PTR1670 APPMHI = $0E ; UPPER LIMIT OF APPLICATION MEMORY1680 INITADR = $2E2 ; A-}TARI LOAD/INIT ADR1690 GOADR = $2E0 ; ATARI LOAD/GO ADR1700 CARTLOC = $BFFA ; CARTRIDGE RUN LOCATION1710 CIO = $E456 ;CIO -}ENTRY ADR1720 EOL = $9B ; END OF LINE CHAR1730 ;1740 ; CP/A FUNCTION AND VALUE DISPLACEMSNT1750 ; (INDIRECT THROUGH -}CPALOC)1760 ; IE. (CPALOC),Y1770 ;1780 CPGNFN = 3 ; GET NEXT FILE NAME1790 CPDFDV = $07 ; DEFAULT DRIVE (3 BYTE-}S)1800 CPBUFP = $0A ; CMD BUFF NEXT CHAR POINTR (1 BYTE)1810 CPEXFL = $0B ; EXECUTE FLAG1820 CPEXFN = $0C ; EXECUTE FILE N-}AME (16 BYTES)1830 CPEXNP = $1C ; EXECUTE NOTE/POINT VALUES1840 CPFNAM = $21 ; FILENAME BUFFER1850 RUNLOC = $3D ; CP/A LOA-}D/RUN ADR1860 CPCMDB = $3F ; COMMAND BUFFER (60 BYTES)1870 CPCMDGO = -6 ; CP SUBROUTINE VECTOR1880 ;1890 *= SAVEPC ; RES-}TORE PC1900 ;S SYSTEM EQUATES FOR ATARI"1010 ;1020 ; FILE = #DN:SYSEQU.ASM1030 ;1040 ;1050 ; I/O CONTROL BLOCK EQUATE,10 .OPT NOLIST0980 .OPT NOEJECT0990 .TITLE "A sample device driver for Atari's OS"1000 .PAGE "--- general remarks -1}--"1010 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1020 ;1030 ; The "M:" driver --1040 ; Using memory as a device1050 ;1060 ; In1}cludes installation program1070 ;1080 ; Written by Bill Wilkinson1090 ; for January, 1982, COMPUTE!1100 ;1110 ;;;;;;;;1};;;;;;;;;;;;;;;;;;;;;;;1120 ;1130 ; EQUATES INTO ATARI'S OS, ETC.1140 ;1150 ICAUX1 = $34A ; The AUX1 byte of IOCB1160 ;1}1170 OPOUT = 8 ; Mode 8 is OPEN for OUTPUT1180 ;1190 MEMLO = $2E7 ; pointer to bottom of free RAM1200 MEMTOP = $2E5 ; poin1}ter to top of free RAM1210 ;1220 FR1 = $E0 ; Fltg Pt Register 1, scratch1230 ;1240 STATUSOK = 1 ; I/O was good1250 STATU1}SEOF = $88 ; reached an end-of-file1260 ;1270 HATABS = $31A1280 ;1290 HIGH = $100 ; divisor for high byte1300 LOW = $FF 1}; mask for low byte1310 ;1320 .PAGE "The installation routine"1330 ;====== CHANGE NEXT LINE TO SUIT YOUR MEMORY ======131}40 *= $30001350 ; This first routine is simply1360 ; used to connect the driver1370 ; to Atari's handler address1380 ; 1}table.1390 ;1400 LOADANDGO1410 LDX #0 ; We begin at start of table1420 SEARCHING1430 LDA HATABS,X ; Check device name1}1440 BEQ EMPTYFOUND ; Found last one1450 CMP #'M' ; Already have M: ?1460 BEQ MINSTALLED ; Yes, don't reinstall1470 IN1}X1480 INX1490 INX ; Point to next entry1500 BNE SEARCHING ; and keep looking1510 RTS ; Huh? Impossible!!!1520 ;15301} ; We found the current end of the1540 ; table...so extend it.1550 ;1560 EMPTYFOUND1570 LDA #'M' ; Our device name, "M:"1}1580 STA HATABS,X ; is first byte of entry1590 LDA #MDRIVER&LOW1600 STA HATABS+1,X ; LSB of driver addr1610 LDA #MDRI1}VER/HIGH1620 STA HATABS+2,X ; and MSB of addr1630 LDA #01640 STA HATABS+3,X ; A new end for the table1650 ;1660 ; now1} change LOMEM so BASIC won't1670 ; overwrite us.1680 ;1690 MINSTALLED1700 LDA #DRIVERTOP&LOW1710 STA MEMLO ; LSB of to1}p addr1720 LDA #DRIVERTOP/HIGH1730 STA MEMLO+1 ; and MSB therof1740 ;1750 ; and that's all we have to do!1760 ;1770 1}RTS1780 ;1790 ;1800 ;;;;;;;;;;;;;;;;;;;;;;;;;;;1810 ;1820 ; This entry point is provided1830 ; so that BASIC can reconn1}ect1840 ; the driver via a USR(RECONNECT)1850 ;1860 RECONNECT1870 PLA1880 BEQ LOADANDGO ; No parameters, I hope1890 1}TAY1900 PULLTHEM1910 PLA1920 PLA ; get rid of a parameter1930 DEY1940 BNE PULLTHEM ; and pull another1950 BEQ LOAD1}ANDGO ; go reconnect1960 ;1970 .PAGE "The driver itself"1980 ;1990 ; Recall that all drivers must2000 ; be connected to1} OS through2010 ; a driver routines address table.2020 ;2030 MDRIVER2040 .WORD MOPEN-1 ; The addresses must2050 .WORD 1}MCLOSE-1 ; ...be given in this2060 .WORD MGETB-1 ; ...order and must2070 .WORD MPUTB-1 ; ...be one (1) less2080 .WORD M1}STATUS-1 ; ...than the actual2090 .WORD MXIO-1 ; ...address2100 JMP MINIT ; This is for safety only2110 ;2120 ; For man1}y drivers, some of these2130 ; routines are not needed, and2140 ; can effectively be null routines2150 ;2160 ; A null rou1}tine should return2170 ; a one (1) in the Y-register2180 ; to indicate success.2190 ;2200 MXIO2210 MINIT2220 LDY #1 ; 1}success2230 RTS2240 ;2250 ; If a routine is omitted because2260 ; it is illegal (reading from a2270 ; printer, etc.), s1}imply pointing2280 ; to an RTS is adequate, since2290 ; Atari OS preloads Y with a2300 ; 'Function Not Implemented' error1}2310 ; return code.2320 ;2330 .PAGE "The driver function routines"2340 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2350 ;2360 ; Now1} we begin the code for the2370 ; routines that do the actual2380 ; work2390 ;2400 MOPEN2410 LDA ICAUX1,X ; Check type o1}f open2420 AND #OPOUT ; Open for output?2430 BEQ OPENFORREAD ; No...assume for input2440 LDA MEMTOP2450 STA MSTART ; 1}We start storing2460 LDY MEMTOP+1 ; ...the bytes2470 DEY ; ...one page below2480 STY MSTART+1 ; the supposed top of mem1}2490 ;2500 ; now we join up with mode 4 open2510 ;2520 OPENFORREAD2530 LDA MSTART ; simply move the2540 STA MCURRENT 1}; ...start pointer2550 LDA MSTART+1 ; ...to the current2560 STA MCURRENT+1 ; ...pointer, both bytes2570 ;2580 LDY #STA1}TUSOK2590 RTS ; we don't acknowledge failure2600 ;2610 ;2620 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2630 ;2640 ; the routine 1}for CLOSE of M:2650 ;2660 MCLOSE2670 LDA ICAUX1,X ; check mode of open2680 AND #OPOUT ; was for output?2690 BEQ MCLRE1}AD ; no...close input 'file'2700 ;2710 LDA MCURRENT ; we establish our2720 STA MSTOP ; ...limit so that2730 LDA MCURRE1}NT+1 ; ...next use can't2740 STA MSTOP+1 ; ...go too far2750 ;2760 MCLREAD2770 LDY #STATUSOK2780 RTS ; and guaranteed1} to be ok2790 ;2800 ;2810 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2820 ;2830 ; This routine puts one byte2840 ; to the memory for1} later2850 ; retrieval.2860 ;2870 MPUTB2880 PHA ; save the byte to be PUT2890 JSR MOVECURRENT ; get ptr to zero page21}900 PLA ; the byte again2910 LDY #02920 STA (FR1),Y ; put the byte, indirectly2930 JSR DECCURRENT ; point to nxt byte1}2940 RTS ; that's all2950 ;2960 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2970 ;2980 ; routine to get a byte put2990 ; in memory bef1}ore.3000 ;3010 MGETB3020 JSR MSTATUS ; any more bytes?3030 BCS MGETRTS ; no...error3040 LDY #03050 LDA (FR1),Y ; ye1}s...get a byte3060 JSR DECCURRENT ; and point to next byte3070 MGETRTS3080 RTS3090 ;3100 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1};;3110 ;3120 ; check the status of the driver3130 ;3140 ; this routine is only valid3150 ; when READing the 'file'...311}60 ; "M:" never gets errors when3170 ; writing.3180 ;3190 MSTATUS3200 JSR MOVECURRENT ; current ptr to zero page3210 C1}MP MSTOP ; any more bytes to get?3220 BNE MSTOK ; yes3230 CPY MSTOP+1 ; double chk3240 BNE MSTOK ; yes, again3250 LDY1} #STATUSEOF ; oops...3260 SEC ; no more bytes3270 RTS3280 ;3290 MSTOK3300 LDY #STATUSOK ; all is okay3310 CLC ; fla1}g for MGETB3320 RTS3330 .PAGE "Miscellaneous subroutines"3340 ;3350 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3360 ;3370 ; final1}ly, we have a couple of3380 ; short and simple routines to3390 ; manipulate MCURRENT, the ptr3400 ; to the currently acces1}sed byte3410 ;3420 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3430 ;3440 ; MOVECURRENT simply moves3450 ; MCURRENT to the floating1}3460 ; point register, FR1, in3470 ; zero page. FR1 is always3480 ; safe to use except in the3490 ; middle of an expr1}ession.3500 ;3510 MOVECURRENT3520 LDA MCURRENT3530 STA FR1 ; notice that we use3540 LDY MCURRENT+1 ; both the A and31}550 STY FR1+1 ; Y registers...this3560 RTS ; is for MSTATUS use3570 ;3580 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3590 ;3600 ;1} DECCURRENT simply does a two3610 ; byte decrement of the MCURRENT3620 ; pointer and returns with the3630 ; Y register 1}indicating OK status.3640 ; NOTE that the A register is3650 ; left undisturbed.3660 ;3670 DECCURRENT3680 LDY MCURRENT 1}; check LSB's value3690 BNE DECLOW ; if non-zero, MSB is ok3700 DEC MCURRENT+1 ; if zero, need to bump MSB3710 DECLOW371}20 DEC MCURRENT ; now bump the LSB3730 LDY #STATUSOK ; as promised3740 RTS3750 .PAGE "RAM usage and clean up"3760 ;31}770 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3780 ;3790 ; END OF CODE3800 ;3810 ;3820 ; Now we define our storage3830 ; locations.1}3840 ;3850 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3860 ;3870 ;3880 ; MCURRENT holds the pointer to3890 ; the next byte to be PUT1} or GET3900 MCURRENT .WORD 03910 ;3920 ; MSTOP is set by CLOSE to point3930 ; to the last byte PUT, so GET3940 ; won't t1}ry to go past the end3950 ; of data.3960 MSTOP .WORD 03970 ;3980 ; MSTART is derived from MEMTOP3990 ; and points to the1} first byte4000 ; stored. The bytes are stored4010 ; in descending addresses until4020 ; MSTOP is set by CLOSE.4030 MSTA1}RT .WORD 04040 ;4050 ; DRIVERTOP becomes the new4060 ; contents of MEMLO4070 DRIVERTOP = *+$FF&$FF004080 ; (sets to next1} page boundary)4090 ;4100 ;4110 ; The following is how you make4120 ; a LOAD-AND-GO file under4130 ; Atari's DOS 24140 1};4150 *= $2E04160 .WORD LOADANDGO4170 ;4180 ;4190 .END driver for Atari's OS"1000 .PAGE "--- general remarks -0B78 8 8P?@     YLM8  Y0 L8Lj8ERROR - CAN'T LOAD DRIVER5} BPD8EHI V` 8 8C8 De i L8` L Y0 L8Lj8ERROR - CAN'T LOAD DRIVER4QTUTBLEXCDENDPDRIVRAMTOHRADCDETBTSSSIDEBNDCHARQ  @'9}@A(AA@ BX9 Ah @Q A(@@@@@A(@29} 33BASIC DISK DRIVE STATUS/CONFIGURATION PROGRAMBY GREG FARRIS 2/13/8411;@,;9}@,;@,;@,(6. 2##@@K:< +AR@FaB9}7tA'@A*(@(WHICH DRIVE (1-8)T(OR TO EXIT?a)@P"AU@pZa"@'9}!A+#A?-@@C"Q67<,.>:,U a6-?:C:,,d-! @I)!@V@p-(&@H9}n 6-A 6-F:,&@ x-6-$AV&@-Ai&@H66-Ah6BASE ADDRESS OF DEVICE CON9}TROL BLOCK Ap A@33*** SELECT SIMPLE OR CUSTOM CONFIGURATION ***N( (-(IMPLE OR USTOM CONF9}IGURATION?:)@N"AUAP#"@ A# Ap#"@g A# A!!@g9})@AP##*** WRITE TO OPTION TABLE ***!@I!SERIAL BUS I.D. %@ DRIVE NUMB9}ER/%@@y/WRITE TO OPTION TABLE*%@A(*STATUS AS OUTPUTC%@%%@9}CBUFFER ADDRESS HIGH AND LOW'%@@'TIMEOUT VALUE)%@@)NUMBER OF BYTES3%@ 9}3HIGH BYTE NUMBER OF BYTES_ A0A)#A=-@@A"O67<,.>:,S _69}-?:C:,,*** SIMPLE CONFIGURE ***V( (( WHICH DENSITY:!(1( 1. SINGLEA( 2. DOUBLEV(3. STATU9}S ONLY")@,%"AU6-@P% A`6!! @I)!@QA@#"@Q A@# @p9}J#"@I A # AT"AU6-@PY^##*** DOUBLE DENSITY ROUTINE **h-@@9}rc#67@<@,.>:@,C67@<@,.>:@,c67@<@,.>:,|6-@:7<,, 9}%  A##*** SINGLE DENSITY ROUTINE **-@@c#67@<@,.>:,C69}7@<@,.>:,c67@<@,.>:A(,6-@:7<,,%   $*** READ OPTION TA9}BLE ***+%@@x+READ OPTION TABLE)%@@d)STATUS AS INPUT'%@'BUFF ADD9}R LOW"%@"BUFF ADDR HIGH'%@@'TIMEOUT VALUE)%@@)NUMBER OF BYTES0#9}-@@",67<,.>:,0 .6-?:C:,,.EXECUTE OPTION TABLE COMMAND&NF:%@,"A8D(DRIVE 9}&@H DOES NOT RESPOND!N @p0NF:%@,"A9D(DRIVE &@H NOT CONFIGURABLE!N @p:$9}=?*** CUSTOM CONFIGURE ***DQ(}TYPE IN DESIRED VALUE?(OR TO LEAVE UNCHANGEDQARN A9}X3( ((TRACKS=!(%3%@b A0l9(STEP RATE IN MSECS.'(+9%@9}v APL(SECTORS PER TRACK=&(*8%@L%@H(NUMBER OF SIDES?"(9}/)@;!@P>(H Ap%(&@H%%@&@I(DENSITY?Q()@(9}"@h3 DOUBLEG%@@Q A"AU( A/(SINGLE"%@/6.SINGLE9}T( BYTES/SECTOR="(&2 AUF%@T%@9AV%%@'AV9%9}@"(DRIVE PRESENT?"(B)@"@$(YES8%@ AUB A0"A9}U A0' (NO%@ '6.NO$*** PRINT RESULTS ***6-F:Ai,.6-F:%@9},.67@<@,.>:,.6-F:%@,.67@<@,.>:,%"6-@0% A %"@9}6-@ % A%"@6-@% A "@6-@*Z6-F:%@,.67@<9}@,.>:,: AVZ67@<@,.>:,4.6-F:%@,.67@<@,.>:,>%"6-@9}% APH6-@ReF:%@,"'6.SINGLE;%@[67@<@,.>:,e A9}p\D6.DOUBLE$%@@D67@<@,.>:@,fC)6-F:%@,$AV%F:%@,C67@9}<@,.>:,p36-F:%@ , ")6.NO3 A z 6.YES((DRIVE=(TRACKS=( ST9}EP RATE=(SECTORS/TRACK=(NUMBER OF SIDES=(DENSITY=( BYTES/SECTOR=(DRIVE PRESENT=9}$104,76,89,228104,76,116,228)@( A D:S19(  hLt@'8ihԅhhR   S0 d S0΀`ԩ`&n;76o;C&&D=}&E&+ 5B&&&© 1 V-L*B&˜ ' h4&0& 1&& *L*& & 1 ,& & =}1 , , *`RUNTIME ERROR AT LINE &&Lk*+ +L&` '& &L&PROGRAM STOPPED&&=}Ńł ȱ`iL'HH **La/ k* r. 1 {+ - . - 1 - ' 1 {+ - 'hhL=}-ʥ`HHhh`8L'u`Huh`=} Lk*L' Lk*L' ( - ( - ' k* -Lh* ( - ' + ( - ' {+ '=} k* ' {+ 1 + - h*Lk* ( ' ' + ( - ' {+ ' k* ' {+ 1 + - !( - h*Lh* ' ** -L=}a/` ( k* -L- ( r. - {+ ' - ' +L' ( ' + ' - {+ 'L'C&D&=}E& ) 1 1,E&eC&iD&`E&8LF& - -E&`ʔȱȱȱ **Șe=}惠 惨06%*16&* L*HHhh```Lh*ʱ=}`p B V8+* &)L&l Lw TO BOOT FOR DOS TO RERUN *ȱL=}k*&&8c5d58凅刐SJj)ee`ффiiL+8L+ =}LF&uuuLk*8` +Lk*iLk*豂Hȱh`p +Lk*+H+ BHI=}+ [4h`8` +Lu, +#` +0 +0Lu, +0` +0L,L},`޵=}` `Ȕ`ʔ惥u`+ BHIDEH [4hLh*L+ލ1>}-+2- +- 0-0 0-Lk* -Lk*` 3-H -h 0 0-`L+8 0ƅ`66&L;-HH` B VhH)K>}h)0 IJD-EB [4hLk*S:+Lk*TUVLh* -`++L+ L+ʱȱȱ`ȵȵLk*L>}k* - - -ʥ - - - -LK3 - - r. r. **uȱuȱu P* ** -0 ,,LB3 ȱ>}Lk* @,LT.ʵ`eeLF&HHhh`ؐHH **La/ k*HH r. r.>}6 {+i i .i i -hh - - 'hh -`HH **% k*HH 1L. ** ->} LF& r.6 {+ - {+` ** -ޠ - 1 {+Lf/  h*Lk*H+ B Vh` ҵ  h*Lh*H+BH>}I [4+h+L1 0+KJB@D0EH+ [4h h*Lk* k* -@0Ɔ򩛙@0` -H`>}B [4h`w0w0L1Lk*Lk* +`H h*hL10HH eHHƆeiH -lꦆ>} 1Օ`0  L,`8`21(1-12- ,@ 1021L121@021`1 k* -1 1`+> }6-1L1801LF& + 1 r. 1 1 {++ 1 {+Ɔʭ1 +`ʕ`66`HHH> }66666uuuhhhLk* +愵 ' + 'I 1 T280> }/66&&&`uuu` T2 a2Ј a2 h* +`@\32@2 .22222 LF> }&ȥΖ2i22\3`L*J32 J3`LF&2@82ƅJ3 ȱ222` -3L2J3L> }2H\3 2h`1+ %  88L]3 h* h*` h* h*`  h* h*>}` ]3$' ]3"0 ]30 3Lu, 3Lu, 3Lu,L1L1d4 1 - .c4d4g4g4`H+? ++HIc4De4>}d4Ef4B [4Hg4h` VLF&g4` 3e4 1f4g4g4 1Lh4 3g4LF&e4f4, g4g4e4 1f4>}8ee4f4g4 11L81  'Lk*hhLk* 4L2 4L*d42&&ȱ0 W5L5 W5c5d5&>}& L25&&`i`C&&D&E&` *ȱ&&%8e慱HȱhױE&>}iC&iD&Lk*+ BH Vh 1LP*+&BH [4hN 1 P*L 1MLP*+%BNLMH [4hLh*)v***>}G*P*o*11{++2+u,M,_,,,,@,%,4,,**++++,,,-,V-----..-/W/y/2231c0x0{00y)///0//333333Q0&='9>}(_(( )")O)n44h4045005B3e5s5&55 6 1d7n7x777808J8d8~8889-9N9r9999"9>},96:@1:JW:Tb:^:h:r:|: ;<;n;O `7@D@@>} INDUS GT RPM TESTER! COPYRIGHT 1984 VERVAN Software OPTION: boot disk  SELECT: next t>}est  drive number? K:7c764f7c70 f7f7 8f7>} average rpm: " READING DRIVE NOWMi7f7Ji79l7o7r7hu7`>}7 Ax7l7o7u7r7x7  `7u7WA`7`7FC`7.C"`7Du7 u7 92  2>}  29~79$9%2"ĠӠ "u7 :Tu7h 1:>}Tu71 u7O W:TϮˮq:{7e:$" 9$9%>}:i7wJ:n"`7D9$9%e:%9$9%"  " >} "  " i7 9$9%n&`&n;76o;C&&D<]@@`yyW "  " i7 9$9%n&`&n;76o;C&&D@ @@`yyP "  " i7 9$9%n&`&n;76o;C&&DD @LBC vA) C@ vD vALB@1 @AC @` i? i?C @5 @, O$ @NJ!}F @F?C @ ҩC vA?C?C`ɛ` @ `)i0DD vA @CD@C Ap򠭩DLrA Ap䠻DJ"}}#C$C  !ʩD_DY BL"A B B1C2C B Ap Ap Bp @AC EHH @C %BP @Chh-EhJ#}h vA`DEHI B? V`S@C  BɊ8` TBPɋ #C B` TB`/C-J$}C.C Bp'/Cm-C-C/Cm.C.CP.C0C/C 0C` B`Ӎ@C  ii`X%C&CJ%}'C (C   B`@  X   B` Y,B``SIE2C,C`LEJ&}8C,C `H Ch C CLCJJJJ) ii0 E`JEcEEg!bIg!Indus GT Synchromesh Engager.CopyJ'}right (C)(P) 1984, Indus Systems.VID: 01.02\01.01\01.01\01.21\01.21.-------------------------------------Please follow coJ(}mmand with "ON" toactivate synchromesh or "OFF" todeactivate synchromesh. "OFF" hasbeen assumed for now.----------------J)}---------------------Synchromesh deactivated.D?: Communications error.No response.Not Indus GT.Newer GT - needs nJ*}ewer sync'mesh.Old GT - servicing required.GT - engaged. (RV??.??/SV??.??)GT - failed sync'mesh test.SJ+}>C*[s#r*[s#r!{~4(*[s#r*[s#r>C7[~*|{( Go|g$>N "|C~x(!{5>AJ,}>C7!"*xy2x˹!{~#(##~#fo͵{F >Nî~Nw|O|P,|R|S{W5|!|#|͚~#:`@O:xJ-} G:xW!@yw#͟ :x/w#:xw#:$x?w>C!@yu~- ] ͚~#Vj~*~ͮ~*~E(5L i H *"x@yVE(i *"x@y J.}>C! >Eͮ~͚~#!@y !Eyw#w Hp#q>C!@y u~͚~ !@yE~c ͦ~#:Ey(<2x2x͟ >Cͮ~>N..:x>J/}(>2}!x~ w2x͟ ͚~:xo&}~#fo"*x#2x2x͟ ́!"xw 2 x=!@yw#ͷ>2&x 2xD(G@x !&x5 ͹ &J0} !x:}! x(44 ͸} >C>E`~}}     w x?=2'x2 x!@yͷ{**x~2`>J1}2&x*"x͘(+ (!&x5 ' u#t#! !'x5(#~0! x44:}0O ] ͚~?~c ͦ~xi *"x~q#~yJ2}D Hi !@y i *"xD xZL ͮ~~ͮ~#ͮ~>A :x2xF >A/W xKWD! ~~J3}! ~~~W~ɂ{g>x~ x{N !",xy2x˹!{~#(##~#foͷ{>Nð~Ny|O|P.|R|S{W7|!|#|͜~`5 :`@J4}O:x G:xW!Byw# :x/w#:xw#:&x?w>C!Byw~o< š ͜~`͕l~,~Ͱ~,~E(5͉ ͦ H *$xBy͕E(ͦ *J5}$xBy >C! >EͰ~͜~`!>By !Gyw#ʹ Hp#q>C!By w~͜~ !ByG~  ͨ~`:Gy(<2x2x >CͰ~>N.J6}.:x>(>2}!x~ w2x ͜~:xo&}~#fo",x`2x2x ;!" xʹ 2"x=!Byw#>2(xD 2xD(G@x !(J7}x5 & !x:}!"x(44D ͺ} >C>Eb~}}66     ʹ x?=2)x2"x!By͸*J8},x~2`>2(x*$x(h 5 (!(x5  u#t#! !)x5(#~0!"x44:}0Î< š ͜~A~  ͨ~÷ͦ *$x~q#J9}~ý Hͦ !By ͦ *$x́ xZ͞ Ͱ~~Ͱ~#Ͱ~>A# :x2x>A/W xKWD! J:}~~! ~~~W~Ʉ{g@x~ x{  @AC @` i? i?C @5 @, O$ @NH+REM This file will automaticallyREM load SYNCROMESH and bootREM the MENUGTSYNC ONMENUC @5 @, O$ @NLZXi \Wȩ\ȭ[ȩ ^`ee`L+X`8Ƹȥ`ȱiR=}`Ȧ````8`ƶ`l8嶅`ȱ` fX` fXȥ`R>}`EE`%%`8(` YƵ` YƵ` >X Y0Ƶ` Y0Ƶ` YƵ` Y0Ƶ`ŶŵR?}(` >X*ff` >X&`8嵅嶅`II` YLXj )Xff`&&`$ 8R@}嵅嶅$8峅崅 @&&&8嵨嶐泅$p8峅崅LXZ8居岅$㥴`RA}`0LyZee`ee`ȱl fXLX fXLXq @BEDȱRB},R LZW LZA LZD LZJ V :[0LX B V`HHJJJJZhh(` B V :[`RC} z[ V :[LXBHI` z[ z[ V :[0L[LX [Ɉ`JJJJZ` [`RD}ȱ` V :[LXL[RE}L\ i\ i\ \ \RF} \ 0! :8`ȱ >#<-R+R0 :[L~]`L][\ȱ A%[! i? <>Ș8?0 L\ RG}[H hA [[0 :[L\[ \i6\i\\!\ 0 ! 6\06\莻\[L\ pZ Z OX Z OX X X XRH} X X XL-^ Z X OX iZ fX (YL^ Z OX iZ X Z X OX [ pZL] pZ` Z X OX ] pZ iZ Y OX RI}[ pZ` Z X OX0 iZ fX OY OX Z X OX9 iZ fX EY fX YL^ iZ` iZ` pZ pZ RJ}Z OX iZ X Z X OX iZ fX WYL_ Z X OX De pZ OX iZ fX )X X OX iZ fX WYL|_^ OX RK}Z X 9X fX )X OX OX iZ fX )X X XL_^ OX Z X 9X fX )X OX^ OX iZ 9X fX )X X X Z OX X X RL}X XL^ Z OX iZ X Z OX iZ X Z X OX Z X fX WYLb Z OX Z X OX Z X 9X fX )X X X Z OXRM} Z X OX iZ fX )X X Z X OX iZ fX )X X OX Z^ pZL` Z OX Z X OX iZ fX )X X OX iZ fX Y XL` RN}Z OX iZ X Z X OX iZ fX )X X OXS iZ fX (YLa Z OX iZ XLa Z X OX iZ fX )X X OXD iZ fX (YLRO}a Z OX X Z X OX iZ fX )X X OXD iZ fX (YLa Z OX X X X XLa Z X OX iZ fX )X XLRP}a Z OX iZ XLa Z OX iZ X Z X OX iZ fX (YLbg OX 3^ pZ^ OX Z X 9X fX )X X OX iZRQ} fX 8YLtb^ OX Z X 9X fX )X OX Z X X Z OX X X X XL_\ OXN iZ OXA iZ fX Y fX )X X OX RR}iZ fX (YLbh OX ] pZ9h OX ] pZ Z OX iZ X Z X OX iZ fX WYL;e Z OX^ OX RS}Z X 9X fX )X X X Z X OX iZ fX OYLzc Z X OX e pZ\ OXN iZ OXA iZ fX Y fX )X X OX iZ fX (YRT}L$eZh OX ] pZ0 iZ OX Z X fX )X OX [ pZ]h OX ] pZ Z X OX iZ fX WYLld Z X OXu iZ RU}Y fX (YLVdgh OX ] pZLid{h OX ] pZL$e Z X OX iZ fX (YLdh OX ] pZL$e Z X OXRV} fX (YLdh OX ] pZL$e Z X OX fX (YLeh OX ] pZL$e˅h OX 3^ pZ ZRW} OX X X X XLb  pZ` OX iZ fX )X OXN iZ X OX iZ fX )X OX@ iZ X Z X OX @g pZ` Z X OX RX}De pZ OX iZ fX )X X OX iZ fX WYLe煵h OX 3^ pZ^ OX iZ 9X fX )X OX^ OX Z X 9X RY}fX )X X X^ OX Z X 9X fX )X XL}f^ OX iZ 9X fX )X OX iZ XLf^ OX iZ 9X fX )X OXRZ} Y X OX iZ fX )X OXO iZ X OX iZ fX )X OX iZ X Z X OX @g pZ OX iZ fX )X X OX iZR[} fX WYL?gi OX 3^ pZ` OX iZ fX )X OX1 iZ X OX iZ fX )X OX Z X X OX iZ 9X fR\}X )X OX^ X OX iZ 9X fX )X OX iZ X OX iZ 9X fX )X OX iZ X Y`configure: bad parameter listR]}drive no. sides density------------------------------- can't configure non-existent drive 1 R^} single 1 double 2 doubleconfigure: fatal I/O errorconfigure: fatal I/O errorconfigure: fatR_}al I/O errorȩ\ȭ[ȩ ^`ee`L+X`8Ƹȥ`ȱiP