Amiga Dünyası sayı 18, sayfa 46

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 46

DERLEYİCİLER

lıştırır çalıştırmaz göreceksiniz. Resim window içerisine taşınırken window çerçevesi bozulmakta. Ayrıca bu şekilde bir programlama pek kurallara uymuyor. Bu iki ufak hatayı gözardı ederseniz, aslında bir hayli kullanışlı bir rutin. Fakat önümüzdeki ay kurallara uyarak ve window çerçevesini bozmadan resmi nasıl gösterebileceğimizi araştıracağız. Hoşçakalın.

** AMIGA DÜNYASI AMIGA ASSEMBLER KURSU ** ** INTUITION LIBRARY - WINDOW EXAMPLE - 18.1 **

START: movem.l d0-d7/a0-a6,-(a7) bsr.s INITLIBS bsr.L INITSCREEN bsr.L PRINTTEXT bsr.L PUTGFX EVENTVVAIT:

move.l WINDOWPTR,a0 b s r . l EVENT cmpi.l #$ 200,d4 beq.s ENDALL bra.s EVENTWAIT ENDALL: move.l INTBASE,a6 move.l WINDOWPTR,a0 jsr -72(a6) CLOSE2: move.l INTBASE,a6 move.l SCREENPTR,a0 jsr -66(a6) CLOSE1: move.l 4,a6 move.l GFXBASE,al jsr -414(a6) EXTT2: move.l INTBASE,al jsr -414(a6) EXIT1: movem.l (a7)+,d0-d7/a0-a6 rts INITLIBS: move.l 4,a6 lea INTNAME,al clr.l d0 jsr -408(a6) beq.s EXIT1 move.l dOJNTBASE lea GFXNAME,al clr.l d0 jsr -408(a6) beq.s EXIT2 move.l d0,GFXBASE rts INITSCREEN: move.l INTBASE,a6 lea NEWSCREEN,a0 jsr -198(a6) beq.s CLOSE1 move.l d0,SCREENPTR move.l d0.MAINSCREENPTR move.l SCREENPTR,a0 add.l #$ 54,a0 move.l a0,RASTPORT move.l INTBASE,a6 lea NEWWINDOW,a0 jsr -204(a6) beq.L CLOSE2 move.l d0,WINDOWPTR rts EVENT: move.l 4,a6 move.l 86(a0),a0 move.l a0,MSGPORTADRESI move.b 15(a0),dl

moveq #0,d0 bset dl.d0 jsr -318(a6) move.l MSGPORTADRESI,a0 jsr -372(a6) move.l d0,al move.l $14(al),d4 jsr -378(a6) rts PRINTTEXT: move.l GFXBASE,a6 move.l RASTPORT,al move.l #140,d0 move.l #220,dl jsr -240(a6) move.l RASTPORT.al move.l #TEXT,a0 move.l #[TEXTEND-TEXT-1 ] ,d0 jsr -60(a6) rts PUTGFX: move.l RASTPORT,a0 move.l 4(a0),al move.l 8(al),a2 add.l #[80*20] ,a2 move.l #PICTURE,al move.l #2000,d7 PLOOP: move.l (al)+,(a2)+ dbf d7,PLOOP rts MSGPORTADRESI: del 0 INTNAME: dc.b 'intuition.library',0 GFXNAME: dc.b 'graphics.library',0 even INTBASE: del 0 GFXBASE: del 0 RASTPORT: del 0 NEWSCREEN: de w 0,0,640,256,1 dc.b 0,1 de w $8000,1 del 0,0,0,0 WINDOWPTR: del 0 NEWWINDOW: dc.w 0,0,640,256 dc.b 0,1 del $200,$ 1008,0,0 del WINDOWTITLE SCREENPTR: del 0,0 dew 640,256,640,256,15 WINDOWTITLE: dc.b 'AMIGA DÜNYASI SAYI 18 ASSEMBLER' dc.b 'KURSU ÖRNEK PROGRAMI 18.1 ',0 MAINSCREENPTR: del 0,0 de w 340,60,340,60,15 TEXT: dc.b "Window içine tek bitplane " dc.b "resim basilisi...",0 TEXTEND: del 0 PICTURE: inebin "df0:RESIM.bm"

Klavyeyle gezinmek için ← ve → tuşları.