[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: DOS3.3 questions
Adalbert Goertz (be404@yfn.ysu.edu) wrote:
: I have always worked with Prodos and begin to set up games for our youngsters
: which are either DOS or something else(Pascal?).
: Anyway I am puzzled about the DOS games:
: Some are selfbooting, others are not.
: I have not figured out why some are selfbooting and why others are not and
: give a message
: THIS DISK HAS NO DOS TO BOOT.
: INSERT ANOTHER DISK AND PRESS A KEY TO REBOOT.
Under DOS 3.3, all of the boot code and all of DOS is stored on tracks 0-2
of the disk. Normally, when you format a disk under DOS 3.3 from BASIC
(either Applesoft or Integer BASIC)--
]INIT GREETING PROGRAM
several things would happen--
1) The entire disk would be formatted and prepared for use.
2) The directory would be created on Track $11
3) A copy of the current version of DOS would be written onto tracks 0-2
4) The current BASIC program would be stored (beginning on Track $12, but
that is unimportant) and given the filename GREETING PROGRAM*
*or whatever filename you used in the INIT command; usually something
boring like "HELLO".
: I know that in Prodos booting, the computer looks for the PRODOS file.
: What file is required to make DOS booting possible?
: Do I ALWAYS have to run the Master disk first? I dont think so.
Nothing. DOS 3.3 has no associated file. If you take the disk I
formatted above:
]CATALOG
DISK VOLUME 254
A 002 GREETING PROGRAM
and you...
]DELETE GREETING PROGRAM
then try to boot the disk, you will get:
]
FILE NOT FOUND^G
]
but DOS will be fully loaded and functional. The disks you describe which
will not boot were not formatted in this way. Instead, they were
formatted with a program which maximizes storage space by not putting a
copy of DOS on the disk (hey, that frees up three tracks...48 sectors;
that's 12k...small potatoes these days, but that is 8% of a 143k disk!).
The program was even nice enough to put a little routine on T$0/S$0 to
tell you that there is no DOS on the disk. I think Apple Writer //e would
do that when it formatted disks, but I'm not sure...and I know other
programs would do it as well.
Here's more-or-less what happens (simplified) when a DOS 3.3 disk is booted:
a) DOS is loaded into memory.
b) DOS is relocated, if it is the relocatable "System Master" version
c) DOS hooks itself into system I/O
d) DOS loads the filename stored in the disk image, then checks a filetype
byte to figure out what to do (RUN, BRUN, or EXEC)
e) Attempt to RUN, BRUN, or EXEC the file--
e1) If file does not exist: issue FILE NOT FOUND and crash to BASIC.
e2) If file exists and should be RUN...determine which language to use
(Integer BASIC or Applesoft).
e3) If file is Applesoft BASIC and only Integer BASIC is available
(i.e. running on a ][ w/o ROMcard), then:
e3a) Attempt to load Integer BASIC program called "APPLESOFT"
e3b) If successful: run the program.
e3c) If unsuccessful: give LANGUAGE NOT AVAILABLE error instead of
FILE NOT FOUND; then crash to Integer BASIC.
So the only filename which is hard-coded into DOS 3.3 is "APPLESOFT",
which would be an Integer BASIC startup program used to (if possible) load
FPBASIC into the language card on a 64k Apple ][. Unlike ProDOS, in which
the files PRODOS and ?.SYSTEM must exist for a disk to boot. A DOS 3.3
disk with no files will boot just fine, but will crash during boot with a
FILE NOT FOUND error.
--Dave Althoff, ][.
--
/-\ Celebrating the International Year of the Roller Coaster
/XXX\ /X\ /X\_ _ /XX\_ _ _ _____
/XXXXX\ /XXX\ _/XXXX\_ /X\ /XXXXX\ /X\ /X\ /XXXXX
_/XXXXXXX\__/XXXXX\/XXXXXXXX\_/XXX\_/XXXXXXX\__/XXX\_/XXX\_/\_/XXXXXX