@L}6CD l0C)HCC WhL/h `CmCDiD`  R@P1  Y0@R !L` D  C D     )16CS S)  C)D1 p p 0 C9DI pCDL~CiCDiD` D  C D     )16CS S)  C)D1 p p }0 C9DI pCDL~CiCDiD` DD˙` d J)L !}D L(( LL()  L| L( S LH 0p n  } CY?  q  L L  ` )} `A! d߰")-݆ "  $G@LLL&0") $G% }H0 3S8`G ȱG ȱG   Gȭ Gȭ GG}GHiH8(()) G$H% `(0 })8` d)L ݆ & LGȘ ݆LL d  ! LL d)N>Q  HH) }  hyhyB q L> Lm JJ  Ln*` dB%' }8  H H` 1 { LL   !L     Hh SY?  q  1L }  !? S   q 1 L   Ll  Lg E`L   !L)  q 1L}) `L0AM݊L݉ ML  N݆LLLNLMLHG!@}1F GȱGLLEEȩÑEȑEEȑE Ed E7EȩE  q} L !,0,0SGɛ L 1 !L EHEh W G gLLSROTCES EERF } G) *Gȩ GȽG GȌd q q G`  8   0G  `D}CEDC0X:Ȣ Y ȱC* ? 0.. , 0%n ?A[ 0 : L`L  `, 0`Y}`piH n0)բY? 08`0 }  0$L GGȽG L `8L`L}8`  05G)݁,G)ȱGȱGHh0})Hh` B! 8`8iiiLE`}E8FEh( l0`ɃLL L8^~jj8jHi hEEEiEȱEiE` dTE} H8EEȱEEȩEh J E8   . m  i`LI!)E1FR}1LJ舩9GIH`LJJ`HGHh l`} S gL   8 rii `дCDCG W  }C  Lq` X٨`DOS SYS IIIIIIIIIIIIIIIC`0 ߩ0}}}  OS  !!"#DOSDOS SYS }}}}CDOS SYSb.2DOSXL SYSb`MENU COMbyCLRDSK COMb$CONFIG COMbKCOPY COMbDO COMb DUPDBL } COM 0`BDELV !B }`LVUQ   ]   TL ]L!T  ɐ    D`O }N 0 ^ 0 ^ ( 0 ^` LD:STARTUP.EXCD:DOSXL.SYSD:AUTORUN.SYSD:MENU.COM2ɛ!}  (`;LHLLLUL LD1:D:MENU.COMXCCRUD1:RUN@RUNDOS.SYSTORS3: -FV"}0: @E: K  u  lllll,hh Il W#}L<lllNhhLU  WL< E2:3 K ` HH` P0: @$}L* L< UV5 ]+8ʈ08a{)(` XHWH`L`2 L%}:1'2 ^  L<D2 13:L<MOC.REMCARENDSCRNOSRENPROUNPSAVLOARUNERADIRTYP) ;,08r&}vTz#$!  WL<   L 1: *24.3 L =Pɛ   L '}L<  0   ` L =ɛ NO L<  0' 23 45 g  2 0L< WL<  ^L<(} 06 g 2N3O Ʌ Ɉ L WL<` } 03 24253 )}4 L 2 H h``LȌ H2h)@ L<)L' @ J 0a)*} )ύ -L %  H &  L- h0,p  `L)  W)@LLCXE+}.JH hLH hL 0   L@ L B VCɀ` WL<0'1!23 8425,}3iL WL<01 0L 2ED`IH`P L `2 =Pɛ-} :QR 2P2 L` =8P0$  . Ԍ`P P`.}, `ɦɐɠi,ɰ)    LDRIVE NUMBER ERRORNO BUFFERSDISK FULLI/O ERRORSYSTEM ERROR/}INVALID FILE NAMEOSS DOS XL - ATARI version 2.20 Copyright (C) 1983 OSS,Inc.FILE PROTECTEDWRITE PROTECTEDDIRECT0}ORY FULLFILE NOT FOUNDADR RANGE ERRORBREAK KEY ABORTINVALID DEVICENO CARTRIDGE"1AP_o1}}}`o` abc `  ` խЍl O` խЍ` BLV a` a``8`խI`6`3}`ac@L}6CD l0C)HCC WhL/h `CmCDiD`  R4}@P1$  Y$0@R !L&`) 4 D` 4 ˤ 5}D` 4 5 D` 4 ߦ D` 4H"h H"h D` 4 ! D` 4 ǧ D`EլЌ`HЍh` j `6}խЍ`խЍ`;LHLL L L L D1:7} z8}Il j -L jL+ jL j Ѳ ` j ` z j`l z j`l z j`l9}" C D 121 6NV6CS S) 26CNDV  :} >0 C^Dn  LCiCDiD`  DD˙` J);}Lͩ AD L(( ̨ ΥLL(*) ̨ ߬ &LLܮ( s*Lh'0p+ (*), ߬<}* & &*C~? &  L*L ⮩, ` *=}) 7`-A! %߰")- " ?$--G@LLL&05") >}Φ$G%H50 /3S8`G.ȱG/ȱG0 .Gȭ/Gȭ0GG}GHiH8(()) ΦG$H% `?}#(0)8` )L٩ F /LG-Ș LL A ̨LL )N>Q ˫ @}HH) Υ / ӫ*hyhyB L> L JJ, + *L *` A}B%'8  HH`Q򨛨٩"LL8 2 AL ̨  >2 Ԫ *Hh x*~? & B} QL A? s  > Q L ߬* ̨ ΥL / LE`Lன 44 AL஬*) 4 C} QL*) `L殽0AML ML 7 NL讝LLޮNLMLHGD}!@#1F GȱGLڮLEEȩÑEȑEEȑE Ed E7EȩE E}+ + >L4 A,0,40S4G-4ɛ 4L4 Q AL EHEh w 4G 4LLSROTCEF}S EERF G*) *Gȩ GȽG GȌ4*d G4`3218132 04G4G}21`DCEDC0X:Ȣ ~1ȱC* ? *0.. ,10%n1?A[ 0 : *L㪮&`L  H}`,10`~`'+,p*,*i++H *0)բ~?ْ '+'*(,)08I}&`0   0$L/ & G GȽG 44L "`8LJ}`L8` " 05G) ,G)ȱGȱGHh0})Hh` B! 8`8+iiiLˬK}E`E8FEh(# l0`ɃL L L8^~jj8jHi hEEEiEȱEiE` L}dTE1H8EEȱEEȩEh 2J1E81 1 .1m21i`L𮩟I&%&!NEVFM}6R# 1>L#J>舩?>^GnH`L>#JJ?`HGHN}h# l` x L   8 rii `#дCDCGO} W  C  L` }ͮ`DOS SYS IIIIIIIIIIIIIII&C%&-`0& ߩ0P}} ɐ   ɜ jj D`^ ]  0 4 Q} 0 4^ ] ` LD:STARTUP.EXCD:AUTORUN.SYSD:MENU.COMɛ  (`a hb hc L+a R} -L E: ZK ` |a a c Hb H` Ķ0: @Lֵ* L +,[  {S}]8ʈ[ 08a{)(`[ .H-H`^ ] ] ^ Ld ` ":ٻ 4 `  LT}Dͼ 1:LMOC.REMCARENDSCRNOSRENPROUNPSAVLOARUNERADIRTYP) ]HL*۴PmӴ#$!  -L U} ʷ LV : *. LV_ ɛ _  LV L p 0 _ p ` L V}ɛ ҷ L  0' ҷ ҷ =  0L -L 4L`  06] = W} Ʌ Ɉ ` L -L` S 0 ͼ f ^L  H ȵh``` L ȌX} Hh)@ L)L @ ^J 0a) )ύ L % Y}H & L h0,p p `LĶ)  -)@L̶L綛CXE.JH ZhLH hL 0 fZ} ^ 󶭦L pL B VCɀ` -L'! ^8iLh -L f[}L^ fED`IH`ک ^Lf[ [ [ ` ɛ :  "\}`[ \ 80$  [ .\ [ [ Ԍ[ \ ` &`ɛ, `ɦɐɠi,ɰ)]} qr ^ f LDRIVE NUMBER ERRORNO BUFFERSDISK FULLI/O ERRORSYSTEM ERRORINVALID FILE NAMEOSS DOS XL - ATARI ^}version 2.20 Copyright (C) 1983 OSS,Inc.FILE PROTECTEDWRITE PROTECTEDDIRECTORY FULLFILE NOT FOUNDADR RANGE ERRO_}RBREAK KEY ABORTINVALID DEVICENO CARTRIDGEat&5EUdEDDIRECTORY FULLFILE NOT FOUNDADR RANGE ERRONPY iP`p S S T nRLP ` խЍJl OP խЍJ` BLV aP aP`8`խI 8fP ga}P dP ȱ ePP bP cP P LP PY`lbP?hPaP P`PHPH`FTCDEIPURSLGXQPQQCQ{QiQQQQQR'RWQWaWnWtWWWWWWWWWWWW X X$X;XMXQX[XeXuXyXXXXXXXXXXj}Y P !         }DOS k}XL MENU version 2.20 copyright (c) 1983 OSS,Inc.iles on Disk rotect Fileso Cartridge nprotect Filesopy Fl}iles ename Fileuplicate Disk ave Binaryrase Files oad Binarynitialize Disk o To Addresstended Commam}nd uit to DOS XLEnter your selection.Bad EntryHit RETURN for menu Are you sure? Insert MASTER disk and hit RETURNn}렛DIR File Spec: CARD:COPY.COMCOPY From File: To File: Single Drive? -S -QWVo}렛Double Density? D:DUPDBL.COMDUPDBLD:DUPDSK.COMDUPDSKERA Filespec to erase: Ġśp}렛D:INIT.COMINITPRO Filespec to protect: UNP Filespec to unprotect: q}堛REN Old Name: New Name: SAV File to Save: Starting Address: Ending Address: LOA File r}to Load: RUN Address: 䠛Command: HJ@B !$!! !BB !$s}!I! !$!$$BBB $I  IH@B$I"I$IH !IA$ Dt}H u}BLV䤄 Fj`}HL~H @LTIBIHI"Im@I#ImAIHI=II`L{IBIBILIBI@IAI`'H)LI v}$IAI@IBIPIIP 1IIIii)FI)GIGIIFIIGIFI 1IIIIȌI ͖I Iw}LJIII QIL]J8IIImIIIIIIIII xIIДILJmFIDImGIEI Ix} IIi=IiDI)Ii>IiEIDI 1I CI``IJ` BLV aP aP`8`խI 8fP gH@(@)@? D?UC?C?V? E`*@Cee`&``8Ƹȥ`ȱ z}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履` } DKL 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 BLF BKKKK P@ B g@ @A P@KK P@ } B g@ #A g@ @LEK P@ J BK P@ 7J BK P@ B g@ *@ @ P@ B g@ AKKL+E.K P@ } J BK P@ 7J B F GIK P@ J BK P@ 7J BK P@ B g@ *@ @ P@Y B g@ A P@K P@ } B g@ *@ @ P@y B g@ A g@ AL|FLFLE`K P@ B g@ *@ P@D B @K P@ B g@ *@ P@0 B P@KK } g@ *@ @K P@ B g@ *@ P@: B @K P@ B g@ *@ P@ B @ B P@ B P@ B P@ B P@K P@ J }B P@ B g@ @ALG_K P@ J B B A P@ J B` BKKKK P@ B g@ @ALGK P@K }K @KK @ g@ *@ P@ B @LG BKKKK @KK P@h g@ @AL7H HLHp }KKKK @KK P@Ѕ g@ .ALH HLIH` P@ B g@ *@ P@1 B @ P@ B g@ *@ P@K }K @ P@ B g@ *@ P@P B @ P@ B g@ *@ P@ B @ P@ B :@ g@ *@ P@K @ P@ } B :@ g@ *@ P@ B @ P@ B :@ g@ *@ P@ B @ P@ B :@ g@ *@ P@KK @ Y P@ B g@ * }@ @ P@ B g@ @ALIzK P@ J B B A P@ J B`Hƶh(`BHI`C`HȱILCJ }HIDȱEB V I0/D}HE}I涩DE``DȱE BI } ILJH V I`LJȱ)@`) ȱBDȱEȱKȱJ V I`Drive to clear? Ins }ert disk and hit returnClear another disk? clrdsk: can't format diskclrdsk: write errorLLƸȥ`ȱ dXi \Wȩ\ȭ[ȩ ^`ee`L+X`8Ƹȥ`ȱi}`Ȧ````8`ƶ`l8嶅`ȱ` fX` fXȥ`}`EE`%%`8(` YƵ` YƵ` >X Y0Ƶ` Y0Ƶ` YƵ` Y0Ƶ`Ŷŵ}(` >X*ff` >X&`8嵅嶅`II` YLXj )Xff`&&`$ 8}嵅嶅$8峅崅 @&&&8嵨嶐泅$p8峅崅LXZ8居岅$㥴`}`0LyZee`ee`ȱl fXLX fXLXq @BEDȱ},R LZW LZA LZD LZJ V :[0LX B V`HHJJJJZhh(` B V :[`} z[ V :[LXBHI` z[ z[ V :[0L[LX [Ɉ`JJJJZ` [`}ȱ` V :[LXL[}L\ i\ i\ \ \} \ 0! :8`ȱ >#<-R+R0 :[L~]`L][\ȱ A%[! i? <>Ș8?0 L\ }[H hA [[0 :[L\[ \i6\i\\!\ 0 ! 6\06\莻\[L\ pZ Z OX Z OX X X X} 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 }[ pZ` Z X OX0 iZ fX OY OX Z X OX9 iZ fX EY fX YL^ iZ` iZ` pZ pZ }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 }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 }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 OX} 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` }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 (YL}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 XL}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 iZ} 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 }iZ fX (YLbh OX ] pZ9h OX ] pZ Z OX iZ X Z X OX iZ fX WYL;e Z OX^ OX }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 (Y}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 }Y fX (YLVdgh OX ] pZLid{h OX ] pZL$e Z X OX iZ fX (YLdh OX ] pZL$e Z X OX} fX (YLdh OX ] pZL$e Z X OX fX (YLeh OX ] pZL$e˅h OX 3^ pZ Z} 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 }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 }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 OX} 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 iZ} fX WYL?gi OX 3^ pZ` OX iZ fX )X OX1 iZ X OX iZ fX )X OX Z X X OX iZ 9X f}X )X OX^ X OX iZ 9X fX )X OX iZ X OX iZ 9X fX )X OX iZ X Y`configure: bad parameter list}drive no. sides density------------------------------- can't configure non-existent drive 1 } single 1 double 2 doubleconfigure: fatal I/O errorconfigure: fatal I/O errorconfigure: fat}al I/O errorȩ\ȭ[ȩ ^`ee`L+X`8Ƹȥ`ȱi@(@)@? 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 IL#<-R+R1>}0 :UCLD`LsDUCfCȱ A%[! i? <>Ș8?0 L'D UCH hA ['C0 :RCL'DUC 1?}DiVCiCWC!D 0 ! C0CDUCL'D B P@ @ @ @ @ P@ B P@ @ @ @ @ @ @LKELE` B 1@}B P@ B @ B P@ @ @ @ @ @LE B P@ @ @ @ @LaE B @ B` B @ P@ h B`Ch P@N B P@A B1A} g@ A g@ *@ @ P@ B g@ A P@jj P@ B g@ A g@ AL>Fjj P@jj P@ Z B  B @ P@ h 1B}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@ @ @1C} @ @ @ P@: B g@ ALFLF B P@ @ @ @ @ P@ B P@ @ @ @ @ @ @ P@: B g@ AL:GLF B @ @1D}LG B @ @ P@? B g@ ALG B @ P@ B @ @ @LG B @ P@ B @ @ @ B P@ @ @ @ @ B P@ @ 1E}@ @ @ B P@ @ @ @ @L:G B @ P@ B @` B B P@ @ @ @ @ P@ B P@ @ @ @ @ @ @ P@: B g@ AL1F}HHLG B P@ B @ B P@ B @ B @ P@ B g@ @ALH B @ P@ B P@ @ @ @ @ g@ *@ P@ B @LhH B 1G}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 @1H} g@ *@ @ P@ B g@ A g@ ALI B @ P@ B P@ @ @ @ @ g@ *@ P@ B @ P@ B P@ @ @ @ @ g@ *@ @ @LH1I} B @ P@ B @ g@ *@ @ P@* B g@ AL>J B @ P@ B g@ @AL>J B @ P@ B P@ @ @ @ @ g@ *@ P@? 1J}B @LI B @ P@ B @ g@ *@ @ P@. B g@ A P@ B @ P@ B @ g@ *@ @ P@ B g@ A g@ ALJ B P@ @ @ 1K}@ @L>J B @ P@ B @ g@ *@ @LdL B P@ B @ B P@ @ @ @ @ B @ P@ B @ g@ *@ @ P@ B g@ A P@1L} B @ P@ B g@ @A g@ A P@ B @ P@ B @ g@ *@ @ P@* B g@ A g@ ALK B @ P@ B P@ @ @ @ @ g@ *@1M} P@ B @ P@ B P@ @ @ @ @ g@ *@ @ @LK B @ P@ B @ g@ *@ @ P@* B g@ ALdL B @ P@ B g@ @A1N}LdL B @ P@ B P@ @ @ @ @ g@ *@ P@? B @LL B @ P@ B @ g@ *@ P@ B @ B` B @ P@j[ P@ dM1O} 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 B1P} g@ A g@ *@ @LcMj[ P@ E BGO P@ E B` B B P@ @ @ @ @ P@ B P@ @ @ @ @ @ @ P@: B1Q} g@ ALMLiM B P@ B @ B @ P@ B @ g@ *@ @ P@ B g@ A P@ B @ P@ B g@ @A g@ AL[N B P@ 1R}@ @ @ @ P@ B @ P@ B P@ @ @ @ @ g@ *@ @ @LM B P@ B @ B P@ @ @ @ @ P@. B @ B @ P@ B 1S}@ g@ *@ @ P@ B g@ A P@ B @ P@ B g@ @A g@ AL!O B P@ @ @ @ @ P@ B @ P@ B P@ @ @ @ @ g@ *@ 1T}@ @LN B @ P@ B @ B` not copied copied B B P@ cB @ B @ P@ B g@ ALO B B` cB 1U}P@ B g@ ALOLO B @ B` B BCh P@Q B P@A B g@ A g@ *@ @LP|W P@ E Bj[ 1V}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@ 1W}ALP B A B` B P@ B @ B P@ B @ B @ P@ B g@ ALKW B @ P@ B g@ A P@jj g@1X} @LQjj P@jj P@ Z B  B P@j[ P@W P@ #g B @ P@ B g@ @ALQW P@ 1Y}E Bj[ P@ E BW P@ E B B A B` B @ P@ B g@ ALQ B @ P@ oX B B P@ B @1Z} P@ fY B @ P@ B g@ @ALeRW P@ E Bj[ P@ E BƅW P@ E B B P@ B @ P@ g B @1[}jjLR B @ P@ X B B @ P@ g BȅW P@ E B UOjj P@jj P@ Z B Ch P1\}@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@1]}j P@ B g@ *@ @ P@A B g@ A g@ @L!U B P@j P@腵W P@ #g B @ P@ B g@ 8AL!Uj1^} 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@ 1_}B @ P@y B g@ A g@ ALTjj P@ B g@ ALT B @ P@ g B B A B`L!Ujj P@ B g@ 1`}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@1a} 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@1b} @L$V B P@j P@X P@ #g B @ B @ P@ B g@ @ALVX P@ E Bj P@ E B'1c}X P@ E B B A B` B @ P@ B @ P@ Y B P@ B g@ @ALV)X P@ E Bj P@ E BI1d}X P@ E BjjL4W B @ P@ g BKX P@ E B UO B P@ @ @ @ @LP B @ P@ g B B @1e} P@ g B B B`Copy to ?Rsdcopy: can't open: sdcopy: read error on file Insert 'to' disk and hit re1f}turnR already exists OK to overwrite? WACan't open: sdcopy: write error on file Insert 'from' disk an1g}d hit return B @ P@jj P@jj P@ Qi B P@ B g@ @ALXZ P@ E B` B @ P@ B P@ i1q}b.DOS SYSb.2DOSXL SYSb`MENU COMbyCLRDSK COMb$CONFIG COMbKCOPY COMbDO COMb DUPDBL COMb DUPDSK COMbINIT COMbINITDBL COMb5RS232 COMbV6SDCOPY COMbSYSEQU ASMbBMEM LISbRS232FIXCOMbSMALL HLPbHELP POKHELP BAT Bjj P@ B g@ @ALYZ P@ E B B @ P@ B P@ i Bjj P@ B g@ @ALeY6Z1r} P@ E B` B B P@ P@jj g@ A P@ A g@ A @ B @ P@jj P@ B @ P@ h B B1s}` B @ P@jj P@ B @ P@ h B`sdcopy: fatal i/o errorsdcopy: fatal i/o errorsdcopy: fatal i/o error1t} P@ B g@ *@ P@N B @ P@ B g@ *@ P@@ B @ B @ P@ ;\ B]% P@ B :@ g@ *@ @` B @ P@ QZ1u} B P@ B g@ *@ @ P@ B g@ @AL[󅵩\ P@ E B]% P@ B :@ g@ *@ P@ B @ @ B @1v}Lx[]% P@ B :@ g@ *@ P@ B @L[]% P@ B :@ g@ *@ P@ A @ P@ B g@ *@ P@O B @1w} P@ B g@ *@ P@ B @ B @ P@ ;\ B P@ B g@ *@ @ P@ B g@ @AL:\ ] P@ E B` P@1x} B g@ *@ P@1 B @ P@ B g@ *@ P@ B @ @ P@ B :@ g@ *@ P@]% @ P@ B :@ g@ *@ P@1y} B @ P@ B :@ g@ *@ P@ B @ Y`sdcopy: fatal I/O errorsdcopy: fatal I/O error1]Zj B B B B @1z} P@ B g@ @A P@ B @ P@ B g@ #A g@ @L]xi P@ E B Bjj B @ P@ B :@ g@ *@ @ P@ B 1{}P@ E B B @ P@ B g@ AL"^ B @ P@ B :@ g@ *@ @ P@f B P@ E BLQ^ B @ P@ B :@ g@ *@ @ P@f 1|}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@ *@ 1}}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@ 1~}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@1} B P@ B g@ *@ @ P@A B g@ A g@ @L`i P@ E B B P@ B g@ *@ @ P@: B g@ AL?` Bj1}jLm` B P@ B g@ *@ @ P@ B g@ Ajjd B P@ B g@ *@ @ P@: B g@ AL` BjjL`d B P@1} B g@ *@ @ P@ B g@ Ajjjj P@jj g@ ALaÅi P@ E B酵i P@ E Bj P@ 1}E B UOjj P@ QZ BjjCh P@R B P@A B g@ A g@ *@ @ P@ B g@ A P@ g@ Bjj1} P@jj g@ Ajj B P@jх P@ B P@ c B @ P@ B A g@ AL#b!j P@ E B B @ 1}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 1}g@ *@ g@ B g@ *@jj B P@ B @ B @ P@ B @ g@ @ALUc2 B P@ B P@jх P@ B P@ B g@ *@ P1}@ B P@ @ @ @ @ g@ B g@ *@ P@ gF BLbjj P@jj P@ Z B ̠ B` B @ @Lc B @ @ P1}@? B g@ ALc B` B P@ @ @ @ @ @ P@* B g@ ALc B`Lc B` B B: B @ P@ B g@ *@ @ P1}@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@1}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@1}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 g1}@ A g@ ALe6 B @ P@ g B8 B @: B` B P@ B P@ B g@ *@ g@ *@ P@ B @2 B P@ B @< B @ P@41} B @ g@ *@ P@< B @ P@6 B P@ @ @ @ @ g@ *@ @ @ P@: B g@ ALhfLf B P@ B g@ *@ P@> B @ P@6 B @1} g@ *@ P@ E B8 B P@ @ @ @ @< B P@> B @ P@ B g@ *@ P@ B g@ *@ @Le6 B @ P@ g B B A: B`o1} @B` gEDȱ$R W A DJ V g0L@ B V1}`Hƶh(` B V0 g`BHI` gɈ`C`HȱILgHIDȱE1}B V g0/D}HE}I涩DE``DȱE BI ILohH V1} g`LUhȱ)@`HȱIH ȱDȱEB V g`HI`HȱIHȱDȱ1}E B V g`HI`&B V g0 N`LM`MLN%B V gL@usage: 1}sdcopy fn1 [fn2] [-fqr]**.***.*sdcopy: incompatible file specssdcopy: to and from drives not equalInsert disk(s) to b1}e copiedand hit return when readysdcopy: can't read directorysdcopy: no files to copyDrrȥ`ȱ0e1000 .PAGE "OSS SYSTEM EQUATES FOR ATARI"1010 ;1020 ; FILE = #DN:SYSEQU.ASM1030 ;1040 ;1050 ; I/O CONTROL BLOCK EQUATE5}S1060 ;1065 SAVEPC = * ; SAVE CURRENT ORG1067 ;1070 *= $0340 ;START OF SYSTEM IOCBS1075 IOCB1080 ;1090 ICHID *= *+1 5};DEVICE HANDLER IS (SET BY OS)1100 ICDNO *= *+1 ;DEVICE NUMBER (SET BY OS)1110 ICCOM *= *+1 ;I/O COMMAND1120 ICSTA *= *+1 5};I/O STATUS1130 ICBADR *= *+2 ;BUFFER ADDRESS1140 ICPUT *= *+2 ;DH PUT ROUTINE (ADR-1)1150 ICBLEN *= *+2 ;BUFFER LENGTH115}60 ICAUX1 *= *+1 ;AUX 11170 ICAUX2 *= *+1 ;AUX 21180 ICAUX3 *= *+1 ;AUX 31190 ICAUX4 *= *+1 ;AUX 41200 ICAUX5 *= *+1 ;AUX5} 51210 ICAUX6 *= *+1 ;AUX 61220 ;1230 IOCBLEN = *-IOCB ;LENGTH OF ONE IOCB1240 ;1250 ; IOCB COMMAND VALUE EQUATES1260 ;5}1270 COPN = 3 ;OPEN1280 CGBINR = 7 ;GET BINARY RECORD1290 CGTXTR = 5 ;GET TEXT RECORD1300 CPBINR = 11 ;PUT BINARY RECORD5}1310 CPTXTR = 9 ;PUT TEXT RECORD1320 CCLOSE = 12 ;CLOSE 1330 CSTAT = 13 ;GET STATUS1340 ;1350 ; DEVICE DEPENDENT COMMAND 5}EQUATES FOR FILE MANAGER1360 ;1370 CREN = 32 ;RENAME1380 CERA = 33 ;ERASE1390 CPRO = 35 ;PROTECT1400 CUNP = 36 ;UNPROTEC5}T1410 CPOINT = 37 ;POINT1420 CNOTE = 38 ;NOTE1430 ;1440 ; AUX1 VALUES REQD FOR OPEN1450 ;1460 OPIN = 4 ;OPEN INPUT14705} OPOUT = 8 ;OPEN OUTPUT1480 OPUPD = 12 ;OPEN UPDATE1490 OPAPND = 9 ;OPEN APPEND1500 OPDIR = 6 ;OPEN DIRECTORY1510 ;1520 5} .PAGE1530 ;1540 ; EXECUTE FLAG DEFINES1550 ;1560 EXCYES = $80 ; EXECUTE IN PROGRESS1570 EXCSCR = $40 ; ECHO EXCUTE I5}NPUT TO SCREEN1580 EXCNEW = $10 ; EXECUTE START UP MODE1590 EXCSUP = $20 ; COLD START EXEC FLAG1600 ;1610 ; MISC ADDRESS 5}EQUATES1620 ;1630 CPALOC = $0A ; POINTER TO CP/A1640 WARMST = $08 ; WAR, START (0=COLD)1650 MEMLO = $2E7 ; AVAIL MEM (LOW5}) PTR1660 MEMTOP = $2E5 ; AVAIL MEM (HIGH) PTR1670 APPMHI = $0E ; UPPER LIMIT OF APPLICATION MEMORY1680 INITADR = $2E2 ; A5}TARI LOAD/INIT ADR1690 GOADR = $2E0 ; ATARI LOAD/GO ADR1700 CARTLOC = $BFFA ; CARTRIDGE RUN LOCATION1710 CIO = $E456 ;CIO 5}ENTRY ADR1720 EOL = $9B ; END OF LINE CHAR1730 ;1740 ; CP/A FUNCTION AND VALUE DISPLACEMSNT1750 ; (INDIRECT THROUGH 5}CPALOC)1760 ; IE. (CPALOC),Y1770 ;1780 CPGNFN = 3 ; GET NEXT FILE NAME1790 CPDFDV = $07 ; DEFAULT DRIVE (3 BYTE5}S)1800 CPBUFP = $0A ; CMD BUFF NEXT CHAR POINTR (1 BYTE)1810 CPEXFL = $0B ; EXECUTE FLAG1820 CPEXFN = $0C ; EXECUTE FILE N5}AME (16 BYTES)1830 CPEXNP = $1C ; EXECUTE NOTE/POINT VALUES1840 CPFNAM = $21 ; FILENAME BUFFER1850 RUNLOC = $3D ; CP/A LOA5}D/RUN ADR1860 CPCMDB = $3F ; COMMAND BUFFER (60 BYTES)1870 CPCMDGO = -6 ; CP SUBROUTINE VECTOR1880 ;1890 *= SAVEPC ; RES5}10 .OPT NOLIST0980 .OPT NOEJECT0990 .TITLE "A sample device driver for Atari's OS"1000 .PAGE "--- general remarks -9}--"1010 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1020 ;1030 ; The "M:" driver --1040 ; Using memory as a device1050 ;1060 ; In9}cludes installation program1070 ;1080 ; Written by Bill Wilkinson1090 ; for January, 1982, COMPUTE!1100 ;1110 ;;;;;;;;9};;;;;;;;;;;;;;;;;;;;;;;1120 ;1130 ; EQUATES INTO ATARI'S OS, ETC.1140 ;1150 ICAUX1 = $34A ; The AUX1 byte of IOCB1160 ;9}1170 OPOUT = 8 ; Mode 8 is OPEN for OUTPUT1180 ;1190 MEMLO = $2E7 ; pointer to bottom of free RAM1200 MEMTOP = $2E5 ; poin9}ter to top of free RAM1210 ;1220 FR1 = $E0 ; Fltg Pt Register 1, scratch1230 ;1240 STATUSOK = 1 ; I/O was good1250 STATU9}SEOF = $88 ; reached an end-of-file1260 ;1270 HATABS = $31A1280 ;1290 HIGH = $100 ; divisor for high byte1300 LOW = $FF 9}; mask for low byte1310 ;1320 .PAGE "The installation routine"1330 ;====== CHANGE NEXT LINE TO SUIT YOUR MEMORY ======139}40 *= $30001350 ; This first routine is simply1360 ; used to connect the driver1370 ; to Atari's handler address1380 ; 9}table.1390 ;1400 LOADANDGO1410 LDX #0 ; We begin at start of table1420 SEARCHING1430 LDA HATABS,X ; Check device name9}1440 BEQ EMPTYFOUND ; Found last one1450 CMP #'M' ; Already have M: ?1460 BEQ MINSTALLED ; Yes, don't reinstall1470 IN9}X1480 INX1490 INX ; Point to next entry1500 BNE SEARCHING ; and keep looking1510 RTS ; Huh? Impossible!!!1520 ;15309} ; We found the current end of the1540 ; table...so extend it.1550 ;1560 EMPTYFOUND1570 LDA #'M' ; Our device name, "M:"9}1580 STA HATABS,X ; is first byte of entry1590 LDA #MDRIVER&LOW1600 STA HATABS+1,X ; LSB of driver addr1610 LDA #MDRI9}VER/HIGH1620 STA HATABS+2,X ; and MSB of addr1630 LDA #01640 STA HATABS+3,X ; A new end for the table1650 ;1660 ; now9} change LOMEM so BASIC won't1670 ; overwrite us.1680 ;1690 MINSTALLED1700 LDA #DRIVERTOP&LOW1710 STA MEMLO ; LSB of to9}p addr1720 LDA #DRIVERTOP/HIGH1730 STA MEMLO+1 ; and MSB therof1740 ;1750 ; and that's all we have to do!1760 ;1770 9}RTS1780 ;1790 ;1800 ;;;;;;;;;;;;;;;;;;;;;;;;;;;1810 ;1820 ; This entry point is provided1830 ; so that BASIC can reconn9}ect1840 ; the driver via a USR(RECONNECT)1850 ;1860 RECONNECT1870 PLA1880 BEQ LOADANDGO ; No parameters, I hope1890 9}TAY1900 PULLTHEM1910 PLA1920 PLA ; get rid of a parameter1930 DEY1940 BNE PULLTHEM ; and pull another1950 BEQ LOAD9}ANDGO ; go reconnect1960 ;1970 .PAGE "The driver itself"1980 ;1990 ; Recall that all drivers must2000 ; be connected to9} OS through2010 ; a driver routines address table.2020 ;2030 MDRIVER2040 .WORD MOPEN-1 ; The addresses must2050 .WORD 9}MCLOSE-1 ; ...be given in this2060 .WORD MGETB-1 ; ...order and must2070 .WORD MPUTB-1 ; ...be one (1) less2080 .WORD M9}STATUS-1 ; ...than the actual2090 .WORD MXIO-1 ; ...address2100 JMP MINIT ; This is for safety only2110 ;2120 ; For man9}y drivers, some of these2130 ; routines are not needed, and2140 ; can effectively be null routines2150 ;2160 ; A null rou9}tine should return2170 ; a one (1) in the Y-register2180 ; to indicate success.2190 ;2200 MXIO2210 MINIT2220 LDY #1 ; 9}success2230 RTS2240 ;2250 ; If a routine is omitted because2260 ; it is illegal (reading from a2270 ; printer, etc.), s9}imply pointing2280 ; to an RTS is adequate, since2290 ; Atari OS preloads Y with a2300 ; 'Function Not Implemented' error9}2310 ; return code.2320 ;2330 .PAGE "The driver function routines"2340 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2350 ;2360 ; Now9} we begin the code for the2370 ; routines that do the actual2380 ; work2390 ;2400 MOPEN2410 LDA ICAUX1,X ; Check type o9}f open2420 AND #OPOUT ; Open for output?2430 BEQ OPENFORREAD ; No...assume for input2440 LDA MEMTOP2450 STA MSTART ; 9}We start storing2460 LDY MEMTOP+1 ; ...the bytes2470 DEY ; ...one page below2480 STY MSTART+1 ; the supposed top of mem9}2490 ;2500 ; now we join up with mode 4 open2510 ;2520 OPENFORREAD2530 LDA MSTART ; simply move the2540 STA MCURRENT 9}; ...start pointer2550 LDA MSTART+1 ; ...to the current2560 STA MCURRENT+1 ; ...pointer, both bytes2570 ;2580 LDY #STA9}TUSOK2590 RTS ; we don't acknowledge failure2600 ;2610 ;2620 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2630 ;2640 ; the routine 9}for CLOSE of M:2650 ;2660 MCLOSE2670 LDA ICAUX1,X ; check mode of open2680 AND #OPOUT ; was for output?2690 BEQ MCLRE9}AD ; no...close input 'file'2700 ;2710 LDA MCURRENT ; we establish our2720 STA MSTOP ; ...limit so that2730 LDA MCURRE9}NT+1 ; ...next use can't2740 STA MSTOP+1 ; ...go too far2750 ;2760 MCLREAD2770 LDY #STATUSOK2780 RTS ; and guaranteed9} to be ok2790 ;2800 ;2810 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2820 ;2830 ; This routine puts one byte2840 ; to the memory for9} later2850 ; retrieval.2860 ;2870 MPUTB2880 PHA ; save the byte to be PUT2890 JSR MOVECURRENT ; get ptr to zero page29}900 PLA ; the byte again2910 LDY #02920 STA (FR1),Y ; put the byte, indirectly2930 JSR DECCURRENT ; point to nxt byte9}2940 RTS ; that's all2950 ;2960 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2970 ;2980 ; routine to get a byte put2990 ; in memory bef9}ore.3000 ;3010 MGETB3020 JSR MSTATUS ; any more bytes?3030 BCS MGETRTS ; no...error3040 LDY #03050 LDA (FR1),Y ; ye9}s...get a byte3060 JSR DECCURRENT ; and point to next byte3070 MGETRTS3080 RTS3090 ;3100 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9};;3110 ;3120 ; check the status of the driver3130 ;3140 ; this routine is only valid3150 ; when READing the 'file'...319}60 ; "M:" never gets errors when3170 ; writing.3180 ;3190 MSTATUS3200 JSR MOVECURRENT ; current ptr to zero page3210 C9}MP MSTOP ; any more bytes to get?3220 BNE MSTOK ; yes3230 CPY MSTOP+1 ; double chk3240 BNE MSTOK ; yes, again3250 LDY9} #STATUSEOF ; oops...3260 SEC ; no more bytes3270 RTS3280 ;3290 MSTOK3300 LDY #STATUSOK ; all is okay3310 CLC ; fla9}g for MGETB3320 RTS3330 .PAGE "Miscellaneous subroutines"3340 ;3350 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3360 ;3370 ; final9}ly, we have a couple of3380 ; short and simple routines to3390 ; manipulate MCURRENT, the ptr3400 ; to the currently acces9}sed byte3410 ;3420 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3430 ;3440 ; MOVECURRENT simply moves3450 ; MCURRENT to the floating9}3460 ; point register, FR1, in3470 ; zero page. FR1 is always3480 ; safe to use except in the3490 ; middle of an expr9}ession.3500 ;3510 MOVECURRENT3520 LDA MCURRENT3530 STA FR1 ; notice that we use3540 LDY MCURRENT+1 ; both the A and39}550 STY FR1+1 ; Y registers...this3560 RTS ; is for MSTATUS use3570 ;3580 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3590 ;3600 ;9} DECCURRENT simply does a two3610 ; byte decrement of the MCURRENT3620 ; pointer and returns with the3630 ; Y register 9}indicating OK status.3640 ; NOTE that the A register is3650 ; left undisturbed.3660 ;3670 DECCURRENT3680 LDY MCURRENT 9}; check LSB's value3690 BNE DECLOW ; if non-zero, MSB is ok3700 DEC MCURRENT+1 ; if zero, need to bump MSB3710 DECLOW379}20 DEC MCURRENT ; now bump the LSB3730 LDY #STATUSOK ; as promised3740 RTS3750 .PAGE "RAM usage and clean up"3760 ;39}770 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3780 ;3790 ; END OF CODE3800 ;3810 ;3820 ; Now we define our storage3830 ; locations.9}3840 ;3850 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3860 ;3870 ;3880 ; MCURRENT holds the pointer to3890 ; the next byte to be PUT9} or GET3900 MCURRENT .WORD 03910 ;3920 ; MSTOP is set by CLOSE to point3930 ; to the last byte PUT, so GET3940 ; won't t9}ry to go past the end3950 ; of data.3960 MSTOP .WORD 03970 ;3980 ; MSTART is derived from MEMTOP3990 ; and points to the9} first byte4000 ; stored. The bytes are stored4010 ; in descending addresses until4020 ; MSTOP is set by CLOSE.4030 MSTA9}RT .WORD 04040 ;4050 ; DRIVERTOP becomes the new4060 ; contents of MEMLO4070 DRIVERTOP = *+$FF&$FF004080 ; (sets to next9} page boundary)4090 ;4100 ;4110 ; The following is how you make4120 ; a LOAD-AND-GO file under4130 ; Atari's DOS 24140 9};4150 *= $2E04160 .WORD LOADANDGO4170 ;4180 ;4190 .END driver for Atari's OS"1000 .PAGE "--- general remarks -8B78 8 8P?@     YLM8  Y0 L8Lj8ERROR - CAN'T LOAD DRIVER=} BPD8EHI V` 8 8C8 De i L8` L Y0 L8Lj8ERROR - CAN'T LOAD DRIVER<QSMALL HELP FILE FOR OSS DOS XLREM - REMARK (AS BASIC)CAR - RUN CARTRIDGEEND - ??SCR - ??NOS - ??REA}TORE PC1900 ;CPCMDB = $3F ; COMMAND BUFFER (60 BYTES)1870 CPCMDGO = -6 ; CP SUBROUTINE VECTOR1880 ;1890 *= SAVEPC ; RES4N - RENAME OLD NEWPRO - PROTECT/LOCK FILESUNP - UNPROTECT/UNLOCK FILESSAV - SAVE PROG FROM TO RUN INITLOAA} - LOAD PROGRUN - RUN ADDRESSERA - ERASE FILESDIR - DIRECTORYTYP - TYPE FILES - ??NOS - ??RE@f Small help file for OSS DOS XL  REM - REMARK (AS BASIC) CAR - RUN CARTRIDE}GE END - ?? SCR - ?? NOS - ?? REN - RENAME OLD NEW PRO - PROTECT/LOCK FILES UNP - UNPROTECT/UNLOCK FILES SAV - E}SAVE PROG FROM TO RUN INIT LOA - LOAD PROG RUN - RUN ADDRESS ERA - ERASE FILES DIR - DIRECTORY TYP - TYPE FILES E} XL  REM - REMARK (AS BASIC) CAR - RUN CARTRIDD$TYPE HELP.POKopiedand hit return when readycopy: can't read directorycopy: no files to copyD7m8m`ȱH@C'"#-?u' D E%%2@P @P%%2@A} -@6?P<2Ab@X2@Ac@t2@A(A}@2@@@@  +(}%%0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0%%0,0,0,0,0,0,0,0,0A},0,0,0,0,0,0,0%%0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0%%0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0%%0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0A}--0,128,0,0,0,128,0,0,0,128,0,0,0,128,0,0))0,128,0,0,0,0,0,0,0,176,0,0,0,0,0,0&--0,128,0,0,0,0,0,0,0,176,0,0,0,0,2A}56,0,00))0,128,0,0,0,0,0,0,0,176,0,0,0,0,0,0,,0,128,0,0,0,0,0,0,0,176,31,0,31,0,31,01131,128,53,0,40,0,31,0,53,176A},40,0,31,0,53,01140,128,31,0,53,0,40,0,31,176,53,0,40,0,33,0000,128,53,0,40,0,33,0,53,176,40,0,33,0,53,01140,128,A}33,0,53,0,40,0,33,176,53,0,40,0,31,0000,128,53,0,40,0,31,0,53,176,40,0,31,0,53,0$440,176,31,0,31,0,31,0,31,116,33,0,35A},0,256,0,37.**40,128,0,0,0,0,0,0,0,176,0,0,0,0,0,08,,0,128,0,0,0,0,0,0,0,176,31,0,31,0,31,0B1131,128,53,0,40,0,31,0,B}53,176,40,0,31,0,53,0L1140,128,31,0,53,0,40,0,31,176,53,0,40,0,33,0V000,128,53,0,40,0,33,0,53,176,40,0,33,0,53,0`114B}0,128,33,0,53,0,40,0,33,176,53,0,40,0,31,0j000,128,53,0,40,0,31,0,53,176,40,0,31,0,53,0t440,176,31,0,31,0,31,0,31,116,3B}3,0,35,0,256,0,37~**40,128,0,0,0,0,0,0,0,176,0,0,0,0,0,0,,0,128,0,0,0,0,0,0,0,176,53,0,47,0,45,01142,176,45,0,47,0B},53,0,47,116,45,0,42,0,45,01147,176,53,0,47,0,45,0,42,116,45,0,47,0,53,01140,128,42,0,47,0,53,0,40,176,42,0,47,0,53,0B}1140,128,42,0,47,0,53,0,60,176,64,0,72,0,81,02285,176,108,0,85,0,72,0,60,116,53,0,47,0,42,01147,176,53,0,57,0,53,B}0,47,116,53,0,57,0,60,0**64,128,0,0,0,0,0,0,0,176,0,0,0,0,0,0,,0,128,0,0,0,0,0,0,0,176,53,0,47,0,45,0..42,176,0,0B},0,0,53,0,47,116,45,0,42,0,0,0000,176,53,0,47,0,45,0,42,116,45,0,47,0,53,0..40,128,0,0,0,0,53,0,47,176,42,0,40,0,0,0B}000,128,53,0,47,0,42,0,40,176,42,0,47,0,53,0 ..42,176,0,0,0,0,53,0,47,116,45,0,42,0,0,0440,176,47,0,53,0,47,0,53,11B}6,60,0,64,0,256,0,72..81,128,0,0,0,176,0,0,0,128,0,0,0,176,0,0(++0,128,0,0,0,0,0,0,0,0,108,0,81,0,72,0-  қ2B }2268,128,72,0,81,0,108,0,81,176,72,0,68,0,72,0<2281,128,108,0,81,0,72,0,68,176,72,0,81,0,50,0F000,158,53,0,60,0,53,0,5B }0,128,53,0,60,0,53,0P..50,158,53,0,0,0,60,0,0,128,72,0,0,0,85,0Z110,176,108,0,85,0,72,0,60,116,53,0,50,0,53,0d1150,1B }76,53,0,50,0,53,0,50,116,53,0,45,0,47,0n..50,158,0,0,0,158,0,0,0,158,0,0,0,158,0,0x**53,176,0,0,0,0,0,0,0,116,0,0,0,0,0B },0..40,128,0,0,0,0,42,140,0,0,0,0,45,146,0,0..0,0,0,0,47,152,0,0,50,158,0,0,53,176,0,0Ӡқ..57,182,0,0,B }0,182,0,0,0,182,0,0,0,182,0,0000,182,0,0,0,182,0,0,0,182,50,0,50,158,50,02250,176,53,0,60,0,72,0,85,116,108,0,85,0,72B},01160,176,53,0,50,0,53,0,50,116,53,0,45,0,47,0..50,158,0,0,0,158,0,0,0,158,0,0,0,158,0,0..53,176,0,0,0,0,0,0,0,1B}16,108,0,81,0,72,02268,128,72,0,81,0,108,0,81,176,72,0,68,0,72,02281,128,108,0,81,0,72,0,68,176,72,0,81,0,50,0000B},158,53,0,60,0,53,0,50,128,53,0,60,0,53,0..50,158,53,0,0,0,60,0,0,128,72,0,0,0,85,0110,176,108,0,85,0,72,0,60,116,53,B}0,50,0,53,01150,176,53,0,50,0,53,0,50,116,53,0,45,0,47,0..50,158,0,0,0,158,0,0,0,158,0,0,0,158,0,0**53,176,0,0,0,B}0,0,0,0,116,0,0,0,0,0,0"..40,128,0,0,0,0,42,140,0,0,0,0,45,146,0,0,..0,0,0,0,47,152,0,0,50,158,0,0,53,176,0,06..57,1B}82,0,0,0,182,0,0,0,182,0,0,0,182,0,0@++0,176,0,0,0,140,0,0,0,116,0,0,0,0,0,0J3353,128,108,0,81,0,72,0,64,176,72,0,81,0,B}108,0T..85,176,72,0,0,0,50,0,0,116,53,0,0,0,81,0^1181,128,81,0,85,0,81,0,85,128,81,0,72,0,68,0h5564,128,64,0,68,0,64B},0,68,128,64,0,60,0,256,0,57r1153,128,53,0,57,0,53,0,57,128,53,0,47,0,42,0|,,81,128,0,0,0,0,0,0,162,128,0,0,0,0,0,0 B} -1,0D:MUSICAHLHHHTZ00@@@ @S@@A(@@S @ A@