home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaDemoCD1.iso / DEMOS / ?-NamelessIssue1.DMS / ?-NamelessIssue1.adf / COMPUTER / LibMan.asm < prev    next >
Encoding:
Assembly Source File  |  1978-03-11  |  3.4 KB  |  111 lines

  1. ; ----------------------------------------------
  2. ; ---   Library Manager für ROM-Libraries    ---
  3. ; --- erstellte von U.Zschuckelt (7.12.1991) ---
  4. ; ----------------------------------------------
  5. ;
  6. ; Adressen und Library Offsets
  7.  
  8. execbase       equ     $4              ; Basis Adresse der Exec Library
  9. openlibrary    equ     -$228           ; Offsets zu Library Base
  10. closelibrary   equ     -$19E
  11.  
  12.  
  13. ;
  14. ; alle im Betriebssystem enthaltene Libraries öffnen
  15. ;
  16. openlibs:
  17.        move.l  execbase,a6             ; Exec Vector Base
  18.        lea     gfxname(pc),a1          ; * Name(gfx)
  19.        moveq   #0,d0                   ; keine spezielle Version
  20.        jsr     openlibrary(a6)         ; Versuch Library zu Öffnen
  21.        move.l  d0,gfxbase              ; Vector Base retten
  22.        beq     openfehler              ; konnte nicht geöffnet werden ->
  23.        lea     dosname(pc),a1          ; dos
  24.        moveq   #0,d0
  25.        jsr     openlibrary(a6)
  26.        move.l  d0,dosbase
  27.        beq     openfehler
  28.        lea     intuitionname(pc),a1    ; intuition
  29.        moveq   #0,d0
  30.        jsr     openlibrary(a6)
  31.        move.l  d0,intuitionbase
  32.        beq     openfehler
  33.        lea     mathffpname(pc),a1      ; mathffp
  34.        moveq   #0,d0
  35.        jsr     openlibrary(a6)
  36.        move.l  d0,mathffpbase
  37.        beq     openfehler
  38.        lea     expansionname(pc),a1    ; expansion
  39.        moveq   #0,d0
  40.        jsr     openlibrary(a6)
  41.        move.l  d0,expansionbase
  42.        beq     openfehler
  43.        lea     layersname(pc),a1       ; layers
  44.        moveq   #0,d0
  45.        jsr     openlibrary(a6)
  46.        move.l  d0,layersbase
  47.        beq     openfehler
  48.  
  49.        moveq   #-1,d0                  ; Flag : alles ok
  50.        bra.s   openende                ; und fertig
  51. openfehler:
  52.        moveq   #0,D0                   ; Flag : Fehler aufgetreten
  53. openende:
  54.        rts
  55.  
  56. ;
  57. ; Libraries Schließen
  58. ;
  59. closelibs:
  60.        move.l  execbase,a6             ; Exec Vector Base
  61.        move.l  dosbase(pc),d0          ; Base holen (dos)
  62.        beq.s   closel1                 ; nicht geöffnet -> nicht schließen
  63.        move.l  d0,a1                   ; nach a1
  64.        jsr     closelibrary(a6)        ; Schließen
  65. closel1:
  66.        move.l  gfxbase(pc),d0          ; gfx
  67.        beq.s   closel2
  68.        move.l  d0,a1
  69.        jsr     closelibrary(a6)
  70. closel2:
  71.        move.l  intuitionbase(pc),d0    ; intuition
  72.        beq.s   closel3
  73.        move.l  d0,a1
  74.        jsr     closelibrary(a6)
  75. closel3:
  76.        move.l  mathffpbase(pc),d0      ; mathffpbase
  77.        beq.s   closel4
  78.        move.l  d0,a1
  79.        jsr     closelibrary(a6)
  80. closel4:
  81.        move.l  expansionbase(pc),d0    ; expansion
  82.        beq.s   closel5
  83.        move.l  d0,a1
  84.        jsr     closelibrary(a6)
  85. closel5:
  86.        move.l  layersbase(pc),d0       ; layers
  87.        beq.s   closel6
  88.        move.l  d0,a1
  89.        jsr     closelibrary(a6)
  90. closel6:
  91.        rts
  92.  
  93. ;
  94. ; Datenbereich
  95. ;
  96.  
  97. dosname:               dc.b    "dos.library",0 ; Namen der Libraries
  98. gfxname:               dc.b    "graphics.library",0
  99. intuitionname:         dc.b    "intuition.library",0
  100. mathffpname:           dc.b    "mathffp.library",0
  101. expansionname:         dc.b    "expansion.library",0
  102. layersname:            dc.b    "layers.library",0
  103.                        EVEN                    ; falls ungerade Adresse
  104. dosbase:               dc.l    0               ; Vector Bases
  105. gfxbase:               dc.l    0
  106. intuitionbase:         dc.l    0
  107. mathffpbase:           dc.l    0
  108. expansionbase:         dc.l    0
  109. layersbase:            dc.l    0
  110.  
  111.