home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
HyperLib 1997 Winter - Disc 1
/
HYPERLIB-1997-Winter-CD1.ISO.7z
/
HYPERLIB-1997-Winter-CD1.ISO
/
オンラインウェア
/
UTIL
/
ForcePRAM.sit
/
ForceDriver.a
< prev
next >
Wrap
Text File
|
1994-03-01
|
2KB
|
72 lines
Title 'Driver shell for PRAM force scheme' ;
*
* Ben Cranston March 1, 1994
*
Print Off ; Here be includes
*
Include 'ShutDownEqu.a' ;
Include 'Traps.a' ;
*
Print On,NoGen ; Here be includes
Main ; Begin module
*
S Record {A6Link},Decr ; Stack frame
A6Link DS.L 1 ; Caller's A6
resName DS.B 256 ; Resource name fetched here
resType DS.L 1 ; Resource type fetched here
resID DS.W 1 ; Resource ID number fetched here
SS Equ * ; Stack size
EndR ; Stack frame
*
Eject ;
*
MoveM.L D3-D5,-(A7) ; Save registers
Link A6,#S.SS ; Make local frame
Clr.W D3 ; Clear reboot flag
Clr.W D4 ; Clear code resource index
@010 ;
Add.W #1,D4 ; Increment code resource index
Sub.L #4,A7 ; Result: ResourceHandle
Move.L #'FoRc',-(A7) ; Arg: ResourceType
Move.W D4,-(A7) ; Arg: ResourceIndex
_Get1IndResource ; Get next code ("FoRc") resource
Move.L (A7)+,D5 ; Get code resource handle
BEq.S @080 ; If done go check reboot flag
*
Move.L D5,-(A7) ; Arg: ResourceHandle
PEA S.resID(A6) ; Arg: ^ID
PEA S.resType(A6) ; Arg: ^Type
PEA S.resName(A6) ; Arg: ^Name
_GetResInfo ; Find out about code resource
Sub.L #4,A7 ; Result: ResourceHandle
Move.L #'DATA',-(A7) ; Arg: ResourceType
Move.W S.resID(A6),-(A7) ; Arg: ResourceNumber
_Get1Resource ; Get associated data resource
Move.L (A7)+,D1 ; Pass data resource to code resource
*
Clr.L D0 ; Set initially no reboot
Move.L D5,A0 ; Get resource handle
Move.L (A0),A1 ; Get resource pointer
*
* PEA S.resName(A6) ; $$TEMP$$
* _DebugStr ; $$TEMP$$
*
JSr (A1) ; Call module
Tst.W D0 ; Test module result status
BEq.S @010 ; If no reboot needed then loop
Move.W #1,D3 ; Else set reboot flag
Bra.S @010 ; Back for another module
*
@080 ;
Tst.W D3 ; Test reboot flag
BEq.S @999 ; If no reboot then exit to system
_SDRestart ; Force Restart
*
@999 ;
UnLk A6 ; Drop local frame
MoveM.L (A7)+,D3-D5 ; Restore registers
RTS ; Return to INIT31
*
EndMain ; Keep MPW happy
End ; ForceDriver.a