[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Question on ProDOS SmartPort drive remapping
Eric <englere_geo@yahoo.com> wrote:
> I have a Microdrive card from GSE Reactive. This is a CF card flash
> drive, similar to a CFFA. It comes with ProDOS 8 v2.x.x (I'm on an
> Apple 2e).
>
> Right now I'm using a 128 Meg card and it gives me 4, 32 Meg
> partitions on an Apple 2e:
>
> Slot 7, Drive 1 (default boot)
> Slot 7, Drive 2
> Slot 4, Drive 1
> Slot 4, Drive 2
>
> I did some googling to find out why I got a "virtual" set of disks in
> slot 4, and it seems that ProDOS can only support 2 logical drives in
> one slot so it grabs another slot and makes the extra partitions
> available there. This is apparently call "SmartPort" drive mapping.
Yes. It is a new feature added in ProDOS-8 2.0. If you use ProDOS-8 1.x,
you won't get the extra drives, only the first two.
> Most of the Google hits on SmartPort didn't really tell me much. They
> referred me to GS documentation. I only have a 2e.
The IIgs Firmware Reference and Hardware Reference are the definitive
ones for SmartPort. The IIc Technical Reference also documents SmartPort
but the first edtion has many technical errors that were corrected in
the IIgs manuals (and probably in the IIc 2nd edition manual, but I
never checked).
> Now for the big question: If I decide to use a bigger flash card, such
> as 256 Meg, I could theoretically get 8, 32 Meg partitions. But that
> means it would have to grab 4 slots and I don't have 4 free slots in
> my Apple. Could this work anyway? Maybe it could re-use a slot like 1
> or 3, which do not have disk drives but aren't exactly free, either?
For its SmartPort unit remapping, ProDOS can "reuse" any slot (apart
from 3) which doesn't contain a storage device. (Slot 3 is out because
of /RAM.)
Assuming you have a 5.25" drive in slot 6, I'm guessing you have another
storage device in slot 5, which is why it skipped that one when
allocating slot 4.
If slot 1 contains a printer card (parallel or serial) and slot 2
contains a serial card, then they can both be used, giving you another
four logical units.
This depends on whether the interface card firmware supports 8 devices.
It might have a lower internal limit. (Apple's original SCSI card is
limited to 7, but their high-speed card theoretically supports 110
units. The IIgs disk firmware supports at least 6, including four
physical drives and the internal RAM and ROM disks.)
You probably can't get much more than 8. The absolute maximum limit is
14 units, but you could only get that if you took out all disk
controller and other storage interface cards (apart from the Microdrive
card), and removed the extended 80-column card.
In principle, someone could write a program which patched the SmartPort
device mapping table inside ProDOS's language card, and this could allow
more units to be swapped in under user control, as long as the interface
card firmware supported more devices.
> Also, if anyone has a good reference to teach me about SmartPort I'd
> appreciate it.
"SmartPort" means two different (but related) things on the Apple II.
1. The physical disk interface and protocol used to connect an
intelligent drive to the built-in disk port on the IIc or IIgs (or an
equivalent card in a IIe).
Hardware implementations of SmartPort include:
- Apple IIc disk port and firmware ("UniDisk" firmware revision and
later).
- Apple IIgs disk port and firmware.
- Apple IIc+ disk port and firmware.
- Apple II 3.5 Floppy Disk Drive Interface Card ("Liron") - for IIe.
- Apple II 3.5 Disk Controller Card ("SuperDrive card") - for IIe and
IIgs.
- UniDisk 3.5
- Third-party hard drives for the Apple IIc.
2. The firmware interface supported by a variety of I/O cards and
equivalent built-in firmware which support storage devices. (This is the
meaning which is relevant to ProDOS's support for "SmartPort").
The SmartPort firmware interface is an adjunct to the ProDOS driver
which is supplied by many storage devices.
The ProDOS driver is limited to 2 devices per slot (4 in special cases),
32 MB per volume, block devices only, and doesn't provide much
identfying information for the device. This driver is supported by all
versions of ProDOS. It is included on almost all disk controller cards
(except the 5.25" card), standard slot RAM cards, SCSI cards, etc.
The SmartPort driver supports up to 127 devices per slot, 8 GB per
volume (2 TB for the IIgs firmware's extended SmartPort), provides a
fair amount of identification, and supports character devices as well as
block devices (rare, except for special case use of a RAM card).
The SmartPort driver is supported by ProDOS-8 2.0 and later, but only in
limited ways: it allows more than two devices per slot but doesn't take
advantage of extra storage capacity.
On a IIgs, GS/OS can also use the SmartPort interface, and it does
support larger devices. This is usually a fallback option - a RAM-based
driver loaded from the system disk can get much higher performance.
The devices which provide a SmartPort firmware interface include:
- All of the disk interface options listed above (IIc firmware, IIgs
firmware, IIc+ firmware, Liron card, SuperDrive card).
- Apple II Memory Expansion Card (Apple's one).
- Applied Engineering RAMFactor.
- Apple II SCSI Card and High-Speed SCSI card (both of Apple's ones).
Some devices which have a ProDOS firmware interface but DON'T have a
SmartPort one:
- Apple ProFILE controller card.
- RamFAST SCSI card.
Given the evidence, your GSE Reactive Microdrive card probably also has
a SmartPort firmware interface. This isn't definite - it could get the
virtual drives by patching ProDOS, which is the approach taken by the
RamFAST SCSI card.
Note that the Apple 3.5 Drive and SuperDrive do NOT use the "SmartPort"
protocol, but the built-in firmware on the IIgs, IIc+ and SuperDrive
card provide a SmartPort firmware interface to let you access these 3.5"
drives in the same manner as a UniDisk 3.5.
Standard 5.25" drives have no connection with SmartPort at all (apart
from sharing the same physical port on a IIgs or IIc).
You can check wheter a card has a SmartPort interface by examining the
firmware. No manuals handy, but I remembered this level of detail from
at least 11 years ago. :-)
The ID bytes for a ProDOS block device are:
Cn01 = 20
Cn03 = 00
Cn05 = 03
CnFF is not FF (13-sector 5.25") or 00 (16-bit 5.25")
The entry point for the ProDOS block driver is CnXX, where XX is the
contents of CnFF.
A device which implements the SmartPort firmware interface has one
additional ID byte:
Cn07 = 00
The entry point for the SmartPort driver is 3 bytes after the ProDOS
one.
Working out how to use the driver is left as an exercise for the reader.
:-)
--
David Empson
dempson@actrix.gen.nz