;
; VARIABELEN DEFINIEREN
;
ExecBase=     4
OpenLibrary=  -$228
CloseLibrary= -$19E
Open=         -$1E
Close=        -$24
Delay=        -$C6
OpenWindow=   -$CC
CloseWindow=  -$48
WaitPort=     -$0180
PrintIText=   -$D8              ; Een offset in de intuition.library.

;
; HET HOOFDPROGRAMMA. HIER ROEPEN WE ALLE ROUTINES AAN.
;
MOVEM.L  D0-D7/A0-A6,-(A7)
JSR      OpenDos
CMP.L    #0,D0
BEQ      Einde
MOVE.L   D0,DosBase
JSR      OpenIntuition
CMP.L    #0,D0
BEQ      CloseDos
MOVE.L   D0,IntuiBase
JSR      OpenWin
CMP.L    #0,D0
BEQ      CloseIntui
MOVE.L   D0,WinHandle
JSR      Printen                ; Hier roepen we de printroutine aan.
JSR      Wachten
JMP      CloseWin

;
; OPENEN VAN DE DOS.LIBRARY
;
OpenDos:
MOVE.L   ExecBase,A6
MOVE.L   #DosNaam,A1
MOVE.L   #0,D0
JSR      OpenLibrary(A6)
RTS

;
; OPENEN VAN DE INTUITION.LIBRARY
;
OpenIntuition:
MOVE.L   ExecBase,A6
MOVE.L   #IntuiNaam,A1
MOVE.L   #0,D0
JSR      OpenLibrary(A6)
RTS

;
; OPEN VAN HET WINDOW
;
OpenWin:
MOVE.L   IntuiBase,A6
LEA      NewWindow,A0
JSR      OpenWindow(A6)
RTS

;
; SLUITEN VAN HET WINDOW
;
CloseWin:
MOVE.L   IntuiBase,A6
MOVE.L   WinHandle,A0
JSR      CloseWindow(A6)

;
; SLUITEN VAN DE INTUITION.LIBRARY
;
CloseIntui:
MOVE.L   ExecBase,A6
MOVE.L   IntuiBase,A1
JSR      CloseLibrary(A6)

;
; SLUITEN VAN DE DOS.LIBRARY
;
CloseDos:
MOVE.L   ExecBase,A6
MOVE.L   DosBase,A1
JSR      CloseLibrary(A6)

;
; HET EINDE VAN HET PROGRAMMA
;
Einde:
MOVEM.L  (SP)+,D0-D7/A0-A6
RTS

;
; DE WACHTLUS
;
Wachten:
MOVE.L   WinHandle,A0
MOVE.L   86(A0),A0
MOVE.L   ExecBase,A6
JSR      WaitPort(A6)
MOVE.L   D0,A1
MOVE.L   20(A1),D1
RTS

;
; PRINTEN VAN EEN TEKST
;
Printen:
MOVE.L   IntuiBase,A6           ; Pointer naar de intuition.library.
MOVE.L   WinHandle,A0           ; Pointer naar de window-tabel.
MOVE.L   50(A0),A0              ; De plaats van de Rastport in de window-
                                ;    tabel.
LEA      WindowText,A1          ; Adres van de tekst-tabel.
MOVE.L   #20,D0                 ; De X-offset in pixels.
MOVE.L   #20,D1                 ; De Y-offset in pixels.
JSR      PrintIText(A6)         ; De tekst afdrukken.
RTS                             ; Einde van de routine.

;
; DE TEKSTSTRUCTUUR
;
EVEN
WindowText:
DC.B     1                      ; De kleur van de tekst.
DC.B     2                      ; De kleur van de achtergrond.
DC.B     0                      ; De teken-mode, hier normaal.
EVEN
DC.W     20                     ; De X-positie.
DC.W     20                     ; De Y-positie.
DC.L     0                      ; Standaard karakterset.
DC.L     TekstBuffer            ; Het adres van de tekst.
DC.L     0                      ; Niet meer teksten.

;
; GEHEUGENRESERVERING VOOR DE WINDOW-STRUKTUUR
;
EVEN
NewWindow:
DC.W     10               ; X.
DC.W     10               ; Y.
DC.W     600              ; Breedte.
DC.W     200              ; Hoogte.
DC.B     1                ; Letterkleur 1.
DC.B     3                ; Achtergrondkleur 3.
DC.L     $200
DC.L     $1000!1!2!4!8    ; Window-mogelijkheden.
DC.L     0                ; Gadgets.
DC.L     0                ; Grafisch.
DC.L     WindowTitel      ; Adres van de titel van het window.
DC.L     0                ; Adres van het screen (0=WorkBench).
DC.L     0                ; Adres van de bitmap (geen).
DC.W     20               ; Breedte minimaal.
DC.W     20               ; Hoogte minimaal.
DC.W     629              ; Breedte maximaal.
DC.W     246              ; Hoogte maximaal.
DC.W     1                ; Scherm-type WorkBench.

;
; VARIABELEN
;
DosBase:
DC.L     0

IntuiBase:
DC.L     0

WinHandle:
DC.L     0

DosNaam:
DC.B     'dos.library',0

IntuiNaam:
DC.B     'intuition.library',0

WindowTitel:
DC.B     'Intuition-Venster',0

TekstBuffer:
DC.B     'Een tekst in een intuition-window.',0
