home *** CD-ROM | disk | FTP | other *** search
/ World of A1200 / World_Of_A1200.iso / programs / system / oneassign / oneassign.s < prev   
Text File  |  1995-02-27  |  6KB  |  144 lines

  1. ******************************************************************************
  2. *
  3. *                              One assign 1.1
  4. *
  5. *                           (c) 1994 Jan Skypala
  6. *
  7. *                   $VER: OneAssign.s 37.2 (1 Mar 1994)
  8. *
  9. ******************************************************************************
  10.  
  11.                 incdir  'Include:'
  12.                 include 'exec/exec_lib.i'
  13.                 include 'dos/dos_lib.i'
  14.                 include 'dos/dos.i'
  15.  
  16. _SysBase        equ     4
  17.  
  18. NORMALASSIGNS   set     1
  19. ADDASSIGNS      set     1
  20. DEFERASSIGNS    set     1
  21. PATHASSIGNS     set     1
  22.  
  23. Start           move.l  (_SysBase).w,a6
  24.                 lea     DosName(pc),a1
  25.                 moveq   #37,d0
  26.                 jsr     _LVOOpenLibrary(a6)     ;open dos.library
  27.                 beq.b   End
  28.                 move.l  d0,a6
  29.                 lea     Assigns(pc),a4          ;beginning of assign list
  30. Normal          IFD     NORMALASSIGNS           
  31. ;               lea     NormalAssigns(pc),a4
  32.                 move.l  #_LVOAssignLock,d4
  33.                 bsr.b   LockOnes
  34.                 ENDIF
  35. Adds            IFD     ADDASSIGNS
  36. ;               lea     AddAssigns(pc),a4       ;beginning of addassign list
  37.                 move.l  #_LVOAssignAdd,d4
  38.                 bsr.b   LockOnes
  39.                 ENDIF
  40. Defers          IFD     DEFERASSIGNS
  41. ;               lea     DeferAssigns(pc),a4     ;beginning of deferassigns list
  42.                 move.l  #_LVOAssignLate,d4
  43.                 bsr.b   Paths
  44.                 ENDIF
  45. Path            IFD     PATHASSIGNS
  46. ;               lea     PathAssigns(pc),a4      ;beginning of pathassigns list
  47.                 move.l  #_LVOAssignPath,d4
  48.                 bsr.b   Paths
  49.                 ENDIF
  50.                 move.l  a6,a1                   ;no => close dos.library
  51.                 move.l  (_SysBase).w,a6
  52.                 jsr     _LVOCloseLibrary(a6)
  53.                 rts                             ;and return
  54.  
  55.                 IFD     NORMALASSIGNS
  56. LOCKS           set     1
  57.                 ENDIF
  58.                 IFND    LOCKS
  59.                 IFD     ADDASSIGNS
  60. LOCKS           set     1
  61.                 ENDIF
  62.                 ENDIF
  63.                 IFD     LOCKS
  64. LockOnes        move.l  a4,d1                   ;dir to d1
  65.                 moveq.l #ACCESS_READ,d2
  66.                 jsr     _LVOLock(a6)            ;lock it
  67.                 move.l  d0,d2
  68. .loop2          tst.b   (a4)+                   ;move to next string
  69.                 bne.b   .loop2
  70.                 move.l  a4,d1                   ;that's the assign
  71.                 jsr     (a6,d4)                 ;assign it
  72. .loop3          tst.b   (a4)+                   ;move behind this string
  73.                 bne.b   .loop3
  74.                 tst.b   (a4)                    ;is there another string?
  75.                 bne.b   LockOnes                ;yes => process it
  76.                 addq    #1,a4
  77.                 rts
  78.                 ENDIF
  79.                 IFD     DEFERASSIGNS
  80. PATHS           set     1
  81.                 ENDIF
  82.                 IFND    PATHS
  83.                 IFD     PATHASSIGNS
  84. PATHS           set     1
  85.                 ENDIF
  86.                 ENDIF
  87.                 IFD     PATHS
  88. Paths           move.l  a4,d2                   ;dir to d2
  89. .loop2          tst.b   (a4)+                   ;move to next string
  90.                 bne.b   .loop2
  91.                 move.l  a4,d1                   ;that's the assign
  92.                 jsr     (a6,d4)                 ;assign it
  93. .loop3          tst.b   (a4)+                   ;move behind this string
  94.                 bne.b   .loop3
  95.                 tst.b   (a4)                    ;is there another string?
  96.                 bne.b   Paths                   ;yes => process it
  97.                 addq    #1,a4
  98.                 rts
  99.                 ENDIF
  100. End
  101.  
  102. Version         dc.b    '$VER:OneAssign 37.2',0
  103. DosName         dc.b    'dos.library',0
  104. Assigns         IFD     NORMALASSIGNS
  105. NormalAssigns   dc.b    'Work:ENV',0,'ENV',0
  106.                 dc.b    'Work:T',0,'T',0
  107.                 dc.b    'Work:Clipboards',0,'CLIPS',0
  108.                 dc.b    'S:',0,'REXX',0
  109.                 dc.b    'DEVS:Printers',0,'PRINTERS',0
  110.                 dc.b    'DEVS:Keymaps',0,'KEYMAPS',0
  111.                 dc.b    'Work:BitmapFonts',0,'FONTS',0
  112.                 dc.b    'Work:Locale',0,'LOCALE',0
  113.                 dc.b    0
  114.                 ENDIF
  115.                 IFD     ADDASSIGNS
  116. AddAssigns      dc.b    'Work:Intellifont',0,'FONTS',0
  117.                 dc.b    'SYS:Classes',0,'LIBS',0
  118.                 dc.b    0
  119.                 ENDIF
  120.                 IFD     DEFERASSIGNS
  121. DeferAssigns    dc.b    'LOCALE:Help',0,'HELP',0
  122.                 dc.b    'SYS:',0,'HD',0
  123.                 dc.b    'Work:GoldED',0,'GOLDED',0
  124.                 dc.b    'Work:GUIMake',0,'GUIMAKE',0
  125.                 dc.b    'Work:Include',0,'INCLUDE',0
  126.                 dc.b    'Work:Include',0,'INCLUDES',0
  127.                 dc.b    'Work:Text_Include',0,'TEXT_INCLUDE',0
  128.                 dc.b    'Work:DPaint',0,'Deluxe Paint',0
  129.                 dc.b    'Work:DPaint',0,'DPaintIV',0
  130.                 dc.b    'Work:',0,'JPEGTMP',0
  131.                 dc.b    'Work:Pascal',0,'PASCAL',0
  132.                 dc.b    'SYS:Tools/Commodities',0,'PowerCache',0
  133.                 dc.b    'Work:Source/Articles/HowToCode',0,'HowToCode',0
  134.                 dc.b    'Work:E/Sources',0,'E',0
  135.                 dc.b    'Work:E/Bin',0,'EC',0
  136.                 dc.b    'Work:E/Modules',0,'EMODULES',0
  137.                 dc.b    'Work:E/ModulesText',0,'ETEXTS',0
  138.                 dc.b    0
  139.                 ENDIF
  140.                 IFD     PATHASSIGNS
  141. PathAssigns     dc.b    'DF0:',0,'Floppy disk',0
  142.                 dc.b    0
  143.                 ENDIF
  144.