mirror of
https://github.com/elliotnunn/mac-rom.git
synced 2024-12-28 16:31:01 +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.
648 lines
19 KiB
Plaintext
648 lines
19 KiB
Plaintext
;
|
|
; File: GrafTypes.m.a
|
|
;
|
|
; Contains: xxx put contents here (or delete the whole line) xxx
|
|
;
|
|
; Written by: xxx put name of writer here (or delete the whole line) xxx
|
|
;
|
|
; Copyright: © 1986-1990 by Apple Computer, Inc., all rights reserved.
|
|
;
|
|
; This file is used in these builds: BigBang
|
|
;
|
|
; Change History (most recent first):
|
|
;
|
|
; <16> 3/31/91 KON BAL, WRKSHT#csd: Remove symbols from QD build.
|
|
; <15> 3/11/91 JT Added new opcode for glyph state and a field in the picSave
|
|
; record for tracking this opcode during picture spooling. Code
|
|
; checked by KON. BRC numbers 82651 and 79185. Worksheet number
|
|
; KON-022. Also added an ALIGN statement to the UNLINK macro to
|
|
; squash the assembler warnings about code alignment.
|
|
; <14> 1/20/91 JT Removed the change to pnLocFixed since Peter was unhappy about
|
|
; it. This fix will have to wait for some future release.
|
|
; <13> 1/18/91 JT Expand pnLocFixed into a full fixed-point number in the
|
|
; QuickDraw globals area.
|
|
; <12> 10/10/90 JL Changed SysError,FixRatio, FixMul, and LongMul to MSysError,
|
|
; etc. because of conflict with Opword.
|
|
; <11> 8/26/90 PKE Deleted old names picSMgrChar, picSMgrSlop, QDSmgrSlop,
|
|
; QDSmgrCharExtra.
|
|
; <10> 8/23/90 PKE (per JT) Renamed picSMgrChar and picSMgrSlop to picQdChExtra and
|
|
; picQdRunSlop; renamed QDSmgrSlop and QDSmgrCharExtra to
|
|
; qdRunSlop and qdChExtra. Keep old names too until we can update
|
|
; all relevant sources.
|
|
; <9> 8/2/90 PKE Claim two previously unused longs in QDSpare area for Script Mgr
|
|
; charExtra and slop. The QDSpare area is called fontData in
|
|
; QuickEqu.a.
|
|
; <8> 7/23/90 gbm Fix ROM builds that use Classic QD
|
|
; <7> 7/20/90 gbm Remove duplicate definitions.
|
|
; <6> 7/11/90 gbm get rid of some asm warnings
|
|
; <5> 6/20/90 KON Add picVersion to PicSave record for OpenCPicture on B&W
|
|
; machines.
|
|
; <4> 5/30/90 JT Grabbed the first QDspare variable from the QuickDraw globals to
|
|
; hold the horizontal pen fraction. This is also known as the
|
|
; fontData storage in the newer QuickDraw equates.
|
|
; <3> 5/27/90 JT Copy the opLineLayout equate here from ColorEqu.a in the
|
|
; internal assembly folder.
|
|
; <2> 4/24/90 JT
|
|
; <1> 12/17/89 CCH Adding for the first time into BBS.
|
|
; <1.5> 12/5/89 KON PMVersion needs to be cleaned up for B&W and Color QD
|
|
; compatability
|
|
; <1.4> 12/4/89 KON Added relevant stuff from ColorEqu.a. Now DrawPicture32Patch.a
|
|
; includes this file.
|
|
; <1.3> 11/7/89 KON Added support for font name/ID binding
|
|
; <1.2> 6/6/89 BAL Fixed up trap macros for memoryMgr traps and made _stackAvail
|
|
; call _stackSpace.
|
|
; <1.1> 11/11/88 CCH Fixed Header.
|
|
; <1.0> 11/9/88 CCH Adding to EASE.
|
|
; <1.1> 5/18/88 MSH Changed inclides to use m.GRAPHTYPES to work under EASE.
|
|
; <1.0> 2/11/88 BBM Adding file for the first time into EASEÉ
|
|
; <A295> 10/29/86 bbm hacked for moveable toolbox dispatch table. THIS SHOULD BE
|
|
; MODIFIED ANYTIME THE START OF THE TOOLBOX TRAP TABLE MOVES.
|
|
; SHOULD BE DONE IN PARALLEL WITH HARDWARE EQUS.
|
|
;
|
|
; To Do:
|
|
;
|
|
|
|
;EASE$$$ READ ONLY COPY of file Ògraftypes.m.aÓ
|
|
; 1.5 KON 12/05/1989 PMVersion needs to be cleaned up for B&W and Color QD compatability
|
|
; 1.4 KON 12/04/1989 Added relevent stuff from ColorEqu.a. Now DrawPicture32Patch.a includes this file.
|
|
; 1.3 KON 11/07/1989 Added support for font name/ID binding
|
|
; 1.2 BAL 06/06/1989 Fixed up trap macros for memoryMgr traps and made _stackAvail call _stackSpace.
|
|
; 1.1 CCH 11/11/1988 Fixed Header.
|
|
; 1.0 CCH 11/ 9/1988 Adding to EASE.
|
|
; OLD REVISIONS BELOW
|
|
; 1.1 MSH 5/18/88 Changed inclides to use m.GRAPHTYPES to work under EASE.
|
|
; 1.0 BBM 2/11/88 Adding file for the first time into EASEÉ
|
|
; END EASE MODIFICATION HISTORY
|
|
|
|
;-----------------------------
|
|
; modification history
|
|
; <A295/29oct86> bbm hacked for moveable toolbox dispatch table. THIS SHOULD
|
|
; BE MODIFIED ANYTIME THE START OF THE TOOLBOX TRAP TABLE
|
|
; MOVES. SHOULD BE DONE IN PARALLEL WITH HARDWARE EQUS.
|
|
|
|
;-----------------------------------------------------------------
|
|
;
|
|
; --> GRAFTYPES.a
|
|
;
|
|
; QUICKDRAW TYPE DECLARATIONS, USED BY ALL GRAPHICS ROUTINES
|
|
;
|
|
|
|
BLANKS ON
|
|
STRING ASIS
|
|
|
|
IF &TYPE('Nil') = 'UNDEFINED' THEN
|
|
Nil: Equ 0
|
|
ENDIF
|
|
|
|
|
|
IF &TYPE('__IncludingQuickEqu__') = 'UNDEFINED' THEN
|
|
;-----------------------------------------------
|
|
;
|
|
; QuickDraw VERBS:
|
|
;
|
|
FRAME EQU 0
|
|
PAINT EQU 1
|
|
ERASE EQU 2
|
|
INVERT EQU 3
|
|
FILL EQU 4
|
|
|
|
|
|
;-----------------------------------------------
|
|
;
|
|
; QuickDraw transfer MODES:
|
|
;
|
|
srcCopy EQU 0
|
|
srcOr EQU 1
|
|
srcXor EQU 2
|
|
srcBic EQU 3
|
|
notSrcCopy EQU 4
|
|
notSrcOr EQU 5
|
|
notSrcXor EQU 6
|
|
notSrcBic EQU 7
|
|
patCopy EQU 8
|
|
patOr EQU 9
|
|
patXor EQU 10
|
|
patBic EQU 11
|
|
notPatCopy EQU 12
|
|
notPatOr EQU 13
|
|
notPatXor EQU 14
|
|
notPatBic EQU 15
|
|
|
|
|
|
;-----------------------------------------------
|
|
;
|
|
; QuickDraw Color Separation:
|
|
;
|
|
normalBit EQU 0 ;normal screen mapping
|
|
inverseBit EQU 1 ;inverse screen mapping
|
|
redBit EQU 4 ;RGB additive mapping
|
|
greenBit EQU 3 ;for photos from screen
|
|
blueBit EQU 2
|
|
cyanBit EQU 8 ;CMYBk subtractive mapping
|
|
magentaBit EQU 7 ;for ink jet printer
|
|
yellowBit EQU 6
|
|
blackBit EQU 5
|
|
|
|
blackColor EQU 33
|
|
whiteColor EQU 30
|
|
redColor EQU 205
|
|
greenColor EQU 341
|
|
blueColor EQU 409
|
|
cyanColor EQU 273
|
|
magentaColor EQU 137
|
|
yellowColor EQU 69
|
|
|
|
|
|
|
|
;-----------------------------------------------
|
|
;
|
|
; OFFSETS WITHIN A POINT:
|
|
;
|
|
V EQU 0 ;WORD
|
|
H EQU 2 ;WORD
|
|
|
|
|
|
;-----------------------------------------------
|
|
;
|
|
; OFFSETS WITHIN A RECT:
|
|
;
|
|
TOPLEFT EQU 0 ;POINT
|
|
BOTRIGHT EQU 4 ;POINT
|
|
|
|
TOP EQU 0 ;INTEGER
|
|
LEFT EQU 2 ;INTEGER
|
|
BOTTOM EQU 4 ;INTEGER
|
|
RIGHT EQU 6 ;INTEGER
|
|
|
|
|
|
;-----------------------------------------------
|
|
;
|
|
; OFFSETS WITHIN A BITMAP:
|
|
;
|
|
BASEADDR EQU 0 ;LONG
|
|
ROWBYTES EQU 4 ;WORD
|
|
BOUNDS EQU 6 ;RECT
|
|
|
|
|
|
;-----------------------------------------------
|
|
;
|
|
; OFFSETS WITHIN A CURSOR:
|
|
;
|
|
DATA EQU 0 ;16 WORDS
|
|
MASK EQU 32 ;16 WORDS
|
|
HOTSPOT EQU 64 ;POINT
|
|
|
|
|
|
|
|
;-----------------------------------------------
|
|
;
|
|
; OFFSETS WITHIN A POLYGON:
|
|
;
|
|
POLYSIZE EQU 0 ;WORD, TOTAL BYTES
|
|
POLYBBOX EQU 2 ;RECT
|
|
POLYPOINTS EQU 10 ;ARRAY[0..0] OF Point
|
|
|
|
|
|
;-----------------------------------------------
|
|
;
|
|
; OFFSETS WITHIN A REGION:
|
|
;
|
|
RGNSIZE EQU 0 ;WORD, TOTAL BYTES
|
|
RGNBBOX EQU 2 ;RECT
|
|
RGNDATA EQU 10 ;START OF RGN DATA
|
|
|
|
|
|
;-----------------------------------------------
|
|
;
|
|
; OFFSETS WITHIN A PICTURE:
|
|
;
|
|
PICSIZE EQU 0 ;WORD, TOTAL BYTES
|
|
PICFRAME EQU 2 ;RECT
|
|
PICDATA EQU 10 ;START OF BYTE CODES
|
|
|
|
|
|
;-----------------------------------------------
|
|
;
|
|
; OFFSETS WITHIN QDProcs RECORD:
|
|
;
|
|
textProc EQU 0 ;PROCPTR
|
|
lineProc EQU textProc+4 ;PROCPTR
|
|
rectProc EQU lineProc+4 ;PROCPTR
|
|
rRectProc EQU rectProc+4 ;PROCPTR
|
|
ovalProc EQU rRectProc+4 ;PROCPTR
|
|
arcProc EQU ovalProc+4 ;PROCPTR
|
|
polyProc EQU arcProc+4 ;PROCPTR
|
|
rgnProc EQU polyProc+4 ;PROCPTR
|
|
bitsProc EQU rgnProc+4 ;PROCPTR
|
|
commentProc EQU bitsProc+4 ;PROCPTR
|
|
txMeasProc EQU commentProc+4 ;PROCPTR
|
|
getPicProc EQU txMeasProc+4 ;PROCPTR
|
|
putPicProc EQU getPicProc+4 ;PROCPTR
|
|
|
|
|
|
|
|
;-----------------------------------------------
|
|
;
|
|
; OFFSETS WITHIN A GRAFPORT:
|
|
;
|
|
device EQU 0 ;WORD
|
|
portBits EQU device+2 ;BITMAP
|
|
portRect EQU portBits+14 ;RECT
|
|
visRgn EQU portRect+8 ;RGNPTR
|
|
clipRgn EQU visRgn+4 ;RGNPTR
|
|
bkPat EQU clipRgn+4 ;PATTERN
|
|
fillPat EQU bkPat+8 ;PATTERN
|
|
pnLoc EQU fillPat+8 ;POINT
|
|
pnSize EQU pnLoc+4 ;POINT
|
|
pnMode EQU pnSize+4 ;WORD
|
|
pnPat EQU pnMode+2 ;PATTERN
|
|
pnVis EQU pnPat+8 ;WORD
|
|
txFont EQU pnVis+2 ;WORD
|
|
txFace EQU txFont+2 ;WORD
|
|
txMode EQU txFace+2 ;WORD
|
|
txSize EQU txMode+2 ;WORD
|
|
spExtra EQU txSize+2 ;Fixed Point
|
|
fgColor EQU spExtra+4 ;LONG
|
|
bkColor EQU fgColor+4 ;LONG
|
|
colrBit EQU bkColor+4 ;WORD
|
|
patStretch EQU colrBit+2 ;WORD
|
|
picSave EQU patStretch+2 ;handle
|
|
rgnSave EQU picSave+4 ;handle
|
|
polySave EQU rgnSave+4 ;handle
|
|
grafProcs EQU polySave+4 ;Pointer
|
|
PORTREC EQU grafProcs+4 ;SIZE OF A GRAFPORT
|
|
PORTBOUNDS EQU PORTBITS+BOUNDS
|
|
|
|
ENDIF ; if not including quickequ
|
|
;-----------------------------------------------------
|
|
;
|
|
; OFFSETS IN A REGION STATE RECORD:
|
|
;
|
|
RGNPTR EQU 0 ;LONG
|
|
DATAPTR EQU RGNPTR+4 ;LONG
|
|
SCANBUF EQU DATAPTR+4 ;LONG
|
|
SCANSIZE EQU SCANBUF+4 ;WORD
|
|
THISV EQU SCANSIZE+2 ;WORD
|
|
NEXTV EQU THISV+2 ;WORD
|
|
MINH EQU NEXTV+2 ;WORD
|
|
MAXH EQU MINH+2 ;WORD
|
|
LEFTH EQU MAXH+2 ;WORD
|
|
RGNREC EQU LEFTH+2 ;SIZE OF A REGION RECORD
|
|
|
|
|
|
;-----------------------------------------------------
|
|
;
|
|
; Offsets in a PicSave record:
|
|
;
|
|
thePic EQU 0 ;PICHANDLE
|
|
picMax EQU thePic+4 ;LongInt
|
|
picIndex EQU picMax+4 ;LongInt
|
|
picClipRgn EQU picIndex+4 ;RgnHandle
|
|
picBkPat EQU picClipRgn+4 ;Pattern
|
|
picTxFont EQU picBkPat+8 ;WORD
|
|
picTxFace EQU picTxFont+2 ;Style
|
|
picTxMode EQU picTxFace+2 ;WORD
|
|
picTxSize EQU picTxMode+2 ;WORD
|
|
picSpExtra EQU picTxSize+2 ;Fixed Point
|
|
picTxNumer EQU picSpExtra+4 ;Point
|
|
picTxDenom EQU picTxNumer+4 ;Point
|
|
picTxLoc EQU picTxDenom+4 ;Point
|
|
picPnLoc EQU picTxLoc+4 ;Point
|
|
picPnSize EQU picPnLoc+4 ;Point
|
|
picPnMode EQU picPnSize+4 ;WORD
|
|
picPnPat EQU picPnMode+2 ;Pattern
|
|
picFillPat EQU picPnPat+8 ;Pattern
|
|
picTheRect EQU picFillPat+8 ;Rect
|
|
picOvSize EQU picTheRect+8 ;Point
|
|
picOrigin EQU picOvSize+4 ;Point
|
|
picFgColor EQU picOrigin+4 ;Long
|
|
picBkColor EQU picFgColor+4 ;Long
|
|
picQdChExtra EQU picBkColor+4 ;Fixed <3><10>
|
|
picQdRunSlop EQU picQdChExtra+4 ;Fixed <3><10>
|
|
picFontList EQU picQdRunSlop+4 ;Handle <3><10>
|
|
picVersion EQU picFontList+4 ;picture version (0-based)
|
|
picGlyphState EQU picVersion+2 ;Long, outline preferred, preserve glyph, fractional widths, scale disable flags <15>
|
|
picReserve1 EQU picGlyphState+4 ;Long
|
|
picSaveRec EQU picReserve1+4 ;total size in bytes
|
|
|
|
;------ START OF ADDITION FROM ColorEqu.a by KON ----------
|
|
|
|
pictVersion EQU 1 ;version number for pict
|
|
npicVersion EQU $2FF ;version number for npic
|
|
|
|
;-----------------------------------------------
|
|
;
|
|
; PICTURE OPCODES
|
|
;
|
|
|
|
opNOP EQU $0 ; nop opcode
|
|
opClip EQU $1 ; clip opcode
|
|
opBkPat EQU $2 ; background pattern opcode
|
|
opTxFont EQU $3 ; text font opcode
|
|
opTxFace EQU $4 ; text face opcode
|
|
opTxMode EQU $5 ; text mode opcode
|
|
opSpExtra EQU $6 ; space extra opcode
|
|
opPnSize EQU $7 ; pen size opcode
|
|
opPnMode EQU $8 ; pen mode opcode
|
|
opPnPat EQU $9 ; pen pattern opcode
|
|
opFillPat EQU $A ; fill pattern opcode
|
|
opOvSize EQU $B ; oval size opcode
|
|
opOrigin EQU $C ; origin opcode
|
|
opTxSize EQU $D ; text size opcode
|
|
opFgColor EQU $E ; foreground color opcode
|
|
opBkColor EQU $F ; background color opcode
|
|
opTxRatio EQU $10 ; text ratio opcode
|
|
opVersion EQU $11 ; version opcode
|
|
opBkPixPat EQU $12 ; color background pattern opcode
|
|
opPnPixPat EQU $13 ; color pen pattern opcode
|
|
opFillPixPat EQU $14 ; color fill pattern opcode
|
|
opPnLocHFrac EQU $15 ; fractional pen position opcode
|
|
opChExtra EQU $16 ; extra for each character
|
|
|
|
; opcode $17 unused
|
|
|
|
opIFore EQU $18 ; foreColor index opcode
|
|
opIBack EQU $19 ; backColor index opcode
|
|
opRGBFgCol EQU $1A ; RGB foreColor opcode
|
|
opRGBBkCol EQU $1B ; RGB backColor opcode
|
|
opHiliteMode EQU $1C ; hilite mode flag
|
|
opHiliteColor EQU $1D ; RGB hilite color
|
|
opDefHilite EQU $1E ; Use default hilite color
|
|
opOpColor EQU $1F ; RGB OpColor for arithmetic modes
|
|
opLine EQU $20 ; line opcode
|
|
opLineFrom EQU $21 ; line from opcode
|
|
opShortLine EQU $22 ; short line opcode
|
|
opShortLineFrom EQU $23 ; short line from opcode
|
|
opLongText EQU $28 ; long text opcode
|
|
opDHText EQU $29 ; dh text opcode
|
|
opDVText EQU $2A ; dv text opcode
|
|
opDHDVText EQU $2B ; dh,dv text opcode
|
|
opFontName EQU $2C ; font name/id binding
|
|
opLineLayout EQU $2D ; script manager line-layout state
|
|
opGlyphState EQU $2E ; TrueType glyph drawing state <15>
|
|
opBitsRect EQU $90 ; copybits, rect clipped opcode
|
|
opBitsRgn EQU $91 ; copybits, rgn clipped opcode
|
|
opPackBitsRect EQU $98 ; packed copybits, rect clipped opcode
|
|
opPackBitsRgn EQU $99 ; packed copybits, rgn clipped opcode
|
|
opShortComment EQU $A0 ; short comment opcode
|
|
opLongComment EQU $A1 ; long comment opcode
|
|
opEndPic EQU $FF ; end of picture opcode
|
|
ngHeaderOp EQU $0C00 ; NuGraf Header opcode
|
|
|
|
;-----------------------------------------------
|
|
;
|
|
; COLOR QUICKDRAW EQUATES
|
|
;
|
|
nurbMask EQU $7FFF ; mask top 2 bits of rowbytes
|
|
rbMask EQU $1FFF ; mask top 3 bits of rowbytes
|
|
PMFlag EQU $8000 ; flag to say it's a new pixMap
|
|
cPortFlag EQU $C000 ; isPixMap+isCPort
|
|
pixVersion EQU $0000 ; isPixMap
|
|
|
|
qdStackXtra EQU $0640 ; stack space left for interrupts <1.4> BAL
|
|
|
|
isPixMap EQU 15 ; for testing high bit of pRowbytes
|
|
isCPort EQU 14 ; indicates that "bitmap" belongs to port
|
|
|
|
;-----------------------------------------------
|
|
;
|
|
; COLOR QUICKDRAW OFFSETS
|
|
;
|
|
;-----------------------------------------------
|
|
;
|
|
; OFFSETS WITHIN A PIXELMAP
|
|
;
|
|
pBaseAddr EQU 0 ; [long]
|
|
pNewFlag EQU pBaseAddr+4 ; [1 bit] upper bit of rowbytes is flag
|
|
pRowBytes EQU pBaseAddr+4 ; [word]
|
|
pBounds EQU pRowBytes+2 ; [rect]
|
|
IF 0 THEN ; Seems pretty Scary Bruce
|
|
pmVersion EQU pBounds+8 ; [word] pixMap version number
|
|
ENDIF
|
|
IF (&TYPE('pmVersion') = 'UNDEFINED') THEN
|
|
pmVersion EQU $E ; [word] pixMap version number
|
|
ENDIF
|
|
packType EQU pmVersion+2 ; [word] defines packing format
|
|
packSize EQU packType+2 ; [long] size of pixel data
|
|
hRes EQU packSize+4 ; [fixed] h. resolution (ppi)
|
|
vRes EQU hRes+4 ; [fixed] v. resolution (ppi)
|
|
pixelType EQU vRes+4 ; [word] defines pixel type
|
|
pixelSize EQU pixelType+2 ; [word] # bits in pixel
|
|
cmpCount EQU pixelSize+2 ; [word] # components in pixel
|
|
cmpSize EQU cmpCount+2 ; [word] # bits per field
|
|
planeBytes EQU cmpSize+2 ; [long] offset to next plane
|
|
|
|
IF 0 THEN
|
|
pmTable EQU planeBytes+4 ; [long] color map
|
|
pmReserved EQU pmTable+4 ; [long] MUST BE 0
|
|
|
|
pmRec EQU pmReserved+4 ; size of pixelMap record
|
|
ENDIF
|
|
|
|
|
|
MACRO
|
|
UNLINK
|
|
.*--------------------------------------------------------------
|
|
.*
|
|
.* UNLINK A6, STRIP PARAMETERS, AND RETURN.
|
|
.*
|
|
.* FIRST PARAM IS NUMBER OF BYTES OF STACK BIAS.
|
|
.*
|
|
UNLK A6 ;RELEASE LOCAL VARIABLES
|
|
.*
|
|
IF &Eval(&Syslst[1])=0 THEN;NO PARAMETERS ?
|
|
RTS ;THEN JUST RTS
|
|
.*
|
|
ELSEIF &Eval(&Syslst[1])=4 THEN;4 BYTES ?
|
|
MOVE.L (SP)+, (SP) ;STRIP PARAMETERS
|
|
RTS ;RETURN
|
|
|
|
ELSE
|
|
RTD_ &Eval(&Syslst[1]) ;STRIP PARAMETERS AND RETURN
|
|
ENDIF
|
|
.* <16> dc.b &Syslst[2] ;PUT OUT THE STRING
|
|
.* <16> align 2 ; align for following function or procedure <15>
|
|
.*
|
|
ENDM
|
|
|
|
MACRO
|
|
RTD_ &parm1
|
|
IF &SETTING('MACHINE') <> 'MC68000' THEN
|
|
RTD #&parm1
|
|
ELSE
|
|
IF &Eval(&parm1) = 0 THEN
|
|
rts
|
|
ELSEIF &Eval(&parm1)=4 THEN;4 BYTES ?
|
|
move.l (SP)+, (SP) ;STRIP PARAMETERS
|
|
rts ;RETURN
|
|
ELSEIF &Eval(&parm1)<=8 THEN
|
|
move.l (sp), &parm1(sp)
|
|
addq #&parm1, sp
|
|
rts
|
|
ELSE
|
|
move.l (sp), &parm1(sp)
|
|
add.w #&parm1, sp
|
|
rts
|
|
ENDIF
|
|
ENDIF
|
|
ENDM
|
|
|
|
;----- END OF ADDITION from ColorEqu.a by KON -----------
|
|
|
|
|
|
IF &TYPE('__IncludingQuickEqu__') = 'UNDEFINED' THEN
|
|
;-----------------------------------------------------
|
|
;
|
|
; QuickDraw GLOBAL VARIABLES:
|
|
;
|
|
; 52(A5) CONTAINS A POINTER TO THEPORT.
|
|
; ALL OTHER GLOBAL VARIABLES ARE EXPRESSED RELATIVE TO THEPORT.
|
|
;
|
|
GRAFGLOBALS EQU 0 ;A5 OFFSET TO GLOBALPTR
|
|
|
|
|
|
;-----------------------------------------------------------
|
|
;
|
|
; QuickDraw PUBLIC GLOBAL VARIABLES:
|
|
;
|
|
thePort EQU 0 ;GrafPtr
|
|
white EQU thePort-8 ;Pattern
|
|
black EQU white-8 ;Pattern
|
|
gray EQU black-8 ;Pattern
|
|
ltGray EQU gray-8 ;Pattern
|
|
dkGray EQU ltGray-8 ;Pattern
|
|
arrow EQU dkGray-68 ;Cursor
|
|
screenBits EQU arrow-14 ;BitMap
|
|
randSeed EQU screenBits-4 ;LONGINT
|
|
|
|
|
|
;------------------------------------------------------------
|
|
;
|
|
; QuickDraw private global variables:
|
|
;
|
|
wideOpen EQU randSeed-4 ;RgnHandle
|
|
wideMaster EQU wideOpen-4 ;RgnPtr
|
|
wideData EQU wideMaster-10 ;Fake Region
|
|
rgnBuf EQU wideData-4 ;PointsHandle
|
|
rgnIndex EQU rgnBuf-2 ;INTEGER
|
|
rgnMax EQU rgnIndex-2 ;INTEGER
|
|
playPic EQU rgnMax-4 ;Long
|
|
QDSpare0 EQU playPic-2 ;unused word
|
|
thePoly EQU QDSpare0-4 ;POLYHANDLE
|
|
polyMax EQU thePoly-2 ;INTEGER
|
|
patAlign EQU polyMax-4 ;Point
|
|
fixTxWid EQU patAlign-4 ;Fixed Point
|
|
fontPtr EQU fixTxWid-4 ;long, ^FMOutput record
|
|
playIndex EQU fontPtr-4 ;long
|
|
pnLocFixed EQU playIndex-2 ;word, horizontal pen fraction <4>
|
|
qdRunSlop EQU pnLocFixed-4 ;fixed point, Script Mgr run slop <9><10>
|
|
qdChExtra EQU qdRunSlop-4 ;fixed point, Script Mgr char extra <9><10>
|
|
QDSpare8 EQU qdChExtra-2 ;unused word <9>
|
|
QDSpare9 EQU QDSpare8-2 ;unused word
|
|
QDSpareA EQU QDSpare9-2 ;unused word
|
|
QDSpareB EQU QDSpareA-2 ;unused word
|
|
QDSpareC EQU QDSpareB-2 ;unused word
|
|
QDSpareD EQU QDSpareC-2 ;unused word
|
|
lastGrafGlob EQU QDSpareD
|
|
grafSize EQU 4-lastGrafGlob ;total size in bytes
|
|
|
|
ENDIF ; IF not including quickequ
|
|
;----------------------------------------------
|
|
;
|
|
; Trap table equates used by QuickDraw:
|
|
;
|
|
|
|
IF onMac THEN
|
|
xToolTable EQU $C00 ; start addr on macplus
|
|
ELSE
|
|
xToolTable EQU $E00 ; start addr on aladin
|
|
ENDIF
|
|
|
|
JStdArc EQU xToolTable+(4*$BD)
|
|
JStdBits EQU xToolTable+(4*$EB)
|
|
JStdComment EQU xToolTable+(4*$F1)
|
|
JStdGetPic EQU xToolTable+(4*$EE)
|
|
JStdLine EQU xToolTable+(4*$90)
|
|
JStdOval EQU xToolTable+(4*$B6)
|
|
JStdPoly EQU xToolTable+(4*$C5)
|
|
JStdPutPic EQU xToolTable+(4*$F0)
|
|
JStdRect EQU xToolTable+(4*$A0)
|
|
JStdRgn EQU xToolTable+(4*$D1)
|
|
JStdRRect EQU xToolTable+(4*$AF)
|
|
JStdText EQU xToolTable+(4*$82)
|
|
JStdTxMeas EQU xToolTable+(4*$ED)
|
|
|
|
|
|
MACRO
|
|
_StackAvail
|
|
MOVE.L $400+4*$65,A0 ;get address of stack space routine
|
|
JSR (A0) ;get stack space into D0 and return
|
|
ENDM
|
|
|
|
|
|
|
|
;_______________________________________________________________________
|
|
;
|
|
; Equates for setting trap option bits
|
|
;
|
|
;_______________________________________________________________________
|
|
|
|
IF forROM THEN
|
|
immed EQU $200 ; execute immediately, bypass I/O queue
|
|
clear EQU $200 ;
|
|
async EQU $400 ; asynchronous, don't wait for completion
|
|
sys EQU $400 ;
|
|
autoPop EQU $400 ; set autopop bit
|
|
ENDIF
|
|
|
|
|
|
;----------------------------------------------
|
|
;
|
|
; Trap Macros used by QuickDraw:
|
|
;
|
|
|
|
MACRO
|
|
_MLongMul
|
|
DC.W ($A867)
|
|
ENDM
|
|
|
|
MACRO
|
|
_MFixMul
|
|
DC.W ($A868)
|
|
ENDM
|
|
|
|
MACRO
|
|
_MFixRatio
|
|
DC.W ($A869)
|
|
ENDM
|
|
|
|
IF forROM THEN
|
|
_NewHandle OPWORD $A122
|
|
_DisposHandle OPWORD $A023
|
|
_SetHandleSize OPWORD $A024
|
|
_GetHandleSize OPWORD $A025
|
|
_HLock OPWORD $A029
|
|
_HUnLock OPWORD $A02A
|
|
ENDIF
|
|
|
|
MACRO
|
|
_MSysError
|
|
DC.W ($A9C9)
|
|
ENDM
|
|
|
|
MACRO
|
|
_GetScrnBits
|
|
DC.W ($A833) ;new trap number
|
|
ENDM
|
|
|
|
MACRO
|
|
_SwapFont
|
|
MOVE.L $8E0,A0 ;get pointer to FMSwapFont
|
|
JSR (A0) ;call font manager
|
|
ENDM
|
|
|
|
|
|
|
|
|
|
|