home *** CD-ROM | disk | FTP | other *** search
- ;© by SSC-Software; Coder: Ulf Zschuckelt; Date: 23.12.91
- ;CodeX-Assembler
-
- ;---------------------------
- ; Offset
- ;---------------------------
-
- openscreen: equ -$C6 ;Intuition Funktion
- closescreen: equ -$42
- openwindow: equ -$CC
- closewindow: equ -$48
- printitext: equ -$d8
-
- rport: equ 50 ;PastPort eines Windows
-
- drawellipse: equ -180 ;Graphics Funktion
-
- ;--------------------------
- ;Hauptprogramm
- ;--------------------------
-
- ;***** Screen öffnen *****
-
- bsr openlibs ;Libraries öffnen
- bsr.s abbruch ;Fehler -> Abbruch
- bsr screenoeffnen ;Open Screen
- bsr.s abbruch ;Fehler -> Abbruch
- ;
- ;--------
- ; GRAFIK
- ;--------
- ;
-
- ;***** Window öffnen *****
-
- bsr windowoeffnen ;OpenWindow
-
- ;Rastport für Window
- move.l window(pc),a3 ;Window Pointer
- move.l rport(a3),a3 ;RastPort des Windows nach a3
- move.l a3,a0 ;RastPort nach a0
-
- ;***** Text in das Window ausgeben *****
-
- lea text1(pc),a1 ;Text Struktur
- moveq #0,d0 ;Left Offset
- moveq #0,d1 ;Top Offset
- move.l intuitionbase(pc),a6 ;Vector Base
- jsr printitext(a6) ;Text über Intuition ausgeben
-
- ;***** Grafik im Window *****
-
- ;1.Kreis
- move.l gfxbase(pc),a6 ;Vector Base Grafics
- move.w #255,d2 ;2*Breit = Höhe
- move.w #107,d3
-
- kreisschleife1:
- move.w #320,d0 ;x
- move.w #128,d1 ;y
-
- move.l a3,a1 ;RastPort
- jsr drawellipse(a6) ;Kreiszeichnen
-
- subq #8,d2 ;Durchmesser -8 (X-Richtung)
- bcc kreisschleife1 ;wenn kein Übertrag (also >0)
-
- move.w #255,d2 ;2*Breite = Höhe
- move.w #107,d3
-
- kreisschleife2:
- move.w #320,d0 ;x
- move.w #128,d1 ;y
-
- move.l a3,a1 ;RastPort
- jsr drawellipse(a6) ;Kreis zeichnen
-
- subq #4,d3 ;Durchmesser -4 (Y-Richtung)
- bcc kreisschleife2 ;wenn kein Übertrag (also >0)
-
- ;***** Click *****
-
- bsr mausclick ;auf Mausclick warten
-
- ;***** Window schließen *****
-
- bsr windowschliessen ;ggf. Window schließen
-
- abbruch1:
- bsr screenschliessen ;geöffneten Screen schließen
-
- abbruch:
- bsr closelibs ;Libraries schließen
- moveq #0,d0 ;ok
- rts
-
- ;----------------------------
- ; ENDE HAUPTPRPOGRAMM
- ;----------------------------
-
- ;***** Screen schließen *****
-
- screenschliessen:
- move.l intuitionbase(pc),a6 ;Vector Base Intuition
- move.l screen(pc),d0 ;Pointer auf Screen Struktur
- move.l d0,a0 ;-> a0
- beq.s keinscroffen ;nicht geöffnet ->
- jsr closescreen(a6) ;Screen wieder schließen
-
- keinscroffen:
- rts
-
- ; ***** ein Screen öffnen *****
-
- screenoeffnen:
- move.l intuitionbase(pc),a6 ;Vector Base Intuition
- lea newscreen(pc),a0 ;Struktur zur Screen Definition
- jsr openscreen(a6) ;Screen(a6)
- move.l d0,screen ;Pointer retten
- rts
-
- ; ***** ein Window öffnen *****
-
- windowoeffnen:
- move.l screen(pc),scr ;Pointer auf Screen Struktur
- move.l intuitionbase(pc),a6 ;Vector Base I.
- lea newwindow(pc),a0 ;Struktur zur Window Definition
- jsr openwindow(a6) ;Window öffnen
- move.l d0,window ;Pointer retten
- rts
-
- ; ***** Versuch, Window wieder zu schließen *****
-
- windowschliessen:
- move.l intuitionbase(pc),a6 ;Vector Base
- move.l window(pc),d0 ;Window Pointer
- move.l d0,a0 ;-> a0
- beq.s windownichtoffen ;nicht göffnet -> nicht schließen
- jsr closewindow(a6) ;Window schließen
-
- windownichtoffen:
- rts
-
- ; ***** Mausclick *****
-
- mausclick:
- btst #6,$bfe001 ;6. Bit von $bfe001 = Mausklick
- bne.s mausclick ;wenn <> 0 dann Maus gedrückt
- rts
-
- ;-------------------------
- ;---- ENDE ---------------
- ;-------------------------
-
- ;--------------------------
- ; Library Manager einbinden
- ;--------------------------
-
- include "LibMan.asm"
-
-
- ;-------------------------
- ; DATENBEREICH
- ;-------------------------
- newscreen:
- dc.w 0,0 ;Position Screen (nicht benutzt
- dc.w 640,256 ;Breite,Höhe
- dc.w 2 ;Tiefe (-> Farben)
- dc.b 2,3 ;Farbnummer Stift, Hintergrund
- dc.w $8000 ;Hi-Res
- dc.w 15 ;Typ: Custrom Screen
- dc.l 0 ;Pointer auf Textstruktur
- dc.l screentitle ;Pointer Name des Screens
- dc.l 0,0 ; Ptr auf Gadgets, Bitmap
-
- screentitle:
- dc.b "©1991 SSC-Software/Autor: Ulf Zschuckelt",0 ;Name des Screens
- even
-
- screen: dc.l 0
-
- newwindow:
- dc.w 0,0 ;x,y Position des Windows
- dc.w 640,256 ;Breite,Höhe
- dc.b 0,1 ;Schrift,Hintergrund
- dc.l $200 ;IDCMP Flags: Schließ Symbol mitteilen
- dc.l $1006 ;alle System Gadgets aktiv
- ets
- dc.l 0,0 ;Gad get,FirstMark
- dc.l windowtitle ;Pointer auf Name des Windows (kein Name)
- even
-
- scr:
- dc.l 0 ;Pointer auf Screen Struktur
- dc.l 0 ;keine eigene Bitmap
- dc.w 640,256 ;minimale Breite,Höhe
- dc.w 640,256 ;maximale Breite,Höhe
- dc.w 15 ;Screen Type: Custom Screen
- even
-
- window:
- dc.l 0 ;Pointer auf WindowStructure
-
- windowtitle:
- dc.b "Grafik",0 ;Name des Windows
- even
-
- text1: ;Text 1.Bild
- dc.b 1,3 ;Vordergrund, Hintergrund
- dc.b 0,0 ;Zeichenmodus: JAM1, Pad
- dc.w 10,12 ;Position x,y
- dc.l 0 ;Zeichensatz:default
- dc.l zeichenkette1 ;Pointer auf String
- dc.l text2 ;Text weiter
- zeichenkette1:
- dc.b "Grafik mit DrawEllipse (ohne Blitter)",0
- even
-
- text2:
- dc.b 1,3
- dc.b 0,0
- dc.w 400,240
- dc.l 0
- dc.l zeichenkette2
- dc.l 0 ;kein weiterer Text
- zeichenkette2:
- dc.b "Ende mit Mausclick !!!",0
- even
-
- end ;Ende des Programms
-
-