mac-rom/Interfaces/PInterfaces/SCSI.p
Elliot Nunn 4325cdcc78 Bring in CubeE sources
Resource forks are included only for .rsrc files. These are DeRezzed into their data fork. 'ckid' resources, from the Projector VCS, are not included.

The Tools directory, containing mostly junk, is also excluded.
2017-12-26 09:52:23 +08:00

141 lines
4.2 KiB
OpenEdge ABL

{
Created: Saturday, July 27, 1991 at 11:38 PM
SCSI.p
Pascal Interface to the Macintosh Libraries
Copyright Apple Computer, Inc. 1986-1991
All rights reserved
This file is used in these builds: Mac32 BigBang Sys606
Change History (most recent first):
<4> 7/31/91 JL Updated Copyright.
<3> 1/27/91 LN Checked in Database generate file from DSG.
<2> 10/3/90 JAL Added Inline Code.
To Do:
}
{$IFC UNDEFINED UsingIncludes}
{$SETC UsingIncludes := 0}
{$ENDC}
{$IFC NOT UsingIncludes}
UNIT SCSI;
INTERFACE
{$ENDC}
{$IFC UNDEFINED UsingSCSI}
{$SETC UsingSCSI := 1}
{$I+}
{$SETC SCSIIncludes := UsingIncludes}
{$SETC UsingIncludes := 1}
{$IFC UNDEFINED UsingTypes}
{$I $$Shell(PInterfaces)Types.p}
{$ENDC}
{$SETC UsingIncludes := SCSIIncludes}
CONST
scInc = 1;
scNoInc = 2;
scAdd = 3;
scMove = 4;
scLoop = 5;
scNop = 6;
scStop = 7;
scComp = 8;
scCommErr = 2; {communications error, operation timeout}
scArbNBErr = 3; {arbitration timeout waiting for not BSY}
scBadParmsErr = 4; {bad parameter or TIB opcode}
scPhaseErr = 5; {SCSI bus not in correct phase for attempted operation}
scCompareErr = 6; {data compare error}
scMgrBusyErr = 7; {SCSI Manager busy }
scSequenceErr = 8; {attempted operation is out of sequence}
scBusTOErr = 9; {CPU bus timeout}
scComplPhaseErr = 10; {SCSI bus wasn't in Status phase}
sbSIGWord = $4552;
pMapSIG = $504D;
TYPE
Block0 = PACKED RECORD
sbSig: INTEGER; {unique value for SCSI block 0}
sbBlkSize: INTEGER; {block size of device}
sbBlkCount: LONGINT; {number of blocks on device}
sbDevType: INTEGER; {device type}
sbDevId: INTEGER; {device id}
sbData: LONGINT; {not used}
sbDrvrCount: INTEGER; {driver descriptor count}
ddBlock: LONGINT; {1st driver's starting block}
ddSize: INTEGER; {size of 1st driver (512-byte blks)}
ddType: INTEGER; {system type (1 for Mac+)}
ddPad: ARRAY [0..242] OF INTEGER; {ARRAY[0..242] OF INTEGER; not used}
END;
Partition = PACKED RECORD
pmSig: INTEGER; {unique value for map entry blk}
pmSigPad: INTEGER; {currently unused}
pmMapBlkCnt: LONGINT; {# of blks in partition map}
pmPyPartStart: LONGINT; {physical start blk of partition}
pmPartBlkCnt: LONGINT; {# of blks in this partition}
pmPartName: PACKED ARRAY [0..31] OF CHAR; {ASCII partition name}
pmParType: PACKED ARRAY [0..31] OF CHAR; {ASCII partition type}
pmLgDataStart: LONGINT; {log. # of partition's 1st data blk}
pmDataCnt: LONGINT; {# of blks in partition's data area}
pmPartStatus: LONGINT; {bit field for partition status}
pmLgBootStart: LONGINT; {log. blk of partition's boot code}
pmBootSize: LONGINT; {number of bytes in boot code}
pmBootAddr: LONGINT; {memory load address of boot code}
pmBootAddr2: LONGINT; {currently unused}
pmBootEntry: LONGINT; {entry point of boot code}
pmBootEntry2: LONGINT; {currently unused}
pmBootCksum: LONGINT; {checksum of boot code}
pmProcessor: PACKED ARRAY [0..15] OF CHAR; {ASCII for the processor type}
pmPad: ARRAY [0..187] OF INTEGER; {512 bytes long currently unused}
END;
SCSIInstr = RECORD
scOpcode: INTEGER;
scParam1: LONGINT;
scParam2: LONGINT;
END;
FUNCTION SCSIReset: OSErr;
INLINE $4267,$A815;
FUNCTION SCSIGet: OSErr;
INLINE $3F3C,$0001,$A815;
FUNCTION SCSISelect(targetID: INTEGER): OSErr;
INLINE $3F3C,$0002,$A815;
FUNCTION SCSICmd(buffer: Ptr;count: INTEGER): OSErr;
INLINE $3F3C,$0003,$A815;
FUNCTION SCSIRead(tibPtr: Ptr): OSErr;
INLINE $3F3C,$0005,$A815;
FUNCTION SCSIRBlind(tibPtr: Ptr): OSErr;
INLINE $3F3C,$0008,$A815;
FUNCTION SCSIWrite(tibPtr: Ptr): OSErr;
INLINE $3F3C,$0006,$A815;
FUNCTION SCSIWBlind(tibPtr: Ptr): OSErr;
INLINE $3F3C,$0009,$A815;
FUNCTION SCSIComplete(VAR stat: INTEGER;VAR message: INTEGER;wait: LONGINT): OSErr;
INLINE $3F3C,$0004,$A815;
FUNCTION SCSIStat: INTEGER;
INLINE $3F3C,$000A,$A815;
FUNCTION SCSISelAtn(targetID: INTEGER): OSErr;
INLINE $3F3C,$000B,$A815;
FUNCTION SCSIMsgIn(VAR message: INTEGER): OSErr;
INLINE $3F3C,$000C,$A815;
FUNCTION SCSIMsgOut(message: INTEGER): OSErr;
INLINE $3F3C,$000D,$A815;
{$ENDC} { UsingSCSI }
{$IFC NOT UsingIncludes}
END.
{$ENDC}