–€€@LÌ}Ë¬ð5 _­¬¦$Ž¦%Ž l0¬±$)ªÈ$ð±$HÈ±$ Uh¨ŠL"©À
¨`©€e$…$æ%`­…$­…%`Œ
©R @©P €¦!àÐ( L¹(©Œ©1©	©€
	­ YäÎ	ð¦I˜` ­ d LÇd
M
	¼*€@ ÿ­…$­…%­
…C¢©C ‘$¥$)¥%1© U©dÊß¥$9¥%:¬	¢ˆ˜!0 SèàÐñ¥$ç¥%è©¨™Èú¨¹ðÉDðÈÈÈÀÐð©D™©Ë™©™` ­ }½J‚)ðLr ì½‚Éd
M
	¼*€@ ÿ­…$­…%­
…C¢©C ‘$¥$)¥%1© U©dÊß¥$9¥%:¬	¢ˆ˜!0 SèàÐñ¥$ç¥%è©¨™Èú¨¹ð}ÉDðÈÈÈÀÐð©D™©Ë™©™` ­ }½J‚)ðLr ì½‚ÉðÉðJÉðÉ	ð ¥¨(°(°	  p	LÇ ¥ª(°ù¬¹ƒ)ð  ‘ JŽ½}‹L=	 ¥¬(°	 Á¬L	­0q A­­ ‘¬¢
© ™ÈÊù¦I©Bƒ J¬™½‹™©C™©™™¢½;É?ð™Èèàð D W	 ¶}©€… ‚ÐLLÇ ¥©©…­

©‡` W	¬¹ƒ)„¹‹¹ŒLê½A…! ­¬
¹Éß°©…"½‚)ð-¼‡˜Ý† p°" }ä	 °±$þ‡­‘G©@……LÇL ¥ˆ½…08`©©Q¥")ð<Ð2Q­0 â°- ±G‘$È˜Ý†õ UL#
 ;
 p8¥(ý†…(°Æ)¥(0Ê¥)ÐÆNQ` 	}±$‘GÈ˜Ý†õ‡LU ­½‚)ðL­½‡Ý† ë	 âðLà	¨±GÈ˜‡¼‹Ð¼ŒÐ
Ý†©L¯LÇ ­½‚)ðW>…Z ‡ ½H½H½‚)ð½ƒH 
}p	hƒ âû½‹½ŽŒ Ž¬hy™hy™½ƒ™ D ”©‚LÂ>…ó ËLñ
½JJ   !
LA© *ˆÐù` ­½BÉþðFÉ}ýð7É'°8é 
¨¹MH¹NH`8¤Zßâ\LdÃÃŠòÃJóó½JÐ©!¢ð©"ªŽ¥!¢ÉðG¥F¥E @­F (À‹Ð®ð©!ÍÐÑL¯}ÀÐù ©ÿÑEÐÈÑEðì ¥­¢­É!ð¢© ‘EˆÐû½^è½^‘EÈÀÐõ 
©‘E©ÿÈÌÐö 7©‘EÈ©‘E® d‘E Š©/‘EÈ©‘E ”©¨™Èú© DÎ}ø .LÂ } ‰¢
½;FÊ÷ d  ‚¢Ž¬½;É?ÐÎÝFÐ7½FÉ?ð™ÈèàÐá(Ð . ‚Ð®½¼ Z D­ð ü®LÂLè d Á ‚}Ð . D üí ”LÂ ‘¬ ©€™ p	  âø ˜‘E`© ,© d¬¹)ß™ D üêLÂ¬¹) ðÑ ¥§½…0B½MÝŠÐ½LÝ‰ð½…}ð Ë©…½MŒ½L‹ ê°
½NÝ†ð ¥¦‡LÇ ¥«½‡N½‰L½ŠMLÇ ì[ T Š±E qEHÈ±E ‹qEªh¨Š¢Ž 0 Š‘GÈ¹Ô‘GÈÀÐö} HLÇ¬Là	±GîÉ›ÐéÀ°©€LÂ ü°¥ äLÇFREE SECTORS® © ‘G½) ð©*‘GÈ© ‘GÈ½‘GèÈÀõ© ‘GÈŒ®¥*j½jˆ©>‘G} ©<‘G¼½¢d R¢
 R¢ R¢ ˜ð¢+ ©›‘G Œ`Ž¢ÿ…D„Cè8¥Cí¨¥Déà	ÐêŠ	0¬‘Gî¥D¤C` ±$ˆ0dÉ:Ð÷ÈÈ©¢±$É.ÐàÐÈ©Ðî},É*Ð	©?ì°%$É?ðÉ0É:)ßÉAÉ[©àð© ÐÈìð¹;èÐ³­;É ð¦I` ¥¥©ÿ©pî­iî©ÍðN A©¨¹}ð#0!)CÉð)ÐÏ¢½;É?ðÙÐÁèÈàÐî­­­­¹0œ8¦I` } ì°`L¤½…0
	
… Ë0"Lâ J½‡ ‘G½Œ }‘GÈ½‹}‘G Ë©‚­L¯þÐþ Õ©‹Œ‡©}†`8½Š¼‰L½‹‰½ŒŠ`½…ðLp½‹ŒÐ8` Õ Ì04 }±G)üÝÐ,±G)ŒÈ±G‹È±G}H½„Ðh0©})Hh†©‡` ½½BÉ!ð ¥¤8`8­ii¨(¢©ÐZ ±EÐ6¤!©JÀðŒ©S Sä©d¬ê©Š¤!™ Ì ê ‘E ¨ û` T©} ‘E ê8 ¨ û8LÌ¥F¦E hŒ
 ŒŽ r9ÀƒðL½ ¥£­)©
©¥Eiª¥Fi(L¶ d±E™î©‘EÈÀÐò`¬ d¹î‘EÈÀÐö`½‰H)}¨hŠð/¹×H½‰ ^ŠjˆÐùi
¨hE‘EÀd  Š±Ei‘EÈ±Ei‘E` 	ÈÌ°W±Eðö¢ÿè
ü½×QE‘EŠH¦I˜8é
‹©À‹*°úŒh‹‹Àd  Š½ƒ)¿	}ƒ8±Eé‘EÈ±Eé‘E ˜‘E½Œ` ¥¢†IºèèŽ
¦!ŽÊ½)…E½1…F½ð5¦I¼ˆÐ¹!	ÈÀö ¥¡©€™!È˜ˆˆ˜JH©jm9…Ghm:…H` ¥ ¼ˆð	ˆ©}ˆ™!`¦GŽ¦HŽLl¼‰½Š Z dLÇ©© ŒÈ©8 l­I€0î¬
ÌÐä`Œ©ÐÌ _©}† ;
¥$Í¥%í° pLl`¢¬¹}ÝšÐÈèàÐò¦I(`DOS     SYSh…Ch…D ±C®
š¦IC¨­`­0í¦I ©Ðä „B®ß0¦äðüŒÔx

…D­Ó)ãDÓ`}Need DOS2.5,type Y ÒÅÔÕÒ}Î›d÷›"€€dd€ÿþýüû\ÌÌìDOS     SYSCOPY3TO2COM}B€}}CDOS     SYS}­
…C­C*É( ‹Ð> Ë¥C8jJ…3©j…2­…C­…D (	±C‘2ˆù0±2‘Cˆù© Þ ÀŒÔ „BXÈ`
N
©1?©ñ¢ l©¢LlD:RAMDISK}.COM›©LÍu ÐL¥1©©í¢ ÍL	¥;ÐLê˜HL³ê³êºŽ
 T `ºŽ
 ” `1©ž©Ÿ…
©…­œêÉÐ
©© àêêê¥Ð Ø`TŽU “©À } ¦L’­ð­žð ? . “ tä©`…ðöÿàá©€Ÿ©Gà©á¢©B©J Œ©Ð~¢©ôD©E©H©I©B Vä0d©ÿÍôÐVÍõ!}ÐQ¢© D©E©H©I VäFÀˆÐ9 ’,ž0 ©,ŸŸ0 s0hhL¸­Ð
©¢ ¦L©ª` ’©Ð÷˜H ’h¨Ðî¢­ DH­¡E¨hÈÐ¨ÈÐ­"}¢ ­£¡©¢D©E©L­¢8í H­£í¡I­¡É4ê°­£Éê°­0©€ŸŸþHÐþI,Ÿ0­0Î 9© .¢©Gâ©ã VäLO#},ž0 L÷ÉÉ4*IJ`lâlàD1:AUTORUN.SYS›NEED MEM.SAV TO LOAD THIS FILE.›D1:MEM.SAV› ’©J y08©B©|D©E©ŠH©I$} Vä0 ’0 `©B©;D©ELŒ`­?<0LVä `@¢ŽžŽŸÊ† v s©…ð? F0Îž05©:¢ ¦©[¢ ¦©B©D©E©H©I%} Vä­ÉYÐ8©…¢ ©B Vä¥œ¥©@…©…©/¢D©E ŒžˆŒ ¤`E:›D1:DUP.SYS›ERROR-SAVING USER MEMORY ON DISK›TYPE Y TO &}STILL RUN DOS› œ©B©;D©E©J Œ œ(`©ð 9¢ Vä©ðî ­âÇ­ãÈ©âªÃ© ï©ðî¾­àÇ­áÈ©àªÃ© ï ’­ž-'}”ðî”LLu ÄèŽÅÆ¢©ÃD©E©H©ILVä 9© .lú¿ 9© .l­œ…­…`­žÐ` s©…ð$©B Œ©B©ŠH©(}I©|D©E Vä©BLVä nä¢©B©,D©E©JLVä©¢B Vä¢ ©BLVäDŽE¢ŽIÊ©	Bêê­ðåLÿÿÿàáu • ó	}ÿÿ3E:›}DISK OPERATING SYSTEM II VERSION  ²®µ COPYRIGHT 1984 ATARI CORP.››A. DISK DIRECTORY  I. FORMAT DISK›B. RUN CARTRIDG*}E   J. DUPLICATE DISK›C. COPY FILE       K. BINARY SAVE›D. DELETE FILE(S)  L. BINARY LOAD›E. RENAME FILE     M. RUN AT ADDRES+}S›F. LOCK FILE       N. CREATE MEM.SAV›G. UNLOCK FILE     O. DUPLICATE FILE›H. WRITE DOS FILES P. FORMAT SINGLE›L˜ !N'Æ,}#"&¾)æ)9(Ð&©*)/h)¬'ú'-Ê&¢ÿØ†èŽŸ©…R©'…S¥	€…Ò v­¾ÉLð/©©Ë¢  ÍL¼ }Insert DOS 2.0s, type Y ÒÅÔÕÒÎ›©ô©x…© …©-}D©E©fH©I ž1¢ÿšèŽ#©q¢! ¦©@¾ y0É›ðÏ8éA0,Íô'
¨±È…±… ±ªˆ± °1 ¶1¥i…æl©d¢! °1L!NO SUCH ITEM›SELECT.} ITEM OR ÒÅÔÕÒÎ FOR MENU›õ! Ê0 ¿.®½zÉ:Ð©*{}©.|èèèŽ©›{Ž¢  Ø1 ã0 ¿0©¢J©BŽþ é1­8íÉðL¨%®½|ÉDÐóL¶/}%DIRECTORY--SEARCH SPEC,LIST FILE?›[# Ê0 ¿0 ¸&­|ÉDð©3¢" °1L!NOT A DISK FILE›¢­žÉNÐ©!B é1L!©E¢# °1©¢ ©!B©ñD©0}E©Dñ©:ó­}É:Ð©1ò¢©B©J©|D©E é1©ôD©E©B©¢©H©I é1­õÉ Ðhî­Í0ß¢ ¹ôÉ ð	ôèÈà0ð©.1}ôè 
¹ôôÈèÀ0ôŽ©?ôè©›ô©ñ¢ °1 y0ÉYÐ›­®©›ô¢  é1 ;#LŠ" ;#L!¢©BLé1TYPE "Y" TO DELETE...›DELETE FILE SPEC2}›COPY--FROM, TO?›OPTION NOT ALLOWED›736 FREE SECTORS››  COPYING---D1:DIREC›K.COM›l# Ê0­­|ÉDÐ¢ Ò.ðL/%©€#©3}#©‘#¢©J©B©|D©E é1©B©H©I©’D©#E é1­’#É0É:°©B é1L!­#Í‘#ðî‘#ÐÁî#©B é1 ¹œ#Ùc$Ðˆõ0‰SY4}S 1­}É:ð¨Œ³#¢ ½’#É ð™²#Èèà
Ðð½’#É ð©.™²#È½’#É ð™²#ÈèàÐð©›™²#©¦¢# °1,#P¢©²D©#ELJ- <.¢©B©J©²D©#EŽþ é5}1¢  Ø1­H­H ã0hh®½|ÉDðL¨% 1½}É:ð¨Ì³#Ð ’L¾%¢ Œ³#©²D©#ELÞ%¢  Ø1 ã0® è.® Ò.Ð0©O¢% °1L!WILD CARDS NOT A6}LLOWED IN DESTINATION› ¿0 <.­|ÉKð<ÉCð8ÉEÐ¢ŽþL¨%ÉSð(¢©B©JŽþ é1®½|ÉKðÉEÐ©ÿLõ%©|¢# °1 ’L!ÉCðï®žàAÐÉDÐä©	7}Ð©¢ J©BŽÿ é1©K©®þ¬ÿB©™B¥D™D¥E™E®þ­H­I VäŒø®ÿ¬þ¹HH¹IIHð é1­øÌÉˆðLñ1®þð©B8} Vä®ÿð©B Vä®ÿÐ©I¢' ¦,#Lì#L!œ& Ê0 Õ0 ¿0 ¸&© ¢B é1L!RENAME - GIVE OLD NAME, NEW› ­}É:ð)¨ŒöLS)'©ýÐ'©þ9}' 70 ¹2i0H'K' ¿0©0¢' °1 y0ÉYÐ­' ! 'L!þ¢B©JD©'E˜JLé1WHICH DRIVE TO FORMAT?›TYPE "Y" TO FORMAT DISK 1›D1:›«'¬ý¿:}©ªý¿Íý¿Ð©Uý¿Íý¿ÐŒý¿©Ÿ¢' °1L!­ü¿Ðñª­ý¿ðëÍý¿ÐæèÐó v©¢ä _ \ä©¢ä b \äLNO CARTRIDGE›È' 70 2 ¿0…†­ÉðP vL RUN FROM;} WHAT ADDRESS?›TYPE "Y" TO CREATE MEM.SAV›ß' y0ÉYÐ s0©¢( °1 ’L! FõLð1MEM.SAV FILE ALREADY EXISTS›Õ( 70 ¹2 ¿0ö	0+)<}') S)©¢) °1 y0ÉYÐr©ò¢( °1©¢B©*D©)E©J é1¢©B é1¢½.{ÊÐ÷­+)}Ž¢ Ø1©Ã©Ä©Å©ùó/©ø/©3ÆH©uà© =}áÎ¾L›/L!DRIVE TO WRITE DOS FILES TO?›WRITING NEW DOS FILES›TYPE "Y" TO WRITE DOS TO DRIVE 1.›D1:DOS.SYS›ERROR - NOT VERSIO>}N 2 FORMAT.› t*­ôÉð
©5¢) °1L!`©) Ê0©®žžàNÐÎž ¿0 ©àðàð˜Lñ1©›¢) °1 ’L!BAD LOAD FILE›LOAD 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 AREA›CAUTION: A "Y" INVALIDATES MEM.SAV.›©…F©ô…E­ö…!©ù +Lð1©
­þþ©©©
`*© 70 ¹2ö ¹2ÿA} ¿0­öÍÿð.¢*©Ù °1 y0Î0)INSERT BOTH DISKS, TYPE RETURN›©^¢, °1 y0©©3­å8é€­æé­Í­í°
©N¢, °1L! Ý,©B}žC, t*­
ù­ú­û­ü­þýLx+©ž,0
©^¢, °1 y0 , ¡,0,ž0 Ç,LŽ+ Í,­I€0î ¾,­ÍðV­Í­í°Ç­ž0C}«Îž,0
©}¢, °1 y0­C,Ð¨îC,­ÿ	0K' !­ "­
H­H©ý 'hh
Lx+­ž¸­ÿ…!©ô…E©…F 5Lð1L! ¹D,…¹I,…¢¡H¹ùh™ùˆD}å­­`
þNOT ENOUGH ROOM›INSERT SOURCE DISK,TYPE RETURN›INSERT DESTINATION DISK,TYPE RETURN›þÎÐî®½ôE}þ©­þ`î
Ðî`­ö­ÿ8 rLð1`¥ð©-¢* °1©P¢* °1 y0ÉYÐ©…ž`hhL!NAME OF FILE TO MOVE?›- Ê0 ¿0­|ÉDðL¾% <.¢F},©^ °1 70 ¿0 Ò.Ð©@Lä#¢ è.¢©B©J é1©
¢¥D¥E­H­I©B Vä
ÀˆðLð1Î
¢,©} °1 70,õL.¢  	­Ð îG}˜J©B©| ,#P©² #D˜E é1 ¢ ©ÙHÐÙIð©B¥D¥E¹HH¹II é1©B é1­
Ð¢,©^ °1 70,õ0La-¢©B Vä,#PH}¢,©^ °1 70 ¿0Lì#L!¥ð©-¢* °1©P¢* °1 y0ÉYÐj©…ž©…©3…­å8é­æé3©©}m©m­Í
Ðå­Í°Ý­Ð©I}}Í`­8é}­é`©ô…©…©ú©`½|èÉ*ðÉ?ð	É›ðÉ,Ðìè`è½|É:ðèè ¹-)Ý|ÐÈèÀÐò©¢/ °1L!`DESTINATION CANT BE DOJ}S.SYS›0© ¾ Ê0­žH®©›{ 2ÃŽÄà4°Î” 2ÅŽÆ8íÃó/ŠíÄ°L!ø/À›ð) 2âŽããðÎ À›ð 2 ¿0àŽááðÎ¾©žK}hÉAÐÎž¢©B,ž0©Ð©	J é1©B©ÁD©E©H©I,ž©H©ÃD©E é1¢©ùH©IþHÐþI­ÃD­ÄEL“SAVE-GIVE L}FILE,START,END(,INIT,RUN)›©›¢O¤Êú©õ S0 ¶1`©B©¤D©E©PH©I¢ VäÀ€ÐÎõ`©õ S0­H÷ ¶1­õ ’L!­÷ÉM}0
©ª¢0 °1L~0­¤`PLEASE TYPE 1 LETTER›,õ0`hhL! 70¢ Ø1Lã0©¬®L<1¬®©½¤É,ð;É›ð7½¥É,ð"É›ð©:Ý¦ð1Ý¥ÐÎ½¤ÉN}A"©D™|ÈÎÎÝ¤ðíÎ©D™|È©:™|È©ž½¤™|èÈÉ›ð,É,ð(É/ð+É.Ð©ÎÞ©¢1 °1Îõ½¤èÉ,ðÉ›ÐôŽŒ`½¤žè½¤™{èéNAMEO} TOO LONG›©B¢ VäÀ€ÐL!` ¦L¶1©ªI©
H©1E©ÎDLž1œ©|mD©iE` Vä˜0`˜8éd¢/è8é
úi:2Ž2¢2© °1 ’LP}!ERROR-   138›©©®½¤îÉ›ð+É,ð'  20* ..ˆöÎÓ©r¢2 °1Îõ`¨­®`©‚¢2ÐëTOO MANY DIGITS›INVALID HEXAQ}DECIMAL PARAMETER›8é00É
08éÉ
0É0©ÿÉ`,õ0'®½¤èÉDðø8é0ð0É	H½¤èÉ,ðÉ›ÐôŽh`Îõ©ð¢2L°1NEED D1 THRU D8›àáuR} ECIMAL PARAMETER›8é00É
08éÉ
0É0©ÿÉ`,õ0'®½¤èÉDðø8é0ð0É	H½¤èÉ,ðÉ›ÐôŽh`Îõ©ð¢2L°1NEED D1 THRU D8›àáuFMSORG	= $700
FMSZPG	= $43
IOCBORG	= $340
LMASK	= 3
DCBORG	= $300
DHADR	= $E453
EOL	= $9B
DEVTAB	= $31A
ZICB	= $20
LMADR	= $2T}E7
DUPINIT	= $1540
STAK	= $102
OSBTM	= $DF
DSKTIM	= $246
TIMOUT	= 15
	ORG IOCBORG
IOCB
ICHID:	ORG *+1
ICDNO:	ORG *+1
ICCOM:	OU}RG *+1
ICSTA:	ORG *+1
ICBAL:	ORG *+1
ICBAH:	ORG *+1
ICPUT:	ORG *+2
ICBLL:	ORG *+1
ICBLH:	ORG *+1
ICAUX1:	ORG *+1
ICAUX2:	ORG V}*+1
ICAUX3:	ORG *+1
ICAUX4:	ORG *+1
ICAUX5:	ORG *+1
ICAUX6:	ORG *+1
ICLEN	= *-IOCB
	ORG *+ICLEN*7
ICOIN	= $01
ICOOUT	= $02
ICW}IO	= $03
ICGBR	= $04
ICGRT	= $05
ICGBC	= $06
ICGTC	= $07
ICPBR	= $08
ICPTR	= $09
ICPBC	= $0A
ICPTC	= $0B
ICCLOSE	= $0C
ICSTATX}	= $0D
ICDDC	= $0E
ICMAX	= $0E
ICFREE	= $0F
ICSOK	= $01
ICSTR	= $02
ICSEOF	= $03
ICSBRK	= $80
ICSDNR	= $81
ICSNED	= $82
ICSDEY}R	= $83
ICSIVC	= $84
ICSNOP	= $85
ICSIVN	= $86
ICSWPC	= $87
ICDNOZ	= ICDNO-IOCB+ZICB
ICBLLZ	= ICBLL-IOCB+ZICB
ICBLHZ	= ICBLH-Z}IOCB+ZICB
ICBALZ	= ICBAL-IOCB+ZICB
ICBAHZ	= ICBAH-IOCB+ZICB
ICCOMZ	= ICCOM-IOCB+ZICB
ICPUTZ	= ICPUT-IOCB+ZICB
	ORG DCBORG
DCB[}
DCBSBI:	ORG *+1
DCBDRV:	ORG *+1
DCBCMD:	ORG *+1
DCBSTA:	ORG *+1
DCBBUF:	ORG *+2
DCBTO:	ORG *+2
DCBCNT:	ORG *+2
DCBSEC:	ORG *\}+2
DCBCRS	= 'R
DCBCWS	= 'W
DCBCST	= 'S
DCBCFD	= '!
DCBSOK	= $01
DCBDNR	= $81
DCBCNR	= $82
DCBDER	= $83
DCBIVC	= $84
DCBWPR	= ]}$87
	ORG FMSZPG
ZBUFP:	ORG *+2
ZDRVA:	ORG *+2
ZSBA:	ORG *+2
ERRNO:	ORG *+1
	ORG FMSORG
BFLG:	.BYTE 0
BRCNT:	.BYTE 3
BLDADR:	.^}WORD FMSORG
BINTADR:	.WORD DUPINIT
BCONT:	JMP XBCONT
SABYTE:	.BYTE 3
DRVBYT:	.BYTE 01
SAFBFW:	.BYTE 0
SASA:	.BYTE 01
	.BYTE $_}15
DFSFLG:	.BYTE 0
DFLINK:	.BYTE 0,0
BLDISP:	.BYTE 125
DFLADR:	.BYTE $CB
	.BYTE 07
XBCONT
	LDY DFSFLG
	BEQ BFAIL
	LDA DFLADR
`}	STA ZBUFP
	STA DCBBUF
	LDA DFLADR+1
	STA ZBUFP+1
	STA DCBBUF+1
	LDA DFLINK+1
	LDY DFLINK
XBC1:	CLC
	LDX DFSFLG
	JSR BSIO
	BMa}I BFAIL
	LDY BLDISP
	LDA (ZBUFP),Y
	AND #LMASK
	PHA
	INY
	ORA (ZBUFP),Y
	BEQ BGOOD
	LDA (ZBUFP),Y
	TAY
	JSR INCBA
	PLA
	JMP Xb}BC1
BFAIL:	LDA #$C0
	BNE XBRTN
BGOOD:	PLA
XBRTN:	ASL A
	TAY
	RTS
INCBA:	CLC
	LDA ZBUFP
	ADC BLDISP
	STA DCBBUF
	STA ZBUFP
	LDc}A ZBUFP+1
	ADC #$00
	STA DCBBUF+1
	STA ZBUFP+1
	RTS
BSIO	= *
	STA DCBSEC+1
	STY DCBSEC
BSIOR:	LDA #DCBCRS
	LDY #$40
	BCC DSIOd}1
	LDA #DCBCWS
	LDY #$80
DSIO1
	STA DCBCMD
	STY DCBSTA
	LDA #$31
	LDY #TIMOUT
DSIO2
	STA DCBSBI
	STY DCBTO
	LDA #$03
	STA RETe}RY
	LDA #$00
	LDY #$80
	DEX
	BEQ DSIO3
	LDA #$01
	LDY #$00
	STA DCBCNT+1
DSIO3:	STY DCBCNT
DSIO4
	JSR $E459
	BPL DSIO5
	DEC Rf}ETRY
	BMI DSIO5
	LDX #$40
	LDA #DCBCRS
	CMP DCBCMD
	BEQ STRTYP
	LDA #DCBCFD
	CMP DCBCMD
	BEQ STRTYP
	LDX #$80
STRTYP:	STX DCBg}STA
	JMP DSIO4
DSIO5:	LDX CURFCB
	LDA DCBSTA
	RTS
DFMSDH
	.WORD DFMOPN-1
	.WORD DFMCLS-1
	.WORD DFMGET-1
	.WORD DFMPUT-1
	.WOh}RD DFMSTA-1
	.WORD DFMDDC-1
	ORG   $07E0
DINIT	= *
	LDA SASA
	STA ZBUFP
	LDA SASA+1
	STA ZBUFP+1
	LDA DRVBYT
	STA TEMP1
	LDX i}#$07
DIA:	STX TEMP2
	ASL TEMP1
	BCS DIHAVE
	LDA #$00
	STA DRVTBL,X
	STA DBUFAL,X
	STA DBUFAH,X
	BEQ DIDDEC
DIHAVE
	LDA #$00
	j}STA (ZBUFP),Y
	INX
	STX DCBDRV
	LDA #DCBCST
	STA DCBCMD
	JSR DHADR
	LDY #$02
	LDA $02EA
	AND #$20
	BNE DI256
	DEY
DI256:	TYA
k}	LDX TEMP2
	STA DRVTBL,X
	LDA ZBUFP
	STA DBUFAL,X
	LDA ZBUFP+1
	STA DBUFAH,X
	JSR DINCBP
	DEY
	BEQ DIDDEC
	JSR DINCBP
DIDDEC:l}	DEX
	BPL DIA
	LDY SABYTE
	LDX #$00
DINXTS:	LDA #$00
	DEY
	BPL DISETS
	TYA   
DISETS:	STA SECTBL,X
	TYA
	BMI DISNI
	LDA ZBUFPm}
	STA SABUFL,X
	LDA ZBUFP+1
	STA SABUFH,X
	JSR DINCBP
DISNI:	INX
	CPX #$10
	BNE DINXTS
	LDA ZBUFP
	STA LMADR
	LDA ZBUFP+1
	STn}A LMADR+1
	JMP CLRFCB
DINCBP:	CLC
	LDA ZBUFP
	ADC #$80
	STA ZBUFP
	LDA ZBUFP+1
	ADC #$00
	STA ZBUFP+1
	RTS
CLRFCB	= *
	LDY #$o}7F
	LDA #$00
CFCBX:	STA FCB,Y
	DEY
	BNE CFCBX
	LDY #$00
ADI1:	LDA Y
	BEQ ADI2
	CMP #'D
	BEQ ADI2
	INY
	INY
	INY
	CPY #$1E
	BNp}E ADI1
	BRK
ADI2:	LDA #'D
	STA DEVTAB,Y
	LDA #DFMSDH&255
	STA DEVTAB+1,Y
	LDA #DFMSDH/256
	STA DEVTAB+2,Y
	RTS
DFMOPN:	JSR SEq}TUP
	JSR FNDCODE
	LDA ICAUX1,X
	STA FCBOTC,X
	AND #OPDIR
	BEQ OPN1
	JMP LISTDIR
OPN1:	JSR SFDIR
	PHP
	LDA FCBOTC,X
	CMP #OPINr}
	BEQ DFOIN
	CMP #OPOUT
	BEQ DFOOUT
	CMP #OPIN+OPOUT
	BEQ DFOUPD
	CMP #OPOUT+OPAPND
	BEQ DFOAPN
	JMP ERDVDC
DFOIN	= *
	PLP
	Bs}CS OPNER1
	BCC DFOUI
DFOUPD	= *
	PLP
	BCS OPNER1
	JSR TSTLOCK
DFOUI	= *
	JSR DFRDSU
	JMP GREAT
OPNER1:	JMP ERFNF
DFOAPN	= *
	t}PLP
	BCS OPNER1
	LDY CDIRD
	LDA FILDIR+DFDFL1,Y
	AND #DFDNLD
	BEQ APOER
	JSR TSTLOCK
	JSR OPVTOC
	JSR GETSECTOR
	STA FCBSSN+1u},X
	LDA FCBLSN,X
	STA FCBSSN,X
	JMP DHFOX2
APOER:	JMP ERAPO
DFOOUT	= *
	PLP
	BCS DFOX1
	JSR XDEL0
	LDY CDIRD
	JMP OPN1A
DFOX1v}	= *
	LDA DHOLES
	BMI OPNER2
	STA CDIRS
	JSR RDDIR
	LDA DHOLED
	STA CDIRD
	LDA DHFNUM
	STA SFNUM
	JSR OPVTOC
	LDY CDIRD
	LDX w}#$0A
	LDA #$20
OPN1B:	STA FILDIR+DFDPFN,Y
	INY
	DEX
	BPL OPN1B
	LDX CURFCB
OPN1A	= *
	JSR GETSECTOR
	LDY CDIRD
	STA FILDIR+DFx}DSSN+1,Y
	LDA FCBLSN,X
	STA FILDIR+DFDSSN,Y
	LDA #DFDINU+DFDOUT+DFDNLD
	STA FILDIR+DFDFL1,Y
	LDA #$00
	STA FILDIR+DFDCNT+1,Y
y}	STA FILDIR+DFDCNT,Y
	LDX #$00
OPN2:	LDA FNAME,X
	CMP #'?
	BEQ OPN2A
	STA FILDIR+DFDPFN,Y
OPN2A	= *
	INY
	INX
	CPX #$0B
	BCC z}OPN2
	LDX CURFCB
	JSR WRTDIR
DHFOX2	= *
	JSR SETFCB
	JSR WRTN6
OPN3:	LDA #FCBFAS
	STA FCBFLG,X
	JSR TSTDOS
	BNE DHFOX3
	JMP W{}RTDOS
DHFOX3	= *
	JMP GREAT
OPNER2:	JSR ERDFULL
SETFCB	= *
	LDA #$00
	STA FCBFLG,X
OPNF1:	LDA SFNUM
	ASL A
	ASL A
	STA FCBFNO|},X
	LDA #$00
	STA FCBDLN,X
	STA FCBCNT,X
	STA FCBCNT+1,X
	RTS
DFRDSU:	JSR SETFCB
	LDY CDIRD
	LDA DFDFL1+FILDIR,Y
	AND #DFDNLD}}
	STA FCBSLT,X
	LDA FILD+DFDSSN,Y
	STA FCBLSN,X
	LDA FILDIR+DFDSSN+1,Y
	STA FCBLSN+1,X
	JSR RDNSO
	RTS
DFMPUT
	STA SVDBYT
	LD~}A ICDNO,X
	STA ICDNO-IOCB+ZICB
	JSR SETUP
	LDY ENTSTK
	LDA STAK,Y
	CMP #OSBTM
	BCS FRMCIO
	LDA #$00
	STA ICCOMZ
FRMCIO:	LDA F}CBOTC,X
	AND #OPOUT
	BEQ PUTER
	LDY FCBDLN,X
	TYA
	CMP FCBMLN,X
	BCC PUT1
	JSR WRTNXS
	BCS PEOF
	JSR WTBUR
	LDY #$00
	BCS PUT€}1
	LDA (ICBALZ),Y
	STA SVDBYT
PUT1:	INC FCBDLN,X
	LDA SVDBYT
	STA (ZSBA),Y
	LDA #FCBFSM
	ORA FCBFLG,X
	STA FCBFLG,X
	JMP GREA}T
PUTER:	JMP ERDVDC
PEOF:	JMP ERREOF
WTBUR:	LDA FCBFLG,X
	BPL NOBURST
	BMI TBURST
RTBUR:	LDA #$00
TBURST:	STA BURTYP
	LDA ICC‚}OMZ
	AND #$02
	BEQ NOBURST
	JSR TBLEN
	BCS NOBURST
	LDA ICBALZ
	STA ZSBA
	LDA ICBAHZ
	STA ZSBA+1
NXTBUR:	LDA BURTYP
	BMI WRBUƒ}R
	JSR RDNXTS
	BCC BBINC
	BCS BUREOF
NOBURST SEC
	RTS
WRBUR:	LDA DRVMDL
	STA FCBDLN,X
	TAY
	LDA (ZSBA),Y
	STA SVD1
	INY
	LDA „}(ZSBA),Y
	STA SVD2
	INY
	LDA (ZSBA),Y
	STA SVD3
	JSR WRTNXS
	LDY DRVMDL
	LDA SVD1
	STA (ZSBA),Y
	INY
	LDA SVD2
	STA (ZSBA),Y
…}	INY
	LDA SVD3
	STA (ZSBA),Y
BBINC:	CLC
	LDA ZSBA
	ADC FCBMLN,X
	STA ZSBA
	LDA ZSBA+1
	ADC #$00
	STA ZSBA+1
	SEC
	LDA ICBLLZ
†}	SBC FCBMLN,X
	STA ICBLLZ
	LDA ICBLHZ
	SBC #$00
	NOP
	STA ICBLHZ
	JSR TBLEN
	BCC NXTBUR
BUREOF	= *
	LDA ZSBA
	STA ICBALZ
	LDA‡} ZSBA+1
	STA ICBAHZ
	LDY FCBBUF,X
	DEY
	JSR SSBA
BURST:	CLC
	RTS
TBLEN	= *
	LDA DRVTYP
	CMP #$01
	BNE TBL256
	LDA ICBLLZ
	BMIˆ} BURST
TBL256:	LDA ICBLHZ
	BNE BURST
	SEC
	RTS
DFMGET	= *
	JSR SETUP
	LDA FCBOTC,X
FDSCHAR
	AND #OPDIR
	BEQ GET1
	JMP GDCHAR
‰}GET1:	LDA FCBDLN,X
	CMP FCBMLN,X
	BCC GET2
	JSR RTBUR
	JSR RDNXTS
	BCC GET1
GEOF	= *
	JMP ERREOF
GET2:	TAY
	LDA (ZSBA),Y
	STAŠ} SVDBYT
	INY
	TYA
	STA FCBDLN,X
EFLOOK	= *
	LDY FCBLEN,X
	BNE GET3
	LDY FCBLSN+1,X
	BNE GET3
	CMP FCBMLN,X
	BCC GET3
	LDA #$0‹}3
	JMP RETURN
GET3:	JMP GREAT
DFMSTA
	JSR SETUP
	JSR FNDCODE
	JSR SFDIR
	BCS SFNF
	JSR TSTLOCK
	JMP GREAT
SFNF:	JMP ERFNF
DFMŒ}CLS
	JSR SETUP
	LDA FCBOTC,X
	AND #OPOUT
	BEQ CLDONE
	ROL FCBFLG,X
	BCC CLUPDT
	JSR WRTLSEC
	JSR RRDIR
	LDA FCBCNT+1,X
	PHA
	}LDA FCBCNT,X
	PHA
	LDA FCBOTC,X
	AND #OPAPND
	BEQ CLOUT
	JSR DFRDSU
APP1:	JSR RDNXTS
	BCC APP1
	LDA FCBSSN,X
	STA FCBLSN,X
	LŽ}DA FCBSSN+1,X
	STA FCBLSN+1,X
	JSR WRTN2
CLOUT:	LDY CDIRD
	CLC
	PLA
	ADC FILDIR+DFDCNT,Y
	STA FILDIR+DFDCNT,Y
	PLA
	ADC FILDI}R+DFDCNT+1,Y
	STA FILDIR+DFDCNT+1,Y
	LDA #DFDINU+DFDNLD
	STA FILDIR+DFDFL1,Y
	JSR WRTDIR
	JSR WRTVTOC
CLDONE:	LDA #$00
	STA F}CBOTC,X
	JMP FGREAT
CLUPDT	= *
	ROL FCBFLG,X
	BCC CLDONE
	JSR WRCSIO
	JMP CLDONE
RRDIR	= *
	LDA FCBFNO,X
	LSR A
	LSR A
	STA S‘}FNUM
	JSR FNSHFT
	STA CDIRS
	JSR FNSHFT
	JSR FNSHF1
	ASL A
	STA CDIRD
	JMP RDDIR
FNSHFT:	LDA #$00
FNSHF1:	LDY #$03
FNSHF2:	AS’}L FCBFNO,X
	ROL A
	DEY
	BNE FNSHF2
	RTS
DFMDDC
	JSR SETUP
	LDA ICCOM,X
	CMP #254
	BEQ XFV
	CMP #MAXDDC
	BCS DVDCER
	SEC
	SBC “}#$20
	BCC DVDCER
	ASL A
	TAY
	LDA DVDCVT,Y
	PHA
	LDA DVDCVT+1,Y
	PHA
	RTS
DVDCVT
	.DBYTE XRENAME-1
	.DBYTE XDELETE-1
	.DBYTE ”}DVDCER-1
	.DBYTE XLOCK-1
	.DBYTE XUNLOCK-1
	.DBYTE XPOINT-1
	.DBYTE XNOTE-1
MAXDDC	= $27
DVDCER:	JMP ERDVDC
XFV:	JMP XFORMAT
•}XRENAME
	JSR FNDCODE
	STY TEMP2
	JSR SFDIR
	BCC XRN1
	JMP ERFNF
XRN1:	JSR TSTLOCK
	JSR TSTDOS
	BNE XRN1A
	JSR DELDOS
XRN1A:	L–}DY TEMP2
	JSR FNDCNX
	JSR TSTDOS
	BNE XRN1B
	LDY CDIRD
	LDA FILDIR+DFDSSN+1,Y
	PHA
	LDA FILDIR+DFDSSN,Y
	TAY
	PLA
	JSR SETDSO—}
XRN1B:	LDX #0
	LDY CDIRD
XRN2:	LDA FNAME,X
	CMP #'?
	BEQ XRN3
	STA FILDIR+DFDPFN,Y
XRN3:	INY
	INX
	CPX #$0B
	BCC XRN2
	LDX C˜}URFCB
	JSR WRTDIR
	JSR FNDCODE
	JSR CSFDIR
	BCC XRN1
	JMP FGREAT
XDELETE
	JSR FNDCODE
	JSR SFDIR
	BCS DFNF
XDELX	= *
	JSR XDE™}L0
	JSR TSTDOS
	BNE XDELY
	JSR DELDOS
XDELY
XDEL3:	JSR WRTDIR
	JSR CSFDIR
	BCC XDELX
	JSR WRTVTOC
	JMP FGREAT
XDEL0:	JSR OPVTš}OC
XDEL1:	LDY CDIRD
	JSR TSTLOCK
	LDA #DFDEDE
	STA FILDIR+DFDFL1,Y
	JSR DFRDSU
	JMP XDEL2A
XDEL2:	JSR RDNXTS
	BCS XDEL4
XDEL2›}A	= *
	JSR FRESECT
	JMP XDEL2
XDEL4	= *
	LDY #DVDWRQ
	LDA #$FF
	STA (ZDRVA),Y
	RTS
DFNF:	JMP ERFNF
XLOCK
	LDA #DFDLOC
	STA TEœ}MP4
	BNE XLCOM
XUNLOCK
	LDA #0
	STA TEMP4
XLCOM:	JSR FNDCODE
	JSR SFDIR
	BCC XLC1
	JMP ERFNF
XLC1:	LDY CDIRD
	LDA FILDIR+DFDF}L1,Y
	AND #$DF
	ORA TEMP4
	STA FILDIR+DFDFL1,Y
	JSR WRTDIR
	JSR CSFDIR
	BCC XLC1
	JMP FGREAT
TSTLOCK
	LDY CDIRD
	LDA FILDIR+Dž}FDFL1,Y
	AND #DFDLOC
	BNE TLF
	RTS
TLF:	JMP ERFLOCK
XPOINT
	LDA FCBFLG,X
	BMI PERR1
	LDA ICAUX4,X
	CMP FCBCSN+1,X
	BNE XP1
	LŸ}DA ICAUX3,X
	CMP FCBCSN,X
	BEQ XP2
XP1:	LDA FCBFLG,X
	BEQ XP1A
	JSR WRCSIO
	LDA #0
	STA FCBFLG,X
XP1A	= *
	LDA ICAUX4,X
	STA  }FCBLSN+1,X
	LDA ICAUX3,X
	STA FCBLSN,X
	JSR RDNSO
	BCS XPERR
XP2:	LDA ICAUX5,X
	CMP FCBMLN,X
	BCC XP3
	BEQ XP3
XPERR	= *
	JMP¡} ERRPDL
XP3:	STA FCBDLN,X
	JMP GREAT
PERR1:	JMP ERRPOT
XNOTE
	LDA FCBDLN,X
	STA ICAUX5,X
	LDA FCBCSN,X
	STA ICAUX3,X
	LDA FCB¢}CSN+1,X
	STA ICAUX4,X
	JMP GREAT
XFORMAT
	LDA ZSBA+1
	STA DCBBUF+1
	LDA ZSBA
	STA DCBBUF
	LDA #DCBCFD
	STA DCBCMD
	LDA #$40
	£}STA DCBSTA
	LDX DRVTYP
	LDA #$31
	LDY DSKTIM
	JSR DSIO2
	BPL XF0
	CPY #$90
	BNE XFERR
TSTFMT	= *
	LDY #0
	LDA (ZSBA),Y
	CMP #¤}$FF
	BNE XFBAD
	INY
	LDA (ZSBA),Y
	CMP #$FF
	BEQ XFERR
XFBAD:	JMP ERDBAD
XFERR:	JMP RETURN
XF0
	LDA #0
	TAY
XF1:	STA (ZDRVA),¥}Y
	INY
	BPL XF1
	LDY #0
	LDA #2
	STA (ZDRVA),Y
	INY
	LDA #$C3
	STA (ZDRVA),Y
	INY
	INY
	STA (ZDRVA),Y
	LDA #2
	DEY
	STA (ZDRV¦}A),Y
	INY
	INY
	STA (ZDRVA),Y
	LDY #DVDSMP
	LDA #$FF
XF2:	STA (ZDRVA),Y
	INY
	CPY #DVDSMP+90
	BNE XF2
	LDA #$0F
	LDY #DVDSMP
§}	STA (ZDRVA),Y
	LDY #DVDSMP+45
	LDA #0
	STA (ZDRVA),Y
	INY
	LDA #$7F
	STA (ZDRVA),Y
	JSR WRTVTOC
	LDA #0
	TAY
XF3:	STA FILDIR¨},Y
	INY   
	BPL XF3
	LDA #7
	STA CDIRS
XF4:	JSR WRTDIR
	DEC CDIRS
	BPL XF4
	JSR DELDOS
	JMP FGREAT
LISTDIR
	LDA #0
	STA TEMP4©}
	JSR SFDIR
	BCC LDENT1
	BCS LDCNT
GDCHAR
	BIT TEMP4
	BMI LDDONE
	LDY TEMP4
	LDA (ZSBA),Y
	STA SVDBYT
	INC TEMP4
	CMP #EOL
	Bª}NE GDCRTN
	CPY #17
	BCS LDENT
	LDA #$80
	STA TEMP4
GDCRTN:	JMP GREAT
LDENT:	LDA #0
	STA TEMP4
	JSR CSFDIR
	BCS LDCNT
LDENT1
	«}JSR FDENT
	JMP GREAT
LDCNT:	JSR RDVTOC
	LDY #DVDNSA+1
	LDA (ZDRVA),Y
	PHA
	DEY
	LDA (ZDRVA),Y
	TAY
	PLA
	JSR CVDX
	LDY #3
	LD¬}X #FSCML-1
MVFSCM:	LDA FSCM,X
	STA (ZSBA),Y
	INY
	DEX
	BPL MVFSCM
	JSR CVDY
	LDA #0
	STA TEMP4
	JMP FGREAT
LDDONE
	JMP ERREOF­}
FSCM:	.BYTE "SROTCES EERF "
FSCML	= *-FSCM
FDENT
	LDY #0
	LDA #$20
	STA (ZSBA),Y
	LDX CDIRD
	LDA FILDIR+DFDFL1,X
	AND #DFDLO®}C
	BEQ LD1
	LDA #'*
	STA (ZSBA),Y
LD1:	INY
	LDA #$20
	STA (ZSBA),Y
	INY   
LD2:	LDA FILDIR+DFDPFN,X
	STA (ZSBA),Y
	INX
	INY
	¯}CPY #13
	BCC LD2
	LDA #$20
	STA (ZSBA),Y
	INY
	STY TEMP4
	LDX CDIRD
	LDY FILDIR+DFDCNT,X
	LDA FILDIR+DFDCNT+1,X
CVDX
	LDX #10°}0
	JSR CVDIGIT
	LDX #10
	JSR CVDIGIT
	TYA
	JSR STDIGIT
	LDY #17
CVDY:	LDA #EOL
	STA (ZSBA),Y
	LDY #0
	STY TEMP4
	RTS
CVDIGIT:±}	STX TEMP3
	LDX #$FF
CVD1:	STA TEMP2
	STY TEMP1
	INX
	SEC
	LDA TEMP1
	SBC TEMP3
	TAY
	LDA TEMP2
	SBC #0
	BCS CVD1
	TXA
STDIGI²}T ORA #$30
	LDY TEMP4
	STA (ZSBA),Y
	INC TEMP4
	LDA TEMP2
	LDY TEMP1
	RTS
FNDCODE
	LDA ICBAL,X
	STA ZBUFP
	LDA ICBAH,X
	STA Z³}BUFP+1
	LDY #2
FD0A:	LDA (ZBUFP),Y
	DEY
	BMI FNDERR
	CMP #':
FD0B
	BNE FD0A
	INY
FNDCNX
	LDX #11
	LDA #$20
FD0:	STA FNAME,X
	´}DEX
	BPL FD0
	LDX #0
	STX EXTSW
FD1:	INY
	LDA (ZBUFP),Y
	CMP #'*
	BNE FD3
FD2:	LDA #'?
	JSR FDSCHAR
	BCC FD2
	BPL FD1
	BMI FDµ}END
FD3:	CMP #'.
	BNE FD4
	BIT EXTSW
	BMI FDEND
	LDX #8
	ROR EXTSW
	BCC FD1
FD4:	CMP #'?
	BEQ FD6
	CMP #'A
	BCC FD5
	CMP #$5B¶}
	BCC FD6
FD5:	CPX #0
	BEQ FNDERR
	CMP #$30
	BCC FDEND
	CMP #$3A
	BCS FDEND
FD6:	JSR FDSCHAR
	JMP FD1
FDEND:	LDX CURFCB
	RTS ·}  
FNDERR:	JMP ERRFN
	CPX #8
	BCC FDSC2
	BEQ FDSC1
	CPX #12
	BCC FDSC2
	RTS
FDSC1:	BIT EXTSW
	BMI FDSC2
	RTS
FDSC2:	STA FNAME¸},X
	INX
	CLC
	RTS
SFDIR
	LDA #$FF
	STA DHOLES
	STA CDIRS
	STA SFNUM
	LDA #$70
	STA CDIRD
CSFDIR
	INC SFNUM
	CLC   
	LDA CDIRD¹}
	ADC #DFDELN
	BPL SFD2
	INC CDIRS
	LDA #8
	CMP CDIRS
	BCC SFD1
	BEQ SDRTN
SFD1:	JSR RDDIR
	LDA #0
SFD2:	STA CDIRD
	TAY
	LDA º}FILDIR+DFDFL1,Y
	BEQ SFDSH
	BMI SFDSH
	AND #DFDOUT
	BNE CSFDIR
	LDX #0
SFD3:	LDA FNAME,X
	CMP #'?
	BEQ SFD4
	CMP FILDIR+DFDPF»}N,Y
	BNE CSFDIR
SFD4:	INX
	INY
	CPX #11
	BNE SFD3
	CLC
	BCC SDRTN
SFDSH
	LDA DHOLES
	BPL SFDSH1
	LDA CDIRS
	STA DHOLES
	LDA C¼}DIRD
	STA DHOLED
	LDA SFNUM
	STA DHFNUM
SFDSH1:	LDA FILDIR+DFDFL1,Y
	BMI CSFDIR
	SEC
SDRTN:	LDX CURFCB
	RTS
WRTNXS
	LDA FCBFL½}G,X
	BMI WRTN1
	ASL A
	BPL WRU1
	ASL A
	STA FCBFLG,X
	JSR WRCSIO
	BMI WRNERR
WRU1:	JMP RDNXTS
WRTN1:	JSR GETSECTOR
WRTLSEC:	L¾}DA FCBDLN,X
WRTLS1:	LDY DRVLBT
	STA (ZSBA),Y
WRTN2:	LDA FCBLSN+1,X
	ORA FCBFNO,X
	LDY DRVMDL
	STA (ZSBA),Y
	INY
	LDA FCBLSN,X¿}
	STA (ZSBA),Y
	JSR WRCSIO
	BPL WRTN5
WRNERR:	LDA DCBSTA
	STA TEMP4
	LDA #0
	STA FCBOTC,X
	LDA TEMP4
	JMP RETURN
WRTN5
	INC FÀ}CBCNT,X
	BNE WRTN6
	INC FCBCNT+1,X
WRTN6
	JSR MVLSN
	LDA #0
	STA FCBLSN,X
	STA FCBLSN+1,X
	STA FCBDLN,X
	LDA DRVMDL
	STA FCBMÁ}LN,X
	CLC   
	RTS   
WRCSIO:	SEC
RWCSIO:	LDA FCBCSN+1,X
	LDY FCBCSN,X
	JMP DSIO
MVLSN:	LDA FCBLSN,X
	STA FCBCSN,X
	LDA FCBLSNÂ}+1,X
	STA FCBCSN+1,X
	RTS
RDNXTS
	LDA FCBFLG,X
	BEQ RDNSO
	JMP WRTNXS
RDNSO	= *
	LDA FCBLSN,X
	ORA FCBLSN+1,X
	BNE RDNS1
	SECÃ}
	RTS   
RDNS1:	JSR MVLSN
	CLC
	JSR RWCSIO
	BMI RDIOER
	LDY DRVMDL
	LDA (ZSBA),Y
	AND #$FC
	CMP FCBFNO,X
	BNE RDFNMM
	LDA (ZSÄ}BA),Y
	AND #$03
	STA FCBLSN+1,X
	INY
	LDA (ZSBA),Y
	STA FCBLSN,X
	INY
	LDA (ZSBA),Y
	PHA
	LDA FCBSLT,Y
	BNE RDNS3
	PLA
	BMI RÅ}DNS2
	LDA #125
RDNS2:	AND #$7F
	PHA
RDNS3:	PLA
	STA FCBMLN,X
	LDA #0
	STA FCBDLN,X
	CLC   
	RTS   
RDIOER:	JSR ERRIO
RDFNMM	=Æ} *
	LDA ICCOM,X
	CMP #$21
	BEQ RDDELE
	JSR ERFNMM
RDDELE:	SEC
	RTS
RDDIR:	CLC
	BCC DIRIO
WRTDIR:	SEC
DIRIO:	PHP
	LDA #FILDIR/Ç}256
	STA DCBBUF+1
	LDA #FILDIR&255
	STA DCBBUF
	CLC
	LDA CDIRS
	ADC #$69
	TAY   
	LDA #1
	ADC #0
	JMP DSYSIO
RDVTOC
	LDY #DVDÈ}WRQ
	LDA (ZDRVA),Y
	BEQ RDVGO
	RTS
RDVGO:	CLC
	BCC VTIO
WRTVTOC
WRVTOC:	LDY #DVDWRQ
	LDA #0
	STA (ZDRVA),Y
	SEC
VTIO:	PHP
	LDÉ}A ZDRVA+1
	STA DCBBUF+1
	LDA ZDRVA
	STA DCBBUF
	LDY #$68
	LDA #1
DSYSIO
	PLP
DSYSIA
	LDX DRVTYP
	JSR BSIO
	BMI DSIOER
	RTS
DSÊ}IOER:	CMP #DCBDER
	BEQ DEAD
	JMP ERRIO
DEAD:	JMP ERRSYS
OPVTOC
	JSR RDVTOC
	JMP WRTVTOC
FRESECT
	LDA FCBCSN,X
	ORA FCBCSN+1,XË}
	BEQ FSRTS
	LDA #0
	LDY #3
FS1:	LSR FCBCSN+1,X
	ROR FCBCSN,X
	ROR A
	DEY
	BNE FS1
	LDY #5
FS2:	ROR A
	DEY
	BNE FS2
	TAY
	LDAÌ} #0
	SEC
FS3:	ROR A
	DEY
	BPL FS3
	PHA
	LDA FCBCSN,X
	ADC #DVDSMP
	TAY
	PLA   
	ORA (ZDRVA),Y
	STA (ZDRVA),Y
	LDY #DVDNSA
	LDÍ}A (ZDRVA),Y
	CLC
	ADC #1
	STA (ZDRVA),Y
	INY
	LDA (ZDRVA),Y
	ADC #0
	STA (ZDRVA),Y
FSRTS	= *
	RTS
GETSECTOR
	LDY #DVDSMP-1
GSÎ}1:	INY
	CPY #90+DVDSMP
	BCS GSERR
	LDA (ZDRVA),Y
	BEQ GS1
	STY TEMP1
	PHA
	SEC
	LDY #DVDNSA
	LDA (ZDRVA),Y
	SBC #1
	STA (ZDRVÏ}A),Y
	INY
	LDA (ZDRVA),Y
	SBC #0
	STA (ZDRVA),Y
	INY
	LDA #$FF
	STA (ZDRVA),Y
	PLA
	LDY #$FF
GS2:	INY
	ASL A
	BCC GS2
	STY TEÐ}MP2
GS3:	LSR A
	DEY
	BPL GS3
	LDY TEMP1
	STA (ZDRVA),Y
	SEC
	LDA TEMP1
	SBC #DVDSMP
	LDY #0
	STY TEMP1
GS4:	ASL A
	ROL TEMP1
Ñ}	INY
	CPY #3
	BCC GS4
	CLC
	ADC TEMP2
	STA FCBLSN,X
	LDA TEMP1
	ADC #0
	STA FCBLSN+1,X
	RTS
GSERR:	JMP ERRNSA
SETUP:	LDA #$9FÒ}
	STA ERRNO
	STX CURFCB
	TSX
	INX
	INX
	STX ENTSTK
	LDX CURFCB
	LDY ICDNOZ
	STY DCBDRV
	DEY
	LDA DBUFAL,Y
	STA ZDRVA
	LDA DBUÓ}FAH,Y
	STA ZDRVA+1
	LDA DRVTBL,Y
	BEQ DERR1
	STA DRVTYP
	TAY
	LDA DRVMDL,Y
	STA DRVMDL
	LDA DRVLBT,Y
	STA DRVLBT
	LDY FCBBUF,Ô}X
	DEY
	BPL SSBA
	LDY #0
GSB1:	LDA SECTBL,Y
	BEQ GSB4
GSB2:	INY
	CPY #$10
	BCC GSB1
GSB3:	JMP ERRNSB
GSB4:	LDA DRVTYP
	LSR A
Õ}	BCS GSB5
	INY
	CPY #16
	BCS GSB3
	LDA SECTBL,Y
	BNE GSB2
	DEY
	LDA #$80
	STA SECTBL+1,Y
GSB5:	LDA #$80
	STA SECTBL,Y
	TYA
	SÖ}TA FCBBUF,X
	INC FCBBUF,X
SSBA:	LDA SABUFL,Y
	STA ZSBA
	LDA SABUFH,Y
	STA ZSBA+1
	RTS
DERR1:	JMP ERRDNO
FRESBUF	= *
	LDY FCBB×}UF,X
	BEQ FSBR
	DEY
	LDA #0
	STA FCBBUF,X
	STA SECTBL,Y
	LDA DRVTYP
	LSR A
	BCS FSBR
	LSR A
	STA SECTBL+1,Y
FSBR:	RTS
DSIO
	PØ}HA
	LDA ZSBA
	STA DCBBUF
	LDA ZSBA+1
	STA DCBBUF+1
	PLA
	LDX DRVTYP
	JSR BSIO
	RTS
WRTDOS
	LDY FCBCSN,X
	LDA FCBCSN+1,X
	JSR Ù}SETDSO
	JSR WD0
	JMP GREAT
DELDOS
	LDA #0
DD1
	STA DFSFLG
WRTSCO
	LDA #FMSORG/256
	STA DCBBUF+1
	LDA #FMSORG&255
	STA DCBBUF
Ú}	LDA #0
	STA DCBSEC
	STA DCBSEC+1
WRNBS:	INC DCBSEC
	LDX #1
	SEC
	JSR BSIOR
	CLC
	LDA DCBBUF
	ADC #128
	STA DCBBUF
	LDA DCBBUÛ}F+1
	ADC #0
	STA DCBBUF+1
	LDA DCBSEC
	CMP BRCNT
	BNE WRNBS
	RTS
SETDSO:	STY DFLINK
	STA DFLINK+1
	LDA DRVTYP
	STA DFSFLG
	LDÜ}Y DRVMDL
	STY BLDISP
	BNE DD1
WD0:	LDA DFLADR
	STA ZBUFP
	LDA DFLADR+1
	STA ZBUFP+1
WD1:	LDY #0
WD2:	LDA (ZBUFP),Y
	STA (ZSBAÝ}),Y
	INY
	CPY DRVMDL
	BCC WD2
	TYA
	STA FCBDLN,X
	JSR INCBA
	CMP SASA+1
	BCC WD3
	BNE WD4
	LDA ZBUFP
	CMP SASA
	BCC WD3
	BNE Þ}WD4
WD3:	JSR WRTNXS
	JMP WD1
WD4:	RTS
TSTDOS
	LDY #11
TDF1:	LDA FNAME-1,Y
	CMP DFN-1,Y
	BNE TDFR
	DEY
	BNE TDF1
TDFR:	RTS
DFNß}:	.BYTE "DOS   SYS"
ERDBAD:	INC ERRNO
ERAPO:	INC ERRNO
ERRPOT:	INC ERRNO
ERFNF:	INC ERRNO
ERDFULL:	INC ERRNO
ERDVDC:	INC ERRNà}O
ERFLOCK:	INC ERRNO
ERRPDL:	INC ERRNO
ERRFN:	INC ERRNO
ERFNMM:	INC ERRNO
ERRSYS:	INC ERRNO
ERRNSA:	INC ERRNO
ERRNSB:	INC ERRá}NO
ERRDNO:	INC ERRNO
	LDA ERRNO
RETURN:	LDX CURFCB
	STA ICSTA,X
	LDX ENTSTK
	TXS
	LDX CURFCB
	TAY
	LDA SVDBYT
	RTS
ERRIO:	LDAâ} DCBSTA
	BMI RETURN
FGREAT:	LDX CURFCB
	JSR FRESBUF
GREAT:	LDA #01
	BNE RETURN
ERREOF:	LDA #$88
	BMI RETURN
DRVMDL:	.BYTE 0
	ã}.BYTE 125
	.BYTE 253
DRVLBT:	.BYTE 0
	.BYTE 127
	.BYTE 255
DRVTYP:	ORG *+1
RETRY:	ORG *+1
ENTSTK:	ORG *+1
CURFCB:	ORG *+1
DHOä}LES:	ORG *+1
DHOLED:	ORG *+1
DHFNUM:	ORG *+1
CDIRD:	ORG *+1
CDIRS:	ORG *+1
SFNUM:	ORG *+1
SVDBYT:	ORG *+1
SVD1:	ORG *+1
SVD2:å}	ORG *+1
SVD3:	ORG *+1
EXTSW
TEMP1:	ORG *+1
TEMP2:	ORG *+1
TEMP3:	ORG *+1
TEMP4:	ORG *+1
BURTYP:	ORG *+1
DRVTBL:	ORG *+8
SECTæ}BL:	ORG *+16
DBUFAL:	ORG *+8
DBUFAH:	ORG *+8
SABUFL:	ORG *+16
SABUFH:	ORG *+16
FNAME:	ORG *+12
AFNAME:	ORG *+12
MDRV:	ORG *+1ç}
Z	= *
	ORG $1381
FCB
FCBFNO:	ORG *+1
FCBOTC:	ORG *+1
	ORG *+1
FCBSLT:	ORG *+1
FCBFLG:	ORG *+1
FCBMLN:	ORG *+1
FCBDLN:	ORG *+è}1
FCBBUF:	ORG *+1
FCBCSN:	ORG *+2
FCBLSN:	ORG *+2
FCBSSN:	ORG *+2
FCBCRS
FCBCNT:	ORG *+2
FCBLEN	= *-FCB
	ORG FCBLEN*7+*
OPIN	é}= $04
OPOUT	= $08
OPDIR	= $02
OPAPND	= $01
FCBFAS	= $80
FCBFSM	= $40
DFDFL1	= 0
DFDCNT	= 1
DFDSSN	= 3
DFDPFN	= 5
DFDXFN	= 13
ê}DFDELN	= 16
DFDEUU	= 0
DFDEDE	= $80
DFDINU	= $40
DFDOUT	= $01
DFDLOC	= $20
DFDNLD	= $02
FILDIR:	ORG *+256
DVDTCD	= 0
DVDMSN	=ë} 1
DVDNSA	= 3
DVDWRQ	= 5
DVDSMP	= 10
ENDFMS	= *
	END
UT	= $01
DFDLOC	= $20
DFDNLD	= $02
FILDIR:	ORG *+256
DVDTCD	= 0
DVDMSN	=51000 FMSORG = $700
1002 FMSZPG = $43
1004 IOCBORG = $340
1006 LMASK = 3
1008 DCBORG = $300
1010 DHADR = $E453
1012 EOL = $9B
í}1014 DEVTAB = $31A
1016 ZICB = $20
1018 LMADR = $2E7
1020 DUPINIT = $1540
1022 STAK = $102
1024 OSBTM = $DF
1026 DSKTIM = $24î}6
1028 TIMOUT = 15
1030   *= IOCBORG
1032 IOCB
1034 ICHID *= *+1
1036 ICDNO *= *+1
1038 ICCOM *= *+1
1040 ICSTA *= *+1
1042 Iï}CBAL *= *+1
1044 ICBAH *= *+1
1046 ICPUT *= *+2
1048 ICBLL *= *+1
1050 ICBLH *= *+1
1052 ICAUX1 *= *+1
1054 ICAUX2 *= *+1
105ð}6 ICAUX3 *= *+1
1058 ICAUX4 *= *+1
1060 ICAUX5 *= *+1
1062 ICAUX6 *= *+1
1064 ICLEN = *-IOCB
1066  *= *+ICLEN*7
1068 ICOIN = ñ}$01
1070 ICOOUT = $02
1072 ICIO = $03
1074 ICGBR = $04
1076 ICGRT = $05
1078 ICGBC = $06
1080 ICGTC = $07
1082 ICPBR = $08
10ò}84 ICPTR = $09
1086 ICPBC = $0A
1088 ICPTC = $0B
1090 ICCLOSE = $0C
1092 ICSTAT = $0D
1094 ICDDC = $0E
1096 ICMAX = $0E
1098 ó}ICFREE = $0F
1100 ICSOK = $01
1102 ICSTR = $02
1104 ICSEOF = $03
1106 ICSBRK = $80
1108 ICSDNR = $81
1110 ICSNED = $82
1112 Iô}CSDER = $83
1114 ICSIVC = $84
1116 ICSNOP = $85
1118 ICSIVN = $86
1120 ICSWPC = $87
1122 ICDNOZ = ICDNO-IOCB+ZICB
1124 ICBLLZõ} = ICBLL-IOCB+ZICB
1126 ICBLHZ = ICBLH-IOCB+ZICB
1128 ICBALZ = ICBAL-IOCB+ZICB
1130 ICBAHZ = ICBAH-IOCB+ZICB
1132 ICCOMZ = ICö}COM-IOCB+ZICB
1134 ICPUTZ = ICPUT-IOCB+ZICB
1136  *=  DCBORG
1138 DCB
1140 DCBSBI *= *+1
1142 DCBDRV *= *+1
1144 DCBCMD *= *+÷}1
1146 DCBSTA *= *+1
1148 DCBBUF *= *+2
1150 DCBTO *= *+2
1152 DCBCNT *= *+2
1154 DCBSEC *= *+2
1156 DCBCRS = 'R
1158 DCBCWS ø}= 'W
1160 DCBCST = 'S
1162 DCBCFD = '!
1164 DCBSOK = $01
1166 DCBDNR = $81
1168 DCBCNR = $82
1170 DCBDER = $83
1172 DCBIVC = ù}$84
1174 DCBWPR = $87
1176  *= FMSZPG
1178 ZBUFP *= *+2
1180 ZDRVA *= *+2
1182 ZSBA *= *+2
1184 ERRNO *= *+1
1186  *= FMSORG
ú}1188 BFLG .BYTE 0
1190 BRCNT .BYTE 3
1192 BLDADR .WORD FMSORG
1194 BINTADR .WORD DUPINIT
1196 BCONT JMP XBCONT
1198 SABYTE .Bû}YTE 3
1200 DRVBYT .BYTE 01
1202 SAFBFW .BYTE 0
1204 SASA .BYTE 01
1206    .BYTE $15
1208 DFSFLG .BYTE 0
1210 DFLINK .BYTE 0,0ü}
1212 BLDISP .BYTE 125
1214 DFLADR .BYTE $CB
1216    .BYTE 07
1218 XBCONT
1220  LDY DFSFLG
1222  BEQ BFAIL
1224  LDA DFLADR
1ý}226  STA ZBUFP
1228  STA DCBBUF
1230  LDA DFLADR+1
1232  STA ZBUFP+1
1234  STA DCBBUF+1
1236  LDA DFLINK+1
1238  LDY DFLINK
1þ}240 XBC1 CLC
1242  LDX DFSFLG
1244  JSR BSIO
1246  BMI BFAIL
1248  LDY BLDISP
1250  LDA (ZBUFP),Y
1252  AND #LMASK
1254  PHA
ÿ}1256  INY
1258  ORA (ZBUFP),Y
1260  BEQ BGOOD
1262  LDA (ZBUFP),Y
1264  TAY
1266  JSR INCBA
1268  PLA
1270  JMP XBC1
1272 BFA}IL LDA #$C0
1274  BNE XBRTN
1276 BGOOD PLA
1278 XBRTN ASL A
1280  TAY
1282  RTS
1284 INCBA CLC
1286  LDA ZBUFP
1288  ADC BLDI}SP
1290  STA DCBBUF
1292  STA ZBUFP
1294  LDA ZBUFP+1
1296  ADC #$00
1298  STA DCBBUF+1
1300  STA ZBUFP+1
1302  RTS
1304 BSIO} = *
1306  STA DCBSEC+1
1308  STY DCBSEC
1310 BSIOR LDA #DCBCRS
1312  LDY #$40
1314  BCC DSIO1
1316  LDA #DCBCWS
1318  LDY #$}80
1320 DSIO1
1322  STA DCBCMD
1324  STY DCBSTA
1326  LDA #$31
1328  LDY #TIMOUT
1330 DSIO2
1332  STA DCBSBI
1334  STY DCBTO
}1336  LDA #$03
1338  STA RETRY
1340  LDA #$00
1342  LDY #$80
1344  DEX
1346  BEQ DSIO3
1348  LDA #$01
1350  LDY #$00
1352  ST}A DCBCNT+1
1354 DSIO3 STY DCBCNT
1356 DSIO4
1358  JSR $E459
1360  BPL DSIO5
1362  DEC RETRY
1364  BMI DSIO5
1366  LDX #$40
13}68  LDA #DCBCRS
1370  CMP DCBCMD
1372  BEQ STRTYP
1374  LDA #DCBCFD
1376  CMP DCBCMD
1378  BEQ STRTYP
1380  LDX #$80
1382 STR}TYP STX DCBSTA
1384  JMP DSIO4
1386 DSIO5 LDX CURFCB
1388  LDA DCBSTA
1390  RTS
1392 DFMSDH
1394  .WORD DFMOPN-1
1396  .WORD }DFMCLS-1
1398  .WORD DFMGET-1
1400  .WORD DFMPUT-1
1402  .WORD DFMSTA-1
1404  .WORD DFMDDC-1
1406  *=    $07E0
1408 DINIT = *	}
1410  LDA SASA
1412  STA ZBUFP
1414  LDA SASA+1
1416  STA ZBUFP+1
1418  LDA DRVBYT
1420  STA TEMP1
1422  LDX #$07
1424 DIA S
}TX TEMP2
1426  ASL TEMP1
1428  BCS DIHAVE
1430  LDA #$00
1432  STA DRVTBL,X
1434  STA DBUFAL,X
1436  STA DBUFAH,X
1438  BEQ D}IDDEC
1440 DIHAVE
1442  LDA #$00
1444  STA (ZBUFP),Y
1446  INX
1448  STX DCBDRV
1450  LDA #DCBCST
1452  STA DCBCMD
1454  JSR }DHADR
1456  LDY #$02
1458  LDA $02EA
1460  AND #$20
1462  BNE DI256
1464  DEY
1466 DI256 TYA
1468  LDX TEMP2
1470  STA DRVTBL},X
1472  LDA ZBUFP
1474  STA DBUFAL,X
1476  LDA ZBUFP+1
1478  STA DBUFAH,X
1480  JSR DINCBP
1482  DEY
1484  BEQ DIDDEC
1486  }JSR DINCBP
1488 DIDDEC DEX
1490  BPL DIA
1492  LDY SABYTE
1494  LDX  #$00
1496 DINXTS LDA #$00
1498  DEY
1500  BPL DISETS
150}2  TYA   
1504 DISETS STA SECTBL,X
1506  TYA
1508  BMI DISNI
1510  LDA ZBUFP
1512  STA SABUFL,X
1514  LDA ZBUFP+1
1516  STA S}ABUFH,X
1518  JSR DINCBP
1520 DISNI INX
1522  CPX #$10
1524  BNE DINXTS
1526  LDA ZBUFP
1528  STA LMADR
1530  LDA ZBUFP+1
153}2  STA LMADR+1
1534  JMP CLRFCB
1536 DINCBP CLC
1538  LDA ZBUFP
1540  ADC #$80
1542  STA ZBUFP
1544  LDA ZBUFP+1
1546  ADC #$}00
1548  STA ZBUFP+1
1550  RTS
1552 CLRFCB = *
1554  LDY #$7F
1556  LDA #$00
1558 CFCBX STA FCB,Y
1560  DEY
1562  BNE CFCBX
1}564  LDY #$00
1566 ADI1 LDA Y
1568  BEQ ADI2
1570  CMP #'D
1572  BEQ ADI2
1574  INY
1576  INY
1578  INY
1580  CPY #$1E
1582  }BNE ADI1
1584  BRK
1586 ADI2 LDA #'D
1588  STA DEVTAB,Y
1590  LDA #DFMSDH&255
1592  STA DEVTAB+1,Y
1594  LDA #DFMSDH/256
1596}  STA DEVTAB+2,Y
1598  RTS
1600 DFMOPN JSR SETUP
1602  JSR FNDCODE
1604  LDA ICAUX1,X
1606  STA FCBOTC,X
1608  AND #OPDIR
161}0  BEQ OPN1
1612  JMP LISTDIR
1614 OPN1 JSR SFDIR
1616  PHP
1618  LDA FCBOTC,X
1620  CMP #OPIN
1622  BEQ DFOIN
1624  CMP #OPO}UT
1626  BEQ DFOOUT
1628  CMP #OPIN+OPOUT
1630  BEQ DFOUPD
1632  CMP #OPOUT+OPAPND
1634  BEQ DFOAPN
1636  JMP ERDVDC
1638 DFO}IN = *
1640  PLP
1642  BCS OPNER1
1644  BCC DFOUI
1646 DFOUPD = *
1648  PLP
1650  BCS OPNER1
1652  JSR TSTLOCK
1654 DFOUI = *}
1656  JSR DFRDSU
1658  JMP GREAT
1660 OPNER1 JMP ERFNF
1662 DFOAPN = *
1664  PLP
1666  BCS OPNER1
1668  LDY CDIRD
1670  LDA }FILDIR+DFDFL1,Y
1672  AND #DFDNLD
1674  BEQ APOER
1676  JSR TSTLOCK
1678  JSR OPVTOC
1680  JSR GETSECTOR
1682  STA FCBSSN+1,X}
1684  LDA FCBLSN,X
1686  STA FCBSSN,X
1688  JMP DHFOX2
1690 APOER JMP ERAPO
1692 DFOOUT = *
1694  PLP
1696  BCS DFOX1
1698  }JSR XDEL0
1700  LDY CDIRD
1702  JMP OPN1A
1704 DFOX1 = *
1706  LDA DHOLES
1708  BMI OPNER2
1710  STA CDIRS
1712  JSR RDDIR
17}14  LDA DHOLED
1716  STA CDIRD
1718  LDA DHFNUM
1720  STA SFNUM
1722  JSR OPVTOC
1724  LDY CDIRD
1726  LDX #$0A
1728  LDA #$2}0
1730 OPN1B STA FILDIR+DFDPFN,Y
1732  INY
1734  DEX
1736  BPL OPN1B
1738  LDX CURFCB
1740 OPN1A = *
1742  JSR GETSECTOR
1744}  LDY CDIRD
1746  STA FILDIR+DFDSSN+1,Y
1748  LDA FCBLSN,X
1750  STA FILDIR+DFDSSN,Y
1752  LDA #DFDINU+DFDOUT+DFDNLD
1754  ST }A FILDIR+DFDFL1,Y
1756  LDA #$00
1758  STA FILDIR+DFDCNT+1,Y
1760  STA FILDIR+DFDCNT,Y
1762  LDX #$00
1764 OPN2 LDA FNAME,X
1!}766  CMP #'?
1768  BEQ OPN2A
1770  STA FILDIR+DFDPFN,Y
1772 OPN2A = *
1774  INY
1776  INX
1778  CPX #$0B
1780  BCC OPN2
1782 "} LDX CURFCB
1784  JSR WRTDIR
1786 DHFOX2 = *
1788  JSR SETFCB
1790  JSR WRTN6
1792 OPN3 LDA #FCBFAS
1794  STA FCBFLG,X
1796  #}JSR TSTDOS
1798  BNE DHFOX3
1800  JMP WRTDOS
1802 DHFOX3 = *
1804  JMP GREAT
1806 OPNER2 JSR ERDFULL
1808 SETFCB = *
1810  LD$}A #$00
1812  STA FCBFLG,X
1814 OPNF1 LDA SFNUM
1816  ASL A
1818  ASL A
1820  STA FCBFNO,X
1822  LDA #$00
1824  STA FCBDLN,X
1%}826  STA FCBCNT,X
1828  STA FCBCNT+1,X
1830  RTS
1832 DFRDSU JSR SETFCB
1834  LDY CDIRD
1836  LDA DFDFL1+FILDIR,Y
1838  AND #&}DFDNLD
1840  STA FCBSLT,X
1842  LDA FILD+DFDSSN,Y
1844  STA FCBLSN,X
1846  LDA FILDIR+DFDSSN+1,Y
1848  STA FCBLSN+1,X
1850  J'}SR RDNSO
1852  RTS
1854 DFMPUT
1856  STA SVDBYT
1858  LDA ICDNO,X
1860  STA ICDNO-IOCB+ZICB
1862  JSR SETUP
1864  LDY ENTSTK
(}1866  LDA STAK,Y
1868  CMP #OSBTM
1870  BCS FRMCIO
1872  LDA #$00
1874  STA ICCOMZ
1876 FRMCIO LDA FCBOTC,X
1878  AND #OPOUT
)}1880  BEQ PUTER
1882  LDY FCBDLN,X
1884  TYA
1886  CMP FCBMLN,X
1888  BCC PUT1
1890  JSR WRTNXS
1892  BCS PEOF
1894  JSR WTBU*}R
1896  LDY #$00
1898  BCS PUT1
1900  LDA (ICBALZ),Y
1902  STA SVDBYT
1904 PUT1 INC FCBDLN,X
1906  LDA SVDBYT
1908  STA (ZSBA+}),Y
1910  LDA #FCBFSM
1912  ORA FCBFLG,X
1914  STA FCBFLG,X
1916  JMP GREAT
1918 PUTER JMP ERDVDC
1920 PEOF JMP ERREOF
1922 W,}TBUR LDA FCBFLG,X
1924  BPL NOBURST
1926  BMI TBURST
1928 RTBUR LDA #$00
1930 TBURST STA BURTYP
1932  LDA ICCOMZ
1934  AND #$-}02
1936  BEQ NOBURST
1938  JSR TBLEN
1940  BCS NOBURST
1942  LDA ICBALZ
1944  STA ZSBA
1946  LDA ICBAHZ
1948  STA ZSBA+1
1950.} NXTBUR LDA BURTYP
1952  BMI WRBUR
1954  JSR RDNXTS
1956  BCC BBINC
1958  BCS BUREOF
1960 NOBURST SEC
1962  RTS
1964 WRBUR LD/}A DRVMDL
1966  STA FCBDLN,X
1968  TAY
1970  LDA (ZSBA),Y
1972  STA SVD1
1974  INY
1976  LDA (ZSBA),Y
1978  STA SVD2
1980  INY0}
1982  LDA (ZSBA),Y
1984  STA SVD3
1986  JSR WRTNXS
1988  LDY DRVMDL
1990  LDA SVD1
1992  STA (ZSBA),Y
1994  INY
1996  LDA SV1}D2
1998  STA (ZSBA),Y
2000  INY
2002  LDA SVD3
2004  STA (ZSBA),Y
2006 BBINC CLC
2008  LDA ZSBA
2010  ADC FCBMLN,X
2012  STA 2}ZSBA
2014  LDA ZSBA+1
2016  ADC #$00
2018  STA ZSBA+1
2020  SEC
2022  LDA ICBLLZ
2024  SBC FCBMLN,X
2026  STA ICBLLZ
2028  LD3}A ICBLHZ
2030  SBC #$00
2032  NOP
2034  STA ICBLHZ
2036  JSR TBLEN
2038  BCC NXTBUR
2040 BUREOF = *
2042  LDA ZSBA
2044  STA 4}ICBALZ
2046  LDA ZSBA+1
2048  STA ICBAHZ
2050  LDY FCBBUF,X
2052  DEY
2054  JSR SSBA
2056 BURST CLC
2058  RTS
2060 TBLEN = *
5}2062  LDA DRVTYP
2064  CMP #$01
2066  BNE TBL256
2068  LDA ICBLLZ
2070  BMI BURST
2072 TBL256 LDA ICBLHZ
2074  BNE BURST
20766}  SEC
2078  RTS
2080 DFMGET = *
2082  JSR SETUP
2084  LDA FCBOTC,X
2086 FDSCHAR
2088  AND #OPDIR
2090  BEQ GET1
2092  JMP GDC7}HAR
2094 GET1 LDA FCBDLN,X
2096  CMP FCBMLN,X
2098  BCC GET2
2100  JSR RTBUR
2102  JSR RDNXTS
2104  BCC GET1
2106 GEOF = *
218}08  JMP ERREOF
2110 GET2 TAY
2112  LDA (ZSBA),Y
2114  STA SVDBYT
2116  INY
2118  TYA
2120  STA FCBDLN,X
2122 EFLOOK = *
2124 9} LDY FCBLEN,X
2126  BNE GET3
2128  LDY FCBLSN+1,X
2130  BNE GET3
2132  CMP FCBMLN,X
2134  BCC GET3
2136  LDA #$03
2138  JMP R:}ETURN
2140 GET3 JMP GREAT
2142 DFMSTA
2144  JSR SETUP
2146  JSR FNDCODE
2148  JSR SFDIR
2150  BCS SFNF
2152  JSR TSTLOCK
2154;}  JMP GREAT
2156 SFNF JMP ERFNF
2158 DFMCLS
2160  JSR SETUP
2162  LDA FCBOTC,X
2164  AND #OPOUT
2166  BEQ CLDONE
2168  ROL FC<}BFLG,X
2170  BCC CLUPDT
2172  JSR WRTLSEC
2174  JSR RRDIR
2176  LDA FCBCNT+1,X
2178  PHA
2180  LDA FCBCNT,X
2182  PHA
2184  L=}DA FCBOTC,X
2186  AND #OPAPND
2188  BEQ CLOUT
2190  JSR DFRDSU
2192 APP1 JSR RDNXTS
2194  BCC APP1
2196  LDA FCBSSN,X
2198  S>}TA FCBLSN,X
2200  LDA FCBSSN+1,X
2202  STA FCBLSN+1,X
2204  JSR WRTN2
2206 CLOUT LDY CDIRD
2208  CLC
2210  PLA
2212  ADC FILD?}IR+DFDCNT,Y
2214  STA FILDIR+DFDCNT,Y
2216  PLA
2218  ADC FILDIR+DFDCNT+1,Y
2220  STA FILDIR+DFDCNT+1,Y
2222  LDA #DFDINU+DFD@}NLD
2224  STA FILDIR+DFDFL1,Y
2226  JSR WRTDIR
2228  JSR WRTVTOC
2230 CLDONE LDA #$00
2232  STA FCBOTC,X
2234  JMP FGREAT
223A}6 CLUPDT = *
2238  ROL FCBFLG,X
2240  BCC CLDONE
2242  JSR WRCSIO
2244  JMP CLDONE
2246 RRDIR = *
2248  LDA FCBFNO,X
2250  LSB}R A
2252  LSR A
2254  STA SFNUM
2256  JSR FNSHFT
2258  STA CDIRS
2260  JSR FNSHFT
2262  JSR FNSHF1
2264  ASL A
2266  STA CDIRC}D
2268  JMP RDDIR
2270 FNSHFT LDA #$00
2272 FNSHF1 LDY #$03
2274 FNSHF2 ASL FCBFNO,X
2276  ROL A
2278  DEY
2280  BNE FNSHF2
2D}282  RTS
2284 DFMDDC
2286  JSR SETUP
2288  LDA ICCOM,X
2290  CMP #254
2292  BEQ XFV
2294  CMP #MAXDDC
2296  BCS DVDCER
2298  E}SEC
2300  SBC #$20
2302  BCC DVDCER
2304  ASL A
2306  TAY
2308  LDA DVDCVT,Y
2310  PHA
2312  LDA DVDCVT+1,Y
2314  PHA
2316  RF}TS
2318 DVDCVT
2320  .DBYTE XRENAME-1
2322  .DBYTE XDELETE-1
2324  .DBYTE DVDCER-1
2326  .DBYTE XLOCK-1
2328  .DBYTE XUNLOCK-G}1
2330  .DBYTE XPOINT-1
2332  .DBYTE XNOTE-1
2334 MAXDDC = $27
2336 DVDCER JMP ERDVDC
2338 XFV JMP XFORMAT
2340 XRENAME
2342 H} JSR FNDCODE
2344  STY TEMP2
2346  JSR SFDIR
2348  BCC XRN1
2350  JMP ERFNF
2352 XRN1 JSR TSTLOCK
2354  JSR TSTDOS
2356  BNE I}XRN1A
2358  JSR DELDOS
2360 XRN1A LDY TEMP2
2362  JSR FNDCNX
2364  JSR TSTDOS
2366  BNE XRN1B
2368  LDY CDIRD
2370  LDA FILDIJ}R+DFDSSN+1,Y
2372  PHA
2374  LDA FILDIR+DFDSSN,Y
2376  TAY
2378  PLA
2380  JSR SETDSO
2382 XRN1B LDX #0
2384  LDY CDIRD
2386 K}XRN2 LDA FNAME,X
2388  CMP #'?
2390  BEQ XRN3
2392  STA FILDIR+DFDPFN,Y
2394 XRN3 INY
2396  INX
2398  CPX #$0B
2400  BCC XRN2L}
2402  LDX CURFCB
2404  JSR WRTDIR
2406  JSR FNDCODE
2408  JSR CSFDIR
2410  BCC XRN1
2412  JMP FGREAT
2414 XDELETE
2416  JSR M}FNDCODE
2418  JSR SFDIR
2420  BCS DFNF
2422 XDELX = *
2424  JSR XDEL0
2426  JSR TSTDOS
2428  BNE XDELY
2430  JSR DELDOS
2432 N}XDELY
2434 XDEL3 JSR WRTDIR
2436  JSR CSFDIR
2438  BCC XDELX
2440  JSR WRTVTOC
2442  JMP FGREAT
2444 XDEL0 JSR OPVTOC
2446 XDO}EL1 LDY CDIRD
2448  JSR TSTLOCK
2450  LDA #DFDEDE
2452  STA FILDIR+DFDFL1,Y
2454  JSR DFRDSU
2456  JMP XDEL2A
2458 XDEL2 JSR P}RDNXTS
2460  BCS XDEL4
2462 XDEL2A = *
2464  JSR FRESECT
2466  JMP XDEL2
2468 XDEL4 = *
2470  LDY #DVDWRQ
2472  LDA #$FF
2474Q}  STA (ZDRVA),Y
2476  RTS
2478 DFNF JMP ERFNF
2480 XLOCK
2482  LDA #DFDLOC
2484  STA TEMP4
2486  BNE XLCOM
2488 XUNLOCK
2490 R} LDA #0
2492  STA TEMP4
2494 XLCOM JSR FNDCODE
2496  JSR SFDIR
2498  BCC XLC1
2500  JMP ERFNF
2502 XLC1 LDY CDIRD
2504  LDA FS}ILDIR+DFDFL1,Y
2506  AND #$DF
2508  ORA TEMP4
2510  STA FILDIR+DFDFL1,Y
2512  JSR WRTDIR
2514  JSR CSFDIR
2516  BCC XLC1
2518T}  JMP FGREAT
2520 TSTLOCK
2522  LDY CDIRD
2524  LDA FILDIR+DFDFL1,Y
2526  AND #DFDLOC
2528  BNE TLF
2530  RTS
2532 TLF JMP ERU}FLOCK
2534 XPOINT
2536  LDA FCBFLG,X
2538  BMI PERR1
2540  LDA ICAUX4,X
2542  CMP FCBCSN+1,X
2544  BNE XP1
2546  LDA ICAUX3,XV}
2548  CMP FCBCSN,X
2550  BEQ XP2
2552 XP1 LDA FCBFLG,X
2554  BEQ XP1A
2556  JSR WRCSIO
2558  LDA #0
2560  STA FCBFLG,X
2562 W}XP1A = *
2564  LDA ICAUX4,X
2566  STA FCBLSN+1,X
2568  LDA ICAUX3,X
2570  STA FCBLSN,X
2572  JSR RDNSO
2574  BCS XPERR
2576 XX}P2 LDA ICAUX5,X
2578  CMP FCBMLN,X
2580  BCC XP3
2582  BEQ XP3
2584 XPERR = *
2586  JMP ERRPDL
2588 XP3 STA FCBDLN,X
2590  JMY}P GREAT
2592 PERR1 JMP ERRPOT
2594 XNOTE
2596  LDA FCBDLN,X
2598  STA ICAUX5,X
2600  LDA FCBCSN,X
2602  STA ICAUX3,X
2604  LDZ}A FCBCSN+1,X
2606  STA ICAUX4,X
2608  JMP GREAT
2610 XFORMAT
2612  LDA ZSBA+1
2614  STA DCBBUF+1
2616  LDA ZSBA
2618  STA DCB[}BUF
2620  LDA #DCBCFD
2622  STA DCBCMD
2624  LDA #$40
2626  STA DCBSTA
2628  LDX DRVTYP
2630  LDA #$31
2632  LDY DSKTIM
2634 \} JSR DSIO2
2636  BPL XF0
2638  CPY #$90
2640  BNE XFERR
2642 TSTFMT = *
2644  LDY #0
2646  LDA (ZSBA),Y
2648  CMP #$FF
2650  ]}BNE XFBAD
2652  INY
2654  LDA (ZSBA),Y
2656  CMP #$FF
2658  BEQ XFERR
2660 XFBAD JMP ERDBAD
2662 XFERR JMP RETURN
2664 XF0
26^}66  LDA #0
2668  TAY
2670 XF1 STA (ZDRVA),Y
2672  INY
2674  BPL XF1
2676  LDY #0
2678  LDA #2
2680  STA (ZDRVA),Y
2682  INY
2_}684  LDA #$C3
2686  STA (ZDRVA),Y
2688  INY
2690  INY
2692  STA (ZDRVA),Y
2694  LDA #2
2696  DEY
2698  STA (ZDRVA),Y
2700  IN`}Y
2702  INY
2704  STA (ZDRVA),Y
2706  LDY #DVDSMP
2708  LDA #$FF
2710 XF2 STA (ZDRVA),Y
2712  INY
2714  CPY #DVDSMP+90
2716  a}BNE XF2
2718  LDA #$0F
2720  LDY #DVDSMP
2722  STA (ZDRVA),Y
2724  LDY #DVDSMP+45
2726  LDA #0
2728  STA (ZDRVA),Y
2730  INY
b}2732  LDA #$7F
2734  STA (ZDRVA),Y
2736  JSR WRTVTOC
2738  LDA #0
2740  TAY
2742 XF3 STA FILDIR,Y
2744  INY   
2746  BPL XF3
c}2748  LDA #7
2750  STA CDIRS
2752 XF4 JSR WRTDIR
2754  DEC CDIRS
2756  BPL XF4
2758  JSR DELDOS
2760  JMP FGREAT
2762 LISTDIRd}
2764  LDA #0
2766  STA TEMP4
2768  JSR SFDIR
2770  BCC LDENT1
2772  BCS LDCNT
2774 GDCHAR
2776  BIT TEMP4
2778  BMI LDDONE
2e}780  LDY TEMP4
2782  LDA (ZSBA),Y
2784  STA SVDBYT
2786  INC TEMP4
2788  CMP #EOL
2790  BNE GDCRTN
2792  CPY #17
2794  BCS LDf}ENT
2796  LDA #$80
2798  STA TEMP4
2800 GDCRTN JMP GREAT
2802 LDENT LDA #0
2804  STA TEMP4
2806  JSR CSFDIR
2808  BCS LDCNT
2g}810 LDENT1
2812  JSR FDENT
2814  JMP GREAT
2816 LDCNT JSR RDVTOC
2818  LDY #DVDNSA+1
2820  LDA (ZDRVA),Y
2822  PHA
2824  DEY
q}ÃXÿÿÿÿÿÿÿÿÿÿÿB%DOS     SYSB*)DUP     SYSB™SDOS     ASMB×ìDOS     SRCBÌMTOS    COMBVèMTOS    DOCB">MYDCUST BASB`MYDCUST TXTB
eRMBOOT3AAUTB	oRMBOOT3ADOC2826  LDA (ZDRVA),Y
2828  TAY
2830  PLA
2832  JSR CVDX
2834  LDY #3
2836  LDX #FSCML-1
2838 MVFSCM LDA FSCM,X
2840  STA (ZSBAr}),Y
2842  INY
2844  DEX
2846  BPL MVFSCM
2848  JSR CVDY
2850  LDA #0
2852  STA TEMP4
2854  JMP FGREAT
2856 LDDONE
2858  JMP Es}RREOF
2860 FSCM .BYTE "SROTCES EERF "
2862 FSCML = *-FSCM
2864 FDENT
2866  LDY #0
2868  LDA #$20
2870  STA (ZSBA),Y
2872  LDXt} CDIRD
2874  LDA FILDIR+DFDFL1,X
2876  AND #DFDLOC
2878  BEQ LD1
2880  LDA #'*
2882  STA (ZSBA),Y
2884 LD1 INY
2886  LDA #$20u}
2888  STA (ZSBA),Y
2890  INY   
2892 LD2 LDA FILDIR+DFDPFN,X
2894  STA (ZSBA),Y
2896  INX
2898  INY
2900  CPY #13
2902  BCC v}LD2
2904  LDA #$20
2906  STA (ZSBA),Y
2908  INY
2910  STY TEMP4
2912  LDX CDIRD
2914  LDY FILDIR+DFDCNT,X
2916  LDA FILDIR+DFw}DCNT+1,X
2918 CVDX
2920  LDX #100
2922  JSR CVDIGIT
2924  LDX #10
2926  JSR CVDIGIT
2928  TYA
2930  JSR STDIGIT
2932  LDY #17x}
2934 CVDY LDA #EOL
2936  STA (ZSBA),Y
2938  LDY #0
2940  STY TEMP4
2942  RTS
2944 CVDIGIT STX TEMP3
2946  LDX #$FF
2948 CVD1y} STA TEMP2
2950  STY TEMP1
2952  INX
2954  SEC
2956  LDA TEMP1
2958  SBC TEMP3
2960  TAY
2962  LDA TEMP2
2964  SBC #0
2966  Bz}CS CVD1
2968  TXA
2970 STDIGIT ORA #$30
2972  LDY TEMP4
2974  STA (ZSBA),Y
2976  INC TEMP4
2978  LDA TEMP2
2980  LDY TEMP1
29{}82  RTS
2984 FNDCODE
2986  LDA ICBAL,X
2988  STA ZBUFP
2990  LDA ICBAH,X
2992  STA ZBUFP+1
2994  LDY #2
2996 FD0A LDA (ZBUFP)|},Y
2998  DEY
3000  BMI FNDERR
3002  CMP #':
3004 FD0B
3006  BNE FD0A
3008  INY
3010 FNDCNX
3012  LDX #11
3014  LDA #$20
3016 }}FD0 STA FNAME,X
3018  DEX
3020  BPL FD0
3022  LDX #0
3024  STX EXTSW
3026 FD1 INY
3028  LDA (ZBUFP),Y
3030  CMP #'*
3032  BNE~} FD3
3034 FD2 LDA #'?
3036  JSR FDSCHAR
3038  BCC FD2
3040  BPL FD1
3042  BMI FDEND
3044 FD3 CMP #'.
3046  BNE FD4
3048  BIT }EXTSW
3050  BMI FDEND
3052  LDX #8
3054  ROR EXTSW
3056  BCC FD1
3058 FD4 CMP #'?
3060  BEQ FD6
3062  CMP #'A
3064  BCC FD5
3€}066  CMP #$5B
3068  BCC FD6
3070 FD5 CPX #0
3072  BEQ FNDERR
3074  CMP #$30
3076  BCC FDEND
3078  CMP #$3A
3080  BCS FDEND
30}82 FD6 JSR FDSCHAR
3084  JMP FD1
3086 FDEND LDX CURFCB
3088  RTS   
3090 FNDERR JMP ERRFN
3092  CPX #8
3094  BCC FDSC2
3096  ‚}BEQ FDSC1
3098  CPX #12
3100  BCC FDSC2
3102  RTS
3104 FDSC1 BIT EXTSW
3106  BMI FDSC2
3108  RTS
3110 FDSC2 STA FNAME,X
3112 ƒ} INX
3114  CLC
3116  RTS
3118 SFDIR
3120  LDA #$FF
3122  STA DHOLES
3124  STA CDIRS
3126  STA SFNUM
3128  LDA #$70
3130  STA „}CDIRD
3132 CSFDIR
3134  INC SFNUM
3136  CLC   
3138  LDA CDIRD
3140  ADC #DFDELN
3142  BPL SFD2
3144  INC CDIRS
3146  LDA #8
…}3148  CMP CDIRS
3150  BCC SFD1
3152  BEQ SDRTN
3154 SFD1 JSR RDDIR
3156  LDA #0
3158 SFD2 STA CDIRD
3160  TAY
3162  LDA FILDI†}R+DFDFL1,Y
3164  BEQ SFDSH
3166  BMI SFDSH
3168  AND #DFDOUT
3170  BNE CSFDIR
3172  LDX #0
3174 SFD3 LDA FNAME,X
3176  CMP #'‡}?
3178  BEQ SFD4
3180  CMP FILDIR+DFDPFN,Y
3182  BNE CSFDIR
3184 SFD4 INX
3186  INY
3188  CPX #11
3190  BNE SFD3
3192  CLC
31ˆ}94  BCC SDRTN
3196 SFDSH
3198  LDA DHOLES
3200  BPL SFDSH1
3202  LDA CDIRS
3204  STA DHOLES
3206  LDA CDIRD
3208  STA DHOLED
‰}3210  LDA SFNUM
3212  STA DHFNUM
3214 SFDSH1 LDA FILDIR+DFDFL1,Y
3216  BMI CSFDIR
3218  SEC
3220 SDRTN LDX CURFCB
3222  RTS
3Š}224 WRTNXS
3226  LDA FCBFLG,X
3228  BMI WRTN1
3230  ASL A
3232  BPL WRU1
3234  ASL A
3236  STA FCBFLG,X
3238  JSR WRCSIO
3240‹}  BMI WRNERR
3242 WRU1 JMP RDNXTS
3244 WRTN1 JSR GETSECTOR
3246 WRTLSEC LDA FCBDLN,X
3248 WRTLS1 LDY DRVLBT
3250  STA (ZSBA),Œ}Y
3252 WRTN2 LDA FCBLSN+1,X
3254  ORA FCBFNO,X
3256  LDY DRVMDL
3258  STA (ZSBA),Y
3260  INY
3262  LDA FCBLSN,X
3264  STA (ZS}BA),Y
3266  JSR WRCSIO
3268  BPL WRTN5
3270 WRNERR LDA DCBSTA
3272  STA TEMP4
3274  LDA #0
3276  STA FCBOTC,X
3278  LDA TEMP4Ž}
3280  JMP RETURN
3282 WRTN5
3284  INC FCBCNT,X
3286  BNE WRTN6
3288  INC FCBCNT+1,X
3290 WRTN6
3292  JSR MVLSN
3294  LDA #0
}3296  STA FCBLSN,X
3298  STA FCBLSN+1,X
3300  STA FCBDLN,X
3302  LDA DRVMDL
3304  STA FCBMLN,X
3306  CLC   
3308  RTS   
3310} WRCSIO SEC
3312 RWCSIO LDA FCBCSN+1,X
3314  LDY FCBCSN,X
3316  JMP DSIO
3318 MVLSN LDA FCBLSN,X
3320  STA FCBCSN,X
3322  LDA‘} FCBLSN+1,X
3324  STA FCBCSN+1,X
3326  RTS
3328 RDNXTS
3330  LDA FCBFLG,X
3332  BEQ RDNSO
3334  JMP WRTNXS
3336 RDNSO = *
333’}8  LDA FCBLSN,X
3340  ORA FCBLSN+1,X
3342  BNE RDNS1
3344  SEC
3346  RTS   
3348 RDNS1 JSR MVLSN
3350  CLC
3352  JSR RWCSIO
3“}354  BMI RDIOER
3356  LDY DRVMDL
3358  LDA (ZSBA),Y
3360  AND #$FC
3362  CMP FCBFNO,X
3364  BNE RDFNMM
3366  LDA (ZSBA),Y
336”}8  AND #$03
3370  STA FCBLSN+1,X
3372  INY
3374  LDA (ZSBA),Y
3376  STA FCBLSN,X
3378  INY
3380  LDA (ZSBA),Y
3382  PHA
3384 •} LDA FCBSLT,Y
3386  BNE RDNS3
3388  PLA
3390  BMI RDNS2
3392  LDA #125
3394 RDNS2 AND #$7F
3396  PHA
3398 RDNS3 PLA
3400  STA–} FCBMLN,X
3402  LDA #0
3404  STA FCBDLN,X
3406  CLC   
3408  RTS   
3410 RDIOER JSR ERRIO
3412 RDFNMM = *
3414  LDA ICCOM,X
3—}416  CMP #$21
3418  BEQ RDDELE
3420  JSR ERFNMM
3422 RDDELE SEC
3424  RTS
3426 RDDIR CLC
3428  BCC DIRIO
3430 WRTDIR SEC
3432˜} DIRIO PHP
3434  LDA #FILDIR/256
3436  STA DCBBUF+1
3438  LDA #FILDIR&255
3440  STA DCBBUF
3442  CLC
3444  LDA CDIRS
3446  AD™}C #$69
3448  TAY   
3450  LDA #1
3452  ADC #0
3454  JMP DSYSIO
3456 RDVTOC
3458  LDY #DVDWRQ
3460  LDA (ZDRVA),Y
3462  BEQ RDš}VGO
3464  RTS
3466 RDVGO CLC
3468  BCC VTIO
3470 WRTVTOC
3472 WRVTOC LDY #DVDWRQ
3474  LDA #0
3476  STA (ZDRVA),Y
3478  SEC
3›}480 VTIO PHP
3482  LDA ZDRVA+1
3484  STA DCBBUF+1
3486  LDA ZDRVA
3488  STA DCBBUF
3490  LDY #$68
3492  LDA #1
3494 DSYSIO
34œ}96  PLP
3498 DSYSIA
3500  LDX DRVTYP
3502  JSR BSIO
3504  BMI DSIOER
3506  RTS
3508 DSIOER CMP #DCBDER
3510  BEQ DEAD
3512  J}MP ERRIO
3514 DEAD JMP ERRSYS
3516 OPVTOC
3518  JSR RDVTOC
3520  JMP WRTVTOC
3522 FRESECT
3524  LDA FCBCSN,X
3526  ORA FCBCSNž}+1,X
3528  BEQ FSRTS
3530  LDA #0
3532  LDY #3
3534 FS1 LSR FCBCSN+1,X
3536  ROR FCBCSN,X
3538  ROR A
3540  DEY
3542  BNE FS1Ÿ}
3544  LDY #5
3546 FS2 ROR A
3548  DEY
3550  BNE FS2
3552  TAY
3554  LDA #0
3556  SEC
3558 FS3 ROR A
3560  DEY
3562  BPL FS3
 }3564  PHA
3566  LDA FCBCSN,X
3568  ADC #DVDSMP
3570  TAY
3572  PLA   
3574  ORA (ZDRVA),Y
3576  STA (ZDRVA),Y
3578  LDY #DVDN¡}SA
3580  LDA (ZDRVA),Y
3582  CLC
3584  ADC #1
3586  STA (ZDRVA),Y
3588  INY
3590  LDA (ZDRVA),Y
3592  ADC #0
3594  STA (ZDRVA¢}),Y
3596 FSRTS = *
3598  RTS
3600 GETSECTOR
3602  LDY #DVDSMP-1
3604 GS1 INY
3606  CPY #90+DVDSMP
3608  BCS GSERR
3610  LDA (£}ZDRVA),Y
3612  BEQ GS1
3614  STY TEMP1
3616  PHA
3618  SEC
3620  LDY #DVDNSA
3622  LDA (ZDRVA),Y
3624  SBC #1
3626  STA (ZDRV¤}A),Y
3628  INY
3630  LDA (ZDRVA),Y
3632  SBC #0
3634  STA (ZDRVA),Y
3636  INY
3638  LDA #$FF
3640  STA (ZDRVA),Y
3642  PLA
36¥}44  LDY #$FF
3646 GS2 INY
3648  ASL A
3650  BCC GS2
3652  STY TEMP2
3654 GS3 LSR A
3656  DEY
3658  BPL GS3
3660  LDY TEMP1
36¦}62  STA (ZDRVA),Y
3664  SEC
3666  LDA TEMP1
3668  SBC #DVDSMP
3670  LDY #0
3672  STY TEMP1
3674 GS4 ASL A
3676  ROL TEMP1
367§}8  INY
3680  CPY #3
3682  BCC GS4
3684  CLC
3686  ADC TEMP2
3688  STA FCBLSN,X
3690  LDA TEMP1
3692  ADC #0
3694  STA FCBLSN+¨}1,X
3696  RTS
3698 GSERR JMP ERRNSA
3700 SETUP LDA #$9F
3702  STA ERRNO
3704  STX CURFCB
3706  TSX
3708  INX
3710  INX
3712  ©}STX ENTSTK
3714  LDX CURFCB
3716  LDY ICDNOZ
3718  STY DCBDRV
3720  DEY
3722  LDA DBUFAL,Y
3724  STA ZDRVA
3726  LDA DBUFAH,Yª}
3728  STA ZDRVA+1
3730  LDA DRVTBL,Y
3732  BEQ DERR1
3734  STA DRVTYP
3736  TAY
3738  LDA DRVMDL,Y
3740  STA DRVMDL
3742  LD«}A DRVLBT,Y
3744  STA DRVLBT
3746  LDY FCBBUF,X
3748  DEY
3750  BPL SSBA
3752  LDY #0
3754 GSB1 LDA SECTBL,Y
3756  BEQ GSB4
37¬}58 GSB2 INY
3760  CPY #$10
3762  BCC GSB1
3764 GSB3 JMP ERRNSB
3766 GSB4 LDA DRVTYP
3768  LSR A
3770  BCS GSB5
3772  INY
3774­}  CPY #16
3776  BCS GSB3
3778  LDA SECTBL,Y
3780  BNE GSB2
3782  DEY
3784  LDA #$80
3786  STA SECTBL+1,Y
3788 GSB5 LDA #$80
3®}790  STA SECTBL,Y
3792  TYA
3794  STA FCBBUF,X
3796  INC FCBBUF,X
3798 SSBA LDA SABUFL,Y
3800  STA ZSBA
3802  LDA SABUFH,Y
38¯}04  STA ZSBA+1
3806  RTS
3808 DERR1 JMP ERRDNO
3810 FRESBUF = *
3812  LDY FCBBUF,X
3814  BEQ FSBR
3816  DEY
3818  LDA #0
3820°}  STA FCBBUF,X
3822  STA SECTBL,Y
3824  LDA DRVTYP
3826  LSR A
3828  BCS FSBR
3830  LSR A
3832  STA SECTBL+1,Y
3834 FSBR RTS
±}3836 DSIO
3838  PHA
3840  LDA ZSBA
3842  STA DCBBUF
3844  LDA ZSBA+1
3846  STA DCBBUF+1
3848  PLA
3850  LDX DRVTYP
3852  JSR ²}BSIO
3854  RTS
3856 WRTDOS
3858  LDY FCBCSN,X
3860  LDA FCBCSN+1,X
3862  JSR SETDSO
3864  JSR WD0
3866  JMP GREAT
3868 DELDOS³}
3870  LDA #0
3872 DD1
3874  STA DFSFLG
3876 WRTSCO
3878  LDA #FMSORG/256
3880  STA DCBBUF+1
3882  LDA #FMSORG&255
3884  STA ´}DCBBUF
3886  LDA #0
3888  STA DCBSEC
3890  STA DCBSEC+1
3892 WRNBS INC DCBSEC
3894  LDX #1
3896  SEC
3898  JSR BSIOR
3900  CLµ}C
3902  LDA DCBBUF
3904  ADC #128
3906  STA DCBBUF
3908  LDA DCBBUF+1
3910  ADC #0
3912  STA DCBBUF+1
3914  LDA DCBSEC
3916  ¶}CMP BRCNT
3918  BNE WRNBS
3920  RTS
3922 SETDSO STY DFLINK
3924  STA DFLINK+1
3926  LDA DRVTYP
3928  STA DFSFLG
3930  LDY DRV·}MDL
3932  STY BLDISP
3934  BNE DD1
3936 WD0 LDA DFLADR
3938  STA ZBUFP
3940  LDA DFLADR+1
3942  STA ZBUFP+1
3944 WD1 LDY #0
3¸}946 WD2 LDA (ZBUFP),Y
3948  STA (ZSBA),Y
3950  INY
3952  CPY DRVMDL
3954  BCC WD2
3956  TYA
3958  STA FCBDLN,X
3960  JSR INCB¹}A
3962  CMP SASA+1
3964  BCC WD3
3966  BNE WD4
3968  LDA ZBUFP
3970  CMP SASA
3972  BCC WD3
3974  BNE WD4
3976 WD3 JSR WRTNXSº}
3978  JMP WD1
3980 WD4 RTS
3982 TSTDOS
3984  LDY #11
3986 TDF1 LDA FNAME-1,Y
3988  CMP DFN-1,Y
3990  BNE TDFR
3992  DEY
3994»}  BNE TDF1
3996 TDFR RTS
3998 DFN .BYTE "DOS   SYS"
4000 ERDBAD INC ERRNO
4002 ERAPO INC ERRNO
4004 ERRPOT INC ERRNO
4006 ERF¼}NF INC ERRNO
4008 ERDFULL INC ERRNO
4010 ERDVDC INC ERRNO
4012 ERFLOCK INC ERRNO
4014 ERRPDL INC ERRNO
4016 ERRFN INC ERRNO
4½}018 ERFNMM INC ERRNO
4020 ERRSYS INC ERRNO
4022 ERRNSA INC ERRNO
4024 ERRNSB INC ERRNO
4026 ERRDNO INC ERRNO
4028  LDA ERRNO
¾}4030 RETURN LDX CURFCB
4032  STA ICSTA,X
4034  LDX ENTSTK
4036  TXS
4038  LDX CURFCB
4040  TAY
4042  LDA SVDBYT
4044  RTS
404¿}6 ERRIO LDA DCBSTA
4048  BMI RETURN
4050 FGREAT LDX CURFCB
4052  JSR FRESBUF
4054 GREAT LDA #01
4056  BNE RETURN
4058 ERREOF À}LDA #$88
4060  BMI RETURN
4062 DRVMDL .BYTE 0
4064  .BYTE 125
4066  .BYTE 253
4068 DRVLBT .BYTE 0
4070  .BYTE 127
4072  .BYTEÁ} 255
4074 DRVTYP *= *+1
4076 RETRY *= *+1
4078 ENTSTK *= *+1
4080 CURFCB *= *+1
4082 DHOLES *= *+1
4084 DHOLED *= *+1
4086 DHÂ}FNUM *= *+1
4088 CDIRD *= *+1
4090 CDIRS *= *+1
4092 SFNUM *= *+1
4094 SVDBYT *= *+1
4096 SVD1 *= *+1
4098 SVD2 *= *+1
4100 SÃ}VD3 *= *+1
4102 EXTSW
4104 TEMP1 *= *+1
4106 TEMP2 *= *+1
4108 TEMP3 *= *+1
4110 TEMP4 *= *+1
4112 BURTYP *= *+1
4114 DRVTBL Ä}*= *+8
4116 SECTBL *= *+16
4118 DBUFAL *= *+8
4120 DBUFAH *= *+8
4122 SABUFL *= *+16
4124 SABUFH *= *+16
4126 FNAME *= *+12
4Å}128 AFNAME *= *+12
4130 MDRV *= *+1
4132 Z = *
4134  *= $1381
4136 FCB
4138 FCBFNO *= *+1
4140 FCBOTC *= *+1
4142  *=  *+1
41Æ}44 FCBSLT *= *+1
4146 FCBFLG *= *+1
4148 FCBMLN *= *+1
4150 FCBDLN *= *+1
4152 FCBBUF *= *+1
4154 FCBCSN *= *+2
4156 FCBLSN *Ç}= *+2
4158 FCBSSN *= *+2
4160 FCBCRS
4162 FCBCNT *= *+2
4164 FCBLEN = *-FCB
4166  *= FCBLEN*7+*
4168 OPIN = $04
4170 OPOUT = È}$08
4172 OPDIR = $02
4174 OPAPND = $01
4176 FCBFAS = $80
4178 FCBFSM = $40
4180 DFDFL1 = 0
4182 DFDCNT = 1
4184 DFDSSN = 3
41É}86 DFDPFN = 5
4188 DFDXFN = 13
4190 DFDELN = 16
4192 DFDEUU = 0
4194 DFDEDE = $80
4196 DFDINU = $40
4198 DFDOUT = $01
4200 DFÊ}DLOC = $20
4202 DFDNLD = $02
4204 FILDIR *= *+256
4206 DVDTCD = 0
4208 DVDMSN = 1
4210 DVDNSA = 3
4212 DVDWRQ = 5
4214 DVDSMPË} = 10
4216 ENDFMS = *
4218  .END
 FILDIR *= *+256
4206 DVDTCD = 0
4208 DVDMSN = 1
4210 DVDNSA = 3
4212 DVDWRQ = 5
4214 DVDSMP!ÿÿPm&û&ð'i

t8
)`	s8­t8)s8s8­Ó)s8Ó`­r8Ó`¢©B Vä¢©B©ŒD©8E©J©KÍ} Vä¢©B©HI Vä¢©B©HI Vä¢©B©HI Vät8¢©B©HI Väu8¢©B©HI Väx8¢©B©HI Väy8­xÎ}88ít8z8­y8íu8{8­z8iz8î{8­t8'­u8ü&¦''­z8'­{8 '¢©B©D©E©ÿH©ÿI Vä¢©B©HI Vä¢©B©HI VäÏ}¢©B©HI Vä¢©B©HI Vä¢©B©HI Vät8¢©B©HI Väu8¢©B Vält8`'(.(©…L `¯,C-L¯,©Ôx©©-Ð}	©ÀÔ©©-¨-X`­	ÒÉŸð(˜H­üÉÿð¬©-Àdð
î©-È­	Ò™D-h¨h@­©-Í¨-Ðãh¨­	ÒÍòÐ­ñÐ0­	ÒÉŸÐ
­ÿIÿÿ°˜H­	Ò¬©-Àdðî©-È™D-ò©ñ…Mh¨Ñ}©+h@¨-£.Ø­PðÉðNÉÐLD.®T½V8éV0<­TÍUÐ1­üÉÿÐ*­©-Í¨-ðî¨-¬©-Àx°¬¨-Àx°	¹D-üL.©©-¨-lþ6©P½^V­Ti &ºÒ}Šy¢½{èÐ÷¢3½èÐúºŠiª©©.lþ6­Ti &©P­yªš­Sð©SºŠiª©©@L‡.¢½{èÐ÷¢3½|èÐú­T &lþ6¢µzÓ}½}½~½¤.ý6èÐæ¢3½|èÐ÷îT­TÍQÐ ­Rð©RîQ®T½fS­TÐ©T­Ti &¢½z•½}½~½èÐæ¢3½|èÔ}Ð÷­ÐÐ­TÐU­UÍTÐ¢0½|½|­SðD­T &­SÉðÉð$©L@©0@©&@!©L@©'@©(@©L@©¯@©,@©PLƒ/­Ór8©Õ}ç©@è ²,¢©B Vä¢©B©ûD©6E©J©K Vä©…R­Ti &¢µz½{½|½}½~½èÐÚ ºŠ™yˆ½™yèˆöîTÖ}­TÉð®T½9…jðL™/©TU© &¢½z•½{½|½}½~½èÐÚ© &¢©B Vä¢©B©ûD©6E©J©K Vä­$þ6×}­%ÿ6©¢- ª \ä¢©	B©D©7E©ÿHI Vä¢©	B©)D©7E©ÿHI Vä©…V©…U©…T¢©	B©QD©7E©ÿHI Vä©…V©…U©…T©Ø}p8­p8i0¢H©B©HIh Vä¢©B©pD©7E©H©I Vä®p8½fð!¢©B©yD©7E©	H©I Vä¢©B©‚D©7E©	H©Ù}I Vä®p8½^i0¢H©B©HIh Vä¢©B©pD©7E©H©I Vä®p8½fð%ÉðB¢©B©”D©7E©	H©I Vä?¢©B©‚D©7EÚ}©	H©I Vä¢©B©‹D©7E©	H©I Vä©›¢H©B©HIh Väîp8­p8ÉðL
1©…V©…U©…T¢©	B©¦D©7E©ÿHI Vä©…Û}V©…U©…T¢©B©pD©7E©	H©I Vä­üÉÿÐLö0©…V©…U©…T¢©B©JD©8E©&H©I Vä©…V©…U©…T¢©B©ŒD©8E©ÿHÜ}I Vä©…V©…U©…T¢©B©JD©8E©&H©I Vä­Œ88é0ÉðLW6©…V©…U©…T¢©	B©»D©7E©ÿHI Vä©…V©…U©…T¢©B©ïDÝ}©7E©"H©I Vä¢©B©ŒD©8E©ÿHI Vä©…V©…U©…T¢©B©JD©8E©&H©I Vä­Œ88é0ÉðL+5®Qf©…V©…U©…T¢©BÞ}©‹D©7E©	H©I Vä©…V©…U©…T¢©B©D©8E©"H©I Vä¢©B©ŒD©8E©ÿHI Vä©…V©…U©…T¢©B©JD©8E©&ß}H©I Vä­Œ88é0®Q^V©…V©…U©…T¢©B©JD©8E©&H©I Vä©…V©…U©…T¢©B©3D©8E©H©I Vä©DŒ8¢©B©Œà}D©8E©ÿHI Vä©…V©…U©…T¢©B©JD©8E©&H©I VäLK6ÉÐLÆ5®Qf©…V©…U©…T¢©B©D©7E©	H©I Vä©…V©…á}U©…T¢©B©D©8E©"H©I Vä¢©B©ŒD©8E©ÿHI Vä­Œ88é0®Q^V®Q½fRLö0LT6®Qf©…V©…U©…T¢©B©”D©7â}E©	H©I Vä©…V©…U©…T¢©B©D©8E©"H©I Vä¢©B©ŒD©8E©ÿHI Vä­Œ88é0®Q^V®Q½fRLö0©…V©…U©…Tã}¢©	B©ÄD©7E©ÿHI Vä©…V©…U©…T¢©B©ÍD©7E©"H©I Vä¢©B©ŒD©8E©ÿHI Vä©…V©…U©…T¢©B©JD©8ä}E©&H©I Vä­Œ88é0ULö0E:›7û7}   M.ulti-T.asking O.perating S.ystem  ›         Copyright 1987 Tom Hunt       ›Job #   Stå}atus   Clocks   Type›         Active   Inactive M.L.     BASIC    TEST LOOP1-Add job 2-View job›ADD JOB ›VIEW JOB›View which æ}job===================>Add which jobü7s8 type- 1)M.L. 2)BASICHow many clocks assigned to job==>Please input filespec ?       ç}                               ›9	9 ›–‹†àá†/L. 2)BASICHow many clocks assigned to job==>Please input filespec ?       3›NOTE: The first uploaded ARC of MTOS›contained compaction errors that›PREVENTD usability.  This has been›REPAIRED in this veé}rsion.››John Nagy, CHAOS BBS (517) 371-1106››››  M.ulti-T.asking O.perating S.ystem›              M.T.O.S.›               MT-ê}OS›               MTOS›    Copyright (C) 1987 by Tom Hunt››         (beta test version)›              12-25-87›(Merry Christmë}as Atarians, from me to you!)›› MTOS is a revolutionary new O.S for Atari 8-bit computers with 256k (or more).›It is actuallyì} a O.S. extention, since it works with the resident ROM based›Atari O.S., and with DOS. With MTOS installed, the multitaskingí} environment›is made available to the Atari owner›› This document is divided into the following sections,››WHAT MULTITASKING î}IS,›WHAT MULTITASKING ISN'T,›WHAT MTOS IS, AND WHAT IT CAN DO,›WHAT MTOS ISN'T, AND WHAT IT CAN'T DO,›GETTING STARTED,›and SPï}ECIAL NOTES.››If the subject of time-sharing/multitasking is new to you, then you should›read the whole text. ›______________ð}_________________________________________________________________›WHAT MULTITASKING IS›______________________________________ñ}_________________________________________› Everyone seems to know a little about what multitasking is. Simply put,›multitaskiò}ng is a computer operating environment that allows more than one›program to be run at the same time. There is a form of multió}tasking that›occurs during the regular Atari computer functions. These are slices of time in›which your program is interrupteô}d by hardware signals, and system control is›turned over to the O.S. for the purpose of performing system tasks. The VBI›and õ}DLI are two interrupts that you've probably heard about. During these›interrupts, you can even make the O.S. perform some tasö}ks that you've made›provision for, by pointing the appropriate vector to point to your m.l.›routine.› But the realm of multit÷}asking is a realm whose domain has been traditionally›the MINI and MAIN FRAME computers. These large computers are not only cø}apable›of multitasking, but are also capable of supporting the MULTI-USER environment.›In a situation like this, individual uù}sers have a job (aka task, program,›application) running on his/her assigned terminal. To each user, it appears›as tho they hú}ave the sole use of the computer's resources. Before multiuser/  ›multitasking, users had to wait for their turn to use the cû}omputer. But using›modern operating systems, time sharing is a common thing.      › Think about time being a pie, and time-shü}aring as slices of that pie. Each job›is assigned a slice of the time pie. Some jobs get assigned bigger slices than ›others,ý} depending on their priority. So multitasking is a valuable asset if you›want to do some word-processing, while another progrþ}am is working on some other›task in the background.›_________________________________________________________________________ÿ}______›WHAT MULTITASKING ISN'T›_______________________________________________________________________________› There is an o}ld saying- "There ain't no such thing as a free lunch!". In other›words, multitasking is system taxing! You can have one prog}ram hogging 100% of ›the system's resources, or 2 programs sharing 50% of the system's resources,›and so on... The pie never }gets any bigger, you just cut the slices smaller.›Plus, there is the O.S. overhead involved in the juggling. That is, each ti}me›a task's clock counts down to zero, the multitasker has to jump in there to do›house-keeping to get things ready for the n}ext task on the agenda. This house›keeping eats up machine cycles, and might account fo 4% of the time pie with›only 2 jobs r}unning. With 3 jobs running, it goes up to 8%. With 6 jobs run-›ning it goes up to a whopping 20%!! So, the more jobs you hav}e running, the›slower your programs will execute. A multitasking environment will not give›you more processing power. It will} only distribute processing among different›jobs.›___________________________________________________________________________}____›WHAT MTOS IS, AND WHAT IT CAN DO›_______________________________________________________________________________› MTOS f	}ollows the discription about multitasking and time sharing. It allows›the Atari computer owner to run up to 6 tasks at the sa
}me time. In the past,›this kind of system environment was totaly unavailable to us. Now you can be›using a word processor, fl}ip to a basic game, flip to check on the progress›of a program doing calculations, then flip back to your word processor. And}›all while each individual program is running! You can write your own programs›that are compatable with MTOS, if a few simple} rules are observed. These›rules will be discussed later.›___________________________________________________________________}____________›WHAT MTOS ISN'T, AND WHAT IT CANNOT DO›_________________________________________________________________________}______› As you add jobs to MTOS, each program will seem to run slower. For some›programs, this is unacceptable. Other program}s, like a word processor, spend›alot of wasted time in loops, waiting for events to occur. Like waiting for›a keypress. CPU t}ime could be put to better use with MTOS.› The amount of memory available to each program is limited to 16k. The amount›of sc}reen ram allocated to each task is 1280 bytes, enough for GRAPHICS 0,1,›2,3,4,5,6,12, and 13. The programs running under MTOS} must be "well behaved".›That is to say that they shouldn't steal the VVBLKD vector, or the VKEYBD›vectors. They shouldn't in}terfere with any memory above $7FFF, or from›$2600-$3FFF. If you do so, you risk either interferring with another program,›or} at worse, a total system crash. Any free and legal addresses from›$0000-$0500 (with the exception of the above mentioned vec}tors!) MAY be used!› If your program doesn't follow the rules, there is nothing to prevent it from›doing so. On the CPU's use}d by large computers is a mask that will not›allow any illegal addressing, and will return an error message to the user.›The }6502 family of CPU's don't have this capability.›M.l. programs must be assembeled to reside from $4000-$7FFF. Your booting›ga}me disks are definatly not MTOS compatable. These programming constraints›of the multitasking environment are not out of the }ordanary, since program-›mers working on a mainframe computer must make "well behaved" programs, also.›______________________}_________________________________________________________›GETTING STARTED›___________________________________________________}____________________________› There is a built-in keyboard buffer in MTOS. Sparta dos users need to KEY›OFF before loading MT}OS. MTOS may be used with or without BASIC, but if you›want to mix running both m.l. and BASIC programs, be sure to boot with}out›holding down the option key.› When MTOS initializes, you will be looking at the executor screen. The›executor program (ca}lled Exec) will be running, and reserves task #0›for itself. You should press a 1 to initialize a new task. After this,›You c }an press a 1 to initialze a m.l. program, or a 2 to›initialize a basic program. There is also a test mode that is initialized!} by›a 3. You will be prompted for the amount of clocks to be assigned to the new›task. 2-9 is the normal amount, but you can "}input any single character. That›character will have $30 subtracted from it's atascii value, and the new value›used for the a#}mount of core clocks assinged to the new task. For instance, if›you would input a F, the value 16 would be the amount of core$} clocks assigned.›If you chose the m.l. option (2), you will be prompted for the filespec of›the object file. A m.l. program %}has to obey the rules (see above)! The›process will then be executed to get either the basic cartridge or your m.l.›program i&}nitialized.› To detach from Exec, and attach to the job you just started, press 2 to›(view) the job. You will be prompted for'} which job, which you choose from the›ones listed on the Exec screen as being active. If you did everything as›described abov(}e, you should now have your terminal attached to the new task,›and if you chose basic, you should be looking at basic's famil)}iar READY›prompt. To detach and go back to Exec, have your joystick plugged in to the›second port (actually PORT1), and press*} the trigger.›_______________________________________________________________________________›SPECIAL NOTES›_________________+}______________________________________________________________› This is a beta test version, and I request that you please ke,}ep detailed›notes about bugs, and send them to me, Tom Hunt. This will help me greatly›in getting MTOS in to the kind of shap-}e that the Atari owner deserves. Please›note what kind of jobs were running, in what order, and what exactly›happens when the.} bug shows. This beta version is just that, a test version to›work out bugs.› The m.l. loader routine only loads single stage/} load files. This will be›worked on to multi-stage load files. Also, the m.l. loader routine seems good›for only one load at 0}this time. The balance of tasks have to be basic, or›test-loops. I have to work on moving the screens to different locations,1}›since sometimes the editor balks at where some of them are presently located.›Because of this problem, some task combination2}s work better than others›(with this beta version). Just note the ones that work good, and be patient›for version 1.0 to be r3}eleased. I will also be working to support the Sparta›dos 128k ramdisk ("RD D8: /E"), so you can use a ramdisk with your MTOS4}›programs. The beta version should NOT be used with any ramdisk. It can be›loaded from a ramdisk, but will then use the exten5}ded ram banks, corrupting›any files in the ramdisk.›There is a rudimentary TOOLKIT available, and also under development. The6}›entry point to the TOOLKIT'S routines will be published later. ›Also, this version is compatable only with the internal memo7}ry upgrades, NOT›with the MIO. The keyboard buffer and the keyboard mask is still being worked›on, so you might have some dif8}ficulty with keystrokes being sent to the wrong›task.› In the best of Atari traditions, page 6 of memory is up for grabs. I s9}uggest›that you avoid using it when developing a program for MTOS.› If you make an interesting program for MTOS, please uploa:}d it to The Balloon›Works bbs. The number is 419-289-8392.› Don't wait for somebody else to make MTOS compatable programs,›do;} it yourself! It really isn't hard if you follow›the simple rules mentioned above.› If you don't have a password on The Ballo<}on Works bbs, and you want to›contact me, just leave a message in any of the message bases, and I'll spot›it.›           Tom =}Hunt›rks bbs, and you want to›contact me, just leave a message in any of the message bases, and I'll spot›it.›           Tom rFST¤DUP¤ØÌÉÄÊLMARGIÎKEÙÃÍ€€	
?}d-+-@@K:n0-(%}       ÍùÄïó ö´®µ³ Ãõóôïíéúåò      0(x(((  This program alters t@}he DUP.SYS‚))(!file, allowing you to set defaultŒ&&(screen colors and left margin.–/(/($ For advanced users, it aA}lso creates ,,($a file called RUNDUP.OBJ. RUNDUP.OBJª++(#allows you to patch binary files so´++(#that, after they arB}e loaded or run,¾((( they will return DIRECTLY to theÈ,,($MyDos menu, without first re-loadingÒ,,($the DUP.SYS file C}into RAM. To affectÜ++(#this change to a binary file calledæ-#(ANYFILE.OBJ, type from DOS:-Að	(}(CúD}  (ANYFILE.OBJ,RUNDUP.OBJ/A		(D(ANYFILE.OBJ		(E"!(RUNDUP.OBJ,ANYFILE.OBJ!(,,(,(! WARNING: Not aE}ll files will work6++(#after performing this modification.@((( BACK THEM UP FIRST. Because someJ''(programs use theF} same memory asT))(!DUP.SYS, there is nothing to jump^&&(back to. Also, the programs soh))(!modified will no longerG} terminater''(properly when loaded from other|%%(DOS's. If any of the above is†""(unclear, simply delete theH}(RUNDUP.OBJ file.šA¤5	(}(5($It is also recommended that you back®,,($up your DOS disk before running I}this¸(program.Â,(,(! You will now be asked to specifyÌ**("the default DOS menu screen colorsÖ%%(and left maJ}rgin which will beà&&(applied whenever you type DOS.ê-(-("Use up and down keyboard arrows toô))(!select screen coK}lor, use left andþ))(!right arrows to select intensity,##(press <RETURN> when you are!!(satisfied with the colorL}.(6‰-F:A,6Š-A(A&,(,(!Now use the same method to select0(screen border color.:(6‰-F:AM},6Š-A(AD+(+( Now use the left and right arrowN&&(keys to select text luminance.X(6‰-F:A	N},6Š-A	(Ab,(,(!Now select a default left margin,l((between 0 and 2) >>>v@‡€!!‡ O})‡!@AŠ)()(Now insert a disk containing a”**("BACKUP of MyDos 4.53. This programž,,($may successfP}ully modify other DOS's,¨$$(but there are no guarantees.².(.(#Press <START> to modify DOS, or any¼(other key tQ}o exit.ÆAdAUÐF:Ad,AUÚ.+F:B2y,"@)F:B2y,"@.ä  F:B2y,@R}A î;B,€;@9,ø67B,. 5@5@@	D:DUP.SYS-„-@S}@9"…)6€7„<„,.>:…,-	„$$6‚-?:C:€,<@<C:,<B, EE6ƒ-F:A2%@%@,%F:A2%@%@	,T}$AV*67ƒ%@,.4„-@ƒ>W@:7„,,"A3/@:7„%@,,"@‚M67„&@<„&@,.>:‡,WU}
APH	„R„-@ƒ\9@:7„,,"A/@:7„%@,,"A(9
A€f	„p†-„&@„%@zV}67†<†,.>:A4,	†„5@5@@	D:DUP.SYSŽ)*@AU)*@AU˜)*W}@A—)*@@¢)*@A)*@@¬'„-A	A'*@F:„,¶	„ÀX}(@@Ê--„-F:@,%F:@,$AVBU5ÔF:„,"@v
AÞ
	„
è--@@Y}D:RUNDUP.OBJò)*@AU)*@AUü)*@A$)*@@)*@Z}A%)*@@*@F:„%@,&*@F:„%@,&@$'(!(DOS has been modified.[}$('.RR104,104,104,10,10,10,10,170,169,7,157,66,3,104,157,69,3,104,157,68,3,104,157›8::73,3,104,157,72,3,32,86,228,132,\}212,160,0,132,213,96›B>-@@#>(#   ‚ÐÒÅÓÓ ÒÅÔÕÒÎ ËÅÙ ÔÏ ÃÏÎÔÉÎÕÅ–  L)@ˆ$V)@ˆ`'ˆ"]}@()ˆ"@E'6‰-‰%@j'ˆ"@))ˆ"@a'6‰-‰&@t'ˆ"@1)ˆ"@B'6‰-‰%@~'ˆ"@0)^}ˆ"@C'6‰-‰&@ˆˆ"AU$’‰ 6‰-AUœ‰!AU6‰-¦	Š‰
A€D:M_}YDCUST.BAS	Š‰
A€D:Mc This is a simple Atari BASIC program.
It customizes the DUP.SYS file of
MyDos 4.50. It allows you to set a
default screen coa}lor, border color,
text luminance, and left margin. These
defaults are applied when the user
types DOS.
 The program also creb}ates a 1-sector
binary load file called RUNDUP.OBJ.
RUNDUP.OBJ allows you to modify certain
binary load files, so that upon ec}xit,
instead of re-loading DUP.SYS, they
will jump directly to the DUP.SYS menu.
RUNDUP.OBJ does no checking to see if
an uncd}orrupted copy of DUP exists in
RAM, so be careful!
 Full documentation is included in the
program.
 checking to see if
an unccÿÿ0û0©BLVä8©h…Ôh…Õ ±ÔJ°ªÈ±ÔHÈ±ÔIÈ±ÔBÈ±ÔDÈ±ÔE˜eÔ¨©eÕH˜H VäÀˆðhh˜` ÿ®@­ÓIŒ@ÈÓIŒ@ÓˆÌ@Ž@ð;©"f}Aå3©Xæ3©Lç3©Oè3©Né3©ÿÏI®@ ÿŒ@ÈÿÏŒ@IÿÏˆÌ@Ž@`©lt©4u©r©x©y¢0 Vä80a­l4É0°Z¢ ¹l4É0	T4èÈÀ
ð­w4É ð"g}©.T4è ü0÷1
¹l4É0	T4èÈÀð©T4¢½T44ðèÐõ©IT©4U©d©4e`¢©J©B Vä0s¢ ©J©K©B Vä0]­d4­e4¢©"h}B©˜D©4E­4H­4I VäÀˆÐ@¢ ½8H½9I½4D½5E©B Vä0­SÉˆÐ¯¢©B Vä¢ ©B Vä` ¹1­4d­4d©!b¢  Vä`¢"i}µ x4Êø T0ðŒø1ó2
` Œk„Ø©EÙð	ÈÈÈÀô°¹Ð¹ÉäÐ…Ø 
0EÍ3­
	04424°3¢  0þ4LW3¢0©B Vä ¹18­åé˜4­æé4"j}4­6ÉCÐ©=T©4U©1d©4eL˜2©&T©4U©d©4e 51©It©4u©{©z©r¢0 Vä0 ²0° 51L»2­0ÉLÐ­3ÉDÐ
8nL3¢"k}èð8©0Ý€Ðö©¦Ý‚Ðï©.Ýô2ï3ƒÐè©`Ý‡Ð©èÝ„ÐÙèÝ„ÐÓðÝ†ÐÌ‹8~‹©…Ù©€…Ö©…×­6ÉCÐ©§…×©D ÑÖð+æÖÐôæ×¥×É8ðÉÐÐè¥Øð	 
04¢"l}½x4• Êø`l
È©1ÑÖÐÎÈ©:ÑÖÐÇÈ±ÖÈÉMð@ÉDÐ»©UÑÖÐµÈ©PÑÖÐ®­6¢€ÉCÐÈÑÖÐ È©.ÑÖÐ™È©SÑÖÐ’ŠÙ…Ù ©8‘Ö$ÙƒPp©EÑÖÐ	È¢@©MÑÖðÐL:3}  "m}    Setting Up 130XE Ram Dð3w4isk›             ðìåáóå ÷áéô}D8:›D8:DUP.SYS›D1:DUP.SYS›D8:DUPC.SYS›D1:DUPC.SYS›D1:RAM"n}DISK:**                                  âãè1      ðìåáóå ÷áéô}D8:›D8:DUP.SYS›D1:DUP.SYS›D8:DUPC.SYS›D1:DUPC.SYS›D1:RAM / This is a fixed version of the
RAMBOOT3 file that's distributed
with the official release archive of
MYDOS v4.50. The progra&p}m initializes
the RAMDISK, copies DUP.SYS and
MEM.SAV to it, then finishes by
copying any files it finds in a
subdirectory na&q}med RAMDISK.

 Due to a transcription error in the
source code, the copy routines work
much slower than they should. If
you'v&r}e been using this program and
have been wondering why it takes so
long, then try this one. Rename
RMBOOT3A.AUT to AUTORUN.SYS&s} (or
whatever you need for a Bootfile
name.)

 Following is the section of code
from the original RAMBOOT3.M65 that
has been &t}changed:

3540 ;COPY DUP.SYS FROM D1: TO D8:
3550 ;
3560 COPIES LDX #$30
3570     LDA #12
3580     STA ICMD,X
3590     JSR CI&u}OV
3600     JSR CLOSIT
3610     SEC 
3620     LDA MEMTOP
3630     SBC #BSS&255
3640     STA BUFLEN
3650     LDA MEMTOP+1
3660&v}     SBC #BSS/256
3661 ;bug fix!
3662 ;following was STA BUFLEN
3670     STA BUFLEN+1


 Hope you find this useful.

 >>don l&w}ebow 10/92
SS/256
3661 ;bug fix!
3662 ;following was STA BUFLEN
3670     STA BUFLEN+1


 Hope you find this useful.

 >>don l$