sys7.1-doc-wip/DeclData/SuperInit.a
2019-07-27 22:37:48 +08:00

113 lines
3.9 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

;
; 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
; dont 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 were 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