Sean Keller and Chris Bartholomew
Cornell University
EE 476 Final Project for Prof. Bruce Land
May 2, 2001

SCSI Pseudocode

Initialization:
Begin in the Bus Free state
Arbitrate and Win the SCSI Bus
     Select the Zip Disk as a target
          Send an IDENTIFY message to prevent the Zip disk from disconnecting
          Send a TEST UNIT READY command
          Ignore the status and message returned
     Disconnect from the Zip disk
Return to the Bus Free state

When "dir" command is entered:
Begin in the Bus Free state
Arbitrate and Win the SCSI Bus
     Select the Zip Disk as a target
          Send a TEST UNIT READY command
          Store the status code but ignore the message returned
     Disconnect from the Zip disk
Return to the Bus Free state
If Zip disk is not ready, output appropriate error
Else Arbitrate and Win the SCSI Bus
     Select the Zip Disk as a target
          Send a READ command and get the root directory
          Loop through the data returned and print relevant directory info
          Ignore the status and message returned
     Disconnect from the Zip disk
Return to the Bus Free state

When "eject" command is entered:
Arbitrate and Win the SCSI Bus
     Select the Zip Disk as a target
          Send a TEST UNIT READY command
          Store the status code but ignore the message returned
     Disconnect from the Zip disk
Return to the Bus Free state
If Zip disk is not ready, output appropriate error
Else Arbitrate and Win the SCSI Bus
     Select the Zip Disk as a target
          Send a START/STOP UNIT command with eject bit true
          Ignore the status and message returned
     Disconnect from the Zip disk
Return to the Bus Free state

When picture is available:
Arbitrate and Win the SCSI Bus
     Select the Zip Disk as a target
          Issue READ commands to sort through the FAT tables
          Issue WRITE commands to link 11 available clusters
          Issue WRITE commands to create a directory entry for our new file
          Issue WRITE commands to store the image to disk
          Ignore the status and message returned
     Disconnect from the Zip disk
Return to the Bus Free state










Copyright 2001 Sean Keller and Chris Bartholomew