boot3/DeclData/SuperInit.a
Elliot Nunn 5b0f0cc134 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 10:02:57 +08:00

113 lines
3.8 KiB
Plaintext

;
; File: SuperInit.a
;
; Written by: Mike Puckett, October 28, 1991.
;
; Contains: The code that determines which sRsrc directory directory
; to select.
;
; Copyright: © 1991-1992 by Apple Computer, Inc., all rights reserved.
;
; This file is used in these builds: Mac32
;
; Change History (most recent first):
;
; <SM2> 10/28/92 SWC Changed VideoEqu.a->Video.a and ShutdownEqu.a->Shutdown.a.
; <1> 10/6/92 GDW New location for ROMLink tool.
; <SM2> 6/4/92 KW (jmp,H7) Changed the ÒsRsrcZydecoDirÓ name to the more generic
; ÒsRsrcBFBasedDirÓ (BF=BoxFlag) name.
; <SM1> 5/2/92 kc Roll in Horror. Comments follow:
; <H6> 01/11/92 jmp Eliminated the dependencies on BoxFlag.
; <H5> 12/16/91 HJR Fix header.
; <H3> 12/12/91 jmp Added support for DBLiteLC.
; <H2> 11/27/91 jmp Added support for Sonora-based machines.
; <1> 10/29/91 jmp first checked in
;---------------------------------------------------------------------
; Notes
;---------------------------------------------------------------------
; In an effort to keep things simple (yet eliminate the use of BoxFlag),
; the VideoInfo data structure has been modified to contain two new
; fields. One of these fields contains the particular sRsrc directory
; directory (or Super sRsrc directory) to select. However, some CPUs
; donÕt have built-in video (e.g., the IIfx), so, by definition, those
; CPUs should be placed into the BoxFlag-based sRsrc directory. The other
; field is a Òway outÓ in cases where BoxFlag is necessary -- i.e., it
; contains the BoardSRsrcID. For CPUs that fall into the BoxFlag-based
; sRsrc directory, this field is just zero, indicating that the
; board sRsrc is a derivative of BoxFlag. Where the BoardSRsrcID
; field of VideoInfo is non-zero, this is the board sRsrc ID of
; particular family of CPUs using the same video controller.
;---------------------------------------------------------------------
STRING C
PRINT OFF
LOAD 'StandardEqu.d'
INCLUDE 'DockingEqu.a'
INCLUDE 'EgretEqu.a'
INCLUDE 'GestaltEqu.a'
INCLUDE 'GestaltPrivateEqu.a'
INCLUDE 'HardwarePrivateEqu.a'
INCLUDE 'IOPrimitiveEqu.a'
INCLUDE 'PowerPrivEqu.a'
INCLUDE 'ROMEqu.a'
INCLUDE 'Video.a'
INCLUDE 'SlotMgrEqu.a'
INCLUDE 'ShutDown.a'
INCLUDE 'SonicEqu.a'
INCLUDE 'UniversalEqu.a'
INCLUDE 'DepVideoEqu.a'
PRINT ON
SEG '_sSuperInitRec'
MACHINE MC68020
;---------------------------------------------------------------------
; Header
;---------------------------------------------------------------------
lSuperInit PROC
Dc.b sExec2 ; Header
Dc.b sCPU68020
Dc.w 0
Dc.l BeginSuperInit-*
;---------------------------------------------------------------------
; Local variables, definitions, etc....
;---------------------------------------------------------------------
;---------------------------------------------------------------------
; Data
;---------------------------------------------------------------------
;---------------------------------------------------------------------
; Main
;---------------------------------------------------------------------
With SEBlock,ProductInfo,VideoInfo
BeginSuperInit
Clr.w seStatus(A0) ; Flag that there are no problems (zero in hi-byte of seStatus).
Move.b #sRsrcBFBasedDir,D0 ; Just assume the BoxFlag-based sRsrc directory for now.
Move.l UnivInfoPtr,A1 ; Get a pointer to the Universal Info.
Adda.l VideoInfoPtr(A1),A1 ; Point to the VideoInfo.
Cmpa.l #0,A1 ; If there is no VideoInfo record,
Beq.s @Done ; then weÕre done.
Move.b SuperSRsrcDirID(A1),D0 ; Otherwise, use the defined Super sRsrcDir ID.
@Done Move.b D0,seStatus+1(A0) ; Return the super sRsrc directory id.
Rts ; Go home.
EndWith
_EndsSuperInitRec
ENDP
END