home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gold Fish 1
/
GoldFishApril1994_CD2.img
/
d4xx
/
d498
/
cpalette
/
src
/
includes
/
gadgets.asm
< prev
next >
Wrap
Assembly Source File
|
1991-06-06
|
4KB
|
209 lines
; *** GADGETS.ASM
; GADGET SUPPORT ROUTINES FOR BOOLEAN, STRING, AND PROPORTIONAL TYPES
SIZE.BBORDER EQU 40
BB.BUTTONLINES EQU 16
; NEWPGADG MACRO
NEWSGADG MACRO
LEA \1,A0
LEA \2,A1
MOVE.W #\3,D4
MOVE.W #\4,D5
BSR MAKEASTRINGADGET
MOVE.L \5,A0
MOVE.L D0,A1
BSR ADDNEWGADG
ENDM
NEWBGADG MACRO
LEA \1,A1
MOVE.W #\2,D4
MOVE.W #\3,D5
BSR MAKEAGADGET
MOVE.L \4,A0
MOVE.L D0,A1
BSR ADDNEWGADG
ENDM
ADDNEWGADG
ZERO D0
MOVE.W #-1,D0
INTLIB ADDGADGET
MOVE.L _THISGADGET,D0
RTS
MAKEAGADGET
MOVE.L A1,_THISGTEXT
REMEMBERPUBMEM REMEMBERKEY,#SIZE.BBORDER
TST.L D0
BEQ ERR_MAKEAGADGETMEM
MOVE.L D0,_THISBBORDER
TST.L _THISGTEXT
BNE.S GADGIT ; SKIP FOR NO-TEXT BOOLEANS
ZERO D0
MOVE.L D0,_THISGITEXT
BRA.S AFTERIT
GADGIT
REMEMBERPUBMEM REMEMBERKEY,#SIZE.IT
TST.L D0
BEQ ERR_MAKEAGADGETMEM
MOVE.L D0,_THISGITEXT
MOVE.L D0,A0
MOVE.L _THISGTEXT,A1
BSR CREATETEXT
INTLIB INTUITEXTLENGTH
MOVE.L D0,D6
ADDI.W #4,D6
BCLR #0,D6
MOVE.W _THISFONTHITE,D7
ADDI.W #4,D7
BCLR #0,D7
AFTERIT
MOVEA.L _THISBBORDER,A0
ADDA.L #SIZE.BORD,A0
MOVE.W D6,4(A0)
MOVE.W D6,8(A0)
MOVE.W D7,10(A0)
MOVE.W D7,14(A0)
MOVE.W #-1,D0
CMP.W #STRGADGET,_THISGTYPE
BNE.S BORDERMINONE
MOVE.W #-5,D0
BORDERMINONE
MOVE.W D0,2(A0)
MOVE.W D0,6(A0)
MOVE.W D0,18(A0)
MOVE.W D0,(A0)
MOVE.W D0,12(A0)
MOVE.W D0,16(A0)
MOVEA.L _THISBBORDER,A1
MOVE.L A0,BORD.XY(A1)
MOVE.B #JAM1,BORD.DRAWMODE(A1)
MOVE.B #1,BORD.FRONTPEN(A1)
MOVE.B #5,BORD.COUNT(A1)
_JUSTTHEGADGET
REMEMBERCHIPMEM REMEMBERKEY,#SIZE.GADG
TST.L D0
BEQ ERR_MAKEAGADGETMEM
MOVE.L D0,_THISGADGET
MOVE.L D0,A0
MOVE.W D4,GADG.LEFTEDGE(A0)
MOVE.W D5,GADG.TOPEDGE(A0)
MOVE.W D6,GADG.WIDTH(A0)
MOVE.W D7,GADG.HEIGHT(A0)
MOVE.W _THISGTYPE,GADG.TYPE(A0)
MOVE.W _THISGACTIV,GADG.ACTIVATION(A0)
MOVE.L _THISGITEXT,GADG.TEXT(A0)
MOVE.W _THISGFLAGS,GADG.FLAGS(A0)
MOVE.L _THISBBORDER,GADG.RENDER(A0)
ZERO D1
MOVE.L _THISGADGET,D0
RTS
ERR_MAKEAGADGETMEM
MOVE.L #CANTALLOCMEM,D1
ZERO D0
RTS
ERR_MAKEAGADGET
MOVE.L #CANTALLOCMEM,D1
ZERO D0
RTS
MAKEASTRINGADGET
MOVE.W #STRGADGET,_THISGTYPE
MOVE.L A0,_THISGBUFFER
MOVE.L A1,_THISGUNDOBUF
REMEMBERPUBMEM REMEMBERKEY,#SIZE.SI
TST.L D0
BEQ ERR_MAKEAGADGETMEM
MOVE.L D0,A0
MOVE.L D0,_THISGSTRINGINFO
MOVE.L _THISGBUFFER,SI.BUFFER(A0)
MOVE.L _THISGUNDOBUF,SI.UNDOBUFFER(A0)
MOVE.W #1,SI.BUFFERPOS(A0)
MOVE.W #80,SI.MAXCHARS(A0)
LEA SIZESTRING,A1
BSR MAKEAGADGET
MOVE.L _THISGSTRINGINFO,GADG.SPECIALINFO(A0)
MOVE.W #BOOLGADGET,_THISGTYPE
RTS
MAKEAPROPGADGET
MOVE.W #PROPGADGET,_THISGTYPE
REMEMBERCHIPMEM REMEMBERKEY,#SIZE.IMAG
TST.L D0
BEQ ERR_MAKEAGADGETMEM
MOVE.L D0,_THISGIMAGE
REMEMBERCHIPMEM REMEMBERKEY,#SIZE.PI
TST.L D0
BEQ ERR_MAKEAGADGETMEM
MOVE.L D0,A0
MOVE.L D0,_THISGPROPINFO
MOVE.W #AUTOKNOB!FREEHORIZ,PI.FLAGS(A0)
CMP.B #'V',D3
BNE.S ITSHORIZONTAL
MOVE.W #$8000,PI.VERTPOT(A0)
MOVE.W #$1000,PI.VERTBODY(A0)
MOVE.W #AUTOKNOB!FREEVERT,PI.FLAGS(A0)
ITSHORIZONTAL
MOVE.W #$8000,PI.HORIZPOT(A0)
MOVE.W #$1000,PI.HORIZBODY(A0)
BSR _JUSTTHEGADGET
MOVE.L _THISGADGET,D0
ZERO D1
MOVE.L _THISGIMAGE,GADG.RENDER(A0)
MOVE.L #0,GADG.TEXT(A0)
MOVE.L _THISGPROPINFO,GADG.SPECIALINFO(A0)
ENDMAKEPROPGADG
MOVE.W #BOOLGADGET,_THISGTYPE
RTS
MAKEAGADGETC
REMEMBERCHIPMEM REMEMBERKEY,#SIZE.IMAG
TST.L D0
BEQ ERR_MAKEAGADGETMEM
MOVE.L D0,_THISGIMAGE
MOVE.L D0,A0
MOVE.W D6,IMAG.WIDTH(A0)
MOVE.W D7,IMAG.HEIGHT(A0)
BSR _JUSTTHEGADGET
MOVE.L _THISGADGET,D0
ZERO D1
MOVE.L _THISGIMAGE,GADG.RENDER(A0)
MOVE.L #0,GADG.TEXT(A0)
RTS
_THISGADGET
DC.L 0
_THISGACTIV
DC.W STRINGCENTER!RELVERIFY!GADGIMMEDIATE
_THISGFLAGS
DC.W GADGHCOMP
_THISGTYPE
DC.W BOOLGADGET
_THISGTEXT
DC.L 0
_THISGITEXT
DC.L 0
_THISBBORDER
DC.L 0
SIZESTRING
DC.B 0
EVENPC
_THISGSTRINGINFO
DC.L 0
_THISGBUFFER
DC.L 0
_THISGUNDOBUF
DC.L 0
_THISGIMAGE
DC.L 0
_THISGPROPINFO
DC.L 0