mirror of
https://github.com/elliotnunn/mac-rom.git
synced 2024-12-28 16:31:01 +00:00
9c249dafab
The ROM now round-trips with QuickDraw mostly built from source. (~30% of the ROM is now built from source.)
500 lines
19 KiB
Plaintext
500 lines
19 KiB
Plaintext
;
|
|
; File: ColorEqu.a
|
|
;
|
|
; Copyright: © 1986-1991 by Apple Computer, Inc., all rights reserved.
|
|
;
|
|
; Change History (most recent first):
|
|
;
|
|
; <23> 10/1/91 KON Removed nsStackErr and noMemForPicPlayBack error since they are
|
|
; defined in SysErr.a
|
|
; <22> 8/21/91 JSM Clean up header.
|
|
; <21> 6/14/91 JL Removed Quickdraw glue vectors from this file because they have
|
|
; been shipping in Private.a. Added Inclusion of Private.a. Also
|
|
; put conditional in to make sure prNonPortable gets set to one.
|
|
; <20> 3/31/91 dba gbm: get rid of symbols from QuickDraw (some day someone will
|
|
; conditionally turn them back on again)
|
|
; <19> 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.
|
|
; <18> 1/30/91 gbm sab, #38: Change the Ôalready including this fileÕ variable to
|
|
; all uppercase (for security reasons)
|
|
; <17> 12/13/90 KON Add color table signature for recording pixmaps without a color
|
|
; table into pictures. [smc]
|
|
; <16> 11/12/90 CL (reviewed by PKE)onMac is defined to a non-zero value in the
|
|
; system builds even though there is non mac plus code being built
|
|
; for it. Changing the onMac flag to different name which is not
|
|
; used.
|
|
; <15> 11/9/90 PKE (really CEL, reviewed by PKE) Make JStdTbTbl depend on onMac
|
|
; conditional to fix it for Mac Plus.
|
|
; <14> 10/31/90 SMC Added equates for internal grafVars fields.
|
|
; <13> 8/24/90 PKE Delete old names picSMgrChar and picSMgrSlop. Remove duplicate
|
|
; definition of nsStackerr (now in SysErr.a).
|
|
; <12> 8/23/90 PKE (per JT) Renamed picSMgrChar and picSMgrSlop to picQdChExtra and
|
|
; picQdRunSlop. Keep old names too until we can update all
|
|
; relevant sources.
|
|
; <11> 8/21/90 KON Add noMemForPictPlayback error.
|
|
; <10> 8/2/90 gbm change LEFTEDGE and RIGHTEDGE in oval state record to avoid
|
|
; conflicts with symbols elsewhere
|
|
; <9> 7/26/90 KON Moved nsStackerr from QD.a.
|
|
; <8> 6/29/90 KON ci ROM routines expect order of picSave record not to change, so
|
|
; I moved the new Char and Slop fields to the bottom so the
|
|
; pattern fields stay in the same place.
|
|
; <7> 6/21/90 CL Needed to make JStdTxMeas conditionalized for TrueType build so
|
|
; this file could be used. This only effects b&w since the base of
|
|
; the trap table is different for the Mac Plus compare to the SE
|
|
; or Portable.
|
|
; <1.6> 11/15/89 KON Changed UNLINK macro and added RTD_ macro to make friendly with
|
|
; B&W machines
|
|
; <¥1.6> 11/15/89 KON Overwriting because EASE screwed up and didn't accept last
|
|
; version.
|
|
; <1.5> 11/1/89 BAL Added opFontName to the picture opcodes. Grew picSave by 12
|
|
; bytes.
|
|
; <1.4> 6/30/89 BAL Added equate for qdStackXtra
|
|
; <1.3> 6/10/89 CEL Moved Private.a QuickDraw Equates into proper QuickDraw private
|
|
; file (colorequ.a), got rid of QuickDraw nFiles dependencies and
|
|
; fixed up necessary filesÉ
|
|
; <¥1.2> 4/12/89 BAL Blasting in 32-Bit QuickDraw 1.0B1
|
|
; <¥1.1> 4/12/89 BAL Blasting in 32-Bit QuickDraw 1.0B1
|
|
; <1.0> 11/16/88 CCH Adding from System Build.
|
|
; 10/3/88 CCH Took out UNLINK macro (duplicated in private.a)
|
|
; <C533> 12/15/86 DAF added gamma table format
|
|
; <C434> 11/18/86 CRC added fractional pen field in graf port
|
|
; <C387> 11/9/86 DAF added request list structure
|
|
; <C314> 10/31/86 DAF renamed GDevice dummy field
|
|
; <A283> 10/28/86 bbm moved location of the toolbox trap table.
|
|
; <C188> 9/30/86 EHB Merged in latest colorequ changes
|
|
; <C153> 9/13/86 EHB Moved CQD trap definitions to NEWEQU.a
|
|
; <C146> 9/8/86 BBM Used JStdTbTbl, which is the toolbox jump table.
|
|
;
|
|
;___________________________________________________________________________
|
|
|
|
|
|
IF (&TYPE('NEED_JSTDTXMEAS') = 'UNDEFINED') THEN ;
|
|
NEED_JSTDTXMEAS EQU 1
|
|
ENDIF
|
|
|
|
IF (&TYPE('isMacPlus') = 'UNDEFINED') THEN ;<16-CEL,PKE>
|
|
isMacPlus EQU 0
|
|
ENDIF
|
|
|
|
IF &TYPE('__INCLUDINGCOLOREQU__') = 'UNDEFINED' THEN
|
|
__INCLUDINGCOLOREQU__ SET 1
|
|
|
|
IF (&TYPE('PrNonPortable') = 'UNDEFINED') THEN
|
|
PrNonPortable EQU 1
|
|
ENDIF
|
|
IF PrNonPortable = 0 THEN
|
|
PrNonPortable EQU 1
|
|
ENDIF
|
|
include 'private.a'
|
|
|
|
;-----------------------------------------------
|
|
;
|
|
; Misc. Equates without another home
|
|
;
|
|
cTabSignature EQU $4B4F ;signature that PixMap has NIL color table
|
|
|
|
;-----------------------------------------------
|
|
;
|
|
; PRIVATE QUICKDRAW EQUATES
|
|
;
|
|
; additional private low memory globals
|
|
|
|
SaveFondFlags EQU $986 ;important byte from current FOND flags
|
|
FondState EQU $903 ;saved FOND purge state
|
|
|
|
; additional private low memory globals for nuMacÕs and later <C346>
|
|
|
|
SynListHandle EQU $0D32 ;a handle to a list of synthesized fonts
|
|
LastFore EQU $0D36 ;8 bytes: last foreground and background colors (FM)
|
|
LastMode EQU $0D3E ;word: last text mode (Font Manager)
|
|
LastDepth EQU $0D40 ;word: last depth font prepared for
|
|
FMExist EQU $0D42 ;byte: clear if InitFonts has already been called
|
|
SavedHilite EQU $0D43 ;byte: used for state across Mac II QD patches
|
|
|
|
;-----------------------------------------------------
|
|
|
|
; Region State record
|
|
|
|
rgnPtr EQU $0 ; [handle]
|
|
dataPtr EQU $4 ; [handle]
|
|
scanBuf EQU $8 ; [pointer]
|
|
scanSize EQU $C ; [word]
|
|
thisV EQU $E ; [word]
|
|
nextV EQU $10 ; [word]
|
|
minH EQU $12 ; [word]
|
|
maxH EQU $14 ; [word]
|
|
leftH EQU $16 ; [word]
|
|
rgnRec EQU $18 ; size of as region record
|
|
|
|
|
|
;------------------------------------------------------
|
|
;
|
|
; OFFSETS IN AN OVAL STATE RECORD:
|
|
;
|
|
OVALTOP EQU 0 ;INTEGER
|
|
OVALBOT EQU OVALTOP+2 ;INTEGER
|
|
OVALY EQU OVALBOT+2 ;INTEGER
|
|
RSQYSQ EQU OVALY+2 ;LONGINT
|
|
SQUARE EQU RSQYSQ+4 ;64 BIT LONGFIX
|
|
ODDNUM EQU SQUARE+8 ;64 BIT LONGFIX
|
|
ODDBUMP EQU ODDNUM+8 ;64 BIT LONGFIX
|
|
LEFTMOSTEDGE EQU ODDBUMP+8 ;32 BIT FIXED POINT
|
|
RIGHTMOSTEDGE EQU LEFTMOSTEDGE+4 ;32 BIT FIXED POINT
|
|
ONEHALF EQU RIGHTMOSTEDGE+4 ;32 BIT FIXED POINT
|
|
OVALSIZE EQU ONEHALF+4 ;SIZE OF AN OVALREC
|
|
|
|
|
|
;-----------------------------------------------------
|
|
;
|
|
; OFFSETS IN A PICSAVE RECORD:
|
|
;
|
|
thePic EQU 0 ;PICHANDLE
|
|
picMax EQU 4 ;LongInt
|
|
picIndex EQU 8 ;LongInt
|
|
picClipRgn EQU 12 ;RgnHandle
|
|
picBkPat EQU 16 ;Pattern
|
|
picTxFont EQU 24 ;WORD
|
|
picTxFace EQU 26 ;Style
|
|
picTxMode EQU 28 ;WORD
|
|
picTxSize EQU 30 ;WORD
|
|
picSpExtra EQU 32 ;Fixed Point
|
|
picTxNumer EQU 36 ;Point
|
|
picTxDenom EQU 40 ;Point
|
|
picTxLoc EQU 44 ;Point
|
|
picPnLoc EQU 48 ;Point
|
|
picPnSize EQU 52 ;Point
|
|
picPnMode EQU 56 ;WORD
|
|
picPnPat EQU 58 ;Pattern
|
|
picFillPat EQU 66 ;Pattern
|
|
picTheRect EQU 74 ;Rect
|
|
picOvSize EQU 82 ;Point
|
|
picOrigin EQU 86 ;Point
|
|
picFgColor EQU 90 ;Long
|
|
picBkColor EQU 94 ;Long
|
|
picSaveRec EQU 98 ;total size in bytes
|
|
|
|
picVersion EQU 98 ;WORD
|
|
picRGBFgCol EQU 100 ;RGB (6 bytes)
|
|
picRGBBkCol EQU 106 ;RGB (6 bytes)
|
|
picChExtra EQU 112 ;WORD
|
|
picLocHFrac EQU 114 ;WORD
|
|
picRGBOpColor EQU 116 ;RGB (6 bytes)
|
|
picRGBHiColor EQU 122 ;RGB (6 bytes)
|
|
picFillPP EQU 128 ;Handle
|
|
picPnPP EQU 132 ;Handle
|
|
picBkPP EQU 136 ;Handle
|
|
picFontList EQU 140 ;Handle
|
|
picQdChExtra EQU 144 ;Fixed (moved below pattern stuff) <29JUN90 KON><12>
|
|
picQdRunSlop EQU 148 ;Fixed (moved below pattern stuff) <29JUN90 KON><12>
|
|
picGlyphState EQU 152 ;Long, outline preferred, preserve glyph, fractional widths, scale disable flags <19>
|
|
picReserve1 EQU 156 ;Handle
|
|
npicSaveRec EQU 160 ;total size in bytes
|
|
|
|
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 <19>
|
|
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 $0800 ; 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
|
|
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
|
|
|
|
|
|
;------------------------------
|
|
; <14> OFFSETS WITHIN GRAFVARS:
|
|
;
|
|
;rgbOpColor EQU 0 ; [6 bytes] color for addPin, subPin and average
|
|
;rgbHiliteColor EQU rgbOpColor+6 ; [6 bytes] color for hiliting
|
|
;pmFgColor EQU rgbHiliteColor+6 ; [4 bytes] palette handle for foreground color
|
|
;pmFgIndex EQU pmFgColor+4 ; [2 bytes] index value for foreground
|
|
;pmBkColor EQU pmFgIndex+2 ; [4 bytes] palette handle for background color
|
|
;pmBkIndex EQU pmBkColor+4 ; [2 bytes] index value for background
|
|
;pmFlags EQU pmBkIndex+2 ; [2 bytes] flags for Palette Manager
|
|
;grafVarRec EQU pmFlags+2 ; size of grafVar record
|
|
|
|
gworldstuff EQU grafVarRec ;[6 bytes] stuff that gworlds add to grafvars
|
|
|
|
foreStream EQU gworldstuff+6 ;[4 bytes] foreground stream ID number
|
|
foreRatio EQU foreStream+4 ;[2 bytes] foreground transparency ratio
|
|
backStream EQU foreRatio+2 ;[4 bytes] background stream ID number
|
|
backRatio EQU backStream+4 ;[2 bytes] background transparency ratio
|
|
streamFiller EQU backRatio+2 ;[1 byte] currently unused byte
|
|
streamMode EQU streamFiller+1 ;[1 byte] alpha channel mode
|
|
newGrafVarRec EQU streamMode+1 ;size of full grafVar record
|
|
|
|
|
|
;------------------
|
|
; fields within patXMap
|
|
|
|
patXRow EQU 0 ; [word] rowbytes of expanded pattern
|
|
patXHMask EQU patXRow+2 ; [word] horizontal mask
|
|
patXVMask EQU patXHMask+2 ; [word] vertical mask
|
|
LastCTable EQU patXVMask+2 ; [long] seed value for last color table
|
|
LastOfst EQU LastCTable+4 ; [word] last global-local offset
|
|
LastInvert EQU LastOfst+2 ; [long] last invert value
|
|
LastAlign EQU LastInvert+4 ; [long] last horizontal align
|
|
LastStretch EQU LastAlign+4 ; [word] last stretch
|
|
|
|
ppXInfo EQU LastStretch+2 ; size of expanded data
|
|
|
|
ScrnActive EQU 15 ; 1 if in use
|
|
|
|
|
|
; inverse Table structure (shouldn't be a public structure, but is obvious) <C96/29Jul86>DAF
|
|
ITabSeed EQU $0 ;[long] ID of owning color table
|
|
iTabRes EQU $4 ;[word] resolution of this table
|
|
iTTable EQU $6 ;table of indices starts here
|
|
|
|
ITabHidden EQU $00 ;number of hidden entries (0 for balanced table)
|
|
ITabFlags EQU $02 ;[word] flags for this table <BAL 16Mar89>
|
|
ITabReserved EQU $04 ;[word] reserved for future use
|
|
ITabInfo EQU $06
|
|
ITabLuma EQU $106 ;1 bytes per color at the moment <BAL 18Mar89>
|
|
ITExtraSize EQU $206 ;1 bytes per color at the moment <BAL 18Mar89>
|
|
|
|
;-----------------------------------------------------
|
|
;
|
|
; EQUATES FOR COLOR CURSOR SAVE AREA
|
|
;
|
|
; NOTE THAT THE FIRST FOUR FIELDS ARE PARALLEL TO THE FIRST FOUR FIELDS
|
|
; OF A PATTERN SO THAT PATCONVERT CAN BE USED TO EXPAND A CURSOR
|
|
;
|
|
CCTYPE EQU 0 ;[WORD] CURSOR TYPE
|
|
CCMAP EQU CCTYPE+2 ;[LONG] HANDLE TO CURSOR'S PIXMAP
|
|
CCDATA EQU CCMAP+4 ;[LONG] HANDLE TO CURSOR'S COLOR DATA
|
|
CCXDATA EQU CCDATA+4 ;[LONG] HANDLE TO EXPANDED DATA
|
|
CCXMASK EQU CCXDATA+4 ;[LONG] HANDLE TO EXPANDED MASK
|
|
CCSAVE EQU CCXMASK+4 ;[LONG] HANDLE TO SAVE BITS UNDER CURSOR
|
|
CCLASTCRSR EQU CCSAVE+4 ;[32 BYTES] DATA FOR LAST B/W CURSOR DRAWN
|
|
CCID EQU CCLASTCRSR+32 ;[LONG] ID FOR LAST COLOR CURSOR DRAWN
|
|
CCDEPTH EQU CCID+4 ;[WORD] DEPTH FOR LAST CURSOR DRAWN
|
|
CCSTATEREGS EQU CCDEPTH+2 ;[16 BYTES] STATE INFO OF SAVED DATA
|
|
CCBYTES EQU CCSTATEREGS+16 ;[WORD] ROWBYTES OF EXPANDED DATA
|
|
CCMAXDEPTH EQU CCBYTES+2 ;[WORD] MAXIMUM SCREEN DEPTH
|
|
|
|
CCSAVEREC EQU CCMAXDEPTH+2+8 ;SIZE OF CURSOR SAVE AREA
|
|
|
|
; Font Manager low mem
|
|
;
|
|
FontFlag EQU $15E ; font manager loop flag [byte]
|
|
|
|
FOutError EQU $998 ; error code
|
|
FOutFontHandle EQU $99A ; handle to font bits
|
|
FOutBold EQU $99E ; bolding factor
|
|
FOutItalic EQU $99F ; italic factor
|
|
FOutULOffset EQU $9A0 ; underline offset
|
|
FOutULShadow EQU $9A1 ; underline halo
|
|
FOutULThick EQU $9A2 ; underline thickness
|
|
FOutShadow EQU $9A3 ; shadow factor
|
|
FOutExtra EQU $9A4 ; extra horizontal width
|
|
FOutAscent EQU $9A5 ; height above baseline
|
|
FOutDescent EQU $9A6 ; height below baseline
|
|
FOutWidMax EQU $9A7 ; maximum width of character
|
|
FOutLeading EQU $9A8 ; space between lines
|
|
FOutUnused EQU $9A9 ; unused byte (must have even number)
|
|
FOutNumer EQU $9AA ; point for numerators of scale factor
|
|
FOutDenom EQU $9AE ; point for denominators of scale factor
|
|
|
|
|
|
|
|
;----------------------------------------------
|
|
;
|
|
; Trap table equates used by QuickDraw:
|
|
;
|
|
IF isMacPlus THEN ;<16-CEL,PKE>
|
|
JStdTbTbl EQU $0C00 ;<15-CEL,PKE>
|
|
ELSE
|
|
JStdTbTbl EQU $0E00 ; <C146><A283>
|
|
ENDIF
|
|
|
|
JStdArc EQU JStdTbTbl+(4*$BD)
|
|
JStdBits EQU JStdTbTbl+(4*$EB)
|
|
JStdComment EQU JStdTbTbl+(4*$F1)
|
|
JStdGetPic EQU JStdTbTbl+(4*$EE)
|
|
JStdLine EQU JStdTbTbl+(4*$90)
|
|
JStdOval EQU JStdTbTbl+(4*$B6)
|
|
JStdPoly EQU JStdTbTbl+(4*$C5)
|
|
JStdPutPic EQU JStdTbTbl+(4*$F0)
|
|
JStdRect EQU JStdTbTbl+(4*$A0)
|
|
JStdRgn EQU JStdTbTbl+(4*$D1)
|
|
JStdRRect EQU JStdTbTbl+(4*$AF)
|
|
JStdText EQU JStdTbTbl+(4*$82)
|
|
IF NEED_JSTDTXMEAS THEN
|
|
JStdTxMeas EQU JStdTbTbl+(4*$ED)
|
|
ENDIF
|
|
|
|
JStdOpcode EQU JStdTbTbl+(4*$3F8)
|
|
|
|
|
|
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
|
|
if 0 then ; turn this on again some day <20>
|
|
dc.b &Syslst[2] ;PUT OUT THE STRING
|
|
align ; align code for next function or procedure <19>
|
|
endif
|
|
.*
|
|
ENDM
|
|
|
|
|
|
MACRO
|
|
_StackAvail
|
|
MOVE.L $400+4*$65,A0 ;get address of stack space routine
|
|
JSR (A0) ;get stack space into D0 and return
|
|
ENDM
|
|
|
|
MACRO
|
|
_GetScrnBits ; it's in crsrcore!!
|
|
DC.W ($A833) ;new trap number
|
|
ENDM
|
|
|
|
MACRO
|
|
_SwapFont
|
|
MOVE.L $8E0,A0 ;get pointer to FMSwapFont
|
|
JSR (A0) ;call font manager
|
|
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
|
|
|
|
ENDIF ; ...already included |