* Opens a window, gets the window's fontdata into our CHIP area * and blits part of it into the window. * ( uses "ENDS" for data at bottom ) * ( text might be trashed under 2.0 ) * click left mouse button to exit include "intuition/intuition.i" include "exec/types.i" include "graphics/gfx.i" include "graphics/rastport.i" CLEAR_CHIP equ $10002 CSEG Wind equ -4 _IntuitionBase equ -8 FontData equ -12 Planes equ -16 _GfxBase equ -20 XREF _LVOAllocMem XREF _LVOOpenLibrary XREF _LVOOpenWindow XREF _LVOCloseWindow XREF _LVOCloseLibrary XREF _LVOFreeMem link a5,#-24 movea.l $4,a6 move.l #2048,d0 move.l #CLEAR_CHIP,d1 jsr _LVOAllocMem(a6) move.l d0,FontData(a5) beq Quit movea.l #intuiname,a1 moveq #0,d0 jsr _LVOOpenLibrary(a6) move.l d0,_IntuitionBase(a5) beq Quit movea.l #graphname,a1 moveq #0,d0 jsr _LVOOpenLibrary(a6) move.l d0,_GfxBase(a5) beq Quit movea.l _IntuitionBase(a5),a6 movea.l #newwin,a0 jsr _LVOOpenWindow(a6) move.l d0,Wind(a5) beq Quit * a handy debugging aid! * ( just remove the '*', change the color, and be sure a label's * before the next one ) * d6 = 1000 *1$ d7 = 10000 *2$ ($dff180) = $0f0 w ;GREEN * dbf d7,2$ * dbf d6,1$ * load fontdata into our chip area movea.l Wind(a5),a0 movea.l wd_RPort(a0),a1 movea.l rp_Font(a1),a2 movea.l tf_CharData(a2),a3 move.l #383,d1 movea.l FontData(a5),a4 FontLoop move.l (a3)+,(a4)+ dbf d1,FontLoop * get addr of windows 1st bitplane movea.l rp_BitMap(a1),a2 move.l bm_Planes(a2),Planes(a5) * blit out first portion of fontdata lea 14675968,a6 move.w #$03aa,$40(a6) ;BLTCON0 USE: C D D=C move.w #$007a,$60(a6) ;BLTCMOD move.w #$000a,$66(a6) ;BLTDMOD move.l Planes(a5),d1 addi.l #1605,d1 move.l d1,$54(a6) move.l FontData(a5),$48(a6) clr.w $74(a6) ;BLTADAT clr.w $72(a6) ;BLTBDAT move.w #$8240,$96(a6) ;DMACON SET DMAEN BLTEN move.w #547,$58(a6) ;BLTSIZE BlitWait btst.b #6,$dff002 bne BlitWait ;DMACONR BBUSY? QuitLoop btst.b #6,$bfe001 bne QuitLoop ;wait for LMB down Quit tst.l Wind(a5) beq .laaa movea.l _IntuitionBase(a5),a6 movea.l Wind(a5),a0 jsr _LVOCloseWindow(a6) .laaa tst.l _IntuitionBase(a5) beq .laab movea.l $4,a6 movea.l _IntuitionBase(a5),a1 jsr _LVOCloseLibrary(a6) .laab tst.l _GfxBase(a5) beq .laac movea.l $4,a6 movea.l _GfxBase(a5),a1 jsr _LVOCloseLibrary(a6) .laac tst.l FontData(a5) beq .laad movea.l $4,a6 movea.l FontData(a5),a1 move.l #2048,d0 jsr _LVOFreeMem(a6) .laad unlk a5 moveq #0,d0 rts DSEG newwin ds.w 0 dc.w 0,0,640,200 dc.b -1,-1 dc.l 0 dc.l WINDOWDRAG|WINDOWSIZING|SIZEBRIGHT|ACTIVATE|SMART_REFRESH dc.l 0,0,0,0,0 dc.w 100,100,640,400 dc.w WBENCHSCREEN intuiname dc.b "intuition.library",0 graphname dc.b "graphics.library",0 END