mirror of
https://github.com/elliotnunn/mac-rom.git
synced 2025-01-05 08:30:14 +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.
179 lines
3.7 KiB
Plaintext
179 lines
3.7 KiB
Plaintext
;EASE$$$ READ ONLY COPY of file ÒQUICKGLUE.m.aÓ
|
|
; 1.1 CCH 11/11/1988 Fixed Header.
|
|
; 1.0 CCH 11/ 9/1988 Adding to EASE.
|
|
; OLD REVISIONS BELOW
|
|
; 1.0 BBM 2/11/88 Adding file for the first time into EASEÉ
|
|
; END EASE MODIFICATION HISTORY
|
|
; File: QuickGlue.TEXT
|
|
;------------------------------------------------------------------
|
|
;
|
|
; QuickDraw/Mac OS Interface
|
|
;
|
|
; written by Andy Hertzfeld 16-Sept-82
|
|
;
|
|
; (c) 1982 by Apple Computer, Inc. All rights reserved.
|
|
;
|
|
; QuickGlue is the QuickDraw/Mac OS interface. It is linked with QuickDraw and
|
|
; defines all of the externals required by QuickDraw except those of the
|
|
; font manager. All of these are very short and simple (memory manager traps or
|
|
; jumps through the graphics jump table).
|
|
;
|
|
; Modification History
|
|
;
|
|
; 16-Nov-82 AJH Made font manager interface go through graphics jump table
|
|
; 09-Feb-83 AJH Added LockHandle, UnLockHandle
|
|
; 17-Aug-83 SC Made all cursor jumps preserve A0
|
|
; 22-Apr-85 LAK Removed RInitGraf (coordinated with Bill clearing
|
|
; QDExist flag in InitGraf).
|
|
;------------------------------------------------------------------
|
|
|
|
LOAD 'SysTlQk.D'
|
|
|
|
BLANKS ON
|
|
STRING ASIS
|
|
|
|
;; INCLUDE 'GrafTypes.Text'
|
|
; INCLUDE 'QuickEQU.a'
|
|
; INCLUDE 'SYSERR.a'
|
|
; INCLUDE 'SysEqu.a'
|
|
; INCLUDE 'SysTraps.a'
|
|
; INCLUDE 'ToolEqu.a'
|
|
; INCLUDE 'ToolTraps.a'
|
|
|
|
;
|
|
; Here is a subset of Unit Storage (the ones needed by
|
|
; QuickDraw), implemented by trapping to the Mac OS.
|
|
;
|
|
|
|
JHideCursor EQU $800
|
|
JShowCursor EQU $804
|
|
JShieldCursor EQU $808
|
|
JScrnAddr EQU $80C
|
|
JScrnSize EQU $810
|
|
JInitCrsr EQU $814
|
|
JSetCrsr EQU $818
|
|
JCrsrObscure EQU $80C
|
|
JUpdateProc EQU $820
|
|
|
|
JSwapFont EQU $8E0
|
|
|
|
|
|
;
|
|
; FUNCTION NewHandle(byteCount: INTEGER): Ptr;
|
|
;
|
|
NewHandle FUNC EXPORT
|
|
;
|
|
MOVEQ #0,D0 ;clear out high part
|
|
MOVE.L (SP)+,A1 ;get return address
|
|
MOVE.W (SP)+,D0 ;get the byte count
|
|
_NEWHANDLE ;ask OS to do request
|
|
BNE.S MemFull ;if memory full, deep shit!
|
|
MOVE.L A0,(SP) ;return result handle on stack
|
|
JMP (A1) ;return to caller
|
|
|
|
; handle the memory full error by deep-shitting
|
|
|
|
MemFull
|
|
MOVEQ #DSMemFullErr,D0
|
|
_SysError
|
|
DC.W $A9FF ;invoke debugger just in case it comes back
|
|
|
|
;
|
|
; PROCEDURE SetSize(h: Handle; newSize: INTEGER);
|
|
;
|
|
EXPORT SetSize
|
|
;
|
|
SetSize
|
|
MOVEQ #0,D0 ;clear out high part
|
|
MOVE.L (SP)+,A1 ;get return address
|
|
MOVE.W (SP)+,D0 ;get the new size
|
|
MOVE.L (SP)+,A0 ;get the handle
|
|
_SETHANDLESIZE ;let OS do it
|
|
BNE.S MemFull ;if out of memory, deepShit
|
|
JMP (A1) ;return to caller
|
|
|
|
;
|
|
; PROCEDURE DisposeHandle(h: Handle);
|
|
;
|
|
DisposeHandle PROC EXPORT
|
|
;
|
|
MOVE.L (SP)+,A1 ;get return address
|
|
MOVE.L (SP)+,A0 ;get parameter
|
|
_DISPOSHANDLE ;let OS do work
|
|
JMP (A1) ;return to caller
|
|
;
|
|
; PROCEDURE LockHandle(h: Handle);
|
|
;
|
|
LockHandle PROC EXPORT
|
|
|
|
MOVE.L 4(SP),A0
|
|
BSET #7,(A0)
|
|
MOVE.L (SP)+,(SP)
|
|
RTS
|
|
;
|
|
; PROCEDURE UnLockHandle(h: handle);
|
|
;
|
|
UnlockHandle PROC EXPORT
|
|
|
|
MOVE.L 4(SP),A0
|
|
BCLR #7,(A0)
|
|
MOVE.L (SP)+,(SP)
|
|
RTS
|
|
|
|
;
|
|
; Following is the QuickDraw cursor interface, implemented by accessing
|
|
; system routines through the graphics jump table
|
|
;
|
|
CursorDisplay PROC EXPORT
|
|
;
|
|
MOVE.L JShowCursor,-(SP)
|
|
RTS
|
|
;
|
|
CursorHide PROC EXPORT
|
|
;
|
|
MOVE.L JHideCursor,-(SP)
|
|
RTS
|
|
;
|
|
CursorImage PROC EXPORT
|
|
;
|
|
MOVE.L JSetCrsr,-(SP)
|
|
RTS
|
|
;
|
|
CursorInit PROC EXPORT
|
|
;
|
|
MOVE.L JInitCrsr,-(SP)
|
|
RTS
|
|
;
|
|
CursorObscure PROC EXPORT
|
|
;
|
|
MOVE.L JCrsrObscure,-(SP)
|
|
RTS
|
|
;
|
|
CursorShield PROC EXPORT
|
|
;
|
|
MOVE.L JShieldCursor,-(SP)
|
|
RTS
|
|
;
|
|
ScreenAdress PROC EXPORT
|
|
;
|
|
MOVE.L JScrnAddr,-(SP)
|
|
RTS
|
|
;
|
|
ScreenSize PROC EXPORT
|
|
;
|
|
MOVE.L JScrnSize,-(SP)
|
|
RTS
|
|
;
|
|
FMSwapFont PROC EXPORT
|
|
|
|
MOVE.L JSwapFont,-(SP)
|
|
RTS
|
|
|
|
|
|
|
|
END
|
|
|
|
|
|
|
|
|