SlotScan Notes - Version 1.62 This program is Freeware. This means that you may copy it to your heart's content, and give it to everyone you know, as long as you DON'T sell it, change it in any way, disassemble or reverse-engineer it, use it for commercial purposes, or incorporate it in or with any other product without my express written permission. Other than that, go gangbusters! Synopsis & Description ---------------------- This program, which will run on any computer with 16k (!), will tell you what kind and version of Apple computer you have, and tells you how much memory you have. What gives this program it's name, though, is the fact that it scans your computer's slots and/or ports, telling you what is present in each one. It will describe in detail the individual devices attached to SmartPort cards or ports, and SCSI cards which may be in your system. It will identify the capacity of any drives which are supported by ProDOS. See the Examples section below for more information. Usage ----- Under ProDOS, just launch it from any GS or 8-bit program launcher, or run it from BASIC (via '-'). If you run it from BASIC.System, the program will quit back to BASIC. Otherwise, the program QUITs, which should take you back to your program launcher. Pretty simple, eh? If, for some reason, you transfer SlotScan to DOS 3.3, it will work there too. It does require at least 16k in order to run, though. This is probably how you will have to run it on a ][ or ][+. If you have some SmartPort or SCSI devices, you can easily have more equipment than will fit on the screen at once. If the screen becomes full, you will see a prompt to press a key, after which the program will continue displaying information where it left off. If you want a printout of what SlotScan has found, and you have at least one serial or parallel slot or port in your machine, you just run the program, wait until all of the information has been displayed, and you will see the prompt "Done. Press any key to Continue, or Control-P to get a printout _". At this time, hold down the Control key and press the P key. You will then be asked where to send the printout. Just press the number of the slot/port, or Return for the first number listed. You can also press Escape if you change your mind. NOTE: If you choose a serial card or port, then it should be configured correctly for the attached printer. For something compatable with the Super Serial Card, it should be set for printer instead of terminal or modem, or you may see printer output on the screen, as well. Examples -------- The first thing SlotScan tells you about is the type and version of computer it's being run on. For example, you will see: Apple Computer Type: IIgs, Rom Ver 2 (Update ROM in Orig. Motherboard) if you have a ROM 01 machine (SlotScan numbers ROM versions starting at 1 instead of 0, which is the way Apple seems to want them now). If you have the first //c version which supports the UniDisk, you will see: "//c, ROM Ver 2 (3.5 disk suppt.)" for the type. The next thing SlotScan tells you is the type of CPU your computer has. For example, you will see: Processor type: 65c02 if you have an enhanced //e or //c (or upgraded your processor in a ][+ or original //e, for example). If you've installed the Rockwell version of the 65c02, then you will see "Rockwell 65c02". SlotScan then tells you how much RAM your computer has. If you have 768k or more, SlotScan also tells you the memory size in Megabytes. Memory on bank-switched cards for the //e & //c ("Aux-slot" cards), such as the RamWorks and CheckMate series or other compatable brands, is included in the total. Memory in slot cards, such as Apple's Memory Expansion Card, the RamFactor or a RAMdisk card in newer //c's, will be reported in the next section. SlotScan then scans your slots to see what's in them. If you have a //c or a //e card in a Mac, all references to slots become ports. On a IIgs, each slot or port is listed according to how you've set them up in the Control Panel. If you have a Super Serial Card, or a serial port on a //c or IIgs, you will see an entry like the following: Slot 1: Serial Card (#1) The number in parenthesis is the "manufacturer ID" according to older documentation, but it isn't consistently used. All "Pascal" devices have this attribute, and it's just printed for your curiosity. Incidentally, there are 9 known types of Pascal devices, but only X-Y pointing (mouse), serial, printer, and 80-column card/ports are widely used. For a 5.25" disk drive controller, you will see something like the following: Slot 6: Disk ][ Card Device Size: 280 Blocks (140K) It is difficult to reliably tell how many 5.25" drives are attached to a Disk ][ card, especially with non-Apple drives, so SlotScan doesn't give information by drive. For a SmartPort card with a UniDisk 3.5 attached, you would see something like the following (some of this information isn't displayed on the screen if you can't display 80 columns): Slot 5: SmartPort Card: 1 device found Manufacturer #0 (Unknown) Device 1: "DISK 3.5", Size: 1600 Blocks (800K) Type: 3.5 inch drive Version 1.00 Addl. info: Removable while for a SmartPort in a IIgs, you might see something like the following: Port 5: Extended SmartPort: 2 devices found Manufacturer #1 (Apple) Device 1: "DISK 3.5", Size: 1600 Blocks (800K) Type: 3.5 inch drive Version 1.00 Addl. info: Extended, Disk Switch Err Suppd., Removable Device 2: "RAMDISK", Size: 1536 Blocks (768K) Type: Mem. Expansion Version 1.00 Addl. info: Extended, Disk Switch Err Suppd. Basically, this tells you what the devices attached to the SmartPort call themselves, what their capacity is, what type of device they are, and what version they are. the additional info tells more about the capabilities of the device. Extended means the device understands extended versions of the SmartPort commands. Disk Switch Err Suppd. means the device knows and can tell the operating system when the disk has been switched with another between accesses. Removable and Non-Removable describe whether you can take out the disk or not. The SmartPort controller itself be Extended, which means extended SmartPort commands can be sent to it (from anywhere in memory on a IIgs). It can also be SCSI, which means it's a SCSI card, or RamDisk, which means it's a dedicated RamDisk. The Manufacturer # is reported by the controller, but only by newer controllers, since Apple only defined it relatively recently. For example, on a ROM 2 GS, the manufacturer is given as unknown for the internal SmartPort. Problems & TechStuff -------------------- SlotScan only uses the most significant 4 bits when calculating the fractional part of "Meg" displays. The net result of this is that the number in k will be effectively rounded down to the nearest 64k before the amount in megabytes is calculated. All this means is that the number after the decimal point won't be completely accurate if the quantity being displayed isn't a multiple of 64k. SlotScan will use an 80-column card/port in slot/port 3, if it finds one. Otherwise, it uses 40 columns and doesn't display some of the technical information about SmartPort or SCSI devices. SlotScan will always display all information to the printer, though. SlotScan uses whatever defaults your printer and card/port is set to for the printout. Your printer should be capable of printing 80 characters across, and be at the top of the page when you tell SlotScan to print. Either the controller card or the printer should supply linefeeds with carriage returns, or everything will be printed on one line. The printer should also be set to ignore the 'high' bit. SlotScan currently displays information in mixed upper and lower case. If you have a ][ or ][+ without lower case capability, let me know and I'll see about fixing the program for you. SlotScan will technically fit in a computer with only 12k, but will report an error if there is less than 16k. Note that on a 16k or 20k machine, DOS 3.3 resides where SlotScan needs to be, so you will need to get it into memory some other way, such as from tape, or relocating it to $2000 from lower in memory. SlotScan checks for main memory in a ][/][+ in 4k chunks (starting at 16k), so even old ]['s that can use 4k RAM chips will have their memory reported correctly. SlotScan only checks for "language card" RAM if it finds 48k in main memory, since this is the only time such memory is likely to be there. If you DO have a computer that has less than 48k in main memory, along with a 16k card, let me know, and I'll change how SlotScan works. As far as I know, there aren't any bugs, so let me know if something odd happens. The program identifies computers the "Official Apple Way", so any clones will probably be identified as ][ or ][+'s. If you have a clone that you want SlotScan to identify, go ahead and send me info on how to identify your clone, and I will probably incorporate it into the next version. For //c's, IIgs's, and the //e card for the Mac, SlotScan will also identify the ROM version. Additionally, for ROM versions that the program knows about, it will print a short description of that version. SlotScan decides if it was called from BASIC by examining the Reset vector. If this is changed, then SlotScan will QUIT, which will return you to the program that ran BASIC.System, if any. If SlotScan determines that it was not run from ProDOS (i.e., DOS 3.3 or (gasp!) cassette), then it just does an RTS. Finding Me, and a Non-standard Plea ----------------------------------- This software is Freeware, and you are under _no_ obligation to pay me anything. If, however, you like this program and want to compensate me for writing it, send whatever you think it's worth, and you'll become a registered user. If you enjoyed this software, have suggestions for enhancements or improvements, want to report bugs, or send piles of money, my address is: Robert S. Claney 2370-E Shady Oaks Rd Marshalltown, IA 50158-9575 I can also be reached at the following locations: Internet: claney@iastate.edu txa84@isuvax.iastate.edu Version History --------------- Version 1.62 Actually check how much base memory there is, instead of always assuming 64k. (This also includes checking for the 16k upper-memory card.) Add Cirtech to the list of known SmartPort manufacturer #'s. Print a text error message for the "no device connected" SmartPort error, since it's likely to come up. Version 1.61 Fix bug (introduced by me) in the processor id code, so it doesn't crash when run on a non-Rockwell 65c02. Change the code so that it actually determines whether it's running on a 65c802 or a 65c816, instead of just cheating by assuming only a IIgs has a 65c816. Fix problem when printing where the full-screen prompt would appear after 255 lines (yea, unlikely to come up, but just in case). Version 1.60 Add processor type id code (from David Wilson). Check to see if ProDOS is there before QUITting to it, to allow ourselves to be run from DOS 3.3, etc. Clean up some text. Version 1.59 Add code to detect & report on memory found in aux-slot RAM cards for //e & //c series. Report the manufacturer number for SmartPort devices, & the name if known. Fix bug with Pascal Printer card id. Fix bug with SmartPort device name printing with "unusual" lengths. Correct spelling mistakes. Version 1.56 No longer try to validate SmartPort version #'s, so versions like 0.10 will print correctly. Fix bug where a Pascal Printer card wasn't an allowable destination to print to. Version 1.54 Minor changes to some displayed text, such as for the //e card for the Mac, which can go in more than just an LC, so no longer say "Mac LC". Also change description of number of devices for SmartPorts to say "found" instead of "online", since it could be confusing to users, & someone asked for it. Bring docs in line with current program version. Version 1.53 Fix the display of the header for the printer. Touch up a couple of display items. Add code to detect the Apple /// (because someone actually wanted it!). Version 1.51 Add code to detect running on the //e card for the Mac LC (& correctly identify the ports as such). Version 1.50 Rip out and rewrite decimal number display code to work much faster, and permit displaying full internal range (10 digits). Move SmartPort buffer to avoid nonstandard SP implementations' overwriting important stuff. Consolidate some code. Version 1.45 Add option to print information to any "normal" printer slot / port. Consolidate memory display code. Display disk mem in megs if > 1024k. Expand accuracy of decimal meg displays to 4 bits, and round up from block to k conversion. Change semi-intelligant drive code to display size info even when given an error (except no device). Expand dox. Version 1.40 First widely available version. Improve descriptors for gs & c versions, & bring them up to date. Touch up code. Write dox. Version 1.10 - 1.3x Convert entire program to machine language. Allow code to work w/o 80 columns, changing displays where nessessary. Make pretty icon for program. Put in pauses when screen is full. Add undocumented Restart option for people who actually read this. Print the Subtype info for SmartPort devices. Expand the Type descriptors to cover newer SCSI devices. Handle case of 0 devices on SmartPort. Version 1.0x First completed version. Add the "Manufacturer's ID" to Pascal devices (because it's there). Add ROM descriptors for //c & IIgs. ML code finalized. Legal Absurdities ----------------- This document is Copyright 1991-1994, and the accompanying software is Copyright 1989-1994, by Robert S. Claney. This software may only be used for non-commercial purposes. Contact me, otherwise. Apple, ProDOS, and Apple IIGS are registered trademarks, and GS/OS is a trademark, of Apple Computer, Inc. RamWorks is a registered trademark, and RamFactor is a trademark, of Applied Engineering, Inc. Any other names are trademarks or registered trademarks of their respective companies.