ML}  X c0C)HCCH Mhhݩh `eCDiCD`  RyHP   * 1H0芢@) Y0.Ș`i#(PM\ \b Pgi 0  % @ / ՠ`d   0DDԝL  B. Run the Cartridge The "B" command returns control to the cartridge in the left (or only) cartridge slot. If no car}tridge is present, an error is displayed, and nothing happens. No additional information is required, so if a cartridge is pr}esent, it is entered after loading MEM.SAV (if enabled) or immediately. C. Copy a File or a Set of Files The "C" com}mand 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 }specification (such as E:, P: or one of the RS232 ports R1: to R4:). The destination may be a set of disk files (specified wi }th "*" and "?"s) only if the source specifies a file name for the destination to use. The source may be a set and the destina }tion a single disk file, but unless the "/A" modifier is specified to append each copied file to the end of the previously co }pied files, only the last source file will remain on the destination disk. Note that the "C" command always uses the fu }ll memory space for a copy operation (unlike ATARI DOS 2) and as a result, it will always invalidate MEM.SAV if it is used. A}ny pending program cannot be restarted after a "C" or "J" command. There are several options when entering files to cop}y. As with all filename inputs, the default drive and directory (whatever "D:" is equal to on the top status line) will be us}ed if Dn: is not specified. Using "/Q" at the end of the line will query you for each source file it finds (useful for copyin}g 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 t}o copy all files except .SYS files. The last option is the "/X" parameter. This will prompt you for disk swaps, even if the s}ource and destination drives are not the same number. Here are some examples of using the [C]opy file(s) command: "TEST.BA}S" will copy the file TEST.BAS on the default drive (and directory) to the same drive, but prompt you for the destination. (S}ame as the [O] command in DOS 2.0.) "D1:TE*.*,3" will copy all files on drive 1 starting with "TE" to drive 3. "D4:DIR>}*.TXT,E:/Q" will copy all files in the DIR directory of drive 4 ending with .TXT to the screen, but will query you before eac}h 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. Delete a File o}r Set of Files The "D" command will remove all files that match the file specification entered, asking for confirmation} before each one is removed. The "Delete file xxx?" prompts may be disabled by adding "/N" to the filename. In this case, all} the matching files will be removed "quietly", and the only further indication you will see is the prompt for the next comman}d. E. Rename a File or Set of Files The "E" command changes the name of the source file or files to match the specif}ication in the destination. 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 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 } "ATBASIC", 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 "TEST", making i"}t impossible to retrieve files other than the first one! F. Lock a File or Set of Files The "F" command limits acces#}s to the files identified. "Locked" files may not be deleted, renamed, added to, or replaced without being first unlocked wit$}h the "G" command. When a directory is listed, the files 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 locke&}d directory cannot be deleted or 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 (}filename. G. Unlock a File or Set of Files The "G" command removes the limitations imposed on a file when it is "loc)}ked" using the "F" command. It does not alter the file or otherwise change the way the file is accessed or used. The same fun*}ction may be performed in a program through the CIO function to "unlock" a file. As with the "F" function, MYDOS will n+}ot ask you for confirmation with each file to unlock, unless you specify the "/Q" parameter after the filename. H. Write M,}YDOS 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-} created or rewritten are "DOS.SYS" and "DUP.SYS". "DOS.SYS" is the permanently resident file management routine accessed thr.}ough CIO and the small interface package that loads and saves MEM.SAV (an image of the part of memory used to hold the nonres/}ident part (DUP.SYS) of MYDOS), and the code to load the menu portion of MYDOS ("DUP.SYS"). The file "DUP.SYS" is a standard 0}binary load file containing the part of MYDOS that is overwritten when a program is loaded into memory. Neither of these file1}s may be interchanged with any other version or type of disk operating system; both should be treated as a single object. Nev2}er copy only DOS.SYS or only DUP.SYS to a disk without copying the other, unless you will never access the DUP.SYS menu (call3}ed by typing "DOS"). The files written to the disk by the "H" command will reflect the configuration parameters currently in 4}memory, which may be different from the ones active if the system were rebooted from the master disk again. (See Section IV.O5}., configuring the system, for the definition of the configuration parameters provided in the system and how to specify a mod6}ified configuration.) I. Initialize a Diskette The "I" command is used to "Format", or prepare a new disk for use wi7}th the MYDOS operating system, or to remove all the files on an old disk. The result of the "I" command is a completely empty8} disk. The only data on the diskette is that system provided information defining the space available and the empty main dire9}ctory. If the drive number is followed by a "/N" parameter, the diskette will not be reformatted, but just "erased" (the dire:}ctory 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 option ONLY if you know the disk was good, for this does not verify t<}he integrity of the disk. Due to a bug in some hard disk interfaces, this "/N" parameter may be needed to initially format th=}e hard disk partitions. A diskette may also be formatted in the Atari 1050 enhanced format by responding to the questio>}n "(Type [A] to format in Enhanced) Type [Y] to format drive x:" with a "A" (presuming the drive is a 1050 drive or compatibl?}e with the 1050). The diskette is, however, not compatible with the diskettes similarly created by DOS 2.5. The MYDOS diskett@}e 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 gA}ood idea to set the density of the drive you are about to format, unless the drive is not capable of double density. (see theB} "P" command for information on setting density.) Otherwise, MYDOS will format the drive in the density of which it was last C}accessed. J. Duplicate a Diskette The "J" command copies all the information from one diskette to another. The inforD}mation to be copied form the source diskette is determined by specifying a starting and an ending sector number. If the rangeE} is not stated, the sectors marked as in use in the DOS bit map (on the VTOC sectors) are copied. The VTOC may be constructedF} by Atari DOS 2, any version of MYDOS or any other compatible operating system. Specifying a sector range is done by adG}ding two numbers separated by a dash and enclosed in parentheses to the end of the drive specification(s). For example, to coH}py sectors 19 through 54 (tracks 1 through 3) from drive 1 to drive 3 without formatting the diskette in drive 3, the commandI} 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 cJ}ommand could be "1,2(1-720)". This is the proper way to duplicate a non-MYDOS compatible diskette (of course, copies of "copyK} protected" disks will not normally be usable after copying but data disks for some word processors and games can be backed uL}p this way). Enhanced density disks may be duplicated in the same manner: "1,2(1-1040)". If the destination disk is alM}ready a properly formatted diskette, the "/N" modifier may be entered after either drive number to skip the formatting of theN} destination drive. Otherwise, the destination diskette will be formatted before the data from the source is copied to it. ThO}at 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. NoP}te that the "J" command, like that in ATARI DOS 2, will use all of available memory to duplicate the diskette: this means thaQ}t if memory has been saved using the MEM.SAV file, it will no longer be valid. Any pending program cannot be restarted after R}a "C" or "J" command.ved using the MEM.SAV file, it will no longer be valid. Any pending program cannot be restarted after  K. Save Memory to Disk The "K" command builds a binary load file containing the data from the memory area specified, T}as well as adding an initialization and a run vector address if specified. If the file is not to execute an initialization roU}utine on being loaded, the initialization vector should be omitted. If it is not to run on being loaded, the run vector shoulV}d also be omitted (trailing commas need not be entered). If either vector is entered as zero, that is equivalent to omitting W}it. Note that the starting and ending addresses of the program and both entry points are all specified as hex numbers. You maX}y append data to another file by using the "/A" parameter. This command may also be used for just adding a Run address to a bY}inary file. Example: "D1:PROGRAM.OBJ/A,0,0,,4000" would add the run address of $4000 to the program "PROGRAM.OBJ" on driveZ} 1. If MEM.SAV is active when the "K" command is entered, the MEM.SAV file is loaded before writing the file to the dis[}k. L. Load Memory from a File/Disable MEM.SAV The "L" command takes a binary load file from the disk and loads it in\}to memory. 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 "Error -- 180". A bin^}ary 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]. M. Run at Address The "M" command is `}used to enter a program loaded without a run address, or to jump into any program without the need for a return address. It ma}ay be used to restart the computer (loading the AUTORUN.SYS file, if any, or a new DOS, etc...) by specifying "E477" as the jb}ump address. If MEM.SAV is active (enabled with the "N" command and not since disabled by the "L" command), the contents of mc}emory will be restored from MEM.SAV before jumping to the address specified. N. Load MEM.SAV from a File/Enable MEM.SAV d} The "N" command takes a binary load file from the disk and loads it into memory, just as does the "L" command. The differe}ence is this command enables the MEM.SAV file before loading (and executing) the program; and when control is returned to MYDf}OS, the contents of memory will be saved back to MEM.SAV. To just enable MEM.SAV, first enter this DOS menu (by typing g}"DOS" in BASIC), then press "N" and [RETURN]. O. System and Drive Configuration The "O" command is used to specify th}he type (at least logically) of the disk drives on your computer and is also used to specify several system configuration pari}ameters such as the number of file buffers provided or whether a RAMdisk is present. The system configuration functions, whicj}h are not specific to individual drives, are selected by pressing [RETURN] at the prompt "Drive number or RETURN:". The follok}wing table explains all the prompts for system configuration: Verify WRITEs?N=do not write with verify, else do verifyl} Number of File Buffers?The number of disk files that can be open at once (RETURN = 3) RAM disk present?N=no RAM dism}k on the system (skips the next 4 questions as well), else the RAMdisk is enabled, and the next questions determine what kindn} it is. [A]xlon or [X]E type?A=Axlon, (RETURN)=XL or XE type. If Axlon, skip the next question. Use default config fo}or (x)K?N=no, specify parameters. "Y" or [RETURN] uses the parameters the DOS generated for your type of machine. Note that p}the "x" is replaced by the amount of total memory MYDOS thinks you have. Skip the next three questions if answered yes. Sq}ize(K)?Size of the RAMdisk area in K (8 single density sectors = 1K); this must be a multiple of 16 (NI 256K upgrade=192 OR r}128, AXLON=112, default or 130XE=64). Control Address(HEX)?Address of the memory map control port: a RETURN specifies $Ds}301 for the 130XE. For the AXLON RAMPOWER 128, enter "CFFF" here. Page sequence?[RETURN] if using a standard Atari 130XEt} or equivalent RAMdisk. Other standard values are (1) for the Newell industries upgrade, (2) for the RAMBO from ICD, and (5) u}for Axlon or compatible boards. The most general response is to list the page numbers to be used as 2 hex digits each, separav}ted by commas, and continuing if necessary by ending the line with a comma. The sequence is ended with a "0" if the RAMdisk iw}s 130XE compatible, and with a "FF" if it is Axlon compatible. RAM disk drive no?Drive number used to access the RAMdiskx} (RETURN for drive 9 or a drive number 1-9) A [RETURN] does not retain the current value when responding to these questy}ions; it changes the setting to a generally acceptable default. Even a BREAK or RESET will not leave the configuration unchanz}ged. If the configuration process is aborted for any reason, and you wish to retain your old configuration, you should reboot{} the computer or properly complete the configuration before doing anything else. If instead of a [RETURN], a drive numb|}er had been specified, then that drive would be reconfigured. The first question identifies whether the drive is to be includ}}ed in system initialization (and thus be available for later use). If a non-existent disk is included, it does not cause any ~}problems with the system: it simply causes that disk to be examined each time the system is booted and reset (adding perhaps }a second to the time it takes to boot MYDOS). If drive is excluded from the system, no further questions are asked. Otherwise}, the second question asks if the drive is configurable: that is, is it like the ATARI 810 drive (with a fixed configuration)} or is it like the PERCOM or ATR8000 drives. If the disk is not configurable it is assumed to be a 720 sector, single or doub}le density ATARI 810/815/1050 disk drive. The third question is whether 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 flop}py disk drive, and "Y" if otherwise. If this question is answered "Y", the only remaining question is the size (in sectors, f}rom 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 drives of less than 16 million bytes capacity. See your hard disk manual for} more information on this subject. Drives that have not been configured can still be accessed. This configuration is ne}cessary ONLY when formatting hard disks, and when using PERCOM or ATR8000 interfaces. Other than the above, the drive configu}ration is not necessary - MYDOS will figure out by itself what the disk is capable of by its format. If the first three} answers are "N" (do not exclude the drive), "Y" (it is configurable), and "N" (it is not a high capacity drive), the configu}ration is asked for: Is the drive double sided, how many tracks are there on the each side of the disk, and at what speed can} it move the read/write head across the disk (what is its step rate). The first question is answered with "Y" or "N" ("Y" mea}ning "yes" it is a double sided drive, and diskettes formatted on it will be double sided). The second question is answered w}ith 35, 40, 77, or 80 followed by a [RETURN]. If you have IBM PC/AT style high capacity disk drives (1.2Mb capacity) you may }use 77 of the 80 tracks in high capacity mode providing 1 Mb capacity by selecting 77 tracks. No other numbers are accepted. }The answer to this question specifies both the type of drive (8 inch/high capacity 5 1/4 inch, or standard 5 1/4 inch) as wel}l as the number of tracks per side. This answer is very important to the operation of the drive. The last answer ("Step} Rate?") is entered as a code: use the following table and the drive specifications to determine the proper value:Value 8 i}nch rate 5 1/4 inch rate 0 3 ms/track 6 ms/track (XF-551) 1 6 ms/track 12 ms/track 2 10 ms/track 20 ms/tra}ck 3 15 ms/track 30 ms/track P. Diskette Density Selection The density used for most MYDOS commands is determin}ed 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 density 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 th}e drive number, followed by "S" or "D" to set the density of the drive. Example: "2,D". Q. Create Subdirectories Whe}n 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 directories. If additional directories are installed in this directory, each of the additiona}l directories can contain 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 root di}rectory of the diskette in drive 1, "1:TEST:COMM" or "1:BAS>COMM" would create a new directory in the "TEST" or "BAS" dir}ectories 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" wou}ld 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 referenced 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 remove all the files in the directory. You can most safely do this by specifying the full name of the direc}tory: D5:MSGBASE>SEPT1983>*.*/N for example. Now to delete the SEPT1983 subdirectory, simply delete "D5:MSGBASE>SEPT1983" (no}te no trailing ":" or ">")./N for example. Now to delete the SEPT1983 subdirectory, simply delete "D5:MSGBASE>SEPT1983" (no R. Set the Default Directory The "R" command is used to select a directory to be used when a file is referenced witho}ut the drive number: that is, when file names such as "TEST1.BAS" or "D:NEWCODE" or even ":BIGFILE" are used, they are assume}d 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:..." without the drive number explicitly entered. They may also set the default directory by calli}ng 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 diskett}e in the drive containing the default directory is replaced, or if the default directory on a diskette is deleted, the defaul}t should be redefined. The one exception is if the default directory is the root or main directory on a diskette: this is bec}ause the root directory is at the same location on all diskettes. The MEM.SAV feature Whenever the DOS menu is enter}ed, MYDOS will load DUP.SYS from drive 1. If DUP.SYS cannot be found on drive 1, it will look for it on drive 2, 3, etc... un}til it finds it. Loading DUP.SYS will overwrite a good chunk of lower memory, and will wipe out the data in most langua}ges. Here's where MEM.SAV comes into play. When this feature is enabled (by going to the menu and pressing "N" and [RETURN], }then "B" to exit back), the memory that DUP.SYS would overwrite is saved to the file "MEM.SAV" on drive 1 (may be drive 8 if }you use one of the RAMBOOT programs on the disk). It then loads the DUP.SYS. When you press "B" to return, or if you use the }"N" command of the menu, MYDOS will load back in the MEM.SAV, thus restoring the overwritten memory. The result is your progr}am remains intact. V. FILE MANAGER FUNCTIONS PROVIDED THROUGH CIO MYDOS supports all CIO calls supported by ATARI DO}S 2, with the following modifications to the OPEN (Function code 3) and the FORMAT (Function code 254) functions. Three addit}ional CIO functions have been added: MAKE DIRECTORY (Function code 34 & 42), SET DIRECTORY (Function code 41) and LOAD MEMORY} (Function code 39 & 40). The OPEN function in ATARI DOS 2 does not use the data provided in the AUX2 byte, but in MYDO}S when the AUX1 byte is 8 (the file is opened for creation or replacement), the AUX2 byte contains two flags that control the} file format, and whether it will be created locked or not. If AUX2 bit 2 is set, the file will be written in MYDOS 4 f}ormat, and may contain sectors beyond absolute sector 1023. Such a file may not (easily) be read by DOSes other than MYDOS. T}his is the only format used with high capacity disks. If AUX2 bit 5 is set, the file will be written with the "LOCKED" bit in} the directory set initially. This is provided for use by multi-tasking functions (such as a print spooler, sequential file p}re-reading function or other enhancements one might want to make to the standard OS or DOS provided functions). The FOR}MAT function in ATARI DOS 2 does not provide for any variations to the standard disk usage: in MYDOS the contents of the AUX1} and AUX2 bytes are used to specify the number of sectors on the disk being formatted, and whether the disk needs to be forma}tted by the controller as well as needing directory initialization. Bit 7 of AUX1 is set to skip the physical formatting of t}he entire disk surface when it is not required, and bits 6-0 of AUX1 and all of AUX2 are used to specify the number of sector}s on the disk being created (if all 15 bits are zero, the disk is assumed to be the size defined by the drive configuration).} This permits formatting a single sided diskette on double sided drives, for example. Be careful when using this feature. } To load (and possibly execute) a program file, MYDOS provides the CIO function 39 call. CIO function 40 will do the same; }it was included for compatibility with programs written for SpartaDOS. From BASIC you can load and execute a program by execu}ting the line: XIO 39, #3, 4, 0, "D:MYPROG.OBJ". Any inactive IOCB can be used, and if AUX1=4 both the INIT and the RUN entri}es will be executed. If AUX1=5, the RUN entry will be executed; if AUX1=6, the INIT entry will be executed; and if AUX1=7, th}e file will be loaded without executing either entry point. Any other values of AUX1 will return an error code and do nothing}. Another XIO call, XIO 34, has been added to create a directory. CIO function 42 performs exactly the same thing, and }has been provided for compatibility with programs written for SpartaDOS. When a directory is created, the name used must not }match any existing file or directory in its parent (for example if the directory to be created is named "D1:TEST>BUGS", there} can be no other directory in the main directory named "TEST" nor a file named "TEST" there. From BASIC, the XIO 34 cal}l is "XIO 34, #iocb, 8, 0, dirname", where "iocb" is any available unit number, and "dirname" is the name of the new director}y (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. The default directory is that which will be searched for a file if the file name begins with "}D:". In ATARI DOS 2 this default directory is always "D1:" but in MYDOS, the default directory can be any root or subdirector}y on any disk in the system. The buffer address passed to CIO in the XIO 41 call is the address of a string that contains the} default directory name, terminated with either an end of line ($9B) or a null byte ($00). The directory will be accessed bef}ore returning to the calling program so that an error in specifying the directory will be reported as early as possible. V}I. CIO FUNCTION CODES PROVIDED BY MYDOS 4.50 Function code 3, OPEN The open function uses the buffer address to poi}nt to an ATASCII string terminated with a non-alphanumeric character or wildcard. This string is the name of the file to be a}ccessed or created. A good terminator for this string is either a null ($00) or an end of line ($9B). The AUX1 byte def}ines the usage of the file: 4 for input, 6 for directory data reading, 8 for creating/replacing output, 9 for creating/append}ing output and 12 for input/update (without extension). The AUX2 byte is used when a file is replaced or created, and contain}s two significant bits: bit 2 set causes the MYDOS format to be used even if the diskette is a 40 track single sided diskette}; and bit 6 set results in the file being LOCKed initially without and additional CIO call. For input, update or directory ac}cess AUX2 is ignored, and the length is always ignored. In normal use, AUX2 is set to zero emulating ATARI DOS 2 usage. } MYDOS does not leave partially full sectors when appending to a file. This has two positive effects on programs which open f}iles in append mode: the open will fail if the file cannot be appended to rather than the close (in ATARI DOS), and the file }size will not change if a file appended to is copied to another disk (in ATARI DOS it may grow smaller). Function code 5}, GET RECORD The get record function reads a line of data into a buffer, the buffer being defined by its starting addre}ss and length. The line is defined as the data bytes in the file up to an end of line character ($9B) or until the buffer is }full, whichever occurs first. The line is also terminated if the end of the file is read. All record I/O is buffered in MYDOS}, so record transfers are necessarily slower than unbuffered I/O. No other fields of the IOCB are referenced or needed.} Note that the ATARI ROM OS supports single byte I/O through the accumulator if the buffer length is set to 0. In this case, }GET RECORD and GET CHARACTERS function exactly the same way. Function code 7, GET CHARACTERS The get characters fu}nction reads a fixed number of bytes from a file into a buffer, the buffer being defined by its address and length (two 16-bi}t numbers in the IOCB). The only cases where the buffer is not always filled is if the end of the file is read, or the file c}annot be read withut error. As is the case with get record calls, a single byte may be read into the accumulator by setting t}he length field to zero. A get character CIO call will perform unbuffered I/O if the buffer is longer than 256 bytes (ATARI D}OS 2 sets a similar threshold at 128 bytes). For this reason a single long input is considerably faster than several short on}es. Only the buffer address and length in the IOCB are used by the get characters function. Function code 9, PUT R}ECORD The put record command will write a single line to an output file: the line defined by the starting address of th}e buffer and either the length of the buffer if no end of line ($9B) bytes are encountered, or the first end-of-line byte. On}ly the buffer address and length in the IOCB are used in this command. Function code 11, PUT CHARACTERS The put ch}aracters command will write the contents of a buffer defined by its address and length (in the IOCB) to a file opened for out}put. Unless an error occurs, the entire buffer is always written 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 an output/append or create file and the disk has filled. Only the buffer a}ddress and length fields in the IOCB are used when the put character function is used. The single byte put character (using t}he A register as data) is supported by setting the length bytes to 0. Function code 12, CLOSE A FILE To terminate }use of a file (and for an output file, to write the incomplete buffer to the disk) the IOCB used to access the file should be} closed. This is done by setting the function code in the IOCB to 12 and calling CIO. The close function does not use any of }the data in the IOCB for any purpose whatsoever. Function code 13, READ STATUS The read status command is issued t}o an unopened IOCB, with the buffer address that of a file name string. If the file is not present, that error condition is r}eturned, if it is locked, that error condition is returned; otherwise, a normal completion code is returned. Only the functio}n code and the buffer address in the IOCB are needed.ned; otherwise, a normal completion code is returned. Only the functio7 Function code 32, RENAME A FILE The rename function is passed a character string (pointed to by the buffer address }in the IOCB), the first part of the string being a file name identifying the file or files to be renamed. Following a single }invalid character (one invalid in the file name, that is) a simple file name must also be present: this second file name cann }ot include any drive or directory names. An example, using a comma as the invalid character, is "D2:TEST>PGMS>A.OUT,ZCPY" whi }ch will change the string needed to access the file "D2:TEST>PGMS>A.OUT" to "D2:TEST>PGMS>ZCPY" -- Note that only the last fi }le name (if subdirectories are used) can be changed; to change "PGMS" to "MLPROGS", the buffer must contain "D2:TEST>PGMS,MLP }ROGS". Wild card characters should appear only in the part of the file name following the last ":" or ">", and their ef }fect is best described by an example. The string "D2:TEST:*.*,*.XYZ" will rename 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 direc }tory with "ATEST.XYZ", "LOG.XYZ" and "REPORT.XYZ" in it. Function code 33, DELETE A FILE The delete function remov }es any files that match the file name string pointed to by the buffer address in the IOCB. Files locked will not be deleted, }so must be unlocked before being removed, and subdirectories that are not empty (that have a file in them) cannot be deleted. } If either case is attempted, the corresponding error code is returned. Otherwise, the files are removed and their data areas } are returned to the free space on the disk. Files that have been deleted may be "undeleted" by various utility programs ONLY } if the data 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 make directory function will c }reate a new subdirectory on a disk (it is not used to create the first directory, that is the "root directory" identified by }the drive specification "D1:", for example). It is called through CIO by storing the address of the new directory's name in t }he IOCB buffer address and setting up AUX1 and AUX2 as for an open call (see Function code 3), normally AUX1=8 and AUX2=0. Th }is function has no effect on the current default directory; and if it is desired to make the newly created directory the defa }ult one, the program must make a set directory call (Function code 41) following the make directory call (the order is very i }mportant, because the default directory cannot be set to a nonexistent directory). CIO function code 42 may also be used to a }ccess this function; the parameters are the same. Function code 35, LOCK FILE A file can be "locked" so that it ma }y not be modified or deleted inadvertently, by calling CIO with the lock function. The buffer address is used to point to a f }ile name string that identifies the files on the disk to be locked. The only file modification that can be performed on a loc }ked file is to unlock it. The lock function can be requested for a file already locked, and it will return no error (unlike o }ther file modification calls to CIO), but the status of the file will not have been changed. Function code 36, UNLOCK FI }LE The unlock function is identical to the lock function except that is re-enables the modification or deletion of an u }nlocked file. A file that is not locked can be unlocked with no error returned and no change in the file's status. Funct }ion code 37, POINT TO POSITION IN FILE The point function is passed the 3-byte disk address to be positioned to in the }twelfth through fourteenth bytes of the IOCB. On return, the next byte read from that IOCB will be the one that was read or w }ritten next after the corresponding note function was executed. A point call to CIO can only be made if the file 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 numb }er (in low byte / high byte format) and the third is the byte (offset) within the sector. If a file is being appended t }o (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 Megabyt }e disk: Atari BASICs do not allow sector number to be greater than 32767. A solution is to use the following BASIC substitute } for the POINT 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, !}INT(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 app $}ending. The three bytes returned are the low byte of the sector address, the high byte of the sector address, and the byte (o %}ffset) within the sector, in that order. Function code 39, LOAD MEMORY The load memory function takes a file forma &}tted in the ATARI DOS 2 executable program format (generated by the "K" command, by the assembler/editor cartridge, by AMAC o '}r MAC65, or by any of several compilers for the ATARI computers), and loads its contents into memory as specified in the 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 patching a program then writing it back t *}o 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 is stored into the AUX1 field. If AUX1 is 4, both the initialization routines and the r ,}un address are executed after closing the IOCB, but before returning to the calling 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 e .}xecute address will be loaded and ignored. If AUX1 is 7, the text of the program will be loaded into memory, but no other act /}ivity will be performed. CIO function code 40 performs the exact same function as this (39). Function code 41, SET DEFAU 0}LT DIRECTORY The set directory command will use the contents of the buffer as a file name and open the specified file, 1}determining if that file is a valid directory. If so, it will become the new default directory. File names of the form "D:... 2}" will be assumed to be in the default directory (which may be on any disk in the system and may be either the root directory 3} of that disk or a subdirectory). Only the buffer address and the function code are significant when setting the defaul 4}t directory. Function code 254, FORMAT A DISKETTE The format function uses the contents of the buffer pointed to b 5}y the buffer address to identify the drive containing the diskette to be formatted. If both AUX1 and AUX2 are zero, the disk 6}is formatted according to the capacity data in the system control table defined using the "O" command. If AUX2 bit 7 is set t 7}o 1, the format operation is skipped and an empty file system is written to the diskette. (This assumes the disk is preformat 8}ted.) The remaining 15 bits of AUX1 and AUX2 are used as a 15 bit number to specify the number of sectors available on the di 9}sk (permitting the use of the last few sectors of a disk outside the file system if desired). You may format a disk in enhanc :}ed density (MYDOS compatible - not DOS 2.5 type format) by setting AUX1 to 1, and AUX2 to 0. VII. DISK STRUCTURES SUPPORTI ;}NG MYDOS 4.50 MYDOS uses the first three sectors of a disk to hold some disk information and the initial boot program i <}f the drive contains DOS.SYS and DUP.SYS. Sector $168 (and sectors $167, $166, $165, etc., if the disk is formatted as a high =}er capacity disk not compatible with ATARI DOS 2) is used to hold a bit map of available sectors and several flag byte identi >}fying the default format of files on the disk. Sectors $169 through $170 contain main disk directory data, identifying the fi ?}les 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 DOS 2 would make of the disk. The default single A} 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 sec B}tors on an empty diskette rather than 707. The only significant change made when the high capacity format is chosen are that C}enough sectors before sector $168 are allocated to assign a bit for each sector that may be allocated for a file or for use b D}y the system (VTOC sectors). The high capacity disk directory may be read by ATARI DOS 2, but the data in the files can only E}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 disa F}bled. This format allows MYDOS to support accessing disks of up to 65,535 sectors of 256 bytes each (approximately 16 Mbytes) G}. Compatibility with DOS 2.0 is further reduced if subdirectories are used: to ATARI DOS, the subdirectories will appea H}r to be simple files with unreadable contents. The subdirectory's files will not be accessible and the subdirectory can be da I}maged if it is written to (even by appending). For this reason disks sold to the general public, exchanged with friends, and J}so forth, should not contain subdirectories unless there is reason to require that the disk be used with MYDOS. A further pro K}blem with exchanging diskettes is that there are many different formats are used by vendors of double sided disk systems for L}the ATARI. For this reason, double sided disks not only require both computers use MYDOS, but also require that they use the M}same disk system (PERCOM, SWP, Astra, Supra or whatever).uire both computers use MYDOS, but also require that they use the ; VIII. MYDOS 4 MEMORY MAP The MYDOS 4.50 disk operating system occupies the area from $0700 to $1EE9 at all times, andO} when the menu is active, it also occupies the area from $294A to $4331. In addition, the first 16 bytes of the floating poinP}t workspace ($D4 - $E3) are used by MYDOS at that time. Unlike ATARI DOS 2, MYDOS utility program (DUP.SYS) also calls the flQ}oating point ROM entry points. The nonresident part of MYDOS 4.50 starts loading at $294A, reserving the area from $1EE9 to $R}2949 for disk buffers and drivers. Allocating three disk buffers leaves approximately 2500 bytes for resident drivers that wiS}ll not be overwritten by the nonresident portion of DOS (contained in DUP.SYS). IX. CUSTOMIZING A SYSTEM DISK RAMdisk T}Configurations The RAMdisk driver included in MYDOS 4.50 will automatically configure itself on XE compatible memory upU}grades. It is suggested you use this feature. If you REALLY want to set up the system to your specifications (such as configuV}ring it to NOT use the banks BASIC XE uses), the power is available. This is necessary when AXLON compatible upgrades for theW} 800. The default page sequence uses the standard XE banks first. The file RAMBOOT.M65, the MAC/65 assembler source codX}e for the file RAMBOOT.AUT, is an AUTORUN.SYS file that simulates the operation of Atari DOS 2.5 and its RAMdisk handler. It Y}"formats" the RAMdisk and copies DUP.SYS to it, as well as setting the RAMdisk unit number and the unit used to access the DUZ}P.SYS and MEM.SAV files to 8. By modifying the code in the source file and creating a modified AUTORUN.SYS file, the dr[}ive 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 t\}he system is booted, or any other operation could be performed that you find useful. The RAMdisk driver included in MYD]}OS 4.50 is already configured for the Atari 130XE computer and uses its banked 64K bank of memory for the RAMdisk providing 4^}99 free (single density, 128 byte) sectors. The "O" command provides an easy way to alter the operation of the RAMdisk driver_} for other common banked memory systems. Most memory upgrades for the 800XL and 130XE use the same mapping address (the PORTB`} pins of the PIA chip in the computer). A 128K RAMdisk can be used in an Atari 130XE using the last unused pin of that port wa}ith no tradeoff (selecting the 64K bank is done with bit 6 of PORTB). If you have such a system, enter a "2" for the page seqb}uence, or just use the default sequence (answer "Y" to the question "Use default page sequence..."). If, instead of addc}ing one or two rows of 64K memory chips, the enhancement replaces the entire memory of the computer with a single bank of 256d}K 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. Oftee}n the bits used are bits 0 and 1 (as in the 130XE) along with bit 6 (as in the expansion above) and bit 5 (used in the 130XE f}to control banking screen memory). Programs that bank screen memory (a very odd proposition because of the difficulty of obtag}ining a useful sharing of the banked memory page bits between the screen memory and the program) will not work with this enhaq}!bODOC 001bSSDOC 002bTDOC 003bTDOC 004brNDOC 005bPDOC 006b<DOC 007b[UDOC 000!DOC COMncement. This is the approach used in the Newell Industries 256K upgrade for the Atari 800XL. If the enhancement is donr}e externally or to an Atari 800 (with its internal expansion slots), a new dedicated register may be used to map the 16K pages}s. The Axlon RAMPOWER 128 card for the Atari 800 works this way. In such a system, the pages are selected by writing a page nt}umber to the mapping address and no sharing of the 8 bit byte is necessary. The address of the mapping register is entered exu}plicitly and page sequence "5" is the proper sequence. The page sequence table coded into MYDOS is actually one 32 bytev} sequence table of numbers to be stored in the mapping register. MYDOS 4.50 has a feature that allows you to skip all this cow}nfiguration stuff, if the upgrade is XE compatible. In the configuration, MYDOS will create a custom page sequence for your mx}emory upgrade, and update its pointers. If you choose to enter our own page sequence, the number of 16K pages determines the y}number of bytes to be used. You may use one of the four built-in page sequences by entering a single sequence number:Seq.Noz}. Page Values OR Val. 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,0|}1,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: pages 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 RAM}disk to use only that part of the banked memory not used by BASIC/XE. The file RAMBOOT.M65, the MAC/65 assembler source} code for which is in the file RAMBOOT.AUT, is an AUTORUN.SYS file that simulates the operation of Atari DOS 2.5 and its RAMd}isk. It "formats" the RAMdisk and copies DUP.SYS to it, as well as setting the RAMdisk unit number and the unit used to acces}s 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 RAMdis}k when the system is booted, or any other operation could be performed that you find useful. Number of Files Open at Onc}e The number of files that may be simultaneously open is set with the same byte as in ATARI DOS 2: location $0709 (deci}mal 1801). This byte contains a number from 1 to 16 setting the number of disk files that may be open at the same time. Norma}lly 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 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 l}oaded must begin no lower than $22E9 (instead of $1EE9). In corresponding fashion, by setting the value to 1, a BBS program c}an be loaded in with 512 bytes of additional memory if only 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 t}he disk drives that are present when booted up initially and any time it is reinitialized (some programs do this on exiting t}o 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 will use, invoke the "}O" command for each drive to be added to (or removed from) the system. Pressing the RESET key will then use this value to red}efine the system to configure the drive(s). To permanently change the maximum drive configuration, use the "H" command, writi}ng a new copy of MYDOS back to the system disk. Selecting or Disabling Write-with-Verify MYDOS 4.50 is distributed} with the verify disabled, to speed up writing. Most drives (and disks) are very reliable, and will never give you a problem.} If however, something happens (such as dust, a scratch in the oxide coating, or some other problem that may have arisen sinc}e 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 i}t has been written, taking about three times the time normally taken on a write without verify. The byte at location $0}779 (1913 decimal) controls all write operations to the disk. If the value "poked" into it is $57 (87 decimal), then all writ}es will be read back to verify the action was successful. If the value "poked" into $0779 is $50 (80 decimal) then writes wil}l be assumed successful, and will be performed in about one third the usual time. Note that this address is not the same as i}n MYDOS 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 drive specified (only a RE}TURN is entered in response to the drive number query). To permanently alter it, rewrite 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 supported 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 130}XE computers. 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 pass all commands and in}formation to and from the physical disk drive. Several commands were defined by ATARI to communicate 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 comma}nds. 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 function necessary to perform automatic density selection is that the drive should a}utomatically identify the density of a diskette inserted in it if the first operation is a read of sector 1 (this is necessar}y if the drive is to boot either a double or single density diskette). The minimum set of disk drive functions to suppo}rt MYDOS (or ATARI DOS 2 for that matter) are:Dev Un Cmd Dir. Byte Ct. Aux B. Funct.$31 D# $21 From 128/256 0 FORMAT}$31 D# $50 To D 128/256 1-720 WR(-vfy)$31 D# $52 From 128/256 1-720 READ$31 D# $53 From 4 0 RD STAT$31 D# $5}7 To D 128/256 1-720 WR(+vfy) An additional command to format a disk in enhanced density is:$31 D# $22 From 128 0} FORMAT The byte count is always 128 for a single density drive, and is 128 for the first three sectors (1, 2, and }3) of a double density drive. All other sectors on a double density drive are 256 bytes long. The FORMAT function is al}ways called with a sector number in the range of 4 to 720. It expects 128 bytes from a single density drive and 256 bytes fro}m a double density drive. The first byte returned by the READ STATUS command is expected to indicate the sector size --} if bit 5 is a 1 (bit 7 is the sign bit) then the sectors are large (256 bytes), otherwise, they are small (128 bytes). } The auxiliary bytes are treated as an address to a sector on the diskette, and range from 1 to 720 (when in DOS 2 compatible} mode) or from 1 to 65,535 (when accessing large capacity disk drives). The additional functions used to configure d}isk drives dynamically are:Dev Un Cmd Dir. Byte Ct. Aux B. Funct.$31 D# $4E From 12 1-720 READ CFG.$31 D# $4F To D }12 1-720 WRITE CFG. These commands are used to configure the drives identified as configurable when the computer is bo}oted: 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 demand - to for}mat a diskette, for example. (To format a disk on an Indus drive, issue the "P" command to manually change the density on the} drive, then issue the "I" command). The individual bytes transferred by these commands are defined as follows: byt}e 0: Tracks per side (40 for a standard disk drive) byte 1: Disk Drive Step Rate (as defined by Western Digital) byte} 2: Sectors/Track -- high byte (usually 0) byte 3: Sectors/Track -- low byte(18 for standard diskettes) byte 4: Side }Code (0=single sided, 1=double sided) byte 5: Disk Type Code -- bit 2: 0=single density, 1=double density bit 1: 0=5 }1/4 inch diskette, 1=8 inch diskette drive byte 6: High byte of Bytes/Sector (0 for single density) byte 7: Low byte }of Bytes/Sector (128 for single density) byte 8: Translation control bit 7: 1=40 trk. disk I/O on an 80 trk. drive bi}t 6: Always 1 (to indicate drive present) bit 1: 1=Handle sectors 1, 2, and 3 as full size sectors bit 0: 1=Sectors numbe}r 0-17 (for example), not 1-18 bytes 9-11 are not used by MYDOS (see the drive documentation as to how they are to be set} -- usually zeroes) MYDOS 4.50 (unlike version 3 of MYDOS) always issues a read configuration command before writing th}e configuration to the drive and the contents of bytes 9-11 are written exactly as they were previously read (so they will be} unchanged). An additional change in the usage of this command occurs when a high capacity drive (hard disk) is configu}red. The configuration data for such a drive is very complex and is usually built into the drive controller or written to a "}magic" location on the disk. To support partitioning of very large drives (larger than 16 Megabytes), MYDOS issues a write co}nfiguration command with the number of sectors per track set to number of sectors on the disk (as defined in the "O" command)} and the number of tracks set to 1. All high capacity disks are large sector drives (using 256 byte sectors).e "O" command)o XI. RAMDISK INTERFACE The driver built into MYDOS is intended to eliminate the need for a "driver" to use common RAMd}isks. The required characteristics of the hardware can be most easily described by explaining what is done to access a "secto}r" of information in the extended RAM. (1) The sector number is divided by 128, and the remainder is then multiplied by} 128 and added to 16384 to get the starting address of the sector in memory (it will be between $4000 and $7F00). (2) Th}e quotient is used to index into a page table with one entry for each 16K that can be mapped into the memory area from $4000 }to $7FFF. (3) The value from the page table is "AND"ed with the contents of the mapping register, and rewritten to the m}apping register. (4) The data is moved to(from) the area addressed above from(to) the sector buffers at the high end of }MYDOS. (5) The mapping register is restored to its non-mapping state by "OR"ing the restore value with the mapping regis}ter and rewriting the result to the mapping register. Note that this design forces the RAMdisk to be single density and} no larger than 4 megabytes (256 pages of 16384 bytes 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 an}d $D301 for the Atari 130XE), the value "OR"ed into the register to reset the system back to normal ($FF for the Axlon and $0}0 for the Atari 130XE types), and the actual map values. These values are determined by first identifying the bits in the map}ping register to be left unchanged and setting them to "1" in each of the register values. Second, the remaining bits are fil}led in with all the legal combinations of mapping bits. The values for the Newell Industries 256K upgrade (which uses the 130}XE mapping, more or less) are given here as an example -- future versions of this board and other memory expansion products a}re not necessarily going to use the same design.Bits: 7 6 5 4 3 2 1 0 1 x x x x x 1 1 First, set bits } 7,1,0 in all the mapping values 1 0 0 0 0 0 1 1 These are the 12 1 0 0 0 0 1 1 1} 1 0 0 0 1 0 1 1 1 0 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 1 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 1 1 1 0 1 0 1 1 1 1 1 0 1 1 1 1 Lastly, since the mappi}ng register at $D301 can be read as well as written, it can be left exactly as it was before we used it by "OR"ing the initia}l value with zero (leaving it unchanged). The sequence is then: 83, 87, 8B, 8F, C3, C7, CB, CF, E3, E7, EB, EF, 0. XII. IN}ITIAL INSTALLATION INSTRUCTIONS The following checklist is a procedure to bring up MYDOS on a new hardware configuration}. It should be done with an un-modified copy of MYDOS 4.50, and care should be taken to perform the steps in exactly the orde}r specified.HOW TO GET FROM THE DRIVEWAY TO THE FREEWAY: 1. Before turning on your computer and disk drive, make sure t}hat you do not have a cartridge installed in the computer. 2. Turn on the disk drive, and when it stops spinning, insert t}he MYDOS master diskette. Close the door. 3. Turn 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 130XE }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 que}stions 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 config}uration 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 t}he diskette is write protected -- but first ask yourself why you put it there in the first place!). If an error message is di}splayed, insert another diskette; the first is bad. 8. Write the system files DOS.SYS and DUP.SYS to the newly formatted d}iskette with the "H" command and skip to step "10" if you do not have an ATARI 130XE computer or some other RAMdisk usable wi}th the MYDOS RAMdisk driver. 9. If you have an ATARI 130XE computer or have another kind of RAMdisk and wish to use the MY}DOS RAMdisk driver, copy RAMBOOT3.AUT on the master diskette 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 w}orking boot disks as you need from it. NOTES: The RAMBOOT3 program will first format your RAMdisk, then copy the fil}es in a directory called RAMDISK on your boot disk to the RAMdisk if such a directory exists. To take advantage of this featu}re, 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 ram}disk formatted each time you boot-up, which is not recommended, skip this step (step 9). Just be sure you format your ramdisk} before using it. ** -- The source file for the RAM disk boot is also included; if you feel the urge, modify it to copy ot}her files to the RAMdisk in addition to DUP.SYS (take out the MEM.SAV setting code, too, if you need the space) or perhaps ad}d a call to change the default disk drive to D8:. Just remember that if you string together several autorun files, only the l}ast will have its RUN address invoked. *** -- NEWELL INDUSTRIES 800XL UPGRADE -- this RAMdisk can use page sequence 0, pa}ge sequence 1, or the default. The E3/E7/EB/EF pages can be reserved for BASIC/XE in extended mode by setting the RAMdisk siz}e 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 P}age sequence=1. In the second case this will use the area also used by BASIC/XE, but it will access it only after the first 1}28K are used up. By setting the size to 128K, BASIC/XE and the RAMdisk are fully separate and cannot interfere with each othe}r. **** -- AXLON RAMPOWER 128 for the Atari 800 computer -- MYDOS 4.50 comes configured for the Atari 130XE -- if you are} installing it on an 800 with an Axlon RAMPOWER board, you must disable the 128K mode on the RAMPOWER board until you have co}nfigured 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. XIII. ERROR COD}ES AND THEIR SOURCES 3 Last byte of file read, next read will return EOF (MYDOS)128 Break Abort (OS ROMs)129 IOCB alr}eady open (OS ROMs)130 No such device defined in the system (OS ROMs)131 Write-only IOCB, cannot read (OS ROMs)132 Inva}lid command (OS ROMs)133 Device or File not open (OS ROMs)134 Invalid IOCB reference (OS ROMs)135 Read-only IOCB, canno}t 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 range for graphics mode (OS ROMs)142 Data frame overrun (}serial bus failure, OS ROMs)143 Data frame checksum error (serial bus failure, OS ROMs)144 Device I/O error (in periphera }l hardware, OS ROMs)146 Function not provided by handler (OS ROMs)147 Insufficient RAM for graphics mode selected (OS ROM }s)160 Invalid Unit/Drive Number, zero or greater than 7 (both MYDOS and OS ROMs)161 No sector buffer available, too many  }open files (MYDOS)162 Disk full, cannot allocate space for output file (MYDOS)163* Write protected or system error - disk  }is not 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 altered (MYDOS)168 Invalid IOC}B (MYDOS and OS ROMs)169 Directory full, cannot create a 65-th entry in a directory -- entries may be used for "lost" as we}ll as real files (MYDOS)170 File not in directory, cannot be opened for input (MYDOS)171 IOCB not open (MYDOS and OS ROMs})172* File or directory of same name already exists in parent directory, cannot create (MYDOS)173 Bad diskette or drive, c}annot format diskette (MYDOS)174* Directory not in parent directory (MYDOS)175* Directory not empty, cannot delete (MYDOS)}180* Not a binary file (MYDOS)181* Invalid address range for loading a binary file, END} to correct any errors automatically, without user intervention. The program will now attempt to calculate the total nu?}mber of sectors on that drive total. (This applies mostly to hard disk users, but is applicable for any type of floppy drive.@}) If the number returned does not look good, you may change it by answering "N", and typing in your own value. The VTOC FixerA} will attempt to read this sector to insure this value is correct. If it cannot, you will be prompted for anoter value. Try aB} number 1 less than before, and keep decreasing till it accepts the number. On SUPRA 20 meg hard disks, contrary to what theyC} say, you have 36799 sectors for drives 3 and 4 (one less than the 36800). In the future, keep this number (the maximum sectoD}r number) in an important place, so when you reconfigure new versions of MYDOS, you can use the correct value. Now the E}program will begin the long, drawn-out process of going through every file. It lists the entire filename of the file it is prF}ocessing, in directory-style (no period between name and extender). If your screen goes into attract mode, simply hit SHIFT CG}ONTROL A. These are the following errors that may occur in a file: COLLISION - the file has a sector that has alreadH}y been used by another file, VTOC, or directory. BAD LENGTH - The directory length does not compare to the actual file lenI}gth: probably a result of a collision. LOOP ERR - the file "loops" back to itself. BAD RANGE - The sector link points tJ}o a sector less than 4 or greater than what is available on the disk. Err #144 @ Sec #xxx - A bad sector on your disk. K}INVALID FILENAME:xxx - an illegal filename (bad bytes). Any bad files SHOULD be deleted by this program. If they are noL}t, they will be overwritten by files written TO the disk in the future. At the end, the VTOC Fixer will display the numM}ber of sectors used in files (not really that meaningful), the number of sectors that are now free (the newly-generated free N}sector count), the old free sector count (so you can see the difference if any), and the initial free sector correction (causO}ed by an incorrect format to begin with). If your VTOC and free sector count agree with the value the program calculated, it P}will be displayed. Otherwise, it will ask you if you wish to write out the new VTOC. You SHOULD answer "Y" to this question, Q}which will correct the errors. If for any reason you do not want this, type "N" or RETURN. And that's it! This program R}in essence takes the place of copying all files to another disk, formatting the original, and copying the files back. Run thiS}s whenever you think a drive might not be set-up right, or have a bad free sector count. You cannot hurt the drive by runningT} this - it can only help! It has really helped me, and saved alot of hard disks here.. You cannot hurt the drive by runningW MYDOS Version 4 User Guide Revision 4.50 for Atari Home ComputersCopyright (C) 1988 by WORDMARK SystemsV} Charles Marslett & Robert Puff This software may be freely used and distributed provided that this copyright notW}ice is left intact, and provided that: (1) The source code in machine readable form is provided with any binary distributX}ion, or made available at no additional cost to the recipients of the binary distribution. (2) A binary version of a deriY}vative work may be sold for a reasonable distribution charge (less than $50), and the source code in machine readable format Z}must be available. (3) A derivative work may not impose and restriction on the free distribution of the source code. [} I. INTRODUCTION The disk operating system described in this manual is modeled after the ATARI (trademark of ATARI Co\}rp.) disk operating system (DOS 2), and may be considered an extension of the very "user friendly" concepts introduced with t]}his operating system. The ATARI 810 disk drive and the ATARI 1050 disk drive are well supported by the DOS 2 and DOS 2.5, but^} those DOSs have very limited provision for higher capacity double density disks (such as the XF-551), and large RAMdisks._} II. SYSTEM REQUIREMENTS MYDOS 4.50 is intended to function as nearly as possible like ATARI DOS 2. This means it o`}ccupies as little memory as possible, supports all the system calls supported by DOS 2, and in most cases uses exactly the saa}me parameters to the system calls. This means compatibility, yet MYDOS goes far beyond this. On a standard single-sided, singb}le density disk, MYDOS will read and write to a DOS 2.0 or 2.5 format, and vice versa. There are a few programs that will notc} run under MYDOS because of one or both of the following reasons:direct "illegal" calls into the main DOS or FMS code, and rd}elying upon exact directory data (i.e., 3 digit sector counts). MYDOS will run on any 8-bit Atari computer with at leaste} one disk drive (that is compatible with DOS 2). MYDOS 4.50 has full READ compatibility with the DOS 2.5 format, but will onlf}y write to the first 720 sectors of the disk. (MYDOS has its own format for enhanced density disks that allow full access.) Ig}t is not compatible at this time with the OS/A+ version 4 format, or the SpartaDOS format. Up to eight disk drives (or h}nine if the ninth is a RAMdisk) may be accessed, but only one is required. The resident part of the operating system (DOS.SYSi}) supports all documented functions of the DOS 2 operating system, so MYDOS supports most available software for the ATARI hoj}me computers. The memory available to a program is affected only by the number of files to be open concurrently: each dk}isk file that may be open at the same time requires 256 bytes of buffer space. Unlike Atari DOS 2, memory requirements are inl}dependent of the number of disk drives or the sector size and density. The need for a 256 byte buffer for each concurrently om}pen file means that programs that keep large numbers of files open will have less memory available than under DOS 2 and as a n}result some programs (mostly older versions of compilers and language interpreters) will not have enough memory to run. With o}three file buffers (which is the default) and no resident drivers (such as for RS232 support), MYDOS 4.50 permits binary prop}grams to load as low as $1F00. MYDOS 4.50 also contains a very versatile RAMdisk driver than can handle upgrades up to q}1 megabyte that follow the guidelines of the expanded memory on the 130XE, or the Axlon upgrade for the 800. MYDOS also r}has a feature that will determine how much memory you have, and set itself up for your machine (For XE-compatible upgrades ons}ly) automatically. III. MENU FUNCTIONS The menu provided by MYDOS 4.50 identifies 18 common tasks that might neet}d to be done. Rather than having to write a utility program (only a few lines of BASIC would perform most of the menu functiou}ns) or even remember the name and format of a DOS command, these tasks can be handled by entering a single letter. MYDOS respv}onds with a question asking for the details of the operation (which file, what density, "are you sure?" or whatever else it mw}ight need to know). After you enter the remaining information, the function is performed and another prompt is displayed. x} You should notice two interesting things about the menu: the second line on the screen identifies the disk drives present y}on the system and what they appear to MYDOS to be (single or double density, RAMdisk or high capacity hard disk). The next liz}ne describes the current default directory (that directory used when a disk is referenced by "D:" (without a unit number afte{}r the "D" - this feature will be described later). The second thing to notice is that after commands fill the screen, the men|}u "rolls" off the top: some DOS programs (e.g. Atari DOS 2) keep the menu, MYDOS does not. This permits more information to b}}e displayed when a long sequence of commands are done, or when many files are copied. To restore the menu to the 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 to 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 entered, followed by a ":", and then the rest of the filename. If the drive }number and ":" are not entered, the default drive (and directory) will be used. In the [C]opy file option, entering the drive} number only will result 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 it m}ust be omitted entirely (for the default drive and directory). Examples: D1:Test.obj, 1:TEST.ASM, or D2TEST (really D1:D2TEST}) are valid file names, but d1:Test.obj or 1TEST.ASM are not. The file name itself is either fully specified (referring} to the entire name as it is on the disk) or includes "wild card" characters (specifying a set of files). A fully specified f}ile name consists of one to eight characters followed by a period (".") and zero to three additional "extender" characters. T}he characters in the file name may be upper or lower case letters, numbers, the underscore ("_") or the character "@". The on}ly 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 possibl}e characters. The character "?" matches only one single file name character. Examples: "*.BAS" will match every file ending w}ith .BAS. "TEST?.*" will match files TEST.BAS, TEST1.OBJ, but will not match TESTER.BAS. In addition to the main direct}ory (containing up to 64 files or directories), each MYDOS disk may also contain additional subdirectories of 64 files each. }You may 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 file BAS, it could be re}ferenced 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:GRAPHIC1 (and so on with as many names as needed). Because there is n}o limit to the number of subdirectories on a disk (other than the buffer size of programs using the directories and number of} available sectors on the disk), a single diskette can contain hundreds of files if necessary. Each subdirectory is a 8 secto}r file to its parent directory. 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 BETS.LST, the specificati}on "t*.*" will not match any file name (since "t" and "T" are not the same letter to MYDOS). The specification "T*.*" will ma}tch all but "BETS.LST" (since the others all begin with the letter "T"). The specification "?E??.*" will match the first four} files and the last one (since the 8 character part of the file name must have no more than 4 characters in it and the second} character must be an "E"). The specification "*.?" will match only the file TEST.C (since it is the only file name with a si}ngle 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 character part of the file name must have at least 5 characters and the fifth must be an "E"). Not}e that MYDOS does not always require the "." period to separate the extender from the 8 character filename. Examples: FILENAM}E.EXT could be entered as FILENAMEEXT; TES*.* could be TES**, but TEST.* could NOT be entered as TEST*. IV. THE MENU C}OMMANDS A. List a Directory or a Set of Files The "A" command will list the files on a disk with their sizes, followed} by a line specifying the number of free sectors on the disk. If the line starts with a "*", the file has been locked and may} not be modified or deleted without first being unlocked. A ":" before the file name marks those files that are subdirectorie}s. These files cannot be read or written as other files but only accessed as directories or deleted (if the directory is empt}y). File lengths and the number of free sectors are reported as 4 digit decimal numbers (most other Atari DOSs report the val}ues as 3 digit numbers). If the number of free sectors on a drive exceeds 9999, the free sector line will contain a 5 d}igit 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 form}at of the file but ATARI DOS 2.0, 2.5, and MYDOS are the only three supported file formats. SpartaDOS or OS/A+ Version 4 file}s must be converted to single or double density Atari DOS 2 files first in order to be usable from MYDOS. See Section 6 for f}urther 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 second is taken as a destination file and will be overwri}tten (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, enter the name of the directory followed by a ":" colon or ">" greater-than sign. For example, "1:T}EST:BAS:" will list the files in the subdirectory BAS which in turn is in the subdirectory TEST in the main directory of the }diskette in drive 1. Using "D1:TEST>BAS>" will achieve the same results.the subdirectory TEST in the main directory of the JWA7W (c)1983 Action Computer Services  B JKIHiDiELV`LA"} A BLV`LAAl LA &` Fj`8冨凪` "BEӅӥ"} "B`ʆǪƩ Ɛee` 3BƦʆǢ &Ɛeǐ WB WBLB 3B'&&&8儨児"}祂*LB&&*ń8&&LB B`hihiHHȱȱLAc !#3`"}LAJJJJ`H Ah`Hȩh ALDC ALDC xALDC ALDC AH8"}`HhHh CLDC BHI V䅠LDC LC ALDCԆ ؠPIPP`"} DP ALDC @DLD DLED YDLDH- D8塪墨hLYD rDLD yDLD DȹP`"}텠8堨塪 D芨Oȩ-`PP CP棩 Ѥģ0-ģ6000:,80H "}& &ehe&eģ0ʥ 8堅塅`$ D&*i0:0i DƦ`¢ 护"}°ڱ%ȱ%E DLE担CS CLEI rDLEH mELE @DLE &B V DCNLMȑ"}` MLN%B VLDCS:UFE:ZFH C ]F^F hC Ch)0IXFYFLhC[\ZUVT` FXFYF"}` FLD FLC FL D) ` FLD yB` 0d Aҥ `2)2"}ҩ`҅`0)9TG`@0)ӈJJJJ)`Ѕ`ȱ`` Gȥ`Hh"}ƣĢ`ƥĤ`Ѣ H`ȱѢĦ`膡`"}`ťƤe8夰L)H Ƥ8`ŦeѠe桊L-H$"}"}"}"}(("}(LJJJH`LJj xG8HHHH yBHH CLK D:FONT.SE"}TK  hCJJJJL|K CJLVK C`HmJHmJJ GJйJL/K C`LKKK"}ȌK0̓KuKLKKȌKKKKͅKKLKKKLKKKLK`LK FLK ˠҢK C K`8WL L"}LLLL%LD:*.000L mL*(mLLNLD:*.001LȑF mL*(mLLvLD:*.002Lȑn mL"}*(mLLLD:*.003Lȑ mL*(mLLLD:*.004Lȑ mL*(mLLLD:*.005Lȑ我 mL*(mL"}LMD:*.006Mȑ mL*(mLL>MD:*.007Mȑ6 mL*(mLLfMD:*.008Mȑ^ mL*(mLLM"}D:*.009Mȑ mL*(mLLMD:*.010MȑL mL*(mLȱJ6 H`LMMHM L C"}J6 hCH`LNJJ CJr CNJJBNBNNL}NNJJI LwNJNJJJJ 6HJJJ HL}NNL7N"}NrJNNNLNNrJI LNJNrJrJ 6HJJr HLNNLN`LN _F15J04J4Ji5JiG4J"}i5Ji4Ji 5Ji4Ji 5JiNNL]O4JmN5JiNL7O`LcO N"}HH B GLOO C FLOANTICO C FLOSOFTWAREO C FLP "}O C FL/P P! C  FJJ C  FJr C FLP "}Pb C FLP"Press for Screen, for PrinterP C CLPK:Pȩ hC@ C_O"}_OIP _OISLP FL2Q$ Q C C_O`LIQDQDQISL[Q` FLQPRESS }