- SpartaRead - Preliminary documentation. March 31, 1992 A program to read SpartaDOS disks on IBM-compatible computers. ////// After playing around with the other Atari disk readers I'd found (UTIL and ATARIO), I decided that I'd try my hand at my own program. I've never really played around much with the PC BIOS and wasn't sure what would be involved in reading disks with less than 512 bytes per sector, so I looked at the source code of UTIL and ATARIO to see what those authors had done. I also poked around the IBM-PC BIOS source listings and a book called 'Undocumented DOS'. My first plan for the program was to be able to read ANY ATARI DISK. After playing around with trying to read disks, I found that although the floppy disk controller SHOULD be able to read single and enhanced-density disks, I was having an awful time doing it. Being the lazy person that I am, I gave up on anything but double density disks and decided to stick with the SpartaDOS disk format since that is the DOS I prefer (in fact, I only touch Atari DOS when I ABSOLUTELY have to, and I've only played with MYDOS, only to give up on the difficulties in configuring it). ////// This is a PRELIMINARY (aka BETA) version of my program. It works, but many functions are missing, the user interface is practically non-existant and the source code is scary. **** USE THIS PROGRAM AT YOUR OWN RISK **** I obviously cannot be held responsible for what this program may do to your system, especially since I KNOW there must be untold bugs in it throughout. All I can tell you is that I've been using it for a while now and have never had any permanent problems with my computer (I've had to re-boot a couple of times...) I created this program using Borland C++ 2.0 on a 286 clone with 1.2MB and 1.44MB floppy disk drives and a 40MB hard disk. The Atari disks I've successfully read have all been written using an Atari XF551 disk drive in double-sided double-density mode. I've modified my XF551 to use 720K 3.5" floppy disks using Innovative Concepts' coversion kit and the program WILL READ THESE DISKS ALSO. The program should also be able to read single-sided double-density disks, although I haven't really played with them much (what's the point?). Since all of the disk reading is done directly using the system BIOS, the version of DOS you are using should be irrelevant. Just for the record, I use MS-DOS 5.0. Currently, the program only READS disks. When and if I have the time, I will add writing capabilities to the program as well. ////// Remember that this is not a finished product. There are sure to be bugs in the program or features which should be available and are not. Use this program with caution. Only use disks which you are not afraid to lose. SpartaRead uses standard DOS calls to write files to your hard disk when copying from Atari disks. The chances of damaging data on your hard disk are minimal, if any. If you are worried about it, though, you may want to chose a second floppy disk drive as the destination for your copies (assuming you have two drives). Alternatly, don't copy files... ////// My purpose in releasing this preliminary copy of SpartaRead is to get some feedback from people who would like to use the program. Initially, this was just a little project for myself, but others may find it useful. I'd like to get your ideas and suggestions on the program. Also, let me know what problems or bugs you've found. This is not shareware. It is public domain. Your comments on the program would be very highly appreciated and considered a form a payment. ////// The program is relatively self-explanitory. Here are some basic instructions: o The filename for SpartaRead is SR.EXE. Start it by typing 'SR' at your DOS prompt. There are currently no command-line parameters. o SR will ask you for the NUMBER of the floppy disk drive you want to read. PLACE THE FLOPPY IN THE DRIVE FIRST, then type 0 or 1. 0 is drive A, 1 is drive B. 9 aborts SpartaRead and returns you to DOS. o You may get some DISK READ errors at first. This is just some debug code that's in the program to let me know what's going on. An ERROR 6 is common- it just means that there has been a disk change detected. o You will get a prompt which gives you the VOLUME NAME of the disk in the drive, the CURRENT DIRECTORY (which should initially be "\" for the root or MAIN directory) and a list of possible commands. Hit the letter capitalized within the command to execute it (i.e. 'W' for CWD - change working directory). - COPY: You'll be prompted for a source filename. You CANNOT type a pathname. You must be in the directory where the file is located. If the file you want to copy is within a subdirectory, use the CWD command first. You must use the DIR command to get a directory listing. You may also NOT USE WILDCARDS. If the file is found in the current working directory, then you will be asked for a destination filename. You MAY use a full DOS path here, including drive and subdirectory. The file is then copied to the destination you specified. Not very quickly, but it seems to work. - DRIVE:This function lets you change the floppy drive you are using. It is also NECESSARY if you change the floppy DISK you are using, because this is the only place where the program checks the SpartaDOS disk information. In other words, USE THIS OPTION EVERY TIME YOU PUT A DIFFERENT ATARI DISK IN THE DRIVE. - DIR: The directory listing is much like what you are used to. The information on each file is in the following order: NAME, EXTENTION, BYTES, DATE, TIME, SECTOR CONTAINING FIRST SECTOR MAP, STATUS. There are eight status bits. A particular status bit is off when a dash appears instead of the status letter. The status bits are: PROTECTED, HIDDEN, ARCHIVED, IN USE, DELETED, SUBDIRECTORY, not used, OPEN FOR WRITE. The directory command does not list entries with the DELETED bit set. At the bottom of the listing, you will see the total number of items listed and the amount of free disk space in bytes, sectors and kilobytes. - DUMP: This gives you a hexadecimal and ASCII dump of any sector you specify. Entering 0 for the sector number aborts this command. - RETRY:This sets the number of retries the program will try before aborting an operation. This function isn't all that useful. The default is three. If you're having problems reading a disk, you may try using nine instead. I have yet to see the program actually have to do a retry on a valid operation. This means it'll probably work the first time if it's going to work at all. 0 aborts the command. - SHOW: This dumps the BIOS drive descriptor table, which is what gets modified in order to read Atari disks. UTIL changes a bunch of the options while ATARIO only changes the sector size (which is what I do). I guess I may have to play with the other options once I start writing to the disks. This is not particularly useful unless you're curious in this stuff. - INFO: This dumps all sorts of information which is found in the first couple of sectors on a SpartaDOS disk. Since it ended-up being more than one screenful, you'll have to hit CNTRL-S quickly to see the first couple of lines of the listing. Interesting stuff, but again, not very useful unless you happen to be writing a program to read SpartaDOS disks on a PC... - CWD: This changes your current working directory on the SpartaDOS disk to the name you specify. You can only specify one directory level lower than the one you are currently in, so don't try to CWD to "BOBTERM>DATA>NEW" or something. Using ".." will take you UP one directory from your current one. There is no way to jump to the home directory. If you are several directories deep, you'll have to use ".." multiple times. If the directory name you typed was found, then the next prompt will show the change in the working directory line. - QUIT: Takes you back to that mysteriously popular operating system: DOS. This function performs some important 'clean-up' tasks, such as setting that BIOS drive descriptor table back to it's previous state. AVIOD EXITING THE PROGRAM BY OTHER MEANS, like hitting CTRL-C or BREAK since the descriptor table will not be cleaned-up. If this happens, you may have trouble reading disks from the floppy drive you were using for SpartaRead. Keep retrying until the BIOS figures things out and cleans itself up, or reboot... ///// Please send all your commentary and big loads of praise to: Oscar Fowler 2929 E. 6th St. #220 Tucson, AZ 85716 (602) 326-8286 GEnie: O.FOWLER1 CIS: 72347,1655 Internet: omf@smaug.hacks.arizona.edu I don't have a lot of time to work on the program lately (as you can see, my last work on SpartaRead was over a month ago!), but I promise I WILL finish this thing up someday soon...