mirror of
https://github.com/elliotnunn/mac-rom.git
synced 2024-12-28 16:31:01 +00:00
0ba83392d4
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.
272 lines
9.7 KiB
OpenEdge ABL
272 lines
9.7 KiB
OpenEdge ABL
|
|
{
|
|
Created: Saturday, July 27, 1991 at 11:41 PM
|
|
Slots.p
|
|
Pascal Interface to the Macintosh Libraries
|
|
|
|
Copyright Apple Computer, Inc. 1986-1991
|
|
All rights reserved
|
|
|
|
Change History (most recent first):
|
|
|
|
<8> 3/23/92 JSM OSEvents.p is obsolete, use Events.p instead.
|
|
<7> 7/31/91 JL Updated Copyright.
|
|
<6> 2/4/91 JL Change aSync param name to async.
|
|
<5> 1/27/91 LN Checked in Database generate file from DSG.
|
|
<4> 1/23/91 stb BBM: change spParamData in SpBlock type from Ptr to a LONGINT
|
|
<3> 12/14/90 dba <JDR> use inlines for everything
|
|
<2> 10/3/90 JAL Updated to Match C Interface.
|
|
}
|
|
|
|
|
|
{$IFC UNDEFINED UsingIncludes}
|
|
{$SETC UsingIncludes := 0}
|
|
{$ENDC}
|
|
|
|
{$IFC NOT UsingIncludes}
|
|
UNIT Slots;
|
|
INTERFACE
|
|
{$ENDC}
|
|
|
|
{$IFC UNDEFINED UsingSlots}
|
|
{$SETC UsingSlots := 1}
|
|
|
|
{$I+}
|
|
{$SETC SlotsIncludes := UsingIncludes}
|
|
{$SETC UsingIncludes := 1}
|
|
{$IFC UNDEFINED UsingTypes}
|
|
{$I $$Shell(PInterfaces)Types.p}
|
|
{$ENDC}
|
|
{$IFC UNDEFINED UsingEvents}
|
|
{$I $$Shell(PInterfaces)Events.p}
|
|
{$ENDC}
|
|
{$IFC UNDEFINED UsingOSUtils}
|
|
{$I $$Shell(PInterfaces)OSUtils.p}
|
|
{$ENDC}
|
|
{$IFC UNDEFINED UsingFiles}
|
|
{$I $$Shell(PInterfaces)Files.p}
|
|
{$ENDC}
|
|
{$SETC UsingIncludes := SlotsIncludes}
|
|
|
|
CONST
|
|
fCardIsChanged = 1; {Card is Changed field in StatusFlags field of sInfoArray}
|
|
fCkForSame = 0; {For SearchSRT. Flag to check for SAME sResource in the table. }
|
|
fCkForNext = 1; {For SearchSRT. Flag to check for NEXT sResource in the table. }
|
|
fWarmStart = 2; {If this bit is set then warm start else cold start.}
|
|
|
|
stateNil = 0; {State}
|
|
stateSDMInit = 1; {:Slot declaration manager Init}
|
|
statePRAMInit = 2; {:sPRAM record init}
|
|
statePInit = 3; {:Primary init}
|
|
stateSInit = 4; {:Secondary init}
|
|
|
|
{ flags for spParamData }
|
|
fall = 0; { bit 0: set=search enabled/disabled sRsrc's }
|
|
foneslot = 1; { 1: set=search sRsrc's in given slot only }
|
|
fnext = 2; { 2: set=search for next sRsrc }
|
|
|
|
TYPE
|
|
SQElemPtr = ^SlotIntQElement;
|
|
SlotIntQElement = RECORD
|
|
sqLink: Ptr; {ptr to next element}
|
|
sqType: INTEGER; {queue type ID for validity}
|
|
sqPrio: INTEGER; {priority}
|
|
sqAddr: ProcPtr; {interrupt service routine}
|
|
sqParm: LONGINT; {optional A1 parameter}
|
|
END;
|
|
|
|
SpBlockPtr = ^SpBlock;
|
|
SpBlock = PACKED RECORD
|
|
spResult: LONGINT; {FUNCTION Result}
|
|
spsPointer: Ptr; {structure pointer}
|
|
spSize: LONGINT; {size of structure}
|
|
spOffsetData: LONGINT; {offset/data field used by sOffsetData}
|
|
spIOFileName: Ptr; {ptr to IOFile name for sDisDrvrName}
|
|
spsExecPBlk: Ptr; {pointer to sExec parameter block.}
|
|
spParamData: LONGINT; {misc parameter data (formerly spStackPtr).}
|
|
spMisc: LONGINT; {misc field for SDM.}
|
|
spReserved: LONGINT; {reserved for future expansion}
|
|
spIOReserved: INTEGER; {Reserved field of Slot Resource Table}
|
|
spRefNum: INTEGER; {RefNum}
|
|
spCategory: INTEGER; {sType: Category}
|
|
spCType: INTEGER; {Type}
|
|
spDrvrSW: INTEGER; {DrvrSW}
|
|
spDrvrHW: INTEGER; {DrvrHW}
|
|
spTBMask: SignedByte; {type bit mask bits 0..3 mask words 0..3}
|
|
spSlot: SignedByte; {slot number}
|
|
spID: SignedByte; {structure ID}
|
|
spExtDev: SignedByte; {ID of the external device}
|
|
spHwDev: SignedByte; {Id of the hardware device.}
|
|
spByteLanes: SignedByte; {bytelanes from card ROM format block}
|
|
spFlags: SignedByte; {standard flags}
|
|
spKey: SignedByte; {Internal use only}
|
|
END;
|
|
|
|
SInfoRecPtr = ^SInfoRecord;
|
|
SInfoRecord = PACKED RECORD
|
|
siDirPtr: Ptr; {Pointer to directory}
|
|
siInitStatusA: INTEGER; {initialization E}
|
|
siInitStatusV: INTEGER; {status returned by vendor init code}
|
|
siState: SignedByte; {initialization state}
|
|
siCPUByteLanes: SignedByte; {0=[d0..d7] 1=[d8..d15]}
|
|
siTopOfROM: SignedByte; {Top of ROM= $FssFFFFx: x is TopOfROM}
|
|
siStatusFlags: SignedByte; {bit 0 - card is changed}
|
|
siTOConst: INTEGER; {Time Out C for BusErr}
|
|
siReserved: PACKED ARRAY [0..1] OF SignedByte; {reserved}
|
|
siROMAddr: Ptr; { addr of top of ROM }
|
|
siSlot: CHAR; { slot number }
|
|
siPadding: PACKED ARRAY [0..2] OF SignedByte; { reserved }
|
|
END;
|
|
|
|
SDMRecord = PACKED RECORD
|
|
sdBEVSave: ProcPtr; {Save old BusErr vector}
|
|
sdBusErrProc: ProcPtr; {Go here to determine if it is a BusErr}
|
|
sdErrorEntry: ProcPtr; {Go here if BusErrProc finds real BusErr}
|
|
sdReserved: LONGINT; {Reserved}
|
|
END;
|
|
|
|
FHeaderRecPtr = ^FHeaderRec;
|
|
FHeaderRec = PACKED RECORD
|
|
fhDirOffset: LONGINT; {offset to directory}
|
|
fhLength: LONGINT; {length of ROM}
|
|
fhCRC: LONGINT; {CRC}
|
|
fhROMRev: SignedByte; {revision of ROM}
|
|
fhFormat: SignedByte; {format - 2}
|
|
fhTstPat: LONGINT; {test pattern}
|
|
fhReserved: SignedByte; {reserved}
|
|
fhByteLanes: SignedByte; {ByteLanes}
|
|
END;
|
|
|
|
SEBlock = PACKED RECORD
|
|
seSlot: SignedByte; {Slot number.}
|
|
sesRsrcId: SignedByte; {sResource Id.}
|
|
seStatus: INTEGER; {Status of code executed by sExec.}
|
|
seFlags: SignedByte; {Flags}
|
|
seFiller0: SignedByte; {Filler, must be SignedByte to align on odd boundry}
|
|
seFiller1: SignedByte; {Filler}
|
|
seFiller2: SignedByte; {Filler}
|
|
seResult: LONGINT; {Result of sLoad.}
|
|
seIOFileName: LONGINT; {Pointer to IOFile name.}
|
|
seDevice: SignedByte; {Which device to read from.}
|
|
sePartition: SignedByte; {The partition.}
|
|
seOSType: SignedByte; {Type of OS.}
|
|
seReserved: SignedByte; {Reserved field.}
|
|
seRefNum: SignedByte; {RefNum of the driver.}
|
|
seNumDevices: SignedByte; { Number of devices to load.}
|
|
seBootState: SignedByte; {State of StartBoot code.}
|
|
END;
|
|
|
|
|
|
|
|
{ Principle }
|
|
FUNCTION SReadByte(spBlkPtr: SpBlockPtr): OSErr;
|
|
INLINE $205F,$7000,$A06E,$3E80;
|
|
FUNCTION SReadWord(spBlkPtr: SpBlockPtr): OSErr;
|
|
INLINE $205F,$7001,$A06E,$3E80;
|
|
FUNCTION SReadLong(spBlkPtr: SpBlockPtr): OSErr;
|
|
INLINE $205F,$7002,$A06E,$3E80;
|
|
FUNCTION SGetCString(spBlkPtr: SpBlockPtr): OSErr;
|
|
INLINE $205F,$7003,$A06E,$3E80;
|
|
FUNCTION SGetBlock(spBlkPtr: SpBlockPtr): OSErr;
|
|
INLINE $205F,$7005,$A06E,$3E80;
|
|
FUNCTION SFindStruct(spBlkPtr: SpBlockPtr): OSErr;
|
|
INLINE $205F,$7006,$A06E,$3E80;
|
|
FUNCTION SReadStruct(spBlkPtr: SpBlockPtr): OSErr;
|
|
INLINE $205F,$7007,$A06E,$3E80;
|
|
|
|
|
|
{ Special }
|
|
FUNCTION SReadInfo(spBlkPtr: SpBlockPtr): OSErr;
|
|
INLINE $205F,$7010,$A06E,$3E80;
|
|
FUNCTION SReadPRAMRec(spBlkPtr: SpBlockPtr): OSErr;
|
|
INLINE $205F,$7011,$A06E,$3E80;
|
|
FUNCTION SPutPRAMRec(spBlkPtr: SpBlockPtr): OSErr;
|
|
INLINE $205F,$7012,$A06E,$3E80;
|
|
FUNCTION SReadFHeader(spBlkPtr: SpBlockPtr): OSErr;
|
|
INLINE $205F,$7013,$A06E,$3E80;
|
|
FUNCTION SNextSRsrc(spBlkPtr: SpBlockPtr): OSErr;
|
|
INLINE $205F,$7014,$A06E,$3E80;
|
|
FUNCTION SNextTypeSRsrc(spBlkPtr: SpBlockPtr): OSErr;
|
|
INLINE $205F,$7015,$A06E,$3E80;
|
|
FUNCTION SRsrcInfo(spBlkPtr: SpBlockPtr): OSErr;
|
|
INLINE $205F,$7016,$A06E,$3E80;
|
|
FUNCTION SCkCardStat(spBlkPtr: SpBlockPtr): OSErr;
|
|
INLINE $205F,$7018,$A06E,$3E80;
|
|
FUNCTION SReadDrvrName(spBlkPtr: SpBlockPtr): OSErr;
|
|
INLINE $205F,$7019,$A06E,$3E80;
|
|
FUNCTION SFindDevBase(spBlkPtr: SpBlockPtr): OSErr;
|
|
INLINE $205F,$701B,$A06E,$3E80;
|
|
FUNCTION SFindBigDevBase(spBlkPtr: SpBlockPtr): OSErr;
|
|
INLINE $205F,$701C,$A06E,$3E80;
|
|
|
|
|
|
{ Advanced }
|
|
FUNCTION InitSDeclMgr(spBlkPtr: SpBlockPtr): OSErr;
|
|
INLINE $205F,$7020,$A06E,$3E80;
|
|
FUNCTION SPrimaryInit(spBlkPtr: SpBlockPtr): OSErr;
|
|
INLINE $205F,$7021,$A06E,$3E80;
|
|
FUNCTION SCardChanged(spBlkPtr: SpBlockPtr): OSErr;
|
|
INLINE $205F,$7022,$A06E,$3E80;
|
|
FUNCTION SExec(spBlkPtr: SpBlockPtr): OSErr;
|
|
INLINE $205F,$7023,$A06E,$3E80;
|
|
FUNCTION SOffsetData(spBlkPtr: SpBlockPtr): OSErr;
|
|
INLINE $205F,$7024,$A06E,$3E80;
|
|
FUNCTION SInitPRAMRecs(spBlkPtr: SpBlockPtr): OSErr;
|
|
INLINE $205F,$7025,$A06E,$3E80;
|
|
FUNCTION SReadPBSize(spBlkPtr: SpBlockPtr): OSErr;
|
|
INLINE $205F,$7026,$A06E,$3E80;
|
|
FUNCTION SCalcStep(spBlkPtr: SpBlockPtr): OSErr;
|
|
INLINE $205F,$7028,$A06E,$3E80;
|
|
FUNCTION SInitSRsrcTable(spBlkPtr: SpBlockPtr): OSErr;
|
|
INLINE $205F,$7029,$A06E,$3E80;
|
|
FUNCTION SSearchSRT(spBlkPtr: SpBlockPtr): OSErr;
|
|
INLINE $205F,$702A,$A06E,$3E80;
|
|
FUNCTION SUpdateSRT(spBlkPtr: SpBlockPtr): OSErr;
|
|
INLINE $205F,$702B,$A06E,$3E80;
|
|
FUNCTION SCalcSPointer(spBlkPtr: SpBlockPtr): OSErr;
|
|
INLINE $205F,$702C,$A06E,$3E80;
|
|
FUNCTION SGetDriver(spBlkPtr: SpBlockPtr): OSErr;
|
|
INLINE $205F,$702D,$A06E,$3E80;
|
|
FUNCTION SPtrToSlot(spBlkPtr: SpBlockPtr): OSErr;
|
|
INLINE $205F,$702E,$A06E,$3E80;
|
|
FUNCTION SFindSInfoRecPtr(spBlkPtr: SpBlockPtr): OSErr;
|
|
INLINE $205F,$702F,$A06E,$3E80;
|
|
FUNCTION SFindSRsrcPtr(spBlkPtr: SpBlockPtr): OSErr;
|
|
INLINE $205F,$7030,$A06E,$3E80;
|
|
FUNCTION SDeleteSRTRec(spBlkPtr: SpBlockPtr): OSErr;
|
|
INLINE $205F,$7031,$A06E,$3E80;
|
|
|
|
FUNCTION OpenSlot(paramBlock: ParmBlkPtr;async: BOOLEAN): OSErr;
|
|
FUNCTION OpenSlotSync(paramBlock: ParmBlkPtr): OSErr;
|
|
INLINE $205F,$A200,$3E80;
|
|
FUNCTION OpenSlotAsync(paramBlock: ParmBlkPtr): OSErr;
|
|
INLINE $205F,$A600,$3E80;
|
|
|
|
|
|
{ Device Manager Slot Support }
|
|
FUNCTION SIntInstall(sIntQElemPtr: SQElemPtr;theSlot: INTEGER): OSErr;
|
|
INLINE $301F,$205F,$A075,$3E80;
|
|
FUNCTION SIntRemove(sIntQElemPtr: SQElemPtr;theSlot: INTEGER): OSErr;
|
|
INLINE $301F,$205F,$A076,$3E80;
|
|
|
|
FUNCTION SVersion(spBlkPtr: SpBlockPtr): OSErr;
|
|
INLINE $205F,$7008,$A06E,$3E80;
|
|
FUNCTION SetSRsrcState(spBlkPtr: SpBlockPtr): OSErr;
|
|
INLINE $205F,$7009,$A06E,$3E80;
|
|
FUNCTION InsertSRTRec(spBlkPtr: SpBlockPtr): OSErr;
|
|
INLINE $205F,$700A,$A06E,$3E80;
|
|
FUNCTION SGetSRsrc(spBlkPtr: SpBlockPtr): OSErr;
|
|
INLINE $205F,$700B,$A06E,$3E80;
|
|
FUNCTION SGetTypeSRsrc(spBlkPtr: SpBlockPtr): OSErr;
|
|
INLINE $205F,$700C,$A06E,$3E80;
|
|
FUNCTION SGetSRsrcPtr(spBlkPtr: SpBlockPtr): OSErr;
|
|
INLINE $205F,$701D,$A06E,$3E80;
|
|
|
|
|
|
{$ENDC} { UsingSlots }
|
|
|
|
{$IFC NOT UsingIncludes}
|
|
END.
|
|
{$ENDC}
|
|
|