*
* ScreenWindowDemo.asm - Demo zum Öffnen eines Screens+Windows
*

execBase     = $4

OpenScreen   = -198
CloseScreen  = -66
OpenLibrary  = -552
CloseLibrary = -414
OpenWindow   = -204
CloseWindow  = -72

customScreen = $F
windowSizing = $1
windowDrag   = $2
windowDepth  = $4
activate     = $1000
Flags        = windowSizing|windowDrag|windowDepth|activate
hires        = $8000

ciaa         = $bfe001

start:         move.l  execBase,a6           * execBase nach a6
               lea     IntName,a1            * Name nach a1
               move.l  #33,d0                * Version #33 nach d0
               jsr     OpenLibrary(a6)       * Intuition öffnen
               tst.l   d0                    * Fehler?
               beq     endeAll               * Mist!
               move.l  d0,intBase            * Zeiger sichern

               move.l  intBase,a6            * Basisadresse nach a6
               lea     ScreenDaten,a0        * ScreenDaten nach a0
               jsr     OpenScreen(a6)        * Screen öffnen
               tst.l   d0                    * alles klar?
               beq     ende2                 * nein, doch nicht!
               move.l  d0,Screen             * Zeiger sichern

               lea     WindowDaten,a0        * WindowDaten nach a0
               jsr     OpenWindow(a6)        * Window öffnen
               tst.l   d0                    * Fehler?
               beq     ende1                 * Schade 'drum!
               move.l  d0,Window             * Zeiger sichern

loop:          btst    #6,ciaa               * linke Maustaste?
               bne     loop                  * anscheinend nicht!

               move.l  Window,a0             * Zeiger nach a0
               jsr     CloseWindow(a6)       * Window schließen

ende1:         move.l  Screen,a0             * Zeiger nach a0
               jsr     CloseScreen(a6)       * Screen schließen

ende2:         move.l  execBase,a6           * execBase nach a6
               move.l  intBase,a1            * intBase nach a1
               jsr     CloseLibrary(a6)      * Intuition schließen

endeAll:       rts                           * das war's

*
* Datenteil
*

 even
ScreenDaten:   dc.w    0                     * leftEdge
               dc.w    0                     * topEdge
               dc.w    640                   * width
               dc.w    256                   * height
               dc.w    2                     * depth
               dc.b    0                     * detailPen
               dc.b    1                     * blockPen
               dc.w    hires                 * viewModes
               dc.w    customScreen          * type
               dc.l    0                     * font
               dc.l    ScreenTitel           * defaultTitle
               dc.l    0                     * gadgets
               dc.l    0                     * customBitMap

ScreenTitel:   dc.b    "Ein Screen.",0       * Screen-Titel
 even                                        * *** WICHTIG !!! ***

 even
WindowDaten:   dc.w    50                    * leftEdge
               dc.w    50                    * topEdge
               dc.w    250                   * width
               dc.w    75                    * height
               dc.b    1                     * detailPen
               dc.b    3                     * blockPen
               dc.l    0                     * idcmpFlags
               dc.l    Flags                 * flags
               dc.l    0                     * firstGadget
               dc.l    0                     * checkMark
               dc.l    WindowTitel           * title
Screen:        dc.l    0                     * screen (wird beim Öffnen
                                             * des Screens initialisiert)
               dc.l    0                     * bitMap
               dc.w    50                    * minWidth
               dc.w    50                    * minHeight
               dc.w    640                   * maxWidth
               dc.w    256                   * maxHeight
               dc.w    customScreen          * type

WindowTitel:   dc.b    "Ein Window.",0       * Window-Titel
 even                                        * *** WICHTIG ! ***
Window:        dc.l    0                     * Window-Zeiger
intBase:       dc.l    0                     * Intuition-Adresse
IntName:       dc.b    "intuition.library",0 * Intuition-Name
 even                                        * *** WICHTIG ! ***

               END
