[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: MS-DOS FST?



In article <1rorr3$b2o@cnn.sim.es.com> kpopple@imp.sim.es.com (Ken Poppleton) writes:
>In article <behrenss.736036840@hphalle9>, behrenss@Informatik.TU-Muenchen.DE (Soenke Behrens) writes:
[About the role of FSTs and device drivers]

>So what is needed to get the MS-FST to work with a CTI FDC-10 disk controller
>card?  This is the controller card which allows the use of IBM-PC disk drives
>on an appleII.  The ROM on the FDC-10 contains routines for reading and
>writing raw data to the disk and also routines to read and write Prodos
>blocks.  What kind of interface does the FST expect?  Is this documented
>anywhere?   (I do not have a GS only a IIe so I do not expect to use this on
>my current machine).  Also how does the OS decide which FST to use for a 
>given disk,  does the application software have to tell it what to use or
>is this transparent?

As for "what interface", yes that is documented. There are two types of device
drivers: Loaded and generated.

- Loaded drivers are written specifically to be a GS/OS driver for a certain
  device and are (usually) loaded from disk.
- Generated drivers are generated by GS/OS to provide an interface to
  slot-based firmware drivers.

So, if your card works with Prodos-8, it will work with GS/OS. As for "which
FST": Once GS/OS gets aware of a device, it reads data from the device and
passes it to all the FSTs until one says "Yep, I recognize that". The device
is then flagged as "belonging" to that FST. When formatting or erasing a
device, the user can choose the filesystem to write on the device.
All of this is of no concern to the device driver, which just needs to make
sure that GS/OS is aware of the device.

Hmm, interesting question here: Could a generated driver detect disk insertions
and disk removal? probably not. Seems that for devices with removeabke media,
it's a good idea to write a loaded driver unless you want to be stuck with
the same disk throughout the session :)

Soenke