Bug fixes, whitespace cleanup, deleted binaries.

This commit is contained in:
Marcio T
2021-11-24 08:55:06 -07:00
parent 4db47b680f
commit 5e33fa482c
40 changed files with 360 additions and 338 deletions
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 410 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 410 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 410 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 410 B

+4 -4
View File
@@ -7,7 +7,7 @@ OSErr iomega_spin_up_cartridge( int id ) {
// issue an Asynchronous START command to induce spinup
char cmd[6] = {
SCSI_Cmd_StartStopUnit,
1, // set the IMMED bit for offline
1, // set the IMMED bit for offline
0,
0,
1, // start the disk spinning
@@ -20,7 +20,7 @@ OSErr iomega_spin_down_and_eject( int id ) {
// issue an Asynchronous STOP command to induce spindown and ejection
char cmd[6] = {
SCSI_Cmd_StartStopUnit,
1, // set the IMMED bit for offline
1, // set the IMMED bit for offline
0,
0,
2, // eject a Jaz disk after stopping
@@ -33,7 +33,7 @@ OSErr iomega_set_prevent_removal( int id, bool lock) {
OSErr err;
char cmd[6] = {
SCSI_Cmd_PreventAllow,
0,
0,
0,
0,
lock ? 1 : 0,
@@ -43,7 +43,7 @@ OSErr iomega_set_prevent_removal( int id, bool lock) {
}
OSErr iomega_eject_cartridge( int id ) {
OSErr err;
OSErr err;
err = iomega_set_prevent_removal(id, false);
if (err != noErr) return err;
return iomega_spin_down_and_eject(id);
+21 -31
View File
@@ -5,7 +5,7 @@
#include <stdlib.h>
#include <string.h>
#define READ_TIMEOUT 300 /* 300 ticks = 5 seconds */
#define READ_TIMEOUT 60 /* 300 ticks = 5 seconds */
OSErr scsi_reset() {
return SCSIReset();
@@ -14,9 +14,9 @@ OSErr scsi_reset() {
OSErr scsi_cmd(int id, void *cmd, size_t clen, void *buff, size_t siz, size_t cnt, int flags, char *status) {
SCSIInstr TIB[3]; /* Transfer instruction block */
OSErr err;
/* Set up the TIB (used by Macintosh SCSI Manager) */
if( cnt != 0 ) {
/* Transfer cnt continguous blocks of size siz, one at a time. */
/* Use this sort of transfer when doing blind transfers to a */
@@ -34,7 +34,7 @@ OSErr scsi_cmd(int id, void *cmd, size_t clen, void *buff, size_t siz, size_t cn
TIB[2].scParam2 = 0;
} else {
/* Transfer siz bytes in one fell swoop. */
//printf("CMD: %x SCSI Siz %ld\n", int(*((char*)cmd)), siz);
TIB[0].scOpcode = scInc;
TIB[0].scParam1 = (long) buff;
TIB[0].scParam2 = siz;
@@ -42,36 +42,37 @@ OSErr scsi_cmd(int id, void *cmd, size_t clen, void *buff, size_t siz, size_t cn
TIB[1].scParam1 = 0;
TIB[1].scParam2 = 0;
}
/* Arbitrate for the bus and select the device. */
err = SCSIGet();
if (err != noErr) {printf("SCSIGet Error: %d\n", err); return err;}
err = SCSISelect(id);
if (err != noErr) {/*printf("SCSISelect Error: %d\n", err);*/ return err;}
if (err != noErr) {printf("SCSISelect Error: %d\n", err); return err;}
/* Send the command to the SCSI device and perform the requested I/O */
err = SCSICmd( (Ptr) cmd, clen );
if (err == noErr) {
OSErr io_err;
switch(flags) {
case SCSI_WRITE | SCSI_BLIND: err = SCSIWBlind( (Ptr) TIB ); break;
case SCSI_READ | SCSI_BLIND: err = SCSIRBlind( (Ptr) TIB ); break;
case SCSI_WRITE: err = SCSIWrite( (Ptr) TIB ); break;
case SCSI_READ: err = SCSIRead( (Ptr) TIB ); break;
case SCSI_WRITE | SCSI_BLIND: io_err = SCSIWBlind( (Ptr) TIB ); break;
case SCSI_READ | SCSI_BLIND: io_err = SCSIRBlind( (Ptr) TIB ); break;
case SCSI_WRITE: io_err = SCSIWrite( (Ptr) TIB ); break;
case SCSI_READ: io_err = SCSIRead( (Ptr) TIB ); break;
default: break;
}
if (err != noErr) {
printf("SCSI Read/Write Error: %d\n", err);
if (io_err != noErr) {
printf("SCSI Read/Write Error: %d\n", io_err);
}
} else {
printf("SCSICmd Error: %d", err);
printf("SCSICmd Error: %d\n", err);
}
/* Complete the transaction and release the bus */
short cstat, cmsg;
OSErr comperr = SCSIComplete( &cstat, &cmsg, READ_TIMEOUT );
if (comperr != noErr) {printf("SCSIComplete Error: %d\n", err); return err;}
if(status) *status = cstat;
if (comperr != noErr) {printf("SCSIComplete Error: %d (status: %d)\n", err, cstat); return err;}
return err;
}
@@ -79,12 +80,12 @@ OSErr scsi_cmd(int id, void *cmd, size_t clen, void *buff, size_t siz, size_t cn
OSErr scsi_inquiry(int id, int lun, scsi_inq_reply *reply) {
short err;
unsigned char cmd[6] = { SCSI_Cmd_Inquiry, lun << 5, 0x00, 0x00, 0x05, 0x00 };
memset(reply, 0, sizeof(scsi_inq_reply));
/* First we issue a dummy command to get the additional data field, then */
/* we use that number to issue a second command with the corrected length. */
if( (err = scsi_cmd(id, cmd, sizeof(cmd), reply, cmd[4], 0, SCSI_READ)) != noErr) {
return err;
}
@@ -93,18 +94,7 @@ OSErr scsi_inquiry(int id, int lun, scsi_inq_reply *reply) {
}
OSErr scsi_request_sense_data(int id, scsi_sense_reply *reply) {
short err;
unsigned char cmd[6] = { SCSI_Cmd_RequestSense, 0x00, 0x00, 0x00, 0x08, 0x00 };
memset(reply, 0, sizeof(scsi_sense_reply));
/* First we issue a dummy command to get the additional data field, then */
/* we use that number to issue a second command with the corrected length. */
if( (err = scsi_cmd(id, cmd, sizeof(cmd), reply, cmd[4], 0, SCSI_READ)) != noErr) {
return err;
}
cmd[4] += reply->alen;
unsigned char cmd[6] = {SCSI_Cmd_RequestSense, 0x00, 0x00, 0x00, sizeof(scsi_sense_reply), 0x00};
return scsi_cmd(id, cmd, sizeof(cmd), reply, cmd[4], 0, SCSI_READ);
}
+1 -1
View File
@@ -4,7 +4,7 @@ typedef Boolean bool;
enum {
SCSI_Cmd_RequestSense = 0x03,
SCSI_Cmd_FormatUnit = 0x04,
SCSI_Cmd_FormatUnit = 0x04,
SCSI_Cmd_NonSenseData = 0x06,
SCSI_Cmd_Read = 0x08,
SCSI_Cmd_Write = 0x0a,