💾 Archived View for mirrors.apple2.org.za › archive › apple.cabi.net › Utilities › SCSI.STUFF › SCSI… captured on 2024-05-10 at 15:55:20.
⬅️ Previous capture (2023-01-29)
-=-=-=-=-=-=-
--------------------------------------------------- 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. ---|---|---