home *** CD-ROM | disk | FTP | other *** search
- ; ---------------------------------------------------------------------
- ; --- LIBRARY-MANAGER für ROM-Libraries Kickstart 2.04 (V37.175) ---
- ; --- © SSC-Software, U.Zschuckelt (27.08.1992) ---
- ; --- Karl-Marx-Straße 1, O-8403 Nünchritz, Tel. 036265 / 6791 ---
- ; ---------------------------------------------------------------------
-
- ;Der Library-Manager wird mit INCLUDE in den Quelltext eingebunden. Mit
- ;"bra openlibs" bzw. "bra closelibs" werden alle im ROM befindliche
- ;Libraries geöffnet bzw. geschlossen. Es muß für die Ausführung von
- ;Funktionen nur noch der entsprechende Basepointer nach A6 geholt werden.
-
- ; Adressen und Library Offsets
-
- execbase: equ $4 ; Basis Adresse der Exec Library
- openlibrary: equ -$228 ; Offsets zu Library Base
- closelibrary: equ -$19E
-
- ;
- ; alle im Betriebssystem enthaltene Libraries öffnen
- ;
- openlibs:
- move.l execbase,a6 ; Exec Vector Base
- lea gfxname(pc),a1 ; * Name(gfx)
- moveq #0,d0 ; keine spezielle Version
- jsr openlibrary(a6) ; Versuch Library zu Öffnen
- move.l d0,gfxbase ; Vector Base retten
- beq openfehler ; konnte nicht geöffnet werden ->
- lea dosname(pc),a1 ; dos
- moveq #0,d0
- jsr openlibrary(a6)
- move.l d0,dosbase
- beq openfehler
- lea intuitionname(pc),a1 ; intuition
- moveq #0,d0
- jsr openlibrary(a6)
- move.l d0,intuitionbase
- beq openfehler
- lea mathffpname(pc),a1 ; mathffp
- moveq #0,d0
- jsr openlibrary(a6)
- move.l d0,mathffpbase
- beq openfehler
- lea expansionname(pc),a1 ; expansion
- moveq #0,d0
- jsr openlibrary(a6)
- move.l d0,expansionbase
- beq openfehler
- lea layersname(pc),a1 ; layers
- moveq #0,d0
- jsr openlibrary(a6)
- move.l d0,layersbase
- beq openfehler
- lea utilityname(pc),a1 ; utility
- moveq #0,d0
- jsr openlibrary(a6)
- move.l d0,utilitybase
- beq openfehler
- lea keymapname(pc),a1 ; keymap
- moveq #0,d0
- jsr openlibrary(a6)
- move.l d0,keymapbase
- beq openfehler
- lea mathieeesingbasname(pc),a1 ;mathieeesingbas
- moveq #0,d0
- jsr openlibrary(a6)
- move.l d0,mathieeesingbasbase
- beq openfehler
- lea gadtoolsname(pc),a1 ; gadtools
- moveq #0,d0
- jsr openlibrary(a6)
- move.l d0,gadtoolsbase
- beq openfehler
- lea iconname(pc),a1 ; icon
- moveq #0,d0
- jsr openlibrary(a6)
- move.l d0,iconbase
- beq openfehler
- lea wbname(pc),a1 ; wb
- moveq #0,d0
- jsr openlibrary(a6)
- move.l d0,wbbase
- beq openfehler
-
- moveq #-1,d0 ; Flag : alles ok
- bra.s openende ; und fertig
- openfehler:
- moveq #0,D0 ; Flag : Fehler aufgetreten
- openende:
- rts
-
- ;
- ; Libraries Schließen
- ;
- closelibs:
- move.l execbase,a6 ; Exec Vector Base
- move.l dosbase(pc),d0 ; Base holen (dos)
- beq.s closel1 ; nicht geöffnet -> nicht schließen
- move.l d0,a1 ; nach a1
- jsr closelibrary(a6) ; Schließen
- closel1:
- move.l gfxbase(pc),d0 ; gfx
- beq.s closel2
- move.l d0,a1
- jsr closelibrary(a6)
- closel2:
- move.l intuitionbase(pc),d0 ; intuition
- beq.s closel3
- move.l d0,a1
- jsr closelibrary(a6)
- closel3:
- move.l mathffpbase(pc),d0 ; mathffpbase
- beq.s closel4
- move.l d0,a1
- jsr closelibrary(a6)
- closel4:
- move.l expansionbase(pc),d0 ; expansion
- beq.s closel5
- move.l d0,a1
- jsr closelibrary(a6)
- closel5:
- move.l layersbase(pc),d0 ; layers
- beq.s closel6
- move.l d0,a1
- jsr closelibrary(a6)
- closel6:
- move.l utilitybase(pc),d0 ; utility
- beq.s closel7
- move.l d0,a1
- jsr closelibrary(a6)
- closel7:
- move.l keymapbase(pc),d0 ; keymap
- beq.s closel8
- move.l d0,a1
- jsr closelibrary(a6)
- closel8:
- move.l mathieeesingbasbase(pc),d0 ; mathieeesingbase
- beq.s closel9
- move.l d0,a1
- jsr closelibrary(a6)
- closel9:
- move.l gadtoolsbase(pc),d0 ; gadtools
- beq.s closel10
- move.l d0,a1
- jsr closelibrary(a6)
- closel10:
- move.l iconbase(pc),d0 ; icon
- beq.s closel11
- move.l d0,a1
- jsr closelibrary(a6)
- closel11:
- move.l wbbase(pc),d0 ; wb
- beq.s closel12
- move.l d0,a1
- jsr closelibrary(a6)
- closel12:
- rts
-
- ;
- ; Datenbereich
- ;
-
- dosname: dc.b "dos.library",0 ; Namen der Libraries
- gfxname: dc.b "graphics.library",0
- intuitionname: dc.b "intuition.library",0
- mathffpname: dc.b "mathffp.library",0
- expansionname: dc.b "expansion.library",0
- layersname: dc.b "layers.library",0
- utilityname: dc.b "utility.library",0
- keymapname: dc.b "keymap.library",0
- mathieeesingbasname: dc.b "mathieeesingbas.library",0
- gadtoolsname: dc.b "gadtools.library",0
- iconname: dc.b "icon.library",0
- wbname: dc.b "wb.library",0
- EVEN ; falls ungerade Adresse
- dosbase: dc.l 0 ; Vector Bases
- gfxbase: dc.l 0
- intuitionbase: dc.l 0
- mathffpbase: dc.l 0
- expansionbase: dc.l 0
- layersbase: dc.l 0
- utilitybase: dc.l 0
- keymapbase: dc.l 0
- mathieeesingbasbase: dc.l 0
- gadtoolsbase: dc.l 0
- iconbase: dc.l 0
- wbbase: dc.l 0
-
-