SpartaRead v0.05 (C) 1992 Oscar Fowler
- PC tool to read SpartaDos disks
- Beta version
- Access’ thru BIOS
- Requires MS-Dos system
– 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
– 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:
2929 E. 6th St. #220
Tucson, AZ 85716
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…
EXEcutable file (EXE / Z-Zip): SR 0.05