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

  1. ; ---------------------------------------------------------------------
  2. ; ---   LIBRARY-MANAGER für ROM-Libraries Kickstart 2.04 (V37.175)  ---
  3. ; ---   © SSC-Software, U.Zschuckelt (27.08.1992)                   ---
  4. ; ---   Karl-Marx-Straße 1, O-8403 Nünchritz, Tel. 036265 / 6791    ---
  5. ; ---------------------------------------------------------------------
  6.  
  7. ;Der Library-Manager wird mit INCLUDE in den Quelltext eingebunden. Mit
  8. ;"bra openlibs" bzw. "bra closelibs" werden alle im ROM befindliche
  9. ;Libraries geöffnet bzw. geschlossen. Es muß für die Ausführung von
  10. ;Funktionen nur noch der entsprechende Basepointer nach A6 geholt werden.
  11.  
  12. ; Adressen und Library Offsets
  13.  
  14. execbase:      equ     $4         ; Basis Adresse der Exec Library
  15. openlibrary:   equ     -$228      ; Offsets zu Library Base
  16. closelibrary:  equ     -$19E
  17.  
  18. ;
  19. ; alle im Betriebssystem enthaltene Libraries öffnen
  20. ;
  21. openlibs:
  22.  move.l  execbase,a6              ; Exec Vector Base
  23.  lea     gfxname(pc),a1           ; * Name(gfx)
  24.  moveq   #0,d0                    ; keine spezielle Version
  25.  jsr     openlibrary(a6)          ; Versuch Library zu Öffnen
  26.  move.l  d0,gfxbase               ; Vector Base retten
  27.  beq     openfehler               ; konnte nicht geöffnet werden ->
  28.  lea     dosname(pc),a1           ; dos
  29.  moveq   #0,d0
  30.  jsr     openlibrary(a6)
  31.  move.l  d0,dosbase
  32.  beq     openfehler
  33.  lea     intuitionname(pc),a1     ; intuition
  34.  moveq   #0,d0
  35.  jsr     openlibrary(a6)
  36.  move.l  d0,intuitionbase
  37.  beq     openfehler
  38.  lea     mathffpname(pc),a1       ; mathffp
  39.  moveq   #0,d0
  40.  jsr     openlibrary(a6)
  41.  move.l  d0,mathffpbase
  42.  beq     openfehler
  43.  lea     expansionname(pc),a1     ; expansion
  44.  moveq   #0,d0
  45.  jsr     openlibrary(a6)
  46.  move.l  d0,expansionbase
  47.  beq     openfehler
  48.  lea     layersname(pc),a1        ; layers
  49.  moveq   #0,d0
  50.  jsr     openlibrary(a6)
  51.  move.l  d0,layersbase
  52.  beq     openfehler
  53.  lea     utilityname(pc),a1       ; utility
  54.  moveq   #0,d0
  55.  jsr     openlibrary(a6)
  56.  move.l  d0,utilitybase
  57.  beq     openfehler
  58.  lea     keymapname(pc),a1        ; keymap
  59.  moveq   #0,d0
  60.  jsr     openlibrary(a6)
  61.  move.l  d0,keymapbase
  62.  beq     openfehler
  63.  lea     mathieeesingbasname(pc),a1 ;mathieeesingbas
  64.  moveq   #0,d0
  65.  jsr     openlibrary(a6)
  66.  move.l  d0,mathieeesingbasbase
  67.  beq     openfehler
  68.  lea     gadtoolsname(pc),a1      ; gadtools
  69.  moveq   #0,d0
  70.  jsr     openlibrary(a6)
  71.  move.l  d0,gadtoolsbase
  72.  beq     openfehler
  73.  lea     iconname(pc),a1          ; icon
  74.  moveq   #0,d0
  75.  jsr     openlibrary(a6)
  76.  move.l  d0,iconbase
  77.  beq     openfehler
  78.  lea     wbname(pc),a1            ; wb
  79.  moveq   #0,d0
  80.  jsr     openlibrary(a6)
  81.  move.l  d0,wbbase
  82.  beq     openfehler
  83.  
  84.  moveq   #-1,d0                   ; Flag : alles ok
  85.  bra.s   openende                 ; und fertig
  86. openfehler:
  87.  moveq   #0,D0                    ; Flag : Fehler aufgetreten
  88. openende:
  89.  rts
  90.  
  91. ;
  92. ; Libraries Schließen
  93. ;
  94. closelibs:
  95.  move.l  execbase,a6              ; Exec Vector Base
  96.  move.l  dosbase(pc),d0           ; Base holen (dos)
  97.  beq.s   closel1                  ; nicht geöffnet -> nicht schließen
  98.  move.l  d0,a1                    ; nach a1
  99.  jsr     closelibrary(a6)         ; Schließen
  100. closel1:
  101.  move.l  gfxbase(pc),d0           ; gfx
  102.  beq.s   closel2
  103.  move.l  d0,a1
  104.  jsr     closelibrary(a6)
  105. closel2:
  106.  move.l  intuitionbase(pc),d0     ; intuition
  107.  beq.s   closel3
  108.  move.l  d0,a1
  109.  jsr     closelibrary(a6)
  110. closel3:
  111.  move.l  mathffpbase(pc),d0       ; mathffpbase
  112.  beq.s   closel4
  113.  move.l  d0,a1
  114.  jsr     closelibrary(a6)
  115. closel4:
  116.  move.l  expansionbase(pc),d0     ; expansion
  117.  beq.s   closel5
  118.  move.l  d0,a1
  119.  jsr     closelibrary(a6)
  120. closel5:
  121.  move.l  layersbase(pc),d0        ; layers
  122.  beq.s   closel6
  123.  move.l  d0,a1
  124.  jsr     closelibrary(a6)
  125. closel6:
  126.  move.l  utilitybase(pc),d0       ; utility
  127.  beq.s   closel7
  128.  move.l  d0,a1
  129.  jsr     closelibrary(a6)
  130. closel7:
  131.  move.l  keymapbase(pc),d0        ; keymap
  132.  beq.s   closel8
  133.  move.l  d0,a1
  134.  jsr     closelibrary(a6)
  135. closel8:
  136.  move.l  mathieeesingbasbase(pc),d0 ; mathieeesingbase
  137.  beq.s   closel9
  138.  move.l  d0,a1
  139.  jsr     closelibrary(a6)
  140. closel9:
  141.  move.l  gadtoolsbase(pc),d0      ; gadtools
  142.  beq.s   closel10
  143.  move.l  d0,a1
  144.  jsr     closelibrary(a6)
  145. closel10:
  146.  move.l  iconbase(pc),d0          ; icon
  147.  beq.s   closel11
  148.  move.l  d0,a1
  149.  jsr     closelibrary(a6)
  150. closel11:
  151.  move.l  wbbase(pc),d0            ; wb
  152.  beq.s   closel12
  153.  move.l  d0,a1
  154.  jsr     closelibrary(a6)
  155. closel12:
  156.  rts
  157.  
  158. ;
  159. ; Datenbereich
  160. ;
  161.  
  162. dosname:               dc.b    "dos.library",0 ; Namen der Libraries
  163. gfxname:               dc.b    "graphics.library",0
  164. intuitionname:         dc.b    "intuition.library",0
  165. mathffpname:           dc.b    "mathffp.library",0
  166. expansionname:         dc.b    "expansion.library",0
  167. layersname:            dc.b    "layers.library",0
  168. utilityname:           dc.b    "utility.library",0
  169. keymapname:            dc.b    "keymap.library",0
  170. mathieeesingbasname:   dc.b    "mathieeesingbas.library",0
  171. gadtoolsname:          dc.b    "gadtools.library",0
  172. iconname:              dc.b    "icon.library",0
  173. wbname:                dc.b    "wb.library",0
  174.                        EVEN                    ; falls ungerade Adresse
  175. dosbase:               dc.l    0               ; Vector Bases
  176. gfxbase:               dc.l    0
  177. intuitionbase:         dc.l    0
  178. mathffpbase:           dc.l    0
  179. expansionbase:         dc.l    0
  180. layersbase:            dc.l    0
  181. utilitybase:           dc.l    0
  182. keymapbase:            dc.l    0
  183. mathieeesingbasbase:   dc.l    0
  184. gadtoolsbase:          dc.l    0
  185. iconbase:              dc.l    0
  186. wbbase:                dc.l    0
  187.  
  188.