home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gold Fish 1
/
GoldFishApril1994_CD2.img
/
d4xx
/
d498
/
cpalette
/
src
/
includes
/
windows.asm
< prev
Wrap
Assembly Source File
|
1991-06-06
|
2KB
|
92 lines
; *** WINDOWS.ASM
MAKEWIN MACRO ;MACRO TO SETUP MAKEWINDOW SUBROUTINE
LEA _THISTITLE,A0 ;\1 <= NULL TERMINATING TITLE
MOVE.L \1,(A0) ;\2 <= LEFT
MOVE.W \2,D4 ;\3 <= TOP
MOVE.W \3,D5 ;\4 <= WIDTH
MOVE.W \4,D6 ;\5 <= HEIGHT
MOVE.W \5,D7
BSR MAKEWINDOW
TST.L D0
BEQ \6
IFNC '\7',''
MOVE.L D0,\7
ENDC
ENDM
; NEW WINDOW STRUCTURE SUPPORT
MAKEWINDOW
MOVE.L #SIZE.NW,D0 ;D4 <= LEFT
MOVE.L #MEMF_CLEAR!MEMF_CHIP,D1 ;D5 <= TOP
SYSLIB ALLOCMEM ;D6 <= WIDTH
TST.L D0 ;D7 <= HEIGHT
BEQ ERR_MAKEAWINDOWMEM
MOVE.L D0,NEWWINDOW
MOVE.L D0,A0
MOVE.W D4,NW.LEFTEDGE(A0)
MOVE.W D5,NW.TOPEDGE(A0)
MOVE.W D6,NW.WIDTH(A0)
MOVE.W D7,NW.HEIGHT(A0)
MOVE.B #-1,NW.DETAILPEN(A0)
MOVE.B #-1,NW.BLOCKPEN(A0)
MOVE.L _THISIDCMP,NW.IDCMPFLAGS(A0)
MOVE.L _THISFLAGS,NW.FLAGS(A0)
MOVE.L _THISTITLE,NW.TITLE(A0)
MOVE.W #80,NW.MINWIDTH(A0)
MOVE.W #20,NW.MINHEIGHT(A0)
MOVE.W #300,NW.MAXWIDTH(A0)
MOVE.W #90,NW.MAXHEIGHT(A0)
MOVE.W _THISTYPE,NW.TYPE(A0)
MOVE.L _THISSCREEN,NW.SCREEN(A0)
INTLIB OPENWINDOW
TST.L D0
BEQ.S ERR_MAKEAWINDOW
MOVE.L D0,_THISWINDOW
MOVE.L #SIZE.NW,D0
MOVEA.L NEWWINDOW,A1
SYSLIB FREEMEM
MOVE.L _THISWINDOW,D0
ZERO D1
RTS
ERR_MAKEAWINDOWMEM
MOVE.L #CANTALLOCMEM,D1
ENDE_MAKEAWINDOW
ZERO D0
RTS
ERR_MAKEAWINDOW
MOVEQ.L #CANTOPENWINDOW,D1
BRA ENDE_MAKEAWINDOW
IFD GFX
_CLEARWINDOW
ZERO D0 ;A0 <= POINTER TO WINDOW STRUCTURE
_FILLWINDOW
MOVE.L WW.RPORT(A0),RP
SETAPEN RP
MOVE.W WW.WIDTH(A0),D2
SUBI.W #4,D2
MOVE.W WW.HEIGHT(A0),D3
SUBI.W #2,D3
MOVE.W #2,D0
MOVE.W #10,D1
RECTFILL RP
RTS
ENDC
NEWWINDOW
DC.L 0
_THISWINDOW
DC.L 0
_THISTYPE
DC.W WBENCHSCREEN
_THISTITLE
DC.L 0
_THISIDCMP
DC.L CLOSEWINDOW!MENUPICK!MOUSEBUTTONS!NEWSIZE!GADGETUP!GADGETDOWN
_THISFLAGS
DC.L ACTIVATE!WINDOWSIZING!WINDOWDRAG!WINDOWDEPTH!WINDOWCLOSE!SMART_REFRESH
_THISSCREEN
DC.L 0