💾 Archived View for mirrors.apple2.org.za › archive › apple.cabi.net › Utilities › SCSI.STUFF › SCSI… captured on 2023-01-29 at 08:37:41.

View Raw

More Information

-=-=-=-=-=-=-


---------------------------------------------------
SCSI.PART v1.20 - SCSI device mapper for ProDOS 8

Written by Richard Bennett
29th August 1989

Freeware! (see below)
BUT: Copyright (c) 1989-1990 by Oz Data

This file last modified: 6th June 1990
Software last modified: 6th June 1990
---------------------------------------------------

SCSI.PART maps any additional partitions/devices on an Apple SCSI card
into the standard ProDOS 8 device list.

When ProDOS 8 boots, SCSI.PART is called to display it's boot message
(ie. "Hi, I'm here!"). Once ProDOS itself has built the device list,
SCSI.PART gets called once again. This time it scans all your slots for
Apple SCSI cards (yes, multiple cards will work fine). If one is found,
the number of virtual devices (partitions) is read from the card (ie.
if one card has two drives attached, the partitions on BOTH drives will
be recognised by the card, and therefore SCSI.PART as well). If there
are more than two, the extra ones are installed into the next available
slots in the ProDOS 8 device list (when ProDOS 8 boots, it
automatically installs the first two from each slot).

Once all the slots have been scanned, the SCSI.PART code is copied into
the language card, on top of the /RAM driver. The slot 3, drive 2 entry
in the device list is then removed if it is in fact /RAM (checked by
device type in DEVLST).

Already, you can see SCSI.PART's one limitation. Because there is no
room within ProDOS 8 for anything else (SCSI.PART requires roughly $80
bytes), the /RAM driver seemed the most logical. This is because not
many programs (except for the odd home grown or public domain one)
actually use /RAM, and instead just trample all over auxiliary memory.
I as yet have had no problems with programs which require this memory.
Most commercially written ones tend to trample if /RAM doesn't exist,
or it is empty (the logical correctness of this could be argued for
ages, so I won't go into it, suffice to say that I don't agree with
it.)

SCSI.PART.INST is included, which will install SCSI.PART for you, and
patch out START.GS.OS (see below). This may be handy if Apple updates
ProDOS 8, but leaves (as they have before) the main offsets the same.
SCSI.PART has existed since ProDOS 8 v1.6, and as such I can still
supply these versions if anyone really needs them.

By holding down bother apple keys on boot, SCSI.PART will give you a
blow by blow of what it's actually doing. This can be handy for testing
your setup, and/or new hard disks.

----------------------------
Device support/limitations
----------------------------

SCSI.PART will recognise any virtual device (partition) which the
smartport on an Apple SCSI presents to it. This means that System 5 and
System 4 partitions will all be recognised correctly (access to extra
System 5 partitions is the main reason I wrote SCSI.PART). Thus you can
now use greater than 60 meg hard disks under ProDOS 8 correctly.

Because all the partition mapping is actually performed by the SCSI
card, and SCSI.PART simply drives the card, SCSI.PART must conform to
SCSI card limitations. The main one being that one SCSI card can only
handle up to seven virtual devices. So if you have two physical drives,
with four partitions each, you won't be able to access the last
partition.

Copy II plus v8.x has some problems with SCSI.PART, in that it will
only recognise the first couple of SCSI.PART devices. Whilst it has to
go through the MLI online call or DEVLST to get these, is still fails
to pick up on some of the extras. Copy II plus v9.x however does not
have this problem, which points at CPS8 being the culprit. All other
programs that I've tested work fine as long as they stick to standard
ProDOS 8 conventions and use either MLI online, or actually scan the
DEVLST.

Programs which incorrectly read the block limitations of devices from
the actual card, will not pick up the true sizes of each partition. To
do this, they should use the standard ProDOS 8 device status call to
retrieve the size. The Apple SCSI card forces programs to do this
anyway, by zeroing out the block size count on the card. This problem
should only occur on older software which was around before
multi-partition devices, and also do not conform to ProDOS 8 standards.

For safety reasons, SCSI.PART does not support the ProDOS 8 format
call. If you wish to format your hard disk or partition, then you
should either use GS/OS, or one of the multitude of SCSI utility
programs.

----------------
Use with GS/OS
----------------

When GS/OS launches a ProDOS 8 application, it uses the file called P8
in the SYSTEM/ subdirectory. The length of this file is checked (if in
memory or on disk) to make sure that this is in fact ProDOS 8.
Unfortunately, because SCSI.PART extends the length of ProDOS 8, this
length is now incorrect, and will not work when launched by GS/OS. The
SCSI.PART.INST program will patch any System 5.0.x versions of
START.GS.GS for you. SCSI.PART.INST scans the entire START.GS.OS file
and looks for the internal error handler call following length check.
As long as the error code and preceding branch instruction remain
intact, SCSI.PART.INST should be able to patch any future System disks
as well.

BEFORE PATCHING YOUR SYSTEM DISK, MAKE A BACKUP. THIS IS IN CASE YOU
WISH TO GO BACK TO THE ORIGINAL. *** NEVER PATCH YOUR ORIGINAL SYSTEM
DISK ***

GS/OS should now launch into ProDOS 8 correctly. Any other software
that actually extends the length of ProDOS 8 should also make this
patch.

-------------------
Extra techo stuff
-------------------

SCSI.PART builds an index list at $BF40 in the P8 GP, which contains a
count value, and the actual re-mapping of the various virtual devices.
$BF40 is usually a pretty eye-catcher that says "(C)APPLE '83", so this
shouldn't cause any trouble to anyone. However, if a programs does use
this for some reason, SCSI.PART may return errors from the drive. I'd
put in a checksum if I had room, but Apple seems to have crammed ProDOS
8 full these days. The SCSI.PART code is actually at $FF00 (where the
/RAM driver used to be), and is called by each of the virtual devices
it has mapped in. The virtual slot is then converted to a device number
(via the re-mapping table), and plugged into a smartport call to the
card in question.

You can call SCSI.PART yourself as long as you follow the standards for
calling a device driver, and the unfortunately undocumented "rule" of
write enabling bank 0 of the language card ("Oh please don't page me
out!").

---------------
Freeware info
---------------

SCSI.PART is freeware. It's free. You can't modify it. SCSI.PART and
SCSI.PART.INST are copyright (c) 1989-1990 by Oz Data. So there!

All correspondence to;	  Richard Bennett
(tokens,	                P.O. Box 271
 disks,	                 Turramurra
 money,	                 NSW  2074
 etc.)	                  Australia

Or you can speak to me at any AUG meeting in Sydney, Australia.

---|---|---