home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Frozen Fish 1: Amiga
/
FrozenFish-Apr94.iso
/
bbs
/
alib
/
d6xx
/
d698
/
scram500.lha
/
SCRAM500
/
SCRAM500.lzh
/
docs
/
SCRAM500.man
< prev
next >
Wrap
Text File
|
1992-06-20
|
24KB
|
663 lines
SCRAM 500
User's Manual
Introduction
Congratulations on choosing the SCRAM 500 SCSI/RAM controller for your
Amiga 500. This unit has been designed to give you maximum performance from
your Amiga 500 with the minimum of fuss.
Please take some time to read the information in this manual, as it contains
important tips which will guide you through the installation procedure. This
is especially important for users who are installing their own DRAM chips or
hard drives. Check your setup against the manual to get it right first time!
Setting up a SCSI drive has never been easier than with SCRAMPREP installation
software. This utility gives you an unprecedented level of control over disk
partitioning and RigidDiskBlocks while guiding the novice through on auto-
pilot.
Finally, if you are new to the Amiga or this is your first hard disk, please
read the AmigaDOS manual to familiarize yourself with DOS procedures.
Features
The SCRAM 500 controller card has the following advanced features.
RAM
o 8Mb FastRAM controller configured as 0Mb, 2Mb, 4Mb or 8Mb
o Low cost ZIP DRAMs - 256Kx4 or 1024Kx4 - jumper selectable
o DRAM is socketed for easy installation by user
o Full speed 0 wait-state FAST RAM
o Jumper select RAM size for AUTOCONFIGURE including disable
o RAM Access LED
o AutoConfigure LED
SCSI
o AutoBoot ROM driver supports Rigid Disk Block
o CD-ROM compatible with ISO 9660 File System
o SYQUEST removeable media with advanced DiskChange
o Toggle switch to disable AutoBoot function
o External DB25 SCSI connector
o SCSI Access LED
o Power option for external SCSI termination
o Non-DMA transfer technique for complete system compatibility
o High Speed data transfers with custom Synchronising logic
SOFTWARE TOOLS
o New SCRAMPREP utility gives total control over SCSI devices
o Supports Rigid Disk Block format for industry standard devices
o Low level format
o Bad Block mapping
o SCSI Snooper thoroughly analyses all attached SCSI devices
Installation
Carefully unpack the SCRAM 500 shipping carton. You should find the following
items:-
o SCRAM 500 controller for the Amiga 500
o SCRAMPREP Installation diskette
o SCRAM 500 User Manual
After turning power off, remove the expansion cover of your Amiga 500
(left-hand side) and carefully plug the SCRAM unit in. Observe anti-static
procedures while handling computer equipment. Make sure you align the SCRAM
unit carefully before plugging it in. As you push it into the Amiga it should
just click home.
Before the SCRAM unit is plugged onto your computer, you may have to install
RAM. In this case it will be necessary to configure the various options on the
internal board. Check the appendices at the back of this manual if you are
unsure. If your SCRAM 500 has been shipped with RAM installed, then there
should be no need for you to open it. The unit will have been fully tested at
the factory.
NOTE
If you remove the extemder card, please make sure you replace it with the text
facing UP! The extender has some Bus Termination components on it and can NOT
be reversed.
Opening the Case
If you are installing RAM, you will need to remove the SCRAM circuit board
from the extruded case. To do this you will need the following tools:-
Phillips head screwdriver (small)
5mm Socket or small pair of pliers
Step 1 - Remove the extender assembly
a) Unscrew the two M3 screws holding the 86pin connector
b) Unplug the connector/extender board assembly
c) Remove the two hex posts holding the metal shroud
d) Remove the shroud
Step 2 - Remove the SCRAM board from the case
a) Hold the case firmly and slide the SCRAM out the back
Make sure the Jumpers (3 of them) associated with RAM are set correctly. If
the board is optioned incorrectly the system may hang on power on. If you are
installing your own DRAM chips then consult the section - Installing RAM.
When you have finished the RAM installation you may test the unit before
reassembly.
Case Assembly
To reassemble the case, reverse the order of the disassembly. Take care when
doing up the Hex posts and M3 screws NOT TO OVERTIGHTEN or CROSS-THREAD them.
AutoBoot
The SCRAM 500 controller is designed to support the Amiga AutoBoot facility
which now includes the Rigid Disk Block convention. The SCRAM 500 driver
software is supplied as firmware on the EPROM (U29). This EPROM is recognised
at AutoConfig time and the system will load the driver into RAM and continue
with the Boot sequence. The Amiga will look for bootable devices such as DF0:,
Hard drives and Networks and will boot from the highest priority one. If no
floppy disk is present in DF0: then the Amiga will typically boot from the
Hard Drive.
AutoBoot is only supported from Kickstart 1.3 on. If you have an Amiga 500
with Kickstart 1.2 in ROM you will have to either upgrade to 1.3 or disable
AutoBoot and use the driver supplied on the SCRAMPREP disk. See Appendix B
for details of using the floppy based driver.
AutoBoot Disable
The SCRAM 500 features a toggle switch at the rear of the machine to disable
the AutoBoot facility. This switch is provided for software compatibility
with Kickstart 1.2 ROMs or for special cases such as games where it is
necessary to boot from floppy. It must be remembered that with AutoBoot
enabled, the driver software in EPROM will be loaded into RAM regardless of
where the system boots from. This may cause problems with Game software which
needs all of the computer's memory.
AutoBoot is ENABLED when the toggle is TOWARDS the A500.
AutoBoot is DISABLED when the toggle is AWAY FROM the A500.
Connecting an External SCSI Device
External SCSI devices such as the SCRAM Drive may be connected via the
Industry standard DB25 connector on the end plate of the SCRAM unit. Make
sure you consider the location of SCSI terminators and set unique SCSI
addresses for all external devices. This is the most likely cause of
difficulty in setting up multi target SCSI systems.
Jumper JP3 optionally provides +5 Volts (current limited through R4) on
pin 25 of the DB25 connector.
SCSI Address ID
Up to seven SCSI devices (Targets) may be connected to the SCRAM 500 (Host).
The SCSI bus uses an address of 0-7 to identify different Targets. Typically
addresses 0-6 are used for Targets and 7 is reserved for the Host.
SCSI devices such as Disk Drives will normally have a set of three jumpers
to set the SCSI address - although you should note that Hard Drives will
normally be shipped set as SCSI ID 0. When configuring your system you must
ensure that every SCSI device is given a unique ID - there must be no SCSI
address conflicts for correct operation.
The SCRAM 500 AutoBoot driver software will interrogate all SCSI addresses
on the Bus at boot time and will boot from the first bootable partition. When
the drive(s) are prepared with SCRAMPREP each drive will have its RDB written
on the first tracks, avoiding the need for MountList entries. The RDB
convention is now common across all Amiga SCSI controllers so you may use a
drive prepared on another controller with the SCRAM 500 without reformatting.
SCSI Terminators
The SCSI Bus is electrically specified to have Termination resistors at both
ends of a 50 ribbon cable. The SCRAM 500 is normally considered to be one
end (Host) of the SCSI Bus and has sockets for three 220/330 SIP parts. These
SIPs will always be installed on the SCRAM 500. Other SCSI devices such as
Hard Drives will also have terminators installed as shipped, and these may be
removed or disabled. You will need to refer to the installation data to locate
the terminators for the particular drive.
The SCSI specification allows only two sets of terminators - one at each end
of the bus. In practice the SCSI bus may not be a simple length of cable and
you will need to experiment to determine the best location for the second
Terminator in the case of multiple SCSI units.
Terminator Power
The SCRAM 500 card has jumper options to supply +5 Volts (current limited) to
the external SCSI connectors. This allows the SCSI bus to be terminated with
a passive Terminator Plug which may be supplied with some SCSI peripherals.
External SCSI Devices
The SCRAM 500 card has an External SCSI connector (see Figure 1) on the rear
panel. This connector is a DB25 Socket to accept the standard 25 -> 50 way
SCSI cable. Usually external SCSI devices will come with a suitable cable,
however most computer stores or mail order shops can supply them.
Installing RAM
The SCRAM 500 may be configured as a RAM card using Industry standard 256Kx4
or 1Megx4 ZIP DRAMs. All the RAM chips are socketed so the user may purchase
chips to upgrade the RAM size.
WARNING! OBSERVE STATIC PRECAUTIONS WHEN HANDLING
SCRAM 500 AND RAM DEVICES
Set the jumpers JP1 & JP2 according to Fig. 7 for correct RAM configuration.
The setting of these jumpers is irrespective of the type of DRAM used,
however 0M or 2M are the only valid settings if using 256Kx4 ZIPs.
RAM options:-
SIZE CHIPS RAM TYPE
2Meg 16 256Kx4 ZIP DRAMs
2Meg 4 1Megx4 ZIP DRAMs
4Meg 8 1Megx4 ZIP DRAMs
8Meg 16 1Megx4 ZIP DRAMs
Using 4 Meg ZIPs
4 Meg ZIPs
If you are installing 1Megx4 DRAMs you must short JP5. This changes the RAM
logic to accomodate the extra address lines associated with these chips. If
you short this jumper with 256Kx4 DRAMs plugged in, you will encounter RAM
malfunctions.
When populating the RAM sockets, always fill banks 0 to 3 in that order. The
RAM Bank number is clearly printed on the PCB.
You may not mix the 256Kx4 and 1Megx4 chips - if you are using the 4Meg chips
short the jumper "4M Chips"!
Set the RAM jumper block for the amount of memory you are installing. The
table of options is printed on the board just below the jumper pins.
Front Panel Operation
The SCRAM 500 has three LED Indicators visible on the front panel. These LEDs
will flash during operation of the unit and provide information about the
system.
RAM
Red LED is active when the Amiga is accessing FAST RAM on the SCRAM 500. This
dynamically indicates System activity and can be a very useful guide to the
operation of your software.
DISK
Orange LED is active during the data transfer phase of SCSI transactions.
This LED can be used as the Disk activity light in cases where the SCSI drive
is not easily seen.
ACTIVE
Green LED is turned on at the end of a successful AutoConfigure operation.
When the Amiga is powered on or rebooted, this LED wil be off. If the system
is working normally, this LED will come on within about 1 second. Any system
malfunction or reset will extinguish this LED.
Custom Logic
The SCRAM 500 SCSI RAM controller achieves a high level of integration by
using four custom logic chips. These chips implement most of the circuit
operation, thereby providing a low component count and subsequent low cost.
In the event of a circuit fault, most of the board logic is socketed ensuring
repairability. The overall function of the custom chips is described below.
Bertie controls the AutoConfigure logic of the SCRAM 500. This chip describes
the RAM and IO sections to the Amiga, sets RAM size and base offsets.
Cyril 8 is the 8 bit SCSI AutoBoot controller chip. This chip manages data
transfers to the 8490V SCSI controller, block transfers, interrupts, bus
synchronization and Disk LED.
Griswold is the master timing controller for the DRAMs. This chip generates
RAS and CAS, refreshes the RAMs and synchronises with the 68000.
Humphrey controls RAM operation including address decoding, bank selection,
1M/4M selection and XRDY operation.
*===================================================================*
* *
* Example program demonstrating the various methods of talking to *
* the SCRAM 500 device driver. *
* *
* Both standard and SCSI-Direct methods are demonstrated. *
* *
* The code is verbosely commented to make it simple to understand *
* but some knowledge of 68000 assembler programming on the part of *
* the reader is assumed. *
* *
* All code by Will McGovern. (yes, I wrote the driver as well !!) *
* *
* BLATENT AD ==> For a custom written driver for your hardware, *
* send inquiries to : *
* *
* Will McGovern *
* PO Box 247, *
* NEW LABTON, *
* NSW 2289 *
* AUSTRALIA *
* *
* The code is written to be assembled with Macro68 from DigiSoft *
* but can be converted to other formats with ease. Any Macro68 *
* specific directives are explained. *
* *
* The 2.0 include files are used for all symbols and equates. *
* *
* THIS CODE IS COMPLETELY PUBLIC DOMAIN. USE IT HOWEVER YOU WANT !! *
*===================================================================*
Macro68 assembler directives
mc68000 ;68000 mode
strict ;strict syntax mode
exeobj ;executable object file
objfile 'example' ;object filename
SYS : Call system vector macro
sys macro
jsr(_LVO\1,a6)
endm
*------------------------------------------------------------------
EXAMPLE_UNIT equ 0 ;scsi unit to talk to
BLOCK_SIZE equ $200 ;size of 512 byte block
MAXAUTO_SIZE equ $fe ;maximum autosense size
MAXINQUIRY_SIZE equ $fe ;maximum # of inquiry bytes
*------------------------------------------------------------------
section excode,code
Find this task and see if we started from workbench or from a CLI
start movea.l (4).w,a6 ;exec library base
suba.l a1,a1 ;this task
sys FindTask ;find this task
movea.l d0,a4 ;save task pointer
tst.l (pr_CLI,a4) ;did we come from a CLI ?
bne.s clistartup ;branch if CLI entry
Discard the workbench startup msg
lea (pr_MsgPort,a4),a0 ;this task's message port
sys WaitPort ;wait for WB startup message
lea (pr_MsgPort,a4),a0 ;this task's message port
sys GetMsg ;fetch the startup message
Initialise a message port (MP) for use with my IORequest structure
clistartup movea.l #mymp,a2 ;my message port
move.l a4,(MP_SIGTASK,a2) ;save pointer to this task
moveq #-1,d0 ;any signal will do
sys AllocSignal ;allocate a signal for MP
move.b d0,(MP_SIGBIT,a2) ;save signal # in MP
bmi nosignal ;branch if error
movea.l a2,a1 ;copy MP pointer
sys AddPort ;add my MP to the system
Open scram.device for EXAMPLEUNIT
movea.l #scramname,a0 ;scram.device name
movea.l #myior,a1 ;my IORequest structure
move.l a2,(MN_REPLYPORT,a1) ;init MP pointer in IOR
moveq #EXAMPLE_UNIT,d0 ;scsi unit to talk to
moveq #0,d1 ;no flags
sys OpenDevice ;open scram.device
tst.l d0 ;any errors ?
bne.b noscramdevice ;branch if error
* Now we can talk to the scram.device through the standard
* device commands such as CMD_READ or use the HD_SCSICMD command
* for SCSI-Direct mode.
Here are some examples of normal and SCSI-Direct mode access.
Read block 0 from the unit into blockbuffer using CMD_READ command
movea.l #myior,a1 ;IORequest pointer
move.w #CMD_READ,(IO_COMMAND,a1) ;CMD_READ command
move.l #blockbuffer,(IO_DATA,a1) ;buffer for data
clr.l (IO_OFFSET,a1) ;block 0
move.l #BLOCK_SIZE,(IO_LENGTH,a1) ;one block to read
sys DoIO ;read the block
tst.b d0 ;any error ?
bne.b cmdreaderror ;error if d0 not zero
Now do the same as above in SCSI-Direct mode
movea.l #myior,a1 ;IORequest pointer
move.w #HD_SCSICMD,(IO_COMMAND,a1) ;CMD_READ command
move.l #scsireadcmd,(IO_DATA,a1) ;pointer to SCSICmd
sys DoIO ;read the block
tst.b d0 ;any error ?
bne.b scsireaderror ;error if d0 not zero
Perform a SCSI INQUIRY command on the EXAMPLE_UNIT
movea.l #myior,a1 ;IORequest pointer
move.w #HD_SCSICMD,(IO_COMMAND,a1) ;HD_SCSICMD command
move.l #scsiinquirycmd,(IO_DATA,a1) ;pointer to SCSICmd
sys DoIO ;perform inquiry
tst.b d0 ;any error ?
beq.b exitexample ;error if d0 not zero
This is where an error handler would be placed if this was serious code
cmdreaderror:
scsireaderror nop
Clean up our mess and return to DOS
exitexample movea.l #myior,a1 ;pointer to my IORequest
sys CloseDevice ;close scram.device
noscramdevice movea.l #mymp,a1 ;pointer to my MP
sys RemPort ;remove my message port
moveq #0,d0 ;prepare D0 for byte load
move.b (mymp+MP_SIGBIT),d0 ;get signal # we allocated
sys FreeSignal ;free the allocated signal
nosignal moveq #0,d0 ;clear return code
rts ;return to DOS
*--------------------------------------------------------------------
section exdata,data
Note: The SCSICmd structure used in this example did not appear in the
early 1.3 include files in its entirety. C= omitted the autosense
information. See the 2.0 include file "devices/scsidisk.i" for a
full description of the SCSI-Direct protocol.
Also note that the SCSIF_AUTOSENSE (4 byte sense length) has
become SCSIF_OLDAUTOSENSE in the 2.0 implementation.
The new SCSIF_AUTOSENSE supports sense data lengths of 4 to 255
bytes. The sense length is specified in scsi_SenseLength field.
The SCSIF_READ/SCSIF_WRITE flags are NOT required by the scram.device as
the data direction is determined automatically by the driver.
SCSICmd structure for reading block 0
scsireadcmd dc.l blockbuffer ;data buffer address
dc.l BLOCK_SIZE ;number of bytes to read
dc.l 0 ;actual bytes read
dc.l readcmd ;pointer to scsi CDB
dc.w 10 ;# of command bytes
dc.w 0 ;actual cmd bytes sent
dc.b SCSIF_AUTOSENSE ;automatic sense
dc.b 0 ;status byte
dc.l sensebuffer ;buffer for sense data
dc.w MAXAUTO_SIZE ;size of my sense buffer
dc.w 0 ;actual sense bytes read
SCSICmd structure for an INQUIRY command
scsiinquirycmd dc.l inquirybuffer ;data buffer address
dc.l MAXINQUIRY_SIZE ;number of bytes to read
dc.l 0 ;actual bytes read
dc.l inquirycmd ;pointer to scsi CDB
dc.w 6 ;# of command bytes
dc.w 0 ;actual cmd bytes sent
dc.b SCSIF_AUTOSENSE ;automatic sense
dc.b 0 ;status byte
dc.l sensebuffer ;buffer for sense data
dc.w MAXAUTO_SIZE ;size of my sense buffer
dc.w 0 ;actual sense bytes read
* Here are the actual command desciptor blocks (CDB's) sent to the
* selected scsi unit.
*
* For more information on these consult the SCSI specifications or the
* manual for your scsi device.
readcmd dc.w $2800,$0000,$0000,$0000,$0100 ;extended read
inquirycmd dc.w $1200,$0000,MAXINQUIRY_SIZE<<8
Text and byte data
scramname cstr 'scram.device' ;null terminated name
even
*--------------------------------------------------------------------
section exbss,data
mymp ds.b MP_SIZE ;my message port structure
even
myior ds.b IOSTD_SIZE ;my IORequest structure
even
inquirybuffer ds.b MAXINQUIRY_SIZE ;inquiry data buffer
even
sensebuffer ds.b MAXAUTO_SIZE ;autosense data buffer
even
blockbuffer ds.b BLOCK_SIZE ;block data buffer
even
*--------------------------------------------------------------------
end
SCRAMPREP Installation Utility
SCRAMPrep is a disk utility provided to work with your SCRAM 500. You will
need to use SCRAMPrep on a new SCSI Hard drive to partition it and install
the Rigid Disk Blocks necessary for AutoBooting. SCRAMPrep also provides
additional advanced functions for SCSI devices.
Quick Guide
1. Attach SCRAM 500 to the Amiga.
2. Connect Hard Drive to SCRAM with SCSI cable.
3. Switch AutoBoot ON (toggle towards computer).
4. Power on SCSI Drive and Amiga 500.
5. Boot the SCRAMPrep Disk supplied with your unit.
6. Run SCRAMPrep.
7. Click select your drive from the table 0 - 6.
8. Select FULL AUTOMATIC PREP from control panel.
9. Select the number of partitions you require and write the data.
10. Quit SCRAMPrep and REBOOT with a WorkBench disk.
11. Format all the partitions using WorkBench Format.
12. Copy all of the WorkBench Disk to DH0:
13. Remove WorkBench floppy and reboot from hard drive.
LOW LEVEL FORMAT
Selecting this option will cause SCRAMPrep to issue a Low Level Format
command to the selected SCSI drive. This command is executed by the SCSI
drive and will completely reformat the drive, erasing ALL data. Some drives
(e.g. Quantums) ignore this command.
MAP BAD BLOCK
Selecting this option will cause SCRAMPrep to go out and verify every block
on the SCSI Drive. If bad blocks are found, SCRAMPrep will tell the SCSI
drive to map the blocks out. This option is a low level operation which can
be very slow. Only do it if you don't want any data on the drive and are
confident with what you are doing.
PARTITION DRIVE
This option gives you full manual control over partition setup. Using the
Partition Panel which pops up, you can set the exact size of each partition.
INSTALL FILESYSTEM
This option allows you to write a file system of your choice onto a boot
partition. Typically this will be AmigaDOS however, other FileSystems can
be specified.
~ Notes ~