mirror of
https://github.com/elliotnunn/sys7.1-doc-wip.git
synced 2024-05-31 13:41:30 +00:00
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
|
|
|
|
|
|
|
|
|
|
|