[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: ADT Disk Problem
In article <Wd2cnQ0quawTvVijXTWcqQ@comcast.com>,
"Bill Garber" <willy46pa@comcast.net> wrote:
> > > Ok, the problem is, you are attempting to write a ProDOS image to a DOS
> 3.3
> > > disk. That's a no go.
> >
> > Wrong! A disk formatted with DOS 3.3 can be over-written by an
> > image of any standard Apple operating system.
>
> Ok, then help me out with a problem. How do I get DOS 3.3
> programs to run on a ProDOS disk, or a hard drive partition?
If they're in "pure basic", just run 'em. They'll convert pretty much
automatically. If they use any ML routines to get to the disk, change
them so that they either *NEVER* attempt to do disk I/O after initially
being loaded, or, when they attempt to do disk I/O, they use ProDOS
techniques (Set up a parameter block appropriate to the operation
needed, then JSR $BF00 with a pointer tothe parameter block immediately
after the JSR) rather than using DOS 3.3 RWTS based routines. This is
usually a *VERY FAR FROM TRIVIAL* conversion, though, and may in fact
need what amounts to a nearly complete re-write of all disk access
routines used by the program you're trying to convert.
The *PHYSICAL* format of Prodos/DOS 3.3 disks are absolutely identical
in every way at the track/sector level. At the "machine wants to talk to
the disk" level, they're completely different. Also, between ProDOS and
DOS 3.3, there are huge diffferences in where certain critical data
structures are located on the disk - DOS 3.3 expects the disk's catalog
to start at track $11, sector 0 (if my memory hasn't failed me) for
instance, and will never have space for more than a certain number of
entries, meaning that it will always be contained completely on track
$11, along with the volume bit map. The ProDOS catalog always starts at
ProDOS Block ?8? (Once again, memory may be failing me), and the rest of
it could be anywhere on the disk, and any length. Similarly, DOS itself
is *ALWAYS* on tracks 0, 1, and sometimes parts of 2, of the disk, and
isn't accessible as a file. The ProDOS kernel is a "plain vanilla"
binary file that can be located anywhere on the disk - the boot blocks
of a ProDOS disk know how to figure out where it is and load it based on
the disk catalog information. Those are just some of the differences I
can think of off the top of my head.
ProDOS can read DOS 3.3 disks, with no trouble whatsoever (but be aware
that *WRITING* back to them requires a little more effort, since ProDOS
reads/writes two sectors at a time, versus DOS 3.3's 1 sector at a time
approach. Likewise, DOS can, with some effort, read and write ProDOS
disks in a similar manner, once the "I want this ProDOS block, so I need
to grab these two DOS 3.3 sectors with the read call" or "I need to
write to this sector, so I have to figure out which DOS 3.3 sector is
the second half of the ProDOS block I'm about to write, read it in, make
it part of the write buffer, and then do the write call" fiddling is
dealt with.
CopyII+ is one example - The last version of it I worked with was a
ProDOS based program, but it will read and write DOS 3.3 disks without
any (visible to the user) trouble. But the code involved to do it...
<rolls eyes> Oy vey! A nightmare!
--
Don Bruder - dakidd@sonic.net <--- Preferred Email - unmunged, SpamAssassinated
Hate SPAM? See <http://www.spamassassin.org> for some seriously great info.
I will choose a path that's clear: I will choose Free Will! - N. Peart
Fly trap info pages: <http://www.sonic.net/~dakidd/Horses/FlyTrap/index.html>