Retired Document
Important: This sample code may not represent best practices for current development. The project may use deprecated symbols and illustrate technologies and techniques that are no longer recommended.
Src/SCSIAsyncSample.r
/* SCSIAsyncSample.r */ |
#include "Types.r" |
#include "SysTypes.r" |
#define REZ |
#include "SCSIAsyncSample.h" |
type kApplicationCreator as 'STR '; |
resource kApplicationCreator (0, "Owner Resource", purgeable) { |
"Demonstrating Asynch I/O for the New SCSI Manager" |
}; |
resource 'vers' (1) { |
0x1, |
0x0, |
release, |
0x1, |
verUS, |
"1.0.1", |
"1.0.1 © 1993 Apple Computer Inc. All Rights Reserved" |
}; |
resource 'vers' (2) { |
0x1, |
0x0, |
release, |
0x1, |
verUS, |
"1.0.1", |
"1.0.1 © 1993 Apple Computer Inc. All Rights Reserved" |
}; |
resource 'MBAR' (MBAR_MenuBar, "Menu Bar") { |
{ |
MENU_Apple, |
MENU_File, |
MENU_Edit |
} |
}; |
resource 'MENU' (MENU_Apple, "Apple Menu") { |
MENU_Apple, |
textMenuProc, |
0x7FFFFFFD, |
enabled, |
apple, |
{ |
"About SCSI Async SampleÉ", noIcon, noKey, noMark, plain, |
"-", noIcon, noKey, noMark, plain |
} |
}; |
resource 'MENU' (MENU_File, "File Menu") { |
MENU_File, |
textMenuProc, |
0, |
enabled, |
"File", |
{ |
"Create Log FileÉ", noIcon, "S", noMark, plain, |
"Close Log FileÉ", noIcon, "W", noMark, plain, |
"-", noIcon, noKey, noMark, plain, |
"Page SetupÉ", noIcon, noKey, noMark, plain, |
"Print ReportÉ", noIcon, "P", noMark, plain, |
"-", noIcon, noKey, noMark, plain, |
"Debug Trap", noIcon, ".", noMark, plain, |
"-", noIcon, noKey, noMark, plain, |
"Quit", noIcon, "Q", noMark, plain, |
} |
}; |
resource 'MENU' (MENU_Edit, "Edit Menu") { |
MENU_Edit, |
textMenuProc, |
0, |
enabled, |
"Edit", |
{ |
"Undo", noIcon, "Z", noMark, plain, |
"-", noIcon, noKey, noMark, plain, |
"Cut", noIcon, "X", noMark, plain, |
"Copy", noIcon, "C", noMark, plain, |
"Paste", noIcon, "V", noMark, plain, |
"Clear", noIcon, noKey, noMark, plain |
} |
}; |
resource 'DLOG' (DLOG_Query) { |
{48, 35, 274, 496}, |
dBoxProc, |
visible, |
goAway, |
0x0, |
DLOG_Query, |
"" |
}; |
resource 'DITL' (DLOG_Query) { |
{ |
{190, 370, 210, 438}, Button { enabled, "Test" }, |
{160, 370, 180, 438}, Button { enabled, "Finished" }, |
/* Editable items */ |
{ 30, 20, 46, 38}, EditText { enabled, "0" /* Host Bus */ }, |
{ 50, 20, 66, 38}, EditText { enabled, "0" /* Target ID */ }, |
{130, 20, 148, 131}, EditText { enabled, "0" /* Requests */ }, |
{160, 20, 178, 131}, EditText { enabled, "1" /* Blocks/xfer */ }, |
{190, 20, 208, 131}, EditText { enabled, "15000" /* Timeout */ }, |
{ 70, 15, 88, 167}, CheckBox { enabled, "Enable Async I/O" }, |
{ 90, 15, 107, 167}, CheckBox { enabled, "Enable Disconnect" }, |
{110, 15, 127, 167}, CheckBox { enabled, "Random Seek Test" }, |
/* Changable items */ |
{ 10, 20, 24, 151}, StaticText { disabled, "Asynch Thread: 10" }, |
{ 30, 300, 46, 435}, StaticText { disabled, "Vendor ID" }, |
{ 50, 300, 66, 434}, StaticText { disabled, "Product" }, |
{ 70, 370, 86, 434}, StaticText { disabled, "Logical Block Len" }, |
{ 90, 370, 106, 434}, StaticText { disabled, "Blocks on Device" }, |
/* Always static */ |
{ 30, 210, 46, 290}, StaticText { disabled, "Vendor" }, |
{ 50, 210, 66, 290}, StaticText { disabled, "Product" }, |
{ 70, 210, 86, 360}, StaticText { disabled, "Logical Block Length" }, |
{ 90, 210, 106, 360}, StaticText { disabled, "Total Logical Blocks" }, |
{130, 140, 147, 360}, StaticText { disabled, |
"Requests (zero = forever)" }, |
{160, 140, 177, 360}, StaticText { disabled, "Blocks per Request" }, |
{190, 140, 207, 360}, StaticText { disabled, |
"Timeout (msec), (zero = forever)" }, |
{ 30, 50, 46, 125}, StaticText { disabled, "Host Bus" }, |
{ 50, 50, 66, 125}, StaticText { disabled, "Target ID" } |
} |
}; |
resource 'DLOG' (DLOG_About, "About SCSI Async Sample") { |
{ 100, 100, 236, 425 }, |
dBoxProc, |
invisible, |
noGoAway, |
0x0, |
DLOG_About, |
"" |
}; |
resource 'DITL' (DLOG_About, "About SCSI Async Sample") { |
{ |
{ 104, 144, 124, 312 }, Button { enabled, "OK" }, |
{ 10, 10, 98, 312 }, StaticText { disabled, |
"SCSI Async Sample illustrates asychronous I/O" |
" using the new SCSI Manager.\n" |
"Written by Martin Minow, Developer Technical Support.\n" |
"Copyright © 1993 Apple Computer Inc." |
}, |
} |
}; |
resource 'ALRT' (ALRT_NoNewSCSI, "New SCSI Manager Missing") { |
{ 85, 85, 260, 400 }, |
ALRT_NoNewSCSI, |
{ |
OK, visible, silent, |
OK, visible, silent, |
OK, visible, silent, |
OK, visible, silent, |
} |
}; |
resource 'DITL' (ALRT_NoNewSCSI, "New SCSI Manager Missing") { |
{ |
{ 128, 200, 148, 286 }, Button { enabled, "Exit" }, |
{ 8, 72, 117, 290 }, StaticText { disabled, |
"This application requires SCSI Manager 4.3." |
}, |
} |
}; |
resource 'ALRT' (ALRT_NonFatalError, "Non-fatal Error") { |
{ 85, 85, 260, 400 }, |
ALRT_NonFatalError, |
{ |
OK, visible, silent, |
OK, visible, silent, |
OK, visible, silent, |
OK, visible, silent, |
} |
}; |
resource 'DITL' (ALRT_NonFatalError, "Non-fatal Error") { |
{ |
{ 140, 240, 160, 305 }, Button { enabled, "Exit" }, |
{ 140, 140, 160, 230 }, Button { enabled, "Continue" }, |
{ 26, 86, 130, 305}, StaticText { disabled, "System Error ^0 (^1): ^2" }, |
} |
}; |
resource 'ALRT' (ALRT_FatalError, "Fatal Error") { |
{ 85, 85, 260, 400 }, |
ALRT_FatalError, |
{ |
OK, visible, silent, |
OK, visible, silent, |
OK, visible, silent, |
OK, visible, silent, |
} |
}; |
resource 'DITL' (ALRT_FatalError, "Fatal Error") { |
{ |
{ 140, 240, 160, 305 }, Button { enabled, "Exit" }, |
{ 26, 86, 130, 305}, StaticText { disabled, "Fatal Error ^0 (^1): ^2" }, |
} |
}; |
resource 'ALRT' (ALRT_NoMemory, "Data buffer too large") { |
{ 85, 85, 260, 400 }, |
ALRT_NoMemory, |
{ |
OK, visible, silent, |
OK, visible, silent, |
OK, visible, silent, |
OK, visible, silent, |
} |
}; |
resource 'DITL' (ALRT_NoMemory, "Data buffer too large") { |
{ |
{ 128, 200, 148, 286 }, Button { enabled, "OK" }, |
{ 8, 72, 117, 290 }, StaticText { disabled, |
"Data buffer (^0) too large: use fewer logical blocks for I/O requests." |
}, |
} |
}; |
/* |
* SCSI Manager (and other) Errors |
*/ |
type 'Estr' as 'STR '; |
resource 'Estr' (-50) { "paramErr: Error in user parameter block" }; |
resource 'Estr' (2) { "scCommErr: SCSI operation timeout - no such device" }; |
resource 'Estr' (3) { "scArbNBErr: SCSI arbitration timeout waiting for bus" }; |
resource 'Estr' (4) { "scBadParmsErr: SCSI bat parameter or TIB opcode" }; |
resource 'Estr' (5) { "scPhaseErr: SCSI phase mismatch for operation" }; |
resource 'Estr' (6) { "scCompareErr: SCSI data compare error" }; |
resource 'Estr' (7) { "scMgrBusyErr: SCSI Manager busy" }; |
resource 'Estr' (8) { "scSequenceErr: SCSI operation out of sequence" }; |
resource 'Estr' (9) { "scBusTOErr: SCSI CPU bus timeout error" }; |
resource 'Estr' (10) { "scComplPhaseErr: SCSI phase error at completion" }; |
resource 'Estr' (108) { "memErr: Out of memory" }; |
resource 'Estr' (109) { "nilHandleErr: Unexpected NULL handle" }; |
#define scsiErrorBase -7936 |
resource 'Estr' (scsiErrorBase + 0x02) { "scsiRequestAborted: Request aborted by host" }; |
resource 'Estr' (scsiErrorBase + 0x03) { "scsiUnableToAbort: Unable to abort SCSI request" }; |
resource 'Estr' (scsiErrorBase + 0x04) { "scsiNonZeroStatus: Completed with non-zero status" }; |
resource 'Estr' (scsiErrorBase + 0x09) { "scsiUnableToTerminate: Unable to terminate I/O Request" }; |
resource 'Estr' (scsiErrorBase + 0x0A) { "scsiSelectTimeout: Target selection timeout" }; |
resource 'Estr' (scsiErrorBase + 0x0B) { "scsiCommandTimeout: Command timeout" }; |
resource 'Estr' (scsiErrorBase + 0x0C) { "scsiIdentifyMessageRejected: Target reject (no LUN?)" }; |
resource 'Estr' (scsiErrorBase + 0x0D) { "scsiMessageRejectReceived: Target rejected message" }; |
resource 'Estr' (scsiErrorBase + 0x0E) { "scsiSCSIBusReset: SCSI Bus Reset sent or received" }; |
resource 'Estr' (scsiErrorBase + 0x0F) { "scsiParityError: Uncorrectable bus parity error" }; |
resource 'Estr' (scsiErrorBase + 0x10) { "scsiAutosenseFailed: Autosense failed" }; |
resource 'Estr' (scsiErrorBase + 0x11) { "scsiRequestAborted: Request aborted by host" }; |
resource 'Estr' (scsiErrorBase + 0x12) { "scsiRequestAborted: Request aborted by host" }; |
resource 'Estr' (scsiErrorBase + 0x13) { "scsiRequestAborted: Request aborted by host" }; |
resource 'Estr' (scsiErrorBase + 0x14) { "scsiRequestAborted: Request aborted by host" }; |
resource 'Estr' (scsiErrorBase + 0x17) { "scsiBDRsent: Issued SCSI Bus Device Reset" }; |
resource 'Estr' (scsiErrorBase + 0x18) { "scsiTerminated: Request terminated by host" }; |
resource 'Estr' (scsiErrorBase + 0x19) { "scsiNoNexus: Nexus is not established" }; |
resource 'Estr' (scsiErrorBase + 0x1A) { "scsiCDBReceived: SCSI Command Data Block received" }; |
resource 'Estr' (scsiErrorBase + 0x30) { "scsiTooManyBuses: Too many busses registered" }; |
resource 'Estr' (scsiErrorBase + 0x31) { "scsiBusy: SCSI subsystem busy" }; |
resource 'Estr' (scsiErrorBase + 0x32) { "scsiProvideFail: Can't provide requested capability" }; |
resource 'Estr' (scsiErrorBase + 0x33) { "scsiDeviceNotThere: Device not installed or present" }; |
resource 'Estr' (scsiErrorBase + 0x34) { "scsiNoHBA: Missing host bus adaptor" }; |
resource 'Estr' (scsiErrorBase + 0x35) { "scsiDeviceConflict: Max 1 refNum per device" }; |
resource 'Estr' (scsiErrorBase + 0x36) { "scsiNoSuchXref: No such refNum cross-reference" }; |
resource 'Estr' (scsiErrorBase + 0x37) { "scsiQLinkInvalid: Pre-linked param blocks not supported" }; |
resource 'Estr' (scsiErrorBase + 0x40) { "scsiPBLengthError: Param block length error" }; |
resource 'Estr' (scsiErrorBase + 0x41) { "scsiFunctionNotAvailable: No such SCSI function" }; |
resource 'Estr' (scsiErrorBase + 0x42) { "scsiErrorBase: Invalid SCSI request" }; |
resource 'Estr' (scsiErrorBase + 0x43) { "scsiBusInvalid: Invalid host bus reference" }; |
resource 'Estr' (scsiErrorBase + 0x44) { "scsiTIDInvalid: Invalid target id" }; |
resource 'Estr' (scsiErrorBase + 0x45) { "scsiLUNInvalid: Invalid logical unit number" }; |
resource 'Estr' (scsiErrorBase + 0x46) { "scsiIIDInvalid: Invalid initiator identifier" }; |
resource 'Estr' (scsiErrorBase + 0x47) { "scsiDataTypeInvalid: Invalid or unsupported data type" }; |
resource 'Estr' (scsiErrorBase + 0x48) { "scsiTransferTypeInvalid: Invalid transfer type" }; |
resource 'Estr' (scsiErrorBase + 0x49) { "scsiCDBLengthInvalid: Invalide command data block length" }; |
/* |
* ASC and ASQ messages. Each ASC value defines a STR# resource |
* in the range 1000 + ASC value. Within that resource, each |
* defined ASQ value is in a string, whose first byte contains |
* the ASQ value (in binary). Note that the comments give the |
* ASC value in HEX, but the STR# number is in decimal. |
* |
* If the first byte of the string is 0xFF, the string means |
* "all other ASQ values." (It goes without saying that that |
* value must be last. |
*/ |
/* |
* --------00-------- |
*/ |
/* |
* Ugh: Think Rez crashes if you give it Hex constants. |
* MPW Rez won't compile an expression either. Grumble. |
*/ |
resource 'STR#' (STRS_SenseBase + 0, "00") { |
{ |
"\0x00No additional sense information", |
"\0x01Filemark detected", |
"\0x02End-of-partition/medium detected", |
"\0x03Set mark detected", |
"\0x04Beginning of partition/medium detected", |
"\0x05End of data detected", |
"\0x06I/O terminated", |
"\0x11Audio play operation in progress", |
"\0x12Audio play operation paused", |
"\0x13Audio play operation successfully completed", |
"\0x14Audio play operation stopped due to error", |
"\0x15No current audio status to return" |
} |
}; |
resource 'STR#' (STRS_SenseBase + 1, "01") { |
{ |
"\0x00No index/sector signal (dead motor, perhaps)" |
} |
}; |
resource 'STR#' (STRS_SenseBase + 3, "03") { |
{ |
"\0x00Peripheral device write fault", |
"\0x01No write current", |
"\0x02Excessive write errors" |
} |
}; |
resource 'STR#' (STRS_SenseBase + 5, "05") { |
{ |
"\0x00Logical unit does not respond to selection" |
} |
}; |
resource 'STR#' (STRS_SenseBase + 6, "06") { |
{ |
"\0x00No reference position found" |
} |
}; |
resource 'STR#' (STRS_SenseBase + 7, "07") { |
{ |
"\0x00Multiple peripheral devices selected" |
} |
}; |
resource 'STR#' (STRS_SenseBase + 8, "08") { |
{ |
"\0x00Logical unit communication failure", |
"\0x01Logical unit communication time-out", |
"\0x02Logical unit communication parity error" |
} |
}; |
resource 'STR#' (STRS_SenseBase + 9, "09") { |
{ |
"\0x00Track following error", |
"\0x01Tracking servo failure", |
"\0x02Focus servo failure", |
"\0x03Spindle servo failure" |
} |
}; |
resource 'STR#' (STRS_SenseBase + 10, "0A") { |
{ |
"\0x00Error log overflow" |
} |
}; |
resource 'STR#' (STRS_SenseBase + 12, "0C") { |
{ |
"\0x00Write error", |
"\0x01Write error recovered with auto reallocation", |
"\0x02Write error - auto reallocation failed" |
} |
}; |
resource 'STR#' (STRS_SenseBase + 16, "10") { |
{ |
"\0x00ID CRC or ECC error" |
} |
}; |
resource 'STR#' (STRS_SenseBase + 17, "11") { |
{ |
"\0x00Unrecovered read error", |
"\0x01Read retries exhausted", |
"\0x02Error too long to correct", |
"\0x03Multiple read errors", |
"\0x04Unrecovered read error - auto reallocate failed", |
"\0x05L-EC uncorrectable error", |
"\0x06Circ unrecovered error", |
"\0x07Data resychronization error", |
"\0x08Incomplete block read", |
"\0x09No gap found", |
"\0x0aMiscorrected error", |
"\0x0bUnrecovered read error - recommend reassignment", |
"\0x0cUnrecovered read error - recommend rewrite the data" |
} |
}; |
resource 'STR#' (STRS_SenseBase + 18, "12") { |
{ |
"\0x00Address mark not found for ID field" |
} |
}; |
resource 'STR#' (STRS_SenseBase + 19, "13") { |
{ |
"\0x00Address mark not found for data field" |
} |
}; |
resource 'STR#' (STRS_SenseBase + 20, "14") { |
{ |
"\0x00Recorded entity not found", |
"\0x01Record not found", |
"\0x02Filemark or setmark not found", |
"\0x03End of data not found", |
"\0x04Block sequence error" |
} |
}; |
resource 'STR#' (STRS_SenseBase + 21, "15") { |
{ |
"\0x00Random positioning error", |
"\0x01Mechanical positioning error", |
"\0x02Positioning error detected by read of medium" |
} |
}; |
resource 'STR#' (STRS_SenseBase + 22, "16") { |
{ |
"\0x00Data synchronization mark error" |
} |
}; |
resource 'STR#' (STRS_SenseBase + 23, "17") { |
{ |
"\0x00Recovered data with no error correction applied", |
"\0x01Recovered data with retries", |
"\0x02Recovered data with positive head offset", |
"\0x03Recovered data with negative head offset", |
"\0x04Recovered data with retries and/or circ applied", |
"\0x05Recovered data using previous sector ID", |
"\0x06Recovered data without ECC - Data auto reallocated", |
"\0x07Recovered data without ECC - Recommend reassignment" |
} |
}; |
resource 'STR#' (STRS_SenseBase + 24, "18") { |
{ |
"\0x00Recovered data with error correction applied", |
"\0x01Recovered data with error correction and retries applied", |
"\0x02Recovered data - data auto re\0x00\rallocated", |
"\0x03Recovered data with circ", |
"\0x04Recovered data with lec", |
"\0x05Recovered data - recommend reassignment" |
} |
}; |
resource 'STR#' (STRS_SenseBase + 25, "19") { |
{ |
"\0x00Defect list error", |
"\0x01Defect list not available", |
"\0x02Defect list error in primary list", |
"\0x03Defect list error in grown list" |
} |
}; |
resource 'STR#' (STRS_SenseBase + 26, "1A") { |
{ |
"\0x00Parameter list length error" |
} |
}; |
resource 'STR#' (STRS_SenseBase + 27, "1B") { |
{ |
"\0x00Synchronous data transfer error" |
} |
}; |
resource 'STR#' (STRS_SenseBase + 28, "1C") { |
{ |
"\0x00Defect list not found", |
"\0x01Primary defect list not found", |
"\0x02Grown defect list not found" |
} |
}; |
resource 'STR#' (STRS_SenseBase + 29, "1D") { |
{ |
"\0x00Miscompare during verify operation" |
} |
}; |
resource 'STR#' (STRS_SenseBase + 30, "1E") { |
{ |
"\0x00Recovered Id with ECC correction" |
} |
}; |
resource 'STR#' (STRS_SenseBase + 32, "20") { |
{ |
"\0x00Invalid command operation code" |
} |
}; |
resource 'STR#' (STRS_SenseBase + 33, "21") { |
{ |
"\0x00Logical block address out of range", |
"\0x01Invalid element address" |
} |
}; |
resource 'STR#' (STRS_SenseBase + 34, "22") { |
{ |
"\0x00Illegal function (should use 20 00, 24 00, or 26 00)" |
} |
}; |
resource 'STR#' (STRS_SenseBase + 36, "24") { |
{ |
"\0x00Invalid field in CDB" |
} |
}; |
resource 'STR#' (STRS_SenseBase + 37, "25") { |
{ |
"\0x00Logical unit not supported" |
} |
}; |
resource 'STR#' (STRS_SenseBase + 38, "26") { |
{ |
"\0x00Invalid field in parameter list", |
"\0x01Parameter not supported", |
"\0x02Parameter value invalid", |
"\0x03Thershold parameters not supported" |
} |
}; |
resource 'STR#' (STRS_SenseBase + 39, "27") { |
{ |
"\0x00Write protected" |
} |
}; |
resource 'STR#' (STRS_SenseBase + 40, "28") { |
{ |
"\0x00Not ready to ready transition (medium may have changed)", |
"\0x01Import or export element accessed" |
} |
}; |
resource 'STR#' (STRS_SenseBase + 41, "29") { |
{ |
"\0x00Power on, reset, or bus device reset occurred" |
} |
}; |
resource 'STR#' (STRS_SenseBase + 42, "2A") { |
{ |
"\0x00Parameters changed", |
"\0x01Mode parameters changed", |
"\0x02Log parameters changed" |
} |
}; |
resource 'STR#' (STRS_SenseBase + 43, "2B") { |
{ |
"\0x00Copy cannot execute since host cannot disconnect" |
} |
}; |
resource 'STR#' (STRS_SenseBase + 44, "2C") { |
{ |
"\0x00Command sequence error", |
"\0x01Too many windows specified", |
"\0x02Invalid combination of windows specified" |
} |
}; |
resource 'STR#' (STRS_SenseBase + 45, "2D") { |
{ |
"\0x00Overwrite error on update in place" |
} |
}; |
resource 'STR#' (STRS_SenseBase + 47, "2F") { |
{ |
"\0x00Commands cleared by another initiator" |
} |
}; |
resource 'STR#' (STRS_SenseBase + 48, "30") { |
{ |
"\0x00Incompatible medium installed", |
"\0x01Cannot read meduim - unknown format", |
"\0x02Cannot read meduim - incompatible format", |
"\0x03Cleaning cartridge installed" |
} |
}; |
resource 'STR#' (STRS_SenseBase + 49, "31") { |
{ |
"\0x00Medium format corrupted", |
"\0x01Format command failed" |
} |
}; |
resource 'STR#' (STRS_SenseBase + 50, "32") { |
{ |
"\0x00No defect spare location available", |
"\0x01Defect list update failure" |
} |
}; |
resource 'STR#' (STRS_SenseBase + 51, "33") { |
{ |
"\0x00Tape length error" |
} |
}; |
resource 'STR#' (STRS_SenseBase + 54, "36") { |
{ |
"\0x00Ribbon, ink, or toner failure" |
} |
}; |
resource 'STR#' (STRS_SenseBase + 55, "37") { |
{ |
"\0x00Rounded parameter" |
} |
}; |
resource 'STR#' (STRS_SenseBase + 57, "39") { |
{ |
"\0x00Saving parameters not supported" |
} |
}; |
resource 'STR#' (STRS_SenseBase + 58, "3A") { |
{ |
"\0x00Medium not present" |
} |
}; |
resource 'STR#' (STRS_SenseBase + 59, "3B") { |
{ |
"\0x00Sequential positioning error", |
"\0x01Tape position error at beginning of medium", |
"\0x02Tape position errror at end of medium", |
"\0x03Tape or electronic vertical forms unit not ready", |
"\0x04Slew failure", |
"\0x05Paper Jam", |
"\0x06Failed to sense top of form", |
"\0x07Failed to sense bottom of form", |
"\0x08Reposition error", |
"\0x09Read past end of medium", |
"\0x0aRead past beginning of medium", |
"\0x0bPosition past end of medium", |
"\0x0cPosition past beginning of medium", |
"\0x0dMedium destination element full", |
"\0x0eMedium source element empty" |
} |
}; |
resource 'STR#' (STRS_SenseBase + 61, "3D") { |
{ |
"\0x00Invalid bits in identify message" |
} |
}; |
resource 'STR#' (STRS_SenseBase + 62, "3E") { |
{ |
"\0x00Logical unit has not self-configured yet" |
} |
}; |
resource 'STR#' (STRS_SenseBase + 63, "3F") { |
{ |
"\0x00Target operating conditions have changed", |
"\0x01Microcode has been changed", |
"\0x02Changed operating definition", |
"\0x03Inquiry data has changed" |
} |
}; |
resource 'STR#' (STRS_SenseBase + 64, "40") { |
{ |
"\0x00RAM failure (should use 40 NN)", |
"ÿDiagnostic failure on component NN (80H-FFH)" |
} |
}; |
resource 'STR#' (STRS_SenseBase + 65, "41") { |
{ |
"\0x00Data path failure (should use 40 NN)" |
} |
}; |
resource 'STR#' (STRS_SenseBase + 66, "42") { |
{ |
"\0x00Power on or self-test failure (should use 40 NN)" |
} |
}; |
resource 'STR#' (STRS_SenseBase + 67, "43") { |
{ |
"\0x00Message error" |
} |
}; |
resource 'STR#' (STRS_SenseBase + 68, "44") { |
{ |
"\0x00Internal target failure" |
} |
}; |
resource 'STR#' (STRS_SenseBase + 69, "45") { |
{ |
"\0x00Select or reselect failure" |
} |
}; |
resource 'STR#' (STRS_SenseBase + 70, "46") { |
{ |
"\0x00Unsuccessful soft reset" |
} |
}; |
resource 'STR#' (STRS_SenseBase + 71, "47") { |
{ |
"\0x00SCSI parity error" |
} |
}; |
resource 'STR#' (STRS_SenseBase + 72, "48") { |
{ |
"\0x00Initiator detected error message received" |
} |
}; |
resource 'STR#' (STRS_SenseBase + 73, "49") { |
{ |
"\0x00Invalid message error" |
} |
}; |
resource 'STR#' (STRS_SenseBase + 74, "4A") { |
{ |
"\0x00Command phase error" |
} |
}; |
resource 'STR#' (STRS_SenseBase + 75, "4B") { |
{ |
"\0x00Data phase error" |
} |
}; |
resource 'STR#' (STRS_SenseBase + 76, "4C") { |
{ |
"\0x00Logical unit failed self-configuration" |
} |
}; |
resource 'STR#' (STRS_SenseBase + 78, "4E") { |
{ |
"\0x00Overlapped command attempted" |
} |
}; |
resource 'STR#' (STRS_SenseBase + 80, "50") { |
{ |
"\0x00Write append error", |
"\0x01Write append positiion error", |
"\0x02Position error related to timing" |
} |
}; |
resource 'STR#' (STRS_SenseBase + 81, "51") { |
{ |
"\0x00Erase failure" |
} |
}; |
resource 'STR#' (STRS_SenseBase + 82, "52") { |
{ |
"\0x00Cartridge fault" |
} |
}; |
resource 'STR#' (STRS_SenseBase + 83, "53") { |
{ |
"\0x00Media load or eject failed", |
"\0x01Unload tape failure", |
"\0x02Medium removal prevented" |
} |
}; |
resource 'STR#' (STRS_SenseBase + 84, "54") { |
{ |
"\0x00SCSI to host system interface failure" |
} |
}; |
resource 'STR#' (STRS_SenseBase + 85, "55") { |
{ |
"\0x00System resource failure" |
} |
}; |
resource 'STR#' (STRS_SenseBase + 87, "57") { |
{ |
"\0x00unable to recover table of contents" |
} |
}; |
resource 'STR#' (STRS_SenseBase + 88, "58") { |
{ |
"\0x00Generation does not exist" |
} |
}; |
resource 'STR#' (STRS_SenseBase + 89, "59") { |
{ |
"\0x00Updated block read" |
} |
}; |
resource 'STR#' (STRS_SenseBase + 90, "5A") { |
{ |
"\0x00Operator request or state change input (unspecified)", |
"\0x01Operator medium removal request", |
"\0x02Operator selected write protect", |
"\0x03Operator selected write permit" |
} |
}; |
resource 'STR#' (STRS_SenseBase + 91, "5B") { |
{ |
"\0x00Log exception", |
"\0x01Threshold condition met", |
"\0x02Log counter at maximum", |
"\0x03Log list codes exhausted" |
} |
}; |
resource 'STR#' (STRS_SenseBase + 92, "5C") { |
{ |
"\0x00RPL status change", |
"\0x01Spindles synchronized", |
"\0x02Spindles not synchronized" |
} |
}; |
resource 'STR#' (STRS_SenseBase + 96, "60") { |
{ |
"\0x00Lamp failure" |
} |
}; |
resource 'STR#' (STRS_SenseBase + 97, "61") { |
{ /* array StringArray: 3 elements */ |
/* [1] */ |
"\0x00Video acquisition error", |
"\0x01unable to acquire video", |
"\0x02Out of focus" |
} |
}; |
resource 'STR#' (STRS_SenseBase + 98, "62") { |
{ |
"\0x00Scan head positioning error" |
} |
}; |
resource 'STR#' (STRS_SenseBase + 99, "63") { |
{ |
"\0x00End of user area encountered on this track" |
} |
}; |
resource 'STR#' (STRS_SenseBase + 100, "64") { |
{ |
"\0x00Illegal mode for this track" |
} |
}; |
resource 'acur' (ACUR_Animator, locked, preload) { |
{ |
128, 129, 130, 131, 132, 133, 134, 135 |
} |
}; |
resource 'CURS' (128, locked, preload) { |
$"0018 003C 007E 07FF 081E 100C 1088 1088" |
$"1388 1008 3008 7818 FFFC FC08 7800 30", |
$"0018 003C 007E 07FF 0FFE 1FFC 1FF8 1FF8" |
$"1FF8 1FF8 3FF8 7FF8 FFFC FC08 7800 30", |
{8, 8} |
}; |
resource 'CURS' (129, locked, preload) { |
$"0000 0000 0000 07E0 0810 F00F F08F F08F" |
$"F38F F00F F00F 0810 07E0 0180 0180", |
$"0000 0000 0000 07E0 0FF0 FFFF FFFF FFFF" |
$"FFFF FFFF FFFF 0FF0 07E0 0180 0180", |
{8, 8} |
}; |
resource 'CURS' (130, locked, preload) { |
$"3000 7800 FC00 FFE0 7810 3008 1088 1088" |
$"1388 1008 100C 381E 3FFF 183F 001E 000C", |
$"3000 7800 FC00 FFE0 7FF0 3FF8 1FF8 1FF8" |
$"1FF8 1FF8 1FFC 3FFE 3FFF 183F 001E 000C", |
{8, 8} |
}; |
resource 'CURS' (131, locked, preload) { |
$"07E0 07E0 07E0 07E0 0810 1008 1088 7088" |
$"7388 1008 1008 0810 07E0 07E0 07E0 07E0", |
$"07E0 07E0 07E0 07E0 0FF0 1FF8 1FF8 7FF8" |
$"7FF8 1FF8 1FF8 0FF0 07E0 07E0 07E0 07E0", |
{8, 8} |
}; |
resource 'CURS' (132, locked, preload) { |
$"0018 003C 187E 3FFF 381E 100C 1088 1088" |
$"1388 1008 3008 7818 FFF8 FC00 7800 30", |
$"0018 003C 187E 3FFF 3FFE 1FFC 1FF8 1FF8" |
$"1FF8 1FF8 3FF8 7FF8 FFF8 FC00 7800 30", |
{8, 8} |
}; |
resource 'CURS' (133, locked, preload) { |
$"0000 0180 0180 07E0 0810 F00F F08F F08F" |
$"F38F F00F F00F 0810 07E0", |
$"0000 0180 0180 07E0 0FF0 FFFF FFFF FFFF" |
$"FFFF FFFF FFFF 0FF0 07E0", |
{8, 8} |
}; |
resource 'CURS' (134, locked, preload) { |
$"3000 7800 FC18 FFFC 781C 3008 1088 1088" |
$"1388 1008 100C 181E 0FFF 003F 001E 000C", |
$"3000 7800 FC18 FFFC 7FFC 3FF8 1FF8 1FF8" |
$"1FF8 1FF8 1FFC 1FFE 0FFF 003F 001E 000C", |
{8, 8} |
}; |
resource 'CURS' (135, locked, preload) { |
$"07E0 07E0 07E0 07E0 0810 1008 1088 108E" |
$"138E 1008 1008 0810 07E0 07E0 07E0 07E0", |
$"07E0 07E0 07E0 07E0 0FF0 1FF8 1FF8 1FFE" |
$"1FFE 1FF8 1FF8 0FF0 07E0 07E0 07E0 07E0", |
{8, 8} |
}; |
resource 'SIZE' (-1) { |
reserved, |
ignoreSuspendResumeEvents, |
reserved, |
cannotBackground, |
notMultiFinderAware, |
backgroundAndForeground, |
dontGetFrontClicks, |
ignoreChildDiedEvents, |
not32BitCompatible, |
notHighLevelEventAware, |
onlyLocalHLEvents, |
notStationeryAware, |
dontUseTextEditServices, |
reserved, |
reserved, |
reserved, |
1024 * 1024, |
1024 * 1024 |
}; |
Copyright © 2003 Apple Computer, Inc. All Rights Reserved. Terms of Use | Privacy Policy | Updated: 2003-01-14