mac-rom/Toolbox/ColorPicker/ColorPicker.a
Elliot Nunn 4325cdcc78 Bring in CubeE sources
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.
2017-12-26 09:52:23 +08:00

168 lines
4.0 KiB
Plaintext

;
; File: ColorPicker.a
;
; Contains: Assembly language goodies to go with the Color Picker
;;
; Copyright: © 1987-1990 by Apple Computer, Inc., all rights reserved.
;
; Change History (most recent first):
;
; <2> 8/28/90 dvb NEEDED FOR SIXPACK: Fix to work w/o 32bit qd
; <¥1.1> 7/24/89 CSD FOR 6.0.4. Forcing submission to upgrade to the 32-Bit QuickDraw
; Color Picker.
;
; To Do:
;
;EASE$$$ READ ONLY COPY of file ÒColorPicker.aÓ
;¥1.1 CSD 07/24/1989 FOR 6.0.4. Forcing submission to upgrade to the 32-Bit
; QuickDraw Color Picker.
;----------------------------------------------------------------
;
; Assembly glue for Color Picker package
;
; Copyright © 1987, 1988 Apple Computer, Inc. All rights reserved.
;
;-----------------------------------------------------------------
BLANKS ON
INCLUDE 'Traps.a'
Picker MAIN EXPORT
IMPORT glueFix2SmallFract
IMPORT glueSmallFract2Fix
IMPORT glueCMY2RGB
IMPORT glueRGB2CMY
IMPORT glueHSL2RGB
IMPORT glueRGB2HSL
IMPORT glueHSV2RGB
IMPORT glueRGB2HSV
IMPORT glueGetColor
bra.s Dispatch
dc.w 0 ;start of package header (need doc)
dc.l 'PACK'
dc.w 12 ;package number
dc.w 1 ;version number
Dispatch
lea Picker, a0 ;get our address
_RecoverHandle ;get our master pointer
_HLock ;lock us down
move.l (sp)+,a0 ;pop return address
move.w (sp)+,d0 ;get routine selector
move.l a0,-(sp) ;restore return address
asl.w #1,d0 ;make routine selector word index
move.w JTab-2(d0.w),d0 ;get routine offset
jmp JTab(d0.w) ;go to selected routine
JTab
dc.w glueFix2SmallFract-JTab
dc.w glueSmallFract2Fix-JTab
dc.w glueCMY2RGB-JTab
dc.w glueRGB2CMY-JTab
dc.w glueHSL2RGB-JTab
dc.w glueRGB2HSL-JTab
dc.w glueHSV2RGB-JTab
dc.w glueRGB2HSV-JTab
dc.w glueGetColor-JTab
;
;-------------------------------------------------------------------------------------
; Next: Routines for unpacking the tightly-wadded 32-bit wedges.
; FUNCTION: NibbleUnpack(src,dst: Pointer):LONGINT;
;
; Unpack data pointed to by src, and deposit it starting at dest.
;
; Data are unpacked as follows:
; A control byte is followed by two data bytes. The high nibble of the control byte
; specifies the repeat count for the first data byte, and the low nibble of the
; control byte specifies the repeat count for the second data byte.
; A control byte of ZERO indicates end of data.
;
; Unpack the data. Return number of source bytes unpacked.
;
NibbleUnpack PROC EXPORT
UnPackVars RECORD {A6Link},DECREMENT
result DS.B 4 ;result: Long
src DS.B 4 ;WindowPtr
dst DS.B 4 ;EventRecord
return DS.B 4 ;return address
A6Link DS.B 4 ;old contents of A6
linkSize DS.B 0 ;linky number
ENDR
WITH UnPackVars
LINK A6, #linkSize
MOVEM.L D3-D6,-(SP) ;save all regs
MOVE.L src(A6),A0 ;A0->source
MOVE.L dst(A6),A1 ;A1->destination
@com CLR.L D0 ;trash the upper bits
CLR.L D1
MOVE.B (A0)+,D0 ;D0 = two counts
BEQ.S @alldone ; Zero? => end of sequence
MOVE.B D0,D1
LSR #4,D1
MOVE.B (A0)+,D2
BRA.S @end1
@sing1 MOVE.B D2,(A1)+ ;Move a byte...
@end1 DBRA D1,@sing1
MOVE.B D0,D1
AND #$F,D1
MOVE.B (A0)+,D2
BRA.S @end2
@sing2 MOVE.B D2,(A1)+ ;Move a byte...
@end2 DBRA D1,@sing2
BRA.S @com
@alldone
SUBA.L src(A6),A0 ;A0 = number of bytes read
MOVE.L A0,result(A6) ;return that value
MOVEM.L (SP)+,D3-D6 ;restore them regs
UNLK A6
MOVE.L (SP),A0 ;A0->return address
ADD.L #result-return,SP ;Remove calling stack
JMP (A0) ;Leave
PROC
EXPORT SetGray25Pat,SetGray50Pat,SetGray75Pat,SetGray50BPat
thatGray25Pat
DC.B $55,$00,$55,$00,$55,$00,$55,$00
thatGray50Pat
DC.B $55,$AA,$55,$AA,$55,$AA,$55,$AA
thatGray75Pat ;
DC.B $FF,$AA,$FF,$AA,$FF,$AA,$FF,$AA
thatGray50BPat ; stripes, to checker over
DC.B $FF,$00,$FF,$00,$FF,$00,$FF,$00
SetGray25Pat
PEA thatGray25Pat
share _PenPat
RTS
SetGray50Pat
PEA thatGray50Pat
BRA.S share
SetGray75Pat
PEA thatGray75Pat
BRA.S share
SetGray50BPat
PEA thatGray50BPat
BRA.S share
END