execbase = 4
openlibrary = -552
closelibrary = -414
sizewindow = -288
windowtofront = -312
movewindow = -168
output = -60
write = -48

 sub.l #1,d0                   ; Textlänge -1
 cmp.l #0,d0                   ; Liegt Text vor
 beq anfang                    ; Wenn nicht dann nach Anfang
 sub.l #1,d0                   ; Textlänge -1
 move.l d0,textlänge           ; und Speichern
 move.l a0,textadresse         ; Zeiger auf Text speichern


;---- Speicher reservieren für neuen Window-Title-Text ----
 move.l textlänge,d0
 add.l #2,d0               ; Anzahl zu reservierende Bytes  in D0
 move.l #02,d1             ; Chip-Ram
 move.l 4,a6               ; ExecBasis nach A6
 jsr -198(a6)              ; Allocmem
 move.l d0,titleadresse    ; Adresse speichern

;---- Title-Text in reservierten Speicher kopieren  -----
 move.l titleadresse,a0
 move.l textadresse,a1
 move.l textlänge,d0
lop:
 move.b (a1)+,(a0)+
 dbra d0,lop
 move.b #0,(a0)            ;-- Text mit Null-Byte abschliessen

;---- Intuition-Library öffnen ----
anfang:
 move.l execbase,a6
 move.l #intname,a1
 move.l #0,d0
 jsr openlibrary(a6)
 move.l d0,intbase

;---- aktives Window auf Koordinaten 0,0 setzen -----
 move.l intbase,a6          ; intuitionbasis nach a6
 move.l $34(a6),a0          ; Zeiger auf aktives window nach a0
 move.w 4(a0),d2            ; window x-posiotion nach d2
 clr.l d0                   ; d0 löschen
 sub.w d2,d0                ; = in d0 jetzt wert für x-scrolling
 move.w 6(a0),d2            ; window y-position nach d2
 clr.l d1                   ; d1 löschen
 sub.w d2,d1                ; = in d1 jetzt wert für y-scrolling
 jsr movewindow(a6)         ; aktives Window auf positon 0,0 scrollen

;---- aktives window auf volle Größe bringen -----
 move.l intbase,a6          ; intuitionbasis nach a6
 move.l $34(a6),a0          ; Zeiger auf aktives window nach a0
 move.w 10(a0),d0           ; window-höhe nach d0
 move.w #256,d1             ; d1 mit wert 256 laden
 sub.w d0,d1                ; = in d1 jetzt wert für y-vergrößerung auf max.
 move.w 8(a0),d2            ; window-breite nach d2
 move.w #640,d0             ; d0 mit wert 640 laden
 sub.w d2,d0                ; = in d0 jetzt wert für x-vergrößerung auf max.
 jsr sizewindow(a6)         ; Window auf max.-Größe bringen

;---- aktives window ganz nach vorne -----
 move.l intbase,a6                 ; intuitionbasis nach a6
 move.l $34(a6),a0                 ; Zeiger auf aktives window nach a0
 jsr windowtofront(a6)             ; aktives Window nach vorne

;---- Neuen Window-Title setzen -----
 move.l intbase,a6
 move.l $34(a6),a0
 move.l titleadresse,a1
 move.l $38(a6),a2
 move.l $16(a2),a2
 jsr -276(a6)

;---- Intuition-Library schließen -----
 move.l intbase,a1
 move.l execbase,a6
 jsr closelibrary(a6)

;---- Dos-Library öffnen -----
 move.l execbase,a6
 move.l #dosname,a1
 clr.l d0
 jsr openlibrary(a6)
 move.l d0,dosbase

;---- aktiven ausgabekanal ermitteln -----
 move.l dosbase,a6
 jsr output(a6)
 move.l d0,d1                  ; windowhandle nach d1

;----- aktives window löschen -----
 move.l #text1,d2              ; Zeiger auf Text
 move.l #textende-text1,d3     ; Anzahl Zeichen
 move.l dosbase,a6
 jsr write(a6)                 ; Text auf Window printen

;----- Dos-library schließen ----
 move.l dosbase,a1
 move.l execbase,a6
 jsr closelibrary(a6)

;----- Ende -----
 rts

;----- Parameter -----
textlänge: dc.l 0
textadresse: dc.l 0
dosname: dc.b "dos.library",0
 even
dosbase: dc.l 0
text1:
 dc.b $0c,"Large CLI-Window --- © 1988 By Jorgo Schimanski",$0a
textende:
 even
intname: dc.b "intuition.library",0
 even
intbase: dc.l 0
 even
titleadresse: dc.l 0
 END
