André's 8-bit Pages  Projects  Code  Resources  Tools  Forum
browser
Site has been tested with a number of browsers and systems. Javascript required for advanced menu, but degrades gracefully without Javascript.
search

(Google, in new window)
follow
Follow my 8-bit tweets on
twitter
(In new window)
discuss

Discuss my site on this 6502.org forum thread

(Forum registration required to post)

Hot!

Dive into the retro feeling and build yourself a Commodore PET replica

Need more speed? Speed up your 6502 computer with this 10 MHz 6502 CPU replacement board

Interested in electronics design? Look at the design lesson I got from Bil Herd, the hardware designer of the C128

SCSI interface information

SCSI Standard

CSI means "Small Computer System Interface". It is an interface that connectes computers with peripheral devices, like disks, scanners, CD-ROMs etc. As such it is very flexible.

The first SCSI interfaces were using asynchronous I/O mode. Each transfered byte was requested and acknowledged with a special handshake. Nowadays synchronous modes with up to 80 or more MByte/s are supported. Yet, all devices still know the asynchronous mode and can be used with this interface (at least I did not encounter one, but I also did not test that many).

The SCSI-II standard defines a number of command sets for a variety of devices. Disks are accessed as "direct access devices", and commands for CD-ROM devices, Printers, coprocessors etc are defined. The commands are transferred in a standard way, which makes the transport level flexible. And once you know how to send one command, you can easily send any other. To send a command you can have a look at the software from this site, that includes SCSI drivers for the 6502 in the GeckOS operating system.

The SCSI-II standard is refered to as ANSI X3.131-1990 Small Computer Systems Interface-2 (SCSI-II). The SCSI-I standard is X3.131-1986. The SCSI-III standard still specifies the asynchronous mode for parallel cable transfer, which is used in my current designs. In the resources section below are links to the standards and to a very good article on SCSI.

A good source (although a bit hard to read) is the linux kernel source code. Recommended reading are the comments at the beginning of drivers/scsi/aha152x.c, the defines in include/scsi/*, especially the SCSI command opcodes. greping for them in the code will give you an idea how to use them. One example is the function scan_scsis_single() in drivers/scsi/scsi.c. All code references relative to the main source directory, usually under /usr/src/linux/, of linux kernel version 2.0.36 (although the linux version should not matter that much here).

Resources

The SCSI standard is now managed by the Technical Committee T10, that unfortunately have decided to give access to the standards only after registration as I understand. Here are some links anyway.


Return to Homepage