@L}5 _$% l0$)$$Hȱ$ UhL" `e$$%`$%`  R@P!( L(1   Y I`  d  Ld M * @  $ % CC$$)%1 Udߥ$9%: !0 S$% DD˙`  }J)Lr d M * @  $ % CC$$)%1 Udߥ$9%: !0 S$%} DD˙`  }J)Lr J  ((  p L ()   J}L= ( L 0q A    IB JC;? D W } LL  ` W )LA!  ߰")-݆ p" } $G@LL 08`Q")<2Q0 -G$Ș݆ UL# ; p8(()(0ʥ)NQ` }$GȘ݆LU )L ݆ L GȘ ݆LL )W>Z   HH)H }p h  hyhy D L> L JJ    ! LA*` BF }7'8  M HN H` 8 Z  \LdJJ!"! GFE@F (!L }EE !E^ ^ E E7EȩEdE/EȩE  D } .L }  ;F d  ;?F7F? ( .   Z D LL d } . D  L    p  E` , d)  D L) 0BM݊L݉} ML  N݆ L NLML [ TEqEHȱEqEh 0Gȹ G} HLL GɛL  LFREE SECTORS G) *Gȩ GȽG GȌ*jj >G} C8jJ3j2CD( C202C ԠBX` N 1? l LlD:RAMDISK}.COMLu L1 L ;LHL  T`  `1  ɐ     `TU  } L ? .  t`GBJ ~DEHI B V0dV!}QDEHI VF9 ,0 ,0 s0hhL  L` H hDHEh"}DEL8HI4 0 HI,0 0  9 .G VLO#},0 L4*IJ`llD1:AUTORUN.SYSNEED MEM.SAV TO LOAD THIS FILE.D1:MEM.SAV J y08 B|DEHI$} V0 0`B;DEL`?<0LV`@ʆ v s? F0Ξ05: [ BDEHI%} VY8 B V  @  /DE `E:D1:DUP.SYSERROR-SAVING USER MEMORY ON DISKTYPE Y TO &}STILL RUN DOS B;DE J  (` 9 V⪍ ઍ  -'}LLu ÝDEHILV 9 .l 9 .l  `` s$B BH(}I|DE V BLV nB,DE JLV B V BLVDEIʩ BꭝLu  } 3E:}DISK OPERATING SYSTEM II VERSION COPYRIGHT 1984 ATARI CORP.A. DISK DIRECTORY I. FORMAT DISKB. RUN CARTRIDG*}E J. DUPLICATE DISKC. COPY FILE K. BINARY SAVED. DELETE FILE(S) L. BINARY LOADE. RENAME FILE M. RUN AT ADDRES+}SF. LOCK FILE N. CREATE MEM.SAVG. UNLOCK FILE O. DUPLICATE FILEH. WRITE DOS FILES P. FORMAT SINGLEL !N',}#"&))9(&*)/h)''-&؆莟R'S  vL/ˢ L }Insert DOS 2.0s, type Y Λx -}DEfHI 1莏#q! @ y0ɛ8A0,' ȅ 1 1ild! 1L!NO SUCH ITEMSELECT.} ITEM OR FOR MENU! 0 .z:*{}.|{ 1 0 0JB 18L%|DL/}%DIRECTORY--SEARCH SPEC,LIST FILE?[# 0 0 &|D3" 1L!NOT A DISK FILEN !B 1L!E# 1 !BD0}ED:}:1BJ|DE 1DEBHI 1 h0ߢ 0.1}  0?詛 1 y0YЛ 1 ;#L" ;#L! BL1TYPE "Y" TO DELETE...DELETE FILE SPEC2}COPY--FROM, TO?OPTION NOT ALLOWED736 FREE SECTORS COPYING---D1:DIRECK.COMl# 0|D .L/%#3}##JB|DE 1BHID#E 1#0: B 1L!#͑### B 1#c$0SY4}S1}:## # # .#Ƚ# # 𩛙## 1,#PD#ELJ- <.BJD#E 5}1 1HH 0hh|DL%1}:̳# L% #D#EL% 1 0 . .0O% 1L!WILD CARDS NOT A6}LLOWED IN DESTINATION 0 <.|K}N 2 FORMAT. t* 5) 1L!`) 0NΞ 0 L1) 1 L!BAD LOAD FILELOAD FROM WHAT FILE?) 0 ?}0#B 1L!WHAT FILE TO LOCK?) 0 0$B 1L!WHAT FILE TO UNLOCK?DUP DISK-SOURCE,DEST DRIVES?TYPE "Y" IF OK TO US@}E PROGRAM AREACAUTION: A "Y" INVALIDATES MEM.SAV.FE! +L1   `*  70 2 2A} 0.* 1 y0 0)INSERT BOTH DISKS, TYPE RETURN^, 1 y038逍 N, 1L! ,B}C, t*  Lx+, 0 ^, 1 y0 , ,0,0 ,L+ ,I0 ,Vǭ0C}Ξ, 0 }, 1 y0C,ШC, 0K'!" H H 'h h Lx+!EF 5L1L!D,I,HhD}` NOT ENOUGH ROOMINSERT SOURCE DISK,TYPE RETURNINSERT DESTINATION DISK,TYPE RETURNE}`  `8 rL1`-* 1P* 1 y0Y`hhL!NAME OF FILE TO MOVE?- 0 0|DL% <.F},^ 1 70 0 .@L# .BJ 1  DEHIB V L1 ,} 1 70,L.  G}JB|,#P#DE 1 HI BDEHHII 1 B 1 ,^ 1 70,0La- B V,#PH},^ 1 70 0L#L!-* 1P* 1 y0Yj383}mm ݭI}}`8}``|* ? ɛ,`|:-)| / 1L!`DESTINATION CANT BE DOJ}S.SYS0 0H{ 24Δ 28/L!/) 2 Π 2 0 ξK}hAΞB,0 J 1 BDEHI,HÝDE 1HIHIDELSAVE-GIVE L}FILE,START,END(,INIT,RUN)O S0 1`BDEPHI V` S0H 1 L!M}0 0 1L~0`PLEASE TYPE 1 LETTER,0`hhL! 70 1L0L<1 ,;ɛ7,"ɛ:ݦ1ݥN}A"D|ݤD|ȩ:|ȩ|ɛ,,(/+.ީ1 1,ɛ`轤{NAMEO} TOO LONG B VL!` L1I H1EΝDL1|mDiE` V0`8d/8 i:222 1 LP}!ERROR- 138ɛ+,' 20*.. өr2 1``2TOO MANY DIGITSINVALID HEXAQ}DECIMAL PARAMETER800 0 8 00`,0'D800 H,ɛh`2L1NEED D1 THRU D8uR} ECIMAL PARAMETER800 0 8 00`,0'D800 H,ɛh`2L1NEED D1 THRU D8u MYDOS Version 4 User Guide T} Revision 4.50 for Atari Home Computers Copyright (U}C) 1988 by WORDMARK Systems and the authors: Charles Marslett V} 2705 Pinewood Dr. Garland, TX 75042 CIS: 73317,3662 W} UseNet: CHASM@KILLER.DALLAS.TX.US and X} Robert Puff Suite 222 2117 BuffaloY} Rd. Rochester, NY 14624 GEnie: BOB.PUFF Z} This software may be freely used and distributed provided that this copyright notice is left intact, and pro[}vided that: (1) The source code in machine readable form is provided with any binary distribution, or mad\}e available at no additional cost to the recipients of the binary distribution. (2) A binary version of a]} derivative work may be sold for a reasonable distribution charge (less than $50), and the source code in m^}achine readable format must be available. (3) A derivative work may not impose and restriction on the free _} distribution of the source code. MYDOS User Manual page 1 Version 4.50`} MYDOS Version 4 User Guide by Charles Marslett & Robert Puff a} I. INTRODUCTION The disk operating system described in this manual is modeled after the ATARb}I (trademark of ATARI Corp.) disk operating system (DOS 2), and may be considered an extension of the very "user friec}ndly" concepts introduced with this operating system. The ATARI 810 disk drive and the ATARI 1050 disk drive ad}re well supported by the DOS 2 and DOS 2.5, but those DOSs have very limited provision for higher capacity doube}le density disks (such as the XF-551), and large RAMdisks. II. SYSTEM REQUIREMENTS f} MYDOS 4.50 is intended to function as nearly as possible like ATARI DOS 2. This means it occupies as little meg}mory as possible, supports all the system calls supported by DOS 2, and in most cases uses exactly the same ph}arameters to the system calls. This means compatibility, yet MYDOS goes far beyond this. On a standard sii}ngle-sided, single density disk, MYDOS will read and write to a DOS 2.0 or 2.5 format, and vice versa. There are a few pj}rograms that will not run under MYDOS because of one or both of the following reasons: direct "illegal" calls ik}nto the main DOS or FMS code, and relying upon exact directory data (i.e., 3 digit sector counts). MYDOl}S will run on any 8-bit Atari computer with at least one disk drive (that is compatible with DOS 2). MYDOS 4.50 hasm} full READ compatibility with the DOS 2.5 format, but will only write to the first 720 sectors of the disk. (MYn}DOS has its own format for enhanced density disks that allow full access.) It is not compatible at this time witho} the OS/A+ version 4 format, or the SpartaDOS format. Up to eight disk drives (or nine if the ninth is a RAMp}disk) may be accessed, but only one is required. The resident part of the operating system (DOS.SYS) supporq}ts all documented functions of the DOS 2 operating system, so MYDOS supports most available software for the ATARI r}home computers. The memory available to a program is affected only by the number of files to be open cos}ncurrently: each disk file that may be open at the same time requires 256 bytes of buffer space. Unlike Atari DOS 2, t} memory requirements are independent of the number of disk drives or the sector size and density. The need for a 256u} byte buffer for each concurrently open file means that programs that keep large numbers of files open will have lv}ess memory available than under DOS 2 and as a result some programs (mostly older versions of compilers and language w} interpreters) will not have enough memory to run. With three file buffers (which is the default) and no residentx} drivers (such as for RS232 support), MYDOS 4.50 permits binary programs to load as low as $1F00. MYDOS Usy}er Manual page 2 Version 4.50 MYDOS 4.50 also contains a very versz}atile RAMdisk driver than can handle upgrades up to 1 megabyte that follow the guidelines of the expanded memo{}ry on the 130XE, or the Axlon upgrade for the 800. MYDOS also has a feature that will determine how much memory you|} have, and set itself up for your machine (For XE-compatible upgrades only) automatically. III. M}}ENU FUNCTIONS The menu provided by MYDOS 4.50 identifies 18 common tasks that might need to be done. R~}ather than having to write a utility program (only a few lines of BASIC would perform most of the menu functions) }or even remember the name and format of a DOS command, these tasks can be handled by entering a single letter. MY}DOS responds with a question asking for the details of the operation (which file, what density, "are you sure}?" or whatever else it might need to know). After you enter the remaining information, the function is performed }and another prompt is displayed. You should notice two interesting things about the menu: the second} line on the screen identifies the disk drives present on the system and what they appear to MYDOS to be (single or do}uble density, RAMdisk or high capacity hard disk). The next line describes the current default directory (t}hat directory used when a disk is referenced by "D:" (without a unit number after the "D" - this featur}e will be described later). The second thing to notice is that after commands fill the screen, the menu "rolls" off }the top: some DOS programs (e.g. Atari DOS 2) keep the menu, MYDOS does not. This permits more information to } be displayed when a long sequence of commands are done, or when many files are copied. To restore the menu to th}e screen, just type RETURN, and the initial screen will be restored. If you wish to abort a command} at any point, simply press BREAK. This will return you to the prompt. Pressing BREAK or RESET while writing t}o a disk will not cause any damage; however, the file you were writing will probably not be displayed in the directory}, and the free sector count may be incorrect. When entering a filename, the drive number should be en}tered, followed by a ":", and then the rest of the filename. If the drive number and ":" are not entered, th}e default drive (and directory) will be used. In the [C]opy file option, entering the drive number only will re}sult in copying every file on the main directory of that drive. A drive may be specified like this: "1", "1:", or "D1}:". If you wish to specify the file or set of files to be referenced, the drive format must include a ":" or i}t must be omitted entirely (for the default drive and directory). Examples: D1:Test.obj, 1:TEST.ASM, or D2TEST (re}ally D1:D2TEST) are valid file names, but d1:Test.obj or 1TEST.ASM are not. The file name itself is eith}er fully specified (referring to the MYDOS User Manual page 3 Version 4.50 } entire name as it is on the disk) or includes "wild card" characters (specifying a set of files). A fully specified} file name consists of one to eight characters followed by a period (".") and zero to three additional "extender" }characters. The characters in the file name may be upper or lower case letters, numbers, the underscore ("_") or the } character "@". The only exception is the first character - it may not be a number. The "wild card" characters are }the characters "*" and "?": the character "*" or the sequence ".*" end either the 8 character or the 3 } character field in the file name and match all possible characters. The character "?" matches only one single file } name character. Examples: "*.BAS" will match every file ending with .BAS. "TEST?.*" will match files TEST.BAS, T}EST1.OBJ, but will not match TESTER.BAS. In addition to the main directory (containing up to 64 files o}r directories), each MYDOS disk may also contain additional subdirectories of 64 files each. You m}ay use one of two possible characters to separate the subdirectory name(s): the ":" colon, or the ">" greater-}than sign. If the main directory contained the subdirectory BAS and the file GRAPHIC1 were in the subdirectory fil}e BAS, it could be referenced with the filename BAS:GRAPHIC1 (or BAS>GRAPHIC1). If instead, GRAPHIC1 were }in the subdirectory GR.dir which in turn were in BAS, then the reference would be to BAS:GR.dir:GRAPHIC}1 (and so on with as many names as needed). Because there is no limit to the number of subdirectories on a disk (othe}r than the buffer size of programs using the directories and number of available sectors on the disk), a sin}gle diskette can contain hundreds of files if necessary. Each subdirectory is a 8 sector file to its parent d}irectory. Thus it is limited to 64 files or subdirectories like the 8 sector root directory. If } a disk directory includes the files TEST.ASM, TEST.OBJ, TEST.C, TEST.ALM, TEASET.DOC, TRACE.FIL, and BET}S.LST, the specification "t*.*" will not match any file name (since "t" and "T" are not the same letter to MYDOS)}. The specification "T**" will match all but "BETS.LST" (since the others all begin with the letter "T"). The spe}cification "?E??.*" will match the first four files and the last one (since the 8 character part of the file name m}ust have no more than 4 characters in it and the second character must be an "E"). The specification "*.?" wi}ll match only the file TEST.C (since it is the only file name with a single character in the 3 character field). } The specification "????E**" will match the files TEASET.DOC and TRACE.FIL and none of the others (since the 8 charac}ter part of the file name must have at least 5 characters and the fifth must be an "E"). Note that MYDOS does }not always require the "." period to separate the extender from the 8 character filename. Examples: FILENAME}.EXT could be entered as FILENAMEEXT; TES*.* could be TES**, but TEST.* could NOT be entered as TEST*. } IV. THE MENU COMMANDS A. List a Directory or a Set of Files MYDOS User Manual page 4 } Version 4.50 The "A" command will list the files on a disk with their sizes, follow}ed by a line specifying the number of free sectors on the disk. If the line starts with a "*", the file has been locke}d and may not be modified or deleted without first being unlocked. A ":" before the file name marks those files} that are subdirectories. These files cannot be read or written as other files but only accessed as direct}ories or deleted (if the directory is empty). File lengths and the number of free sectors are reported as 4 digit de}cimal numbers (most other Atari DOSs report the values as 3 digit numbers). If the number of free secto}rs on a drive exceeds 9999, the free sector line will contain a 5 digit number, and be one character longer. } If a file is longer than 9999 sectors, the blank between the file extender and its sector count will contain the most }significant digit (the line size does NOT change). No indication is made of the format of the file bu}t ATARI DOS 2.0, 2.5, and MYDOS are the only three supported file formats. SpartaDOS or OS/A+ Version 4 }files must be converted to single or double density Atari DOS 2 files first in order to be usable from MYDOS. }See Section 6 for further directory information if you need more detail. The "A" command will list} the directory information to the screen if only one file specification is entered. If two are entered, the secon}d is taken as a destination file and will be overwritten (or appended to if the /A flag is used) with the directory} data. Use "2,D1:DIR.TXT" to save the directory data of drive 2 to a text file DIR.TXT on drive 1. The entry "1,}P:" will give you a printout of the directory of drive 1. To list the files in a subdirectory, ent}er the name of the directory followed by a ":" colon or ">" greater-than sign. For example, "1:TEST:BAS:" w}ill list the files in the subdirectory BAS which in turn is in the subdirectory TEST in the main directory of t}he diskette in drive 1. Using "D1:TEST>BAS>" will achieve the same results. B. Run the Cartridge } The "B" command returns control to the cartridge in the left (or only) cartridge slot. If no cartridge } is present, an error is displayed, and nothing happens. No additional information is required, so if }a cartridge is present, it is entered after loading MEM.SAV (if enabled) or immediately. C. Copy a File} or a Set of Files The "C" command is used to make another copy of one or more files of data. The} two file specifications asked for after entering the "C" identify the source and the destination of the information} being copied. Either may be fully specified disk file or a device MYDOS User Manual page 5 } Version 4.50 specification (such as E:, P: or one of the RS232 ports R1: to R4:). The dest}ination may be a set of disk files (specified with "*" and "?"s) only if the source specifies a file name for the dest}ination to use. The source may be a set and the destination a single disk file, but unless the "/A" modifier is s}pecified to append each copied file to the end of the previously copied files, only the last source file will rema}in on the destination disk. Note that the "C" command always uses the full memory space for a copy oper}ation (unlike ATARI DOS 2) and as a result, it will always invalidate MEM.SAV if it is used. Any pending program c}annot be restarted after a "C" or "J" command. There are several options when entering files to copy. }As with all filename inputs, the default drive and directory (whatever "D:" is equal to on the top status }line) will be used if Dn: is not specified. Using "/Q" at the end of the line will query you for each source file }it finds (useful for copying certain files but specifying *.*) if you wish to copy it. Using "/S" will copy all files} EXCEPT those with the first letter of the extender being "S" (will omit all *.S??). This emulates DOS 2.0's [O]} copy file option, and is useful when you want to copy all files except .SYS files. The last option is the "/X" pa}rameter. This will prompt you for disk swaps, even if the source and destination drives are not the same number. Here a}re some examples of using the [C]opy file(s) command: "TEST.BAS" will copy the file TEST.BAS on the defa}ult drive (and directory) to the same drive, but prompt you for the destination. (Same as the [O] command in DO}S 2.0.) "D1:TE*.*,3" will copy all files on drive 1 starting with "TE" to drive 3. "D4:DIR>*.TXT,E:/Q" wil}l copy all files in the DIR directory of drive 4 ending with .TXT to the screen, but will query you before each one. } "2:ADD,2:LIST/A" will append the data in the file ADD on drive 2 to the file LIST on drive 2. D. De}lete a File or Set of Files The "D" command will remove all files that match the file specificati}on entered, asking for confirmation before each one is removed. The "Delete file xxx?" prompts may be disabled b}y adding "/N" to the filename. In this case, all the matching files will be removed "quietly", and the only f}urther indication you will see is the prompt for the next command. E. Rename a File or Set of Files } The "E" command changes the name of the source file or files to match the specification in the destin}ation. Unlike other file specifications, the destination specification MUST consist of a single file nam}e: it must not contain any directory names or a disk drive number. For example, "D2:TEST>BASIC>NOTPNT.BAS,RANDIO.BAS" }is MYDOS User Manual page 6 Version 4.50 the line entered to change } the name of a file in the directories "D2:TEST>BASIC>". To change the name of the directory "BASIC" to "ATBAS}IC", the line would look like "D2:TEST>BASIC,ATBASIC". One word of caution: Never rename more than one file to another} name without wildcards in the destination. For example, renaming "*.*" to "TEST" would rename EVERY file to "T}EST", making it impossible to retrieve files other than the first one! F. Lock a File or Set of Files } The "F" command limits access to the files identified. "Locked" files may not be deleted, renamed, }added to, or replaced without being first unlocked with the "G" command. When a directory is listed, the fil}es that have been locked will be marked with an "*" in the first column. The files that are locked may be read or loaded} and executed normally, only modification or removal are prohibited. A locked directory cannot be deleted o}r renamed and no files may be written to it. The files already in it are not locked however. MYDOS will} not ask you for confirmation on each file, "Lock xxx?" unless you specify this feature by adding "/Q" to the filena}me. G. Unlock a File or Set of Files The "G" command removes the limitations imposed on a }file when it is "locked" using the "F" command. It does not alter the file or otherwise change the way the f}ile is accessed or used. The same function may be performed in a program through the CIO function to "unlock" a} file. As with the "F" function, MYDOS will not ask you for confirmation with each file t}o unlock, unless you specify the "/Q" parameter after the filename. H. Write MYDOS to a Disk } The "H" command is used to make a bootable copy of the current MYDOS 4.50 files in memory. The two files crea}ted or rewritten are "DOS.SYS" and "DUP.SYS". "DOS.SYS" is the permanently resident file management routine acc}essed through CIO and the small interface package that loads and saves MEM.SAV (an image of the part of memory } used to hold the nonresident part (DUP.SYS) of MYDOS), and the code to load the menu portion of MYDOS ("DUP.SYS"). T}he file "DUP.SYS" is a standard binary load file containing the part of MYDOS that is overwritten when a pr}ogram is loaded into memory. Neither of these files may be interchanged with any other version or type of disk } operating system; both should be treated as a single object. Never copy only DOS.SYS or only DUP.SYS to a disk} without copying the other, unless you will never access the DUP.SYS menu (called by typing "DOS"). The file}s written to the disk by the "H" command will reflect the configuration parameters currently in memory, which may } MYDOS User Manual page 7 Version 4.50 be different from the ones active i}f the system were rebooted from the master disk again. (See Section IV.O., configuring the system, for the def}inition of the configuration parameters provided in the system and how to specify a modified configuration.) } I. Initialize a Diskette The "I" command is used to "Format", or prepare a new disk for use wit}h the MYDOS operating system, or to remove all the files on an old disk. The result of the "I" command is a completely } empty disk. The only data on the diskette is that system provided information defining the space available } and the empty main directory. If the drive number is followed by a "/N" parameter, the diskette will not be ref }ormatted, but just "erased" (the directory sectors will be rewritten). If a disk has recently been formatted, } this is the fastest way to remove all the files on a diskette, rather than to use the "D" command. Use this optio }n ONLY if you know the disk was good, for this does not verify the integrity of the disk. Due to a bug in some h }ard disk interfaces, this "/N" parameter may be needed to initially format the hard disk partitions. } A diskette may also be formatted in the Atari 1050 enhanced format by responding to the question "(Type [A }] to format in Enhanced) Type [Y] to format drive x:" with a "A" (presuming the drive is a 1050 drive or co }mpatible with the 1050). The diskette is, however, not compatible with the diskettes similarly created by DOS 2.5 }. The MYDOS diskette will not be readable by DOS 2.5, but DOS 2.5 enhanced disks can be fully read by MYDOS. } An additional note: it is a good idea to set the density of the drive you are about to format, unless the dri }ve is not capable of double density. (see the "P" command for information on setting density.) Otherwise, M }YDOS will format the drive in the density of which it was last accessed. J. Duplicate a Diskette } The "J" command copies all the information from one diskette to another. The information to be copied fo }rm the source diskette is determined by specifying a starting and an ending sector number. If the range is not s }tated, the sectors marked as in use in the DOS bit map (on the VTOC sectors) are copied. The VTOC may be constructed by } Atari DOS 2, any version of MYDOS or any other compatible operating system. Specifying a secto }r range is done by adding two numbers separated by a dash and enclosed in parentheses to the end of the }drive specification(s). For example, to copy sectors 19 through 54 (tracks 1 through 3) from drive 1 to drive 3 wit }hout formatting the diskette in drive 3, the command line could be "1,3/N(19-54)". To copy the entire disk }from drive 1 to drive 2 after formatting the diskette in drive 2 the command could be "1,2(1-720)". This is the } MYDOS User Manual page 8 Version 4.50 proper way to duplicate a non-MYDOS c }ompatible diskette (of course, copies of "copy protected" disks will not normally be usable after copying but }data disks for some word processors and games can be backed up this way). Enhanced density disks may be duplicated i }n the same manner: "1,2(1-1040)". If the destination disk is already a properly formatted }diskette, the "/N" modifier may be entered after either drive number to skip the formatting of the destination dr }ive. Otherwise, the destination diskette will be formatted before the data from the source is copied to it. }That is, either "1/N,2" or "1,2/N" will copy from drive 1 to drive 2 without first formatting the diskette in }drive 2. Note that the "J" command, like that in ATARI DOS 2, will use all of available memory to dup }licate the diskette: this means that if memory has been saved using the MEM.SAV file, it will no longer be valid }. Any pending program cannot be restarted after a "C" or "J" command. K. Save Memory to Disk } The "K" command builds a binary load file containing the data from the memory area specified, as well as }adding an initialization and a run vector address if specified. If the file is not to execute an initialization r !}outine on being loaded, the initialization vector should be omitted. If it is not to run on being loaded, the run "} vector should also be omitted (trailing commas need not be entered). If either vector is entered as zero, that i #}s equivalent to omitting it. Note that the starting and ending addresses of the program and both entry points $} are all specified as hex numbers. You may append data to another file by using the "/A" parameter. This command may %} also be used for just adding a Run address to a binary file. Example: "D1:PROGRAM.OBJ/A,0,0,,4000" would add the &} run address of $4000 to the program "PROGRAM.OBJ" on drive 1. If MEM.SAV is active when the "K" '}command is entered, the MEM.SAV file is loaded before writing the file to the disk. L. Load Memory from (} a File/Disable MEM.SAV The "L" command takes a binary load file from the disk and loads it into memor )}y. The load file's initialization routine(s) will be executed and the program started at its run address unless the *}"/N" parameter is added to the file name. If the file is not a binary file, you will be returned with an "Erro +}r -- 180". A binary file that is corrupted will return an "Error -- 181". This command also disables ,}the MEM.SAV feature before loading and executing the program. To just disable MEM.SAV, press "L", then [RETURN]. -} MYDOS User Manual page 9 Version 4.50 M. Run at Address .} The "M" command is used to enter a program loaded without a run address, or to jump into any program wit /}hout the need for a return address. It may be used to restart the computer (loading the AUTORUN.SYS file, 0} if any, or a new DOS, etc...) by specifying "E477" as the jump address. If MEM.SAV is active (enabled with the "N 1}" command and not since disabled by the "L" command), the contents of memory will be restored from MEM.SAV bef 2}ore jumping to the address specified. N. Load MEM.SAV from a File/Enable MEM.SAV The "N 3}" command takes a binary load file from the disk and loads it into memory, just as does the "L" command. The difference 4} is this command enables the MEM.SAV file before loading (and executing) the program; and when control is re 5}turned to MYDOS, the contents of memory will be saved back to MEM.SAV. To just enable MEM.SAV, firs 6}t enter this DOS menu (by typing "DOS" in BASIC), then press "N" and [RETURN]. O. System and Drive Conf 7}iguration The "O" command is used to specify the type (at least logically) of the disk drives on yo 8}ur computer and is also used to specify several system configuration parameters such as the number of file buff 9}ers provided or whether a RAMdisk is present. The system configuration functions, which are not specific to ind :}ividual drives, are selected by pressing [RETURN] at the prompt "Drive number or RETURN:". The following ta ;}ble explains all the prompts for system configuration: Verify WRITEs? N=do not write with ver <}ify, else do verify Number of File Buffers? The number of disk files that can be open =} at once (RETURN = 3) RAM disk present? N=no RAM disk on the system (skips the >}next 4 questions as well), else the RAMdisk is enabled, and the next questions ?} determine what kind it is. [A]xlon or [X]E type? A=Axlon, (RETURN)=XL or XE type. If @} Axlon, skip the next question. Use default config for (x)K? N=no, specify parameters. "Y" or A} [RETURN] uses the parameters the DOS generated for your type of machine. N B}ote that the "x" is replaced by the amount MYDOS User Manual page 10 C} Version 4.50 of total memory MYDOS thinks you have. D} Skip the next three questions if answered yes. Size(K)? Size of t E}he RAMdisk area in K (8 single density sectors = 1K); this must be a F} multiple of 16 (NI 256K upgrade=192 OR 128, AXLON=112, default or 130XE=64). Contro G}l Address(HEX)? Address of the memory map control port: a RETURN specifies $D301 for the 130XE H}. For the AXLON RAMPOWER 128, enter "CFFF" here. Page sequence? [RETURN] if I}using a standard Atari 130XE or equivalent RAMdisk. Other standard values J} are (1) for the Newell industries upgrade, (2) for the RAMBO from ICD, and (5) for K} Axlon or compatible boards. The most general response is to list the page L} numbers to be used as 2 hex digits each, separated by commas, and M}continuing if necessary by ending the line with a comma. The sequen N}ce is ended with a "0" if the RAMdisk is 130XE compatible, and with O} a "FF" if it is Axlon compatible. RAM disk drive no? Drive number used to access the RAMdisk P} (RETURN for drive 9 or a drive number 1-9) A [RETURN] does not retain the current value when r Q}esponding to these questions; it changes the setting to a generally acceptable default. Even a BREAK or RE R}SET will not leave the configuration unchanged. If the configuration process is aborted for any reason, and yo S}u wish to retain your old configuration, you should reboot the computer or properly complete the configuration before do T}ing anything else. If instead of a [RETURN], a drive number had been specified, then that driv U}e would be reconfigured. The first question identifies whether the drive is to be included in system initialization V}(and thus be available for later use). If a non-existent disk is included, it does not cause any problems with the W}system: it simply causes that disk to be examined each time the system is booted and reset (adding perhaps a sec X}ond to the time it takes to boot MYDOS). If drive is excluded from the system, no further questions are asked. Otherw Y}ise, the second question asks if the drive is configurable: that is, is it like the ATARI 810 drive (with a fixed Z} configuration) or is it like the PERCOM or ATR8000 drives. If the disk is not configurable it is assumed to b [}e a 720 sector, single or double density ATARI 810/815/1050 disk drive. The third question is wh \}ether the drive is a high capacity drive (does it use the modified configuration for non-floppy disks). This is ]}for hard disks. This should be answered "N" if the drive is a MYDOS User Manual page 11 ^} Version 4.50 floppy disk drive, and "Y" if otherwise. If this question is answered "Y", the only rema _}ining question is the size (in sectors, from 256 to 65535) of the drive. Drives up to 16 million bytes (Megabytes `}) capacity can used with MYDOS, and larger drives can usually be partitioned to appear as two or more driv a}es of less than 16 million bytes capacity. See your hard disk manual for more information on this subject. b} Drives that have not been configured can still be accessed. This configuration is necessary ONLY when forma c}tting hard disks, and when using PERCOM or ATR8000 interfaces. Other than the above, the drive configuration is n d}ot necessary - MYDOS will figure out by itself what the disk is capable of by its format. If the first e} three answers are "N" (do not exclude the drive), "Y" (it is configurable), and "N" (it is not a high capacity drive), f} the configuration is asked for: Is the drive double sided, how many tracks are there on the each side of the di g}sk, and at what speed can it move the read/write head across the disk (what is its step rate). The first question q}B%DOS SYSB*)DUP SYSBSMAIN DOC{ TECH DOCREAD ME is answered with "Y" or "N" ("Y" meaning "yes" it is a double sided drive, and diskettes formatted on it will be double r} sided). The second question is answered with 35, 40, 77, or 80 followed by a [RETURN]. If you have IBM s}PC/AT style high capacity disk drives (1.2Mb capacity) you may use 77 of the 80 tracks in high capacity mode pro t}viding 1 Mb capacity by selecting 77 tracks. No other numbers are accepted. The answer to this question specifies u} both the type of drive (8 inch/high capacity 5 1/4 inch, or standard 5 1/4 inch) as well as the number of tracks v} per side. This answer is very important to the operation of the drive. The last answer ("Step Rate? w}") is entered as a code: use the following table and the drive specifications to determine the proper value: x} Code value 8 inch rate 5 1/4 inch rate 0 3 ms/track 6 ms/track (XF-551) y}1 6 ms/track 12 ms/track 2 10 ms/track 20 ms/track 3 15 ms/track 3 z}0 ms/track P. Diskette Density Selection The density used for most MYDOS commands is dete {}rmined by the data written on the diskette and the operator need not worry about setting it. The "P" command is |} provided to allow forcing the density setting for the format ("I") command, and to permit setting the densit }}y for disk drives and systems that do not automatically recognize the density of a diskette when reading ~}sector 1 (for example, Indus GT drives). Type the drive number, followed by "S" or "D" to set the densit }y of the drive. Example: "2,D". MYDOS User Manual page 12 Version 4.50 } Q. Create Subdirectories When a diskette is formatted, an empty directory (the highest } level or root directory) is created. This directory is capable of holding up to 64 files or other director }ies. If additional directories are installed in this directory, each of the additional directories can contai }n up to 64 files as well. A subdirectory is installed in an existing directory using the "Q" command and } responding with the filename of the new directory. For example, if "TEST" and "BAS" are two subdirectories in the r }oot directory of the diskette in drive 1, "1:TEST:COMM" or "1:BAS>COMM" would create a new directory in the " }TEST" or "BAS" directories respectively. "1:NEW:COMM" would not create a directory, however, since the } directory "NEW" does not already exist. A "Q" command with the response "1:NEW" would create it, however, and }a second "Q" command with the response "1:NEW:COMM" would then create the new directory called "COMM" within the } directory "NEW". Each directory takes up 8 sectors, and after it is created it may only be referenc }ed as a directory (followed by a ":" or ">"), or deleted. It may only be deleted if it is empty (if it has no files in } it). A directory may be emptied by using the "D" (delete) command and specifying the files "*.*" or "*.*/N" to remo }ve all the files in the directory. You can most safely do this by specifying the full name of the directory: D5:M }SGBASE>SEPT1983>*.*/N for example. Now to delete the SEPT1983 subdirectory, simply delete "D5:MSGBASE>SEPT1983" (note } no trailing ":" or ">"). R. Set the Default Directory The "R" command is used to select } a directory to be used when a file is referenced without the drive number: that is, when file names such as "TEST }1.BAS" or "D:NEWCODE" or even ":BIGFILE" are used, they are assumed to be in the default directory. Programs run under }MYDOS can access the contents of the current default directory by using a file name of the form "D:..." witho }ut the drive number explicitly entered. They may also set the default directory by calling the CIO Function code }41 (set directory) routine. The directory is set by inserting the diskette with that directory }on it into the desired drive, then entering the file name of the directory with no trailing ":" or ">". } If the diskette in the drive containing the default directory is replaced, or if the default directory on a diskette }is deleted, the default should be redefined. The one exception is if the default directory is the root or } main directory on a diskette: this is because the root directory is at the same location on all diskettes. } V. FILE MANAGER FUNCTIONS PROVIDED THROUGH CIO MYDOS User Manual page 13 }Version 4.50 This part of the documentation is included in the technical notes of MYDOS, so consu }lt those notes for details. VI. CIO FUNCTION CODES PROVIDED BY MYDOS 4.50 This part of th }e documentation is included in the technical notes of MYDOS, so consult those notes for details. VIII }. MYDOS MEMORY MAP This part of the documentation is included in the technical notes of MYDOS, so c }onsult those notes for details. IX. CUSTOMIZING A SYSTEM DISK Much of this section is }covered in the technical notes, but here are some things pertinent to all users. RAMdisk Configurations } The RAMdisk driver included in MYDOS 4.50 will automatically configure itself on XE compatible m }emory upgrades. It is suggested you use this feature. If you REALLY want to set up the system to your specification }s (such as configuring it to NOT use the banks BASIC XE uses), the power is available. This is necessary when } AXLON compatible upgrades for the 800. The default page sequence uses the standard XE banks first. } The file RAMBOOT.M65, the MAC/65 assembler source code for the file RAMBOOT.AUT, is an AUTORUN.SYS file that simula }tes the operation of Atari DOS 2.5 and its RAMdisk handler. It "formats" the RAMdisk and copies DUP.SYS to it, }as well as setting the RAMdisk unit number and the unit used to access the DUP.SYS and MEM.SAV files to 8. } By modifying the code in the source file and creating a modified AUTORUN.SYS file, the drive used to save MEM.SAV }and fetch DUP.SYS can be modified, other files than just DUP.SYS can be copied to the RAMdisk when the system }is booted, or any other operation could be performed that you find useful. Number of Files Open at Once } The number of files that may be simultaneously open is set with the same byte as in ATARI DOS 2: loca }tion $0709 (decimal 1801). This byte contains a number from 1 to 16 setting the number of disk files that may be } open at the same time. Normally it is set to 3, the smallest number that supports all the functions in the MYDOS } menu. Specifically, a copy from one disk file to another requires three MYDOS User Manual pag }e 14 Version 4.50 open disk files. The value in the distributed version of MYDOS 4.50 is } three; to permit more or fewer files, use the "O" command followed by a RETURN. To permanently change the maximum num }ber of files, use the "H" command to write a modified MYDOS system to a disk. Each file that may be open at one }time requires the allocation of a 256 byte buffer, so setting this value to 7 (instead of 3) will cause MYDOS to be } 1024 bytes longer than before, and the programs loaded must begin no lower than $22E9 (instead of $1EE9). In correspo }nding fashion, by setting the value to 1, a BBS program can be loaded in with 512 bytes of additional memory if o }nly one disk file is ever open at one time (commonly true of bulletin board programs). Controlling the }Disk Drives Accessed by MYDOS Like ATARI DOS 2, MYDOS automatically identifies the disk drives that are } present when booted up initially and any time it is reinitialized (some programs do this on exiting to the DOS } and it is always done if the RESET key is pressed). MYDOS 4.50 is distributed with drives 1 and 2 configured, } all others are omitted in order to speed up the booting process. To modify the maximum configuration MYDOS wi }ll use, invoke the "O" command for each drive to be added to (or removed from) the system. Pressing the RESET key wil }l then use this value to redefine the drive. To permanently change the maximum drive configuration, use the "H" } command to write out a new copy of MYDOS back to your system disk. Selecting or Disabling Write-with-V }erify MYDOS 4.50 is distributed with the verify disabled, to speed up writing. Most drives (and disks) }are very reliable, and function with no problems with the verify disabled. However, if you experience problems }, or want to be 100% sure your data written will be good, use the "V" command to enable verify. As with DOS 2.0, }the byte at location $0779 (1913 decimal) controls all write operations to the disk. If the value "poked" i }nto it is $57 (87 decimal), then all writes will be read back to verify the action was successful. If the value " }poked" into $0779 is $50 (80 decimal) then writes will be assumed successful, and will be performed in about one thi }rd the time taken when verify is enabled. Note that this address is not the same as in MYDOS 4.0 and 4.1 (whe }re it was $0770 or 1904 decimal). To permanently alter the DOS, rewrite it back to the disk using the "H" command }after changing it. X. DISK DRIVE INTERFACE (via SIO) This information is covered in the tech }nical notes for MYDOS. XI. RAMDISK INTERFACE This information is also covered in the technic }al notes. MYDOS User Manual page 15 Version 4.50 XII. INITIAL } INSTALLATION INSTRUCTIONS The following checklist is a procedure to bring up MYDOS on a new hardwar }e configuration. It should be done with an un-modified copy of MYDOS 4.50, and care should be taken to perform the s }teps in exactly the order specified. HOW TO GET FROM THE DRIVEWAY TO THE FREEWAY: 1. Before turn }ing on your computer and disk drive, make sure that you do not have a cartridge installed in the computer. 2 }. Turn on the disk drive, and when it stops spinning, insert the MYDOS master diskette. Close the door. 3. T }urn on the computer (with OPTION held if using an XL or XE computer). After several seconds, the MYDOS menu should }appear on the screen. A prompt "Select Item (RETURN for menu):" will be displayed. 4. If you have }a standard 2-drive system with single sided 40 track drives and either no RAMdisk or the standard Atari 1 }30XE memory configuration, continue with step "6". 5. Configure each of your disk drives only if they are hard } disks or special double-sided (XF-551) or more than 40 tracks by entering the "O" command followed by the drive } number, and answering the questions the program asks you. 6. If you need to run a program that requires more } than 3 disk files active at a time or you otherwise want alter one of the default parameters, press the }"O" key followed by the RETURN key and answer the system configuration questions. This is also where the }RAMdisk configuration needs to be entered if it is not a standard 130XE RAMdisk. **** 7. Now, insert a blank } diskette in the disk drive and format it with the "I" command (remove the write protect tab if the diske }tte is write protected -- but first ask yourself why you put it there in the first place!). If an error message } is displayed, insert another diskette; the first is bad. 8. Write the system files DOS.SYS and DUP.SYS to the n }ewly formatted diskette with the "H" command and skip to step "10" if you do not have an ATARI 130XE comp }uter or some other RAMdisk usable with the MYDOS RAMdisk driver. 9. If you have an ATARI 130XE computer or h }ave another kind of RAMdisk and wish to use the MYDOS RAMdisk driver, copy RAMBOOT3.AUT on the master dis }kette to AUTORUN.SYS on the new diskette (use the "C" command, and if you have only one drive, enter the }command line "RAMBOOT.AUT,AUTORUN.SYS/X" when MYDOS asks for the file names).** 10. This is now your primary }system backup disk: place a write protect tab on it, label it, and use the "J" command to make as many wo }rking boot disks as you need from it. NOTES: MYDOS User Manual page 16 } Version 4.50 The RAMBOOT3 program will first format your RAMdisk, then copy the files in }a directory called RAMDISK on your boot disk to the RAMdisk if such a directory exists. To take advantage of t }his feature, use the "Q" command to create the directory and copy the files you want on the RAMdisk to it. If }you do not want your ramdisk formatted each time you boot-up, which is not recommended, skip this step (step 9). J }ust be sure you format your ramdisk before using it. ** -- The source file for the RAM disk boot is also in }cluded; if you feel the urge, modify it to copy other files to the RAMdisk in addition to DUP.SY }S (take out the MEM.SAV setting code, too, if you need the space) or perhaps add a call to change the } default disk drive to D8:. Just remember that if you string together several autorun files, only the last will h }ave its RUN address invoked. **** -- NEWELL INDUSTRIES 800XL UPGRADE -- this RAMdisk can use } page sequence 0, page sequence 1, or the default. The E3/E7/EB/EF pages can be reserved for BASIC/XE in } extended mode by setting the RAMdisk size to 128K and the sequence to 1. Enter Size=128 (or 192 if you will } not be using BASIC/XE often), Control address=D301, and Page sequence=1. In the second case this wil }l use the area also used by BASIC/XE, but it will access it only after the first 128K are used up. By } setting the size to 128K, BASIC/XE and the RAMdisk are fully separate and cannot interfere with each } other. **** -- AXLON RAMPOWER 128 for the Atari 800 computer -- MYDOS 4.50 comes configured for the A }tari 130XE -- if you are installing it on an 800 with an Axlon RAMPOWER board, you must disable the 1 }28K mode on the RAMPOWER board until you have configured the MYDOS RAMdisk code by entering Size=112, } Control address=CFFF and Page sequence=5. Then write the DOS back to a new diskette, copy AUTORUN.SYS } to it, switch the RAMPOWER board back to 128K and boot up the new diskette. MYDOS User M }anual page 17 Version 4.50 XIII. ERROR CODES AND THEIR SOURCES } 3 Last byte of file read, next read will return EOF (MYDOS) 128 Break Abort (OS ROMs) 129 IOCB already open }(OS ROMs) 130 No such device defined in the system (OS ROMs) 131 Write-only IOCB, cannot read (OS ROMs) 13 }2 Invalid command (OS ROMs) 133 Device or File not open (OS ROMs) 134 Invalid IOCB reference (OS ROMs) 1 }35 Read-only IOCB, cannot write (OS ROMs) 136 Attempt to read past end of file (MYDOS) 137 Truncated record ( }OS ROMs) 138 Device Timeout (OS ROMs) 139 Device NAK (serial bus failure, OS ROMs) 141 Cursor out of ran }ge for graphics mode (OS ROMs) 142 Data frame overrun (serial bus failure, OS ROMs) 143 Data frame checksum err }or (serial bus failure, OS ROMs) 144 Device I/O error (in peripheral hardware, OS ROMs) 146 Function not provid }ed by handler (OS ROMs) 147 Insufficient RAM for graphics mode selected (OS ROMs) 160 Invalid Unit/Drive Number }, zero or greater than 7 (both MYDOS and OS ROMs) 161 No sector buffer available, too many open files (MYDO }S) 162 Disk full, cannot allocate space for output file (MYDOS) 163* Write protected or system error - disk is n }ot readable (MYDOS) 164 File number in link does not match the file's directory location (MYDOS) 165 } Invalid file name (MYDOS) 166 Byte not within file, invalid POINT request (MYDOS) 167 File locked, cannot be a }ltered (MYDOS) 168 Invalid IOCB (MYDOS and OS ROMs) 169 Directory full, cannot create a 65-th entry in a direct }ory -- entries may be used for "lost" as well as real files (MYDOS) 170 File not in directory, c }annot be opened for input (MYDOS) 171 IOCB not open (MYDOS and OS ROMs) 172* File or directory of same name alre }ady exists in parent directory, cannot create (MYDOS) 173 Bad diskette or drive, cannot format diskette (MY }DOS) 174* Directory not in parent directory (MYDOS) 175* Directory not empty, cannot delete (MYDOS) 180* No }t a binary file (MYDOS) 181* Invalid address range for binary file, ENDBUGS", there can be no other directory in the main directory named "TEST" nor a file>} named "TEST" there. From BASIC, the XIO 34 call is "XIO 34, #iocb, 8, 0, dirname", where "iocb" is a?}ny available unit number, and "dirname" is the name of the new directory (it does not end with a trailing ":" or ">"). @} The final function added to those provided by ATARI DOS 2 is XIO 41, to define the default directory. A}The default directory is that which will be searched for a file if the file name begins with "D:". In ATARI DOS B}2 this default directory is always "D1:" but in MYDOS, the default directory can be any root or subdirectory on any disC}k in the system. The buffer address passed to CIO in the XIO 41 call is the address of a string that containD}s the default directory name, terminated with either an end of line ($9B) or a null byte ($00). The directory will E}be accessed before returning to the calling program so that an error in specifying the directory will be reported as eF}arly as possible. VI. CIO FUNCTION CODES PROVIDED BY MYDOS 4.50 Function code 3, OPEN G} The open function uses the buffer address to point to an ATASCII string terminated with a non-alphanumeric chaH}racter or wildcard. This string is the name of the file to be accessed or created. A good terminator for thiI}s string is either a null ($00) or an end of line ($9B). The AUX1 byte defines the usage of the file: 4J} for input, 6 for directory data reading, 8 for creating/replacing output, 9 for creating/appending outputK} and 12 for input/update (without extension). The AUX2 byte is used when a file is replaced or created, anL}d contains two significant bits: bit 2 set causes the MYDOS format to be used even if the diskette is a 40 track singlM}e sided diskette; MYDOS Technical Manual page 3 Version 4.50 and bit 6 set rN}esults in the file being LOCKed initially without and additional CIO call. For input, update or directory access AUX2O} is ignored, and the length is always ignored. In normal use, AUX2 is set to zero emulating ATARI DOS 2 usage. P} MYDOS does not leave partially full sectors when appending to a file. This has two positive effects on prQ}ograms which open files in append mode: the open will fail if the file cannot be appended to rather than the R} close (in ATARI DOS), and the file size will not change if a file appended to is copied to another disk (in ATARI DOS}S it may grow smaller). Function code 5, GET RECORD The get record function reads a liT}ne of data into a buffer, the buffer being defined by its starting address and length. The line is defined as theU} data bytes in the file up to an end of line character ($9B) or until the buffer is full, whichever occurs first. The V}line is also terminated if the end of the file is read. All record I/O is buffered in MYDOS, so record transferW}s are necessarily slower than unbuffered I/O. No other fields of the IOCB are referenced or needed. NotX}e that the ATARI ROM OS supports single byte I/O through the accumulator if the buffer length is set to 0. IY}n this case, GET RECORD and GET CHARACTERS function exactly the same way. Function code 7, GET CHARACTEZ}RS The get characters function reads a fixed number of bytes from a file into a buffer, the buffer [} being defined by its address and length (two 16-bit numbers in the IOCB). The only cases where the buffer is n\}ot always filled is if the end of the file is read, or the file cannot be read withut error. As is the case with ge]}t record calls, a single byte may be read into the accumulator by setting the length field to zero. A get ch^}aracter CIO call will perform unbuffered I/O if the buffer is longer than 256 bytes (ATARI DOS 2 sets a simi_}lar threshold at 128 bytes). For this reason a single long input is considerably faster than several short ones. `} Only the buffer address and length in the IOCB are used by the get characters function. Funca}tion code 9, PUT RECORD The put record command will write a single line to an output file: the linb}e defined by the starting address of the buffer and either the length of the buffer if no end of line ($9B) bytesc} are encountered, or the first end-of-line byte. Only the buffer address and length in the IOCB are used in this d}command. MYDOS Technical Manual page 4 Version 4.50 Function codee} 11, PUT CHARACTERS The put characters command will write the contents of a buffer defined by its addf}ress and length (in the IOCB) to a file opened for output. Unless an error occurs, the entire buffer is always writteng} to the file unless the write is to an output/update file and the end of the file is reached or the write is to ah}n output/append or create file and the disk has filled. Only the buffer address and length fields in the IOCBi} are used when the put character function is used. The single byte put character (using the A register as data) isj} supported by setting the length bytes to 0. Function code 12, CLOSE A FILE To terminatk}e use of a file (and for an output file, to write the incomplete buffer to the disk) the IOCB used to access the fl}ile should be closed. This is done by setting the function code in the IOCB to 12 and calling CIO. The close m}function does not use any of the data in the IOCB for any purpose whatsoever. Function code 13, READ STn}ATUS The read status command is issued to an unopened IOCB, with the buffer address that of a fileo} name string. If the file is not present, that error condition is returned, if it is locked, that error cop}ndition is returned; otherwise, a normal completion code is returned. Only the function code and the buffer address iq}n the IOCB are needed. Function code 32, RENAME A FILE The rename function is passed ar} character string (pointed to by the buffer address in the IOCB), the first part of the string being a file name s}identifying the file or files to be renamed. Following a single invalid character (one invalid in the file name, that}t is) a simple file name must also be present: this second file name cannot include any drive or directory namu}es. An example, using a comma as the invalid character, is "D2:TEST>PGMS>A.OUT,ZCPY" which will change the stringv} needed to access the file "D2:TEST>PGMS>A.OUT" to "D2:TEST>PGMS>ZCPY" -- Note that only the last file naw}me (if subdirectories are used) can be changed; to change "PGMS" to "MLPROGS", the buffer must contain "Dx}2:TEST>PGMS,MLPROGS". Wild card characters should appear only in the part of the file name following y}the last ":" or ">", and their effect is best described by an example. The string "D2:TEST:*.*,*.XYZ" will renaz}me all the files in the TEST directory, making each extension ".XYZ". If the directory had the files "ATEST.BAS",{} "LOG", and "REPORT.XYZ" in it, the result would be a directory with "ATEST.XYZ", "LOG.XYZ" and "REPORT.XYZ" in i|}t. MYDOS Technical Manual page 5 Version 4.50 Function code 33, D}}ELETE A FILE The delete function removes any files that match the file name string pointed to by t~}he buffer address in the IOCB. Files locked will not be deleted, so must be unlocked before being removed, and s}ubdirectories that are not empty (that have a file in them) cannot be deleted. If either case is attempted, the corres}ponding error code is returned. Otherwise, the files are removed and their data areas are returned to the fr}ee space on the disk. Files that have been deleted may be "undeleted" by various utility programs ONLY if the d}ata has not been overwritten. If you write to the disk after you have just deleted a file on that disk, chances are} that you will not be able to recover the file. Function code 34, MAKE DIRECTORY The m}ake directory function will create a new subdirectory on a disk (it is not used to create the first directory, that is t}he "root directory" identified by the drive specification "D1:", for example). It is called through CIO by st}oring the address of the new directory's name in the IOCB buffer address and setting up AUX1 and AUX2 as f}or an open call (see Function code 3), normally AUX1=8 and AUX2=0. This function has no effect on the current default di}rectory; and if it is desired to make the newly created directory the default one, the program must make a set }directory call (Function code 41) following the make directory call (the order is very important, because th}e default directory cannot be set to a nonexistent directory). CIO function code 42 may also be used to acc}ess this function; the parameters are the same. Function code 35, LOCK FILE A file can }be "locked" so that it may not be modified or deleted inadvertently, by calling CIO with the lock function. The buf}fer address is used to point to a file name string that identifies the files on the disk to be locked. The onl}y file modification that can be performed on a locked file is to unlock it. The lock function can be requested f}or a file already locked, and it will return no error (unlike other file modification calls to CIO), but the status of }the file will not have been changed. Function code 36, UNLOCK FILE The unlock functio}n is identical to the lock function except that is re-enables the modification or deletion of an unlocked file. }A file that is not locked can be unlocked with no error returned and no change in the file's status. } MYDOS Technical Manual page 6 Version 4.50 Function code 37, POINT TO POSITION IN F}ILE The point function is passed the 3-byte disk address to be positioned to in the twelfth throug}h fourteenth bytes of the IOCB. On return, the next byte read from that IOCB will be the one that was read or }written next after the corresponding note function was executed. A point call to CIO can only be made if the fi}le can be used for input: that is, if it is opened for input or update processing. The first two bytes} of the disk address are a sector number (in low byte / high byte format) and the third is the byte (offset) w}ithin the sector. If a file is being appended to (opened with AUX1=9), a point function call made }before closing the file may return an unexpected error (this cannot happen with the note function, however). } A problem can occur if the file being pointed to is in the last half of a 16 Megabyte disk: Atari BASICs do not }allow sector number to be greater than 32767. A solution is to use the following BASIC substitute for the POIN}T statement (with attention paid to the fact the the two AUX bytes must match the two used to open the file): OPEN }#K,AUX1,AUX2,"D5:BIGFILE" . . . NOTE #K,SECTOR,BYTE . . . POKE 844+16*K,ASC(CHR$(SECTOR)):POKE 845+16*K,I}NT(SECTOR/256) POKE 846+16*K,BYTE: XIO 37,#K,AUX1,AUX2,"D:" Function code 38, NOTE POSITION IN FILE } The note function returns in the twelfth through fourteenth bytes of the IOCB a 3-byte disk address }that may be used at a later time to reposition the file using the point function. The note function can be} used on files open for input, output, update or appending. The three bytes returned are the low byte of the sect}or address, the high byte of the sector address, and the byte (offset) within the sector, in that order. } Function code 39, LOAD MEMORY The load memory function takes a file formatted in the ATARI DOS }2 executable program format (generated by the "K" command, by the assembler/editor cartridge, by AMAC or MAC65, o}r by any of several compilers for the ATARI computers), and loads its contents into memory as specified in th}e file. No offset control is provided and no part of memory is protected from the loading process. The }initialization and execution addresses (if any) can be individually enabled and disabled, to permit loading and patc}hing a program then writing it back to the disk for normal use. To load a program into memory, the }address of the file name string is stored into the buffer address, and a value of 4, 5, 6 or 7 MYDOS Technical M}anual page 7 Version 4.50 is stored into the AUX1 field. If AUX1 is 4, both the init}ialization routines and the run address are executed after closing the IOCB, but before returning to the calli}ng program. If AUX1 is 5, the initialization routines are disabled, but the program will be run. If AUX1 is } 6, the initialization routines will be run, but the program execute address will be loaded and ignored. If AUX1 is 7, t}he text of the program will be loaded into memory, but no other activity will be performed. CIO function code 40 }performs the exact same function as this (39). Function code 41, SET DEFAULT DIRECTORY }The set directory command will use the contents of the buffer as a file name and open the specified file, determining i}f that file is a valid directory. If so, it will become the new default directory. File names of the form "D:..}." will be assumed to be in the default directory (which may be on any disk in the system and may be either the r}oot directory of that disk or a subdirectory). Only the buffer address and the function code are significa}nt when setting the default directory. Function code 254, FORMAT A DISKETTE The format} function uses the contents of the buffer pointed to by the buffer address to identify the drive containing the diske}tte to be formatted. If both AUX1 and AUX2 are zero, the disk is formatted according to the capacity data} in the system control table defined using the "O" command. If AUX2 bit 7 is set to 1, the format operation is s}kipped and an empty file system is written to the diskette. (This assumes the disk is preformatted.) The remaining} 15 bits of AUX1 and AUX2 are used as a 15 bit number to specify the number of sectors available on the dis}k (permitting the use of the last few sectors of a disk outside the file system if desired). You may format a dis}k in enhanced density (MYDOS compatible - not DOS 2.5 type format) by setting AUX1 to 1, and AUX2 to 0. } VII. DISK STRUCTURES SUPPORTING MYDOS 4.50 MYDOS uses the first three sectors of a disk to hold some disk} information and the initial boot program if the drive contains DOS.SYS and DUP.SYS. Sector $168 (and sectors} $167, $166, $165, etc., if the disk is formatted as a higher capacity disk not compatible with ATARI DOS 2) i}s used to hold a bit map of available sectors and several flag byte identifying the default format of files on the} disk. Sectors $169 through $170 contain main disk directory data, identifying the files on the disk, their }sizes and their starting sector number. Note that this usage, when the diskette is a 719 sector volume} declared to be DOS 2 compatible, is in fact exactly the same as ATARI MYDOS Technical Manual page 8 } Version 4.50 DOS 2 would make of the disk. The default single sided format differs only in} that sector 720 is not left out of the file system in MYDOS but is used to provide 708 free sectors on an empty disk}ette rather than 707. The only significant change made when the high capacity format is chosen are that en}ough sectors before sector $168 are allocated to assign a bit for each sector that may be allocated for a file or} for use by the system (VTOC sectors). The high capacity disk directory may be read by ATARI DOS 2, but the data in th}e files can only be accessed if it falls in the first 1023 sectors of the disk and then only if the file number} checking code in DOS 2 is disabled. This format allows MYDOS to support accessing disks of up to 65,535 sectors }of 256 bytes each (approximately 16 Mbytes). Compatibility with DOS 2.0 is further reduced if subdirectories} are used: to ATARI DOS, the subdirectories will appear to be simple files with unreadable contents. The subdire}ctory's files will not be accessible and the subdirectory can be damaged if it is written to (even by appendin}g). For this reason disks sold to the general public, exchanged with friends, and so forth, should not contain} subdirectories unless there is reason to require that the disk be used with MYDOS. A further problem with exc}hanging diskettes is that there are many different formats are used by vendors of double sided disk systems for }the ATARI. For this reason, double sided disks not only require both computers use MYDOS, but also require that they use} the same disk system (PERCOM, SWP, Astra, Supra or whatever). VIII. MYDOS 4 MEMORY MAP } The MYDOS 4.50 disk operating system occupies the area from $0700 to $1EE9 at all times, and when the menu is }active, it also occupies the area from $294A to $4331. In addition, the first 16 bytes of the floating point} workspace ($D4 - $E3) are used by MYDOS at that time. Unlike ATARI DOS 2, MYDOS utility program (DUP.SYS) also} calls the floating point ROM entry points. The nonresident part of MYDOS 4.50 starts loading at $294A, reserving the }area from $1EE9 to $2949 for disk buffers and drivers. Allocating three disk buffers leaves approximately 2500 byt}es for resident drivers that will not be overwritten by the nonresident portion of DOS (contained in DUP.SYS). } IX. CUSTOMIZING A SYSTEM DISK RAMdisk Configurations The RAMdisk driver included in MYDOS} 4.50 is already configured for the Atari 130XE computer and uses its banked 64K bank of memory for the RAMdisk} providing 499 free (single density, 128 byte) sectors. The "O" command provides an easy way to alter the operati}on of the RAMdisk driver for other common banked memory systems. Most memory upgrades for the 800XL and 130XE u}se the same mapping address (the PORTB pins of the PIA chip in the computer). A 128K RAMdisk can be used in an Ata}ri 130XE using the last unused pin of that port with no tradeoff (selecting the 64K bank is done with bit 6 of PORTB). }If MYDOS Technical Manual page 9 Version 4.50 you have such a system, ente}r a "2" for the page sequence, or just use the default sequence (answer "Y" to the question "Use default page s}equence..."). If, instead of adding one or two rows of 64K memory chips, the enhancement replaces the} entire memory of the computer with a single bank of 256K memory chips, then the banked memory is a total of 192K }and 4 bits of the port must be used to select the memory bank. Often the bits used are bits 0 and 1 (as in the 130XE) a}long with bit 6 (as in the expansion above) and bit 5 (used in the 130XE to control banking screen memory). }Programs that bank screen memory (a very odd proposition because of the difficulty of obtaining a useful sharing }of the banked memory page bits between the screen memory and the program) will not work with this enhancement. T}his is the approach used in the Newell Industries 256K upgrade for the Atari 800XL. If the enhancement} is done externally or to an Atari 800 (with its internal expansion slots), a new dedicated register may be used }to map the 16K pages. The Axlon RAMPOWER 128 card for the Atari 800 works this way. In such a system, the pages are se}lected by writing a page number to the mapping address and no sharing of the 8 bit byte is necessary. The addr}ess of the mapping register is entered explicitly and page sequence "5" is the proper sequence. Th}e page sequence table coded into MYDOS is actually one 32 byte sequence table of numbers to be stored in the mapping reg}ister. MYDOS 4.50 has a feature that allows you to skip all this configuration stuff, if the upgrade is XE co}mpatible. In the configuration, MYDOS will create a custom page sequence for your memory upgrade, and update } its pointers. If you choose to enter our own page sequence, the number of 16K pages determines the number of bytes} to be used. You may use one of the four built-in page sequences by entering a single sequence number: } Seq. No. Page Values OR Value 0 E3, E7, EB, EF, C3, C7, CB, CF, } 83, 87, 8B, 8F, A3, A7, AB, AF 00 1 C3, C7, CB, CF, 83, 87, 8B, 8F, E3, E7, EB, EF}, A3, A7, AB, AF 00 2 A3, A7, AB, AF, C3, C7, CB, CF, E3, E7, EB, EF, 83, 87, 8B, 8F } 00 5 00, 01, 02, 03, 04, 05, 06, 07, 08, 09, 0A, 0B, 0C, 0D, 0E, 0F FF } As an example, if you want to use BASIC/XE in extended mode (or use a program that uses the standard XE banks: page}s E3, E7, EB, and EF), and you have a RAMBO XL upgrade, set your memory size to 128K, and use the page sequence }of: 1 or C3,C7,CB,CF,83,87,8B,8F,00 This will configure the RAMdisk to use only that }part of the banked memory not used by BASIC/XE. MYDOS Technical Manual page 10 V}ersion 4.50 The file RAMBOOT.M65, the MAC/65 assembler source code for which is in the file RAMBOOT.AU}T, is an AUTORUN.SYS file that simulates the operation of Atari DOS 2.5 and its RAMdisk. It "formats" the RAMdisk }and copies DUP.SYS to it, as well as setting the RAMdisk unit number and the unit used to access the DUP.SYS and MEM.SA}V files to 8. By modifying the code in the source file and creating a modified AUTORUN.SYS file, the }drive used to save MEM.SAV and fetch DUP.SYS can be modified, other files than just DUP.SYS can be copied to the }RAMdisk when the system is booted, or any other operation could be performed that you find useful. N}umber of Files Open at Once The number of files that may be simultaneously open is set with the same b}yte as in ATARI DOS 2: location $0709 (decimal 1801). This byte contains a number from 1 to 16 setting the number of di}sk files that may be open at the same time. Normally it is set to 3, the smallest number that supports all} the functions in the MYDOS menu. Specifically, a copy from one disk file to another requires three open disk } files. The value in the distributed version of MYDOS 4.50 is three. To permit more or fewer files open, use the "O"} command followed by a RETURN. To permanently change the maximum number of files, use the "H" command to w}rite a modified MYDOS system to a disk. Each file that may be open at one time requires the allocation of a 256 }byte buffer so setting this value to 7 (instead of 3) will cause MYDOS to be 1024 bytes longer than before and the }programs loaded must begin no lower than $22E9 (instead of $1EE9). In corresponding fashion, by setting }the value to 1, a BBS program can be loaded in with 512 bytes of additional memory if only one disk file is e }ver open at one time (commonly true of bulletin board programs). Controlling the Disk Drives Acces }sed by MYDOS Like ATARI DOS 2, MYDOS automatically identifies the disk drives that are present when  }booted up initially and any time it is reinitialized (some programs do this on exiting to the DOS, and it is a }lways done if the RESET key is pressed). MYDOS 4.50 is distributed with drives 1 and 2 configured, all others are o }mitted in order to speed up the booting process. To modify the maximum configuration MYDOS will use, invoke th}e "O" command for each drive to be added to (or removed from) the system. Pressing the RESET key will then use t}his value to redefine the system to configure the drive(s). To permanently change the maximum drive configura}tion, use the "H" command, writing a new copy of MYDOS back to the system disk. Selecting or Disabling} Write-with-Verify MYDOS 4.50 is distributed with the write-with-verify disabled. Most drives are ver}y reliable, and will never give you a problem. If MYDOS Technical Manual page 11 Version 4.}50 however, something happens (such as dust, a scratch in the oxide coating, or some other problem} that may have arisen since the diskette was formatted), the error might not be detected. In short, if you }are working with something that you want to be absolutely positive that is perfectly saved, enable the verify. This }will cause the drive to read back each sector after it has been written, taking about three times the time normall}y taken on a write without verify. The byte at location $0779 (1913 decimal) controls all write oper}ations to the disk. If the value "poked" into it is $57 (87 decimal), then all writes will be read back to verify} the action was successful. If the value "poked" into $0779 is $50 (80 decimal) then writes will be assumed succes}sful, and will be performed in about one third the usual time. Note that this address is not the same as in MYDO}S 4.0 and 4.1 (where it was $0770 or 1904 decimal). This byte is defined, along with the count of the number of} buffers to be allocated when the file manager is initialized, whenever the "O" command is invoked with no d}rive specified (only a RETURN is entered in response to the drive number query). To permanently alter it, rewr}ite MYDOS back to the disk using the "H" command after changing it. X. DISK DRIVE INTERFACE (via SIO)} The physical disk drives and diskettes are external to the ATARI home computers and the ones suppo }rted by MYDOS 4 are normally attached to the "serial interface connector" on the right side or back of the!} computer. High capacity or "hard" disks may also be connected to the parallel port of 800XL and 130XE computer"}s. The software in the operating system (OS ROMs) to access the devices attached to either connector is call#} the "serial I/O driver" or SIO for short. The MYDOS disk operating system uses this lower level driver to pa$}ss all commands and information to and from the physical disk drive. Several commands were defined by ATARI to commu%}nicate with the 810 disk drive and most vendors of high performance disk systems for the Atari have adopted&} a slightly extended version of this set of commands. MYDOS will operate with any disk system that supports the'} original 810 set, but the full set of commands is required to support all the functions. An additional fu(}nction necessary to perform automatic density selection is that the drive should automatically identify the de)}nsity of a diskette inserted in it if the first operation is a read of sector 1 (this is necessary if the drive is *}to boot either a double or single density diskette). The minimum set of disk drive functions to support M+}YDOS (or ATARI DOS 2 for that matter) are: Device Unit Command Direction Byte Ct. Aux Bytes Function,} $31 Drive# $21 From Drive 128/256 0 FORMAT DISK $31 Drive# $50 To Drive 128/256 1-} to 720 WRITE(no vfy) $31 Drive# $52 From Drive 128/256 1 to 720 READ $31 Drive# $53 From Dr.}ive 4 0 READ STATUS $31 Drive# $57 To Drive 128/256 1 to 720 WRITE(verify) MYD/}OS Technical Manual page 12 Version 4.50 An additional command to format a disk 0}in enhanced density is: $31 Drive# $22 From Drive 128 0 FORMAT DISK The 1} byte count is always 128 for a single density drive, and is 128 for the first three sectors (1, 2, and 3) of a doub2}le density drive. All other sectors on a double density drive are 256 bytes long. The FORMAT f3}unction is always called with a sector number in the range of 4 to 720. It expects 128 bytes from a single density dri4}ve and 256 bytes from a double density drive. The first byte returned by the READ STATUS command is ex5}pected to indicate the sector size -- if bit 5 is a 1 (bit 7 is the sign bit) then the sectors are large (6}256 bytes), otherwise, they are small (128 bytes). The auxiliary bytes are treated as an address to a se7}ctor on the diskette, and range from 1 to 720 (when in DOS 2 compatible mode) or from 1 to 65,535 (when accessing 8}large capacity disk drives). The additional functions used to configure disk drives dynamicall9}y are: Device Unit Command Direction Byte Ct. Aux Bytes Function $31 Drive# $4E From D:}rive 12 1 to 720 READ CFG. $31 Drive# $4F To Drive 12 1 to 720 WRITE CFG. ;} These commands are used to configure the drives identified as configurable when the computer is booted: if there<} is a possibility that a drive does not support these functions, it should be defined as not configurable (such =}as the Atari 810). These commands are used by the "P" command, permitting reconfiguration of a disk drive on de>}mand - to format a diskette, for example. (To format a disk on an Indus drive, issue the "P" command to manually chan?}ge the density on the drive, then issue the "I" command). The individual bytes transferred by these comm@}ands are defined as follows: byte 0: Tracks per side (40 for a standard disk drive) byte 1: Disk Drive SteA}p Rate (as defined by Western Digital) byte 2: Sectors/Track -- high byte (usually 0) byte 3: Sectors/Track -- B}low byte(18 for standard diskettes) byte 4: Side Code (0=single sided, 1=double sided) byte 5: Disk Type Code -C}- bit 2: 0=single density, 1=double density bit 1: 0=5 1/4 inch diskette, 1=8 inch diskette driD}ve byte 6: High byte of Bytes/Sector (0 for single density) byte 7: Low byte of Bytes/Sector (128 for single deE}nsity) byte 8: Translation control bit 7: 1=40 trk. disk I/O on an 80 trk. drive MYDOS TechnicaF}l Manual page 13 Version 4.50 bit 6: Always 1 (to indicate drive present) G} bit 1: 1=Handle sectors 1, 2, and 3 as full size sectors bit 0: 1=Sectors number 0-17 (for examplH}e), not 1-18 bytes 9-11 are not used by MYDOS (see the drive documentation as to how they are to be setI} -- usually zeroes) MYDOS 4.50 (unlike version 3 of MYDOS) always issues a read configuration commJ}and before writing the configuration to the drive and the contents of bytes 9-11 are written exactly as they wereK} previously read (so they will be unchanged). An additional change in the usage of this command occurs L}when a high capacity drive (hard disk) is configured. The configuration data for such a drive is very complex and M}is usually built into the drive controller or written to a "magic" location on the disk. To support partitioning N} of very large drives (larger than 16 Megabytes), MYDOS issues a write configuration command with the number of sectoO}rs per track set to number of sectors on the disk (as defined in the "O" command) and the number of tracks seP}t to 1. All high capacity disks are large sector drives (using 256 byte sectors). XI. RAMDISK INTERFACEQ} The driver built into MYDOS is intended to eliminate the need for a "driver" to use common RAMdiskR}s. The required characteristics of the hardware can be most easily described by explaining what is done to accesS}s a "sector" of information in the extended RAM. (1) The sector number is divided by 128, and the T} remainder is then multiplied by 128 and added to 16384 to get the starting address of the sector iU}n memory (it will be between $4000 and $7F00). (2) The quotient is used to index into a page table withV} one entry for each 16K that can be mapped into the memory area from $4000 to $7FFF. (3) The value fromW} the page table is "AND"ed with the contents of the mapping register, and rewritten to the mapping X}register. (4) The data is moved to(from) the area addressed above from(to) the sector buffers at the hiY}gh end of MYDOS. (5) The mapping register is restored to its non-mapping state by "OR"ing the restore vZ}alue with the mapping register and rewriting the result to the mapping register. No[}te that this design forces the RAMdisk to be single density and no larger than 4 megabytes (256 pages of 16384 byte\}s each). Out of that, MYDOS can only accommodate 1 megabyte, because its table is only 64 bytes long. ]} As you can see, the parameters are the mapping register address ($CFFF for Axlon boards and $D301 for the Atari^} 130XE), the value "OR"ed into the register to reset the system back to normal ($FF for MYDOS Technical Manual _} page 14 Version 4.50 the Axlon and $00 for the Atari 130XE types), and the actual`} map values. These values are determined by first identifying the bits in the mapping register to be left unchanga}ed and setting them to "1" in each of the register values. Second, the remaining bits are filled in with all the b}legal combinations of mapping bits. The values for the Newell Industries 256K upgrade (which uses the 130XE mapping, morc}e or less) are given here as an example -- future versions of this board and other memory expansion products ared} not necessarily going to use the same design. Bits: 7 6 5 4 3 2 1 0 1 x x x x x 1 1e} First, set bits 7, 1 & 0 in all the mapping values 1 0 0 0 0 0 f}1 1 These are the 12 (of 32) 1 0 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 0 g} 0 0 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 1 1 1 1 1 0 0 1 0 1h} 1 1 1 0 0 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 0 0 1 1 1 i} 1 1 1 0 1 0 1 1 1 1 1 0 1 1 1 1 Lastly, since the mapping register at $D301 j}can be read as well as written, it can be left exactly as it was before we used it by "OR"ing the initial vak}lue with zero (leaving it unchanged). The sequence is then: 83, 87, 8B, 8F, C3, C7, CB, CF, E3, E7, EB, EF, 0.l} MYDOS Technical Manual page 15 Version 4.50 XIII. ERRm}OR CODES AND THEIR SOURCES 3 Last byte of file read, next read will return EOF (MYDOS) 128 Break Abort n}(OS ROMs) 129 IOCB already open (OS ROMs) 130 No such device defined in the system (OS ROMs) 131 Write-oo}nly IOCB, cannot read (OS ROMs) 132 Invalid command (OS ROMs) 133 Device or File not open (OS ROMs) 134 p}Invalid IOCB reference (OS ROMs) 135 Read-only IOCB, cannot write (OS ROMs) 136 Attempt to read past end of filq}e (MYDOS) 137 Truncated record (OS ROMs) 138 Device Timeout (OS ROMs) 139 Device NAK (serial bus failurer}, OS ROMs) 141 Cursor out of range for graphics mode (OS ROMs) 142 Data frame overrun (serial bus failure, OS Rs}OMs) 143 Data frame checksum error (serial bus failure, OS ROMs) 144 Device I/O error (in peripheral hardware, t}OS ROMs) 146 Function not provided by handler (OS ROMs) 147 Insufficient RAM for graphics mode selected (OS ROMu}s) 160 Invalid Unit/Drive Number, zero or greater than 7 (both MYDOS and OS ROMs) 161 No sector buffv}er available, too many open files (MYDOS) 162 Disk full, cannot allocate space for output file (MYDOS) 163* Writw}e protected or system error - disk is not readable (MYDOS) 164 File number in link does not match the file's directoryx} location (MYDOS) 165 Invalid file name (MYDOS) 166 Byte not within file, invalid POINT request (MYDy}OS) 167 File locked, cannot be altered (MYDOS) 168 Invalid IOCB (MYDOS and OS ROMs) 169 Directory full, z}cannot create a 65-th entry in a directory -- entries may be used for "lost" as well as real files (MYD{}OS) 170 File not in directory, cannot be opened for input (MYDOS) 171 IOCB not open (MYDOS and OS ROMs) 17|}2* File or directory of same name already exists in parent directory, cannot create (MYDOS) 173 Bad disket}}te or drive, cannot format diskette (MYDOS) 174* Directory not in parent directory (MYDOS) 175* Directory not emp~}ty, cannot delete (MYDOS) 180* Not a binary file 181* Invalid address range for loading a binary file, END