mirror of
https://github.com/elliotnunn/mac-rom.git
synced 2024-12-28 01:29:20 +00:00
4325cdcc78
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.
126 lines
3.7 KiB
Plaintext
126 lines
3.7 KiB
Plaintext
;
|
|
; File: PPCUtil.a
|
|
;
|
|
; Copyright: © 1989-1992 by Apple Computer, Inc. All rights reserved.
|
|
;
|
|
; This file is used in these builds: BigBang
|
|
;
|
|
;
|
|
; Change History (most recent first):
|
|
;
|
|
; <SM2> 11/3/92 SWC Changed INCLUDEs to a LOAD of StandardEqu.d.
|
|
; <8> 6/12/91 LN added #include 'SysPrivateEqu.a'
|
|
; <7> 12/13/90 EMT <JSM> Move priviate equate into this file from the PPCToolbox.a
|
|
; file, remove APPCSleepEvent.
|
|
; <6> 11/28/90 EMT <VC> Add new routine FakeCompletion that calls a completion
|
|
; routine as if from the device manager.
|
|
; <5> 11/5/90 EMT Fix bug, so ppc checks to see if the Lap manager is installed
|
|
; befor placing itself into the AppleTalk Transition Queue
|
|
; <4> 10/10/90 gbm change ApplA5 to ppcAppleA5, and cmd<identifiers> to
|
|
; io<identifiers>
|
|
; <3> 8/8/90 S Included APPCSleepEvent.
|
|
; <1.1> 11/6/89 CVC Changed the include from PPCEqu.a to PPCToolbox.a
|
|
; <1.0> 9/18/89 CVC Adding PPC toolbox for the first time.
|
|
;
|
|
|
|
CASE OBJ
|
|
|
|
PRINT OFF
|
|
LOAD 'StandardEqu.d'
|
|
INCLUDE 'PPCToolbox.a'
|
|
|
|
PRINT ON
|
|
; Revision History
|
|
; Sangam 7/20/89 1.0d2 release today!
|
|
;
|
|
; Get the Gobal area.
|
|
;
|
|
getGlobal Proc Export
|
|
LEA ExpandMem,A1
|
|
MOVE.L (A1),A1
|
|
WITH ExpandMemRec
|
|
MOVE.L emPPCGlobals(A1),D0
|
|
ENDWITH
|
|
RTS
|
|
EndProc
|
|
|
|
; Added callCompletion routine Sangam 6/14/89
|
|
; This routine will set the A5 to the value of A5 when
|
|
; PPCToolBox was called and then calls the completion routine
|
|
;
|
|
; *int callCompletion(PMParamBlockPtr pb, int result);
|
|
|
|
ppcApplA5 EQU 22
|
|
|
|
callCompletion PROC EXPORT
|
|
MOVE.L 4(SP),A0 ; Pointer to Param block
|
|
MOVE.L 8(SP),D0 ; Result code
|
|
MOVE.W D0,ioResult(A0) ; store in PB
|
|
MOVE.L ioCompletion(A0),D1 ; check if there is a comp routine
|
|
BEQ.S @1 ; no, we're done
|
|
MOVE.L A5,-(SP) ; save current A5
|
|
MOVE.L ppcApplA5(A0),A5 ; set A5 to the value it had when the call was made
|
|
LINK A6,#0 ; to support Pascal and C conventions
|
|
MOVE.L A0,-(SP) ; push parameters in the stack
|
|
MOVE.L D1,A1 ; pointer to completion routine
|
|
TST.W D0 ; condition code for assembly
|
|
JSR (A1) ; execute the comp routine
|
|
UNLK A6 ; discard parameters
|
|
MOVE.L (SP)+,A5 ; restore A5 value
|
|
@1 RTS
|
|
ENDP
|
|
|
|
|
|
; Added Appletalk Transition routines Sangam 9/5/89
|
|
; AddtoAtalkQ(PB),
|
|
; PB is a pointer to appletalk transition que element
|
|
LAPMgrPtr EQU $B18
|
|
LAPMgrCall EQU 2
|
|
LAddAEQ EQU 23
|
|
LRmvAEQ EQU 24
|
|
|
|
AddtoAtalkQ PROC EXPORT
|
|
LINK A6, #0
|
|
MOVEQ #LAddAEQ, D0 ; D0=23 code for LAddAEQ
|
|
MOVE.L 8(A6), A0
|
|
MOVE.L LAPMgrPtr, A1 ; start of LAPMngr from ($B18)
|
|
CMPA.W #-1,A1
|
|
BEQ @1
|
|
JSR LAPMgrCall(A1) ; Call the Lap Manager at Entry Point
|
|
@1 UNLK A6
|
|
RTS
|
|
ENDP
|
|
|
|
; Added Appletalk Transition routines Sangam 9/5/89
|
|
; AddtoAtalkQ(PB),
|
|
; PB is a pointer to appletalk transition que element
|
|
RmvfromAtalkQ PROC EXPORT
|
|
LINK A6, #0
|
|
MOVEQ #LRmvAEQ, D0 ; D0=24 code for LRmvAEQ
|
|
MOVE.L 8(A6), A0
|
|
MOVE.L LAPMgrPtr, A1 ; start of LAPMngr from ($B18)
|
|
CMPA.W #-1,A1
|
|
BEQ @1
|
|
JSR LAPMgrCall(A1) ; Call the Lap Manager at Entry Point
|
|
@1 UNLK A6
|
|
RTS
|
|
ENDP
|
|
|
|
|
|
|
|
;---------------------------------------------------------------------------------------------------
|
|
; Call the completion routine as if from the device manager.
|
|
;---------------------------------------------------------------------------------------------------*/
|
|
Proc
|
|
Export FakeCompletion
|
|
|
|
FakeCompletion
|
|
Move.L 4(A7),A0 ; Get the PB off the stack.
|
|
Move.L 12(A0),A1 ; Get the address of the Completion Routine
|
|
Move.W 16(A0),D0 ; Get the IO Result;
|
|
JMP (A1) ; Call Completion Routine
|
|
Endp
|
|
|
|
END
|
|
|