home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / C / OTL-MC6.DMS / in.adf / libsrc.lha / LIBSRC / openlib.asm < prev    next >
Encoding:
Assembly Source File  |  1994-04-15  |  1.0 KB  |  67 lines

  1.  
  2. *    Maxon C++:
  3. *    Library-Modul "openlib"
  4. *    Jens Gelhar 30.08.92, 15.04.94
  5.  
  6.     xdef    __OpenLib
  7.     xref    exit__i
  8.  
  9. execbase    = 4
  10.  
  11. CloseLib    = -414
  12. OpenLib    = -552
  13.  
  14. Write    = -48
  15. Output    = -60
  16.  
  17. __OpenLib:    ; Library a1 öffnen
  18.     moveq #0,d0
  19. __OpenLibrary:    ; Library a1, Version d0
  20.     movem.l d2/d3/a2/a6,-(a7)
  21.     move.l a1,a2
  22.     move.l execbase.w,a6
  23.     jsr OpenLib(a6)
  24.     tst.l d0
  25.     bne.b ol0
  26.     move.l 276(a6),a0               ; ThisTask
  27.     tst.l $AC(a0)
  28.     beq.b olErr                     ; Start von Workbench...
  29.     lea dosname(pc),a1
  30.     jsr OpenLib(a6)
  31.     tst.l d0
  32.     beq.b olErr
  33.     move.l d0,a6
  34.     jsr Output(a6)
  35.     move.l d0,d1
  36.     beq.b olErr
  37.     move.l d1,-(a7)
  38.     move.l #errSt1,d2
  39.     moveq #errSL1,d3
  40.     jsr Write(a6)
  41.     move.l (a7),d1
  42.     move.l a2,d2
  43.     moveq #-1,d3
  44. ol1    addq.l #1,d3
  45.     tst.b (a2)+
  46.     bne.b ol1
  47.     jsr Write(a6)
  48.     move.l (a7)+,d1
  49.     move.l #errSt2,d2
  50.     moveq #errSL2,d3
  51.     jsr Write(a6)
  52.     move.l a6,a1
  53.     move.l execbase.w,a6
  54.     jsr CloseLib(a6)
  55. olErr    pea 10.w
  56.     jsr exit__i
  57. ol0:    movem.l (a7)+,d2/d3/a2/a6
  58.     rts
  59.  
  60. errSt1:    dc.b 'Can not open '
  61. errSL1    = *-errSt1
  62. errSt2:    dc.b '.',10
  63. errSL2    = *-errSt2
  64. dosname:    dc.b 'dos.library',0
  65.  
  66.     end
  67.