* window1

* In diesen Files stecken diverse Deklarationen und Makros.
* Schauen Sie mal rein!

	incdir	":include/"

	include	intuition/intuition.i
	include	intuition/intuition_lib.i
	include	exec/exec_lib.i
	include	graphics/graphics_lib.i

* Intuition Library oeffnen:
* --------------------------
	lea	intname,a1                 
	moveq	#0,d0		
	CALLEXEC OpenLibrary
	tst.l	d0	beq	abbruch	
	move.l	d0,_IntuitionBase    ;Basis-Zeiger sichern	

* Ggraphics Library oeffnen
* -------------------------
	lea	grafname,a1
	moveq	#0,d0
	CALLEXEC OpenLibrary
	tst.l	d0
	beq	closeint
	move.l	d0,_GfxBase          ;Basis-Zeiger sichern

* Window oeffnen
* --------------
	lea	windowdef,a0 	     ;zeige auf Window-Struktur
	CALLINT	OpenWindow	     ;oeffne Window
	tst.l	d0 		     ;ging was schief?
	beq	closegraf	     ;wenn ja		
	move.l	d0,windowptr	     ;Window-Zeiger sichern

* Text im Fenster zeichnen
* ------------------------
	moveq	#100,d0		     ;X-Position
	moveq	#50,d1		     ;Y
	move.l	windowptr,a1	     ;Via Window-Zeiger
	move.l	wd_RPort(a1),a1	     ;  Rast-Port-Adresse holen
	CALLGRAF Move                ;Funtion Move to X,Y

	move.l	windowptr,a1         ;brauche wieder Rastport
	move.l	wd_RPort(a1),a1
	lea	msg,a0	             ;Adresse Text
	moveq	#msglen,d0           ;seine Laenge
	CALLGRAF Text                ;und ausgeben

* Auf Event warten (kann hier nur WINDOWCLOSE sein)
* -------------------------------------------------
        move.l	windowptr,a0         ;zeige auf Window-Struktur
	move.l	wd_UserPort(a0),a0   ;nun auf Message-Port
	move.b	MP_SIGBIT(a0),d1     ;Anzahl Signal Bits -> d1
	moveq.l	#1,d0                ;in Maske
	lsl.l	d1,d0	             ;       konvertieren
	CALLEXEC Wait                ;Schlaf gut!


* Fenster schliessen
* ------------------
	move.l	windowptr,a0         ;wir sind wieder wach
	CALLINT	CloseWindow	     ;Fenster zu


* Libraries schliessen
* --------------------
closegraf	move.l	_GfxBase,a1
	CALLEXEC CloseLibrary

closeint
	move.l	_IntuitionBase,a1
	CALLEXEC CloseLibrary

abbruch
	move.l	#0,d0               ;oder normales Ende
	rts

W_Gadgets equ   WINDOWSIZING!WINDOWDRAG!WINDOWDEPTH!WINDOWCLOSE
W_Extras  equ   SMART_REFRESH!ACTIVATE

W_Title dc.b    'Fenster-Titel',0

windowdef	
        dc.w	200,50              ;links, oben
	dc.w	300,100		    ;Breite, Hoehe
	dc.b	-1,-1		    ;Pens des Screen
	dc.l	CLOSEWINDOW	    ;einizigess IDCMP Flag
        dc.l    W_Gadgets!W_Extras  ;Window Flags
	dc.l	0		    ;keine User-Gadgets
	dc.l	0	            ;keine User-Checkmark
	dc.l	W_Title  	    ;Titel des Window	
	dc.l	0	            ;kein eigener Screen
	dc.l	0		    ;keine Super Bitmap
	dc.w	100,20              ;Min. Groesse
        dc.w    640,200             ;Max.
	dc.w	WBENCHSCREEN	    ;Use Workbench Screen

intname		INTNAME		    ;Name Intuition Lib (via Makro)
grafname	GRAFNAME	    ;Name Graphics Lib

                
msg	        dc.b	'Hello, World! '
msglen	        equ	*-msg

_IntuitionBase	ds.l	1	   ;Speicher fuer Zeiger	
_GfxBase	ds.l	1	
windowptr	ds.l	1	

