home *** CD-ROM | disk | FTP | other *** search
/ Scene Xplorer 1 / Scene_Xplorer_1.iso / Tools / Playerek / FastAssign / FastAssignIII_1.s < prev   
Text File  |  1978-01-11  |  4KB  |  160 lines

  1. ;TOSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPPPPPPBO
  2. ;
  3. ;Fast Assign Rafik/RDST/SCT
  4. ;last change 96-Dec-29
  5.  
  6. ;TO add your own assign find label AssignTable:
  7. ;and write almost as in dos 
  8. ;in dos                             in source
  9. ;assign JFIF: dh0:jfif            assign jfif,dh0:jfif
  10. ;Written in Trashmone 2.0
  11.  
  12. ;NOTE dont add : in first argument!
  13.  
  14. *******************************************************************************
  15. *Program ten tworzy katalog ram:T i assignuje tam t:
  16. *Tworzy równieû assigny:    ENV:, PRINTERS:, CLIPBOARDS:, i pare innych
  17. *Potrzebny system 2.0+
  18. *Eliminuje komendy :
  19. *Assign >NIL: ENV: DH0:ENV
  20. *Assign >NIL: T: RAM:T
  21. *Assign >NIL: CLIPS: DH0:T/Clipboards
  22. *Assign >NIL: REXX: S:            ;<nie
  23. *Assign >NIL: PRINTERS: DEVS:Printers
  24. *Assign >NIL: KEYMAPS: DEVS:Keymaps
  25. *Assign >NIL: LOCALE: SYS:Locale
  26. *Assign >NIL: LIBS: SYS:Classes ADD    ;<nie
  27. *Assign >NIL: HELP: dh0:Help DEFER
  28. *******************************************************************************
  29.  
  30. CALL:        MACRO
  31.             jsr    _\1(a6)
  32.         ENDM
  33. EXEC:        MACRO
  34.             move.l    4.w,a6
  35.         ENDM
  36.  
  37.  
  38. Start:
  39.             moveq    #36,d0
  40.             lea    DosName(pc),a1
  41.             EXEC
  42.             CALL    OpenLibrary
  43.             move.l    d0,DosBase
  44.             beq.w    WrongSys
  45.             move.l    d0,a6
  46. ;make directory!
  47.             move.l    #T_Name,d1
  48.             CALL    CreateDir
  49.             move.l    d0,d1
  50.             beq.s    .skip        ;CloseLib
  51. ;najprawdopodobniej objekt juû istnieje!
  52.             CALL    UnLock
  53. .skip
  54.  
  55.             lea    AssignTable(pc),a0
  56. AssignLoop:
  57.             tst.b    (a0)
  58.             beq.s    EndTable
  59.             move.l    a0,d1
  60. .1            tst.b    (a0)+
  61.             bne.s    .1
  62.             move.l    a0,TableAdr
  63.             moveq    #-2,d2    ;mode read
  64.             CALL    Lock
  65.             move.l    d0,d2
  66.             move.l    d0,Lock
  67.             move.l    TableAdr,d1
  68.             CALL    AssignLock    ;d2lock d1name
  69.             tst.l    d0
  70.             bne.s    .ok
  71. ;bîâd przy assignie!
  72.             move.l    Lock,d1
  73.             CALL    UnLock
  74. .ok
  75.             move.l    DosName,a0
  76. .loop            tst.b    (a0)+
  77.             bne.s    .loop
  78.             bra.s    AssignLoop
  79.  
  80. EndTable:
  81.             CALL    Output
  82.                         move.l  d0,d1
  83.             beq.s    CloseLib
  84.  
  85.             move.l    #AboutTXT,d2
  86.             move.l  #AboutTXTEnd-AboutTXT-1,d3
  87.             CALL    Write
  88.  
  89. CloseLib:
  90.             move.l    a6,a1
  91.             EXEC
  92.             CALL    CloseLibrary
  93.             moveq    #0,d0
  94.             rts
  95. WrongSys:
  96.             moveq    #-1,d0
  97.             rts
  98. DosBase:        dc.l    0
  99.  
  100.             even
  101. TableAdr:        ;uûywa adresu DosName poniewaû po otwarciu biblioteki
  102.             ;text dos.library nie jest juû nam potrzebny!
  103. Lock:    equ    *+4    ;adres DosName+4 tak jak wyûej
  104. DosName:        dc.b    'dos.library',0    ;tu wrzucam baze tabeli assig
  105.  
  106.  
  107. assign:    MACRO
  108.     dc.b    '\2',0,'\1',0
  109.     ENDM
  110.  
  111. *******************************************************************************
  112. AssignTable:        ;podajesz gdzie zaasignowaê i nazwe assigna!
  113. *******************************************************************************
  114.  
  115.         assign    ENV,sys:env
  116. T_Name:        assign    T,ram:T
  117.         assign    CLIPS,ram:t
  118.         assign    PRINTERS,devs:printers
  119.         assign    KEYMAPS,devs:keymaps
  120.         assign    LOCALE,sys:locale
  121.         assign    HELP,ram:
  122.  
  123. ;place for your assign!
  124.  
  125. ;That must stay here!
  126.         dc.b    0,0 ;this is end leave two 0
  127.  
  128.  
  129.             dc.b    '$VER:'
  130. AboutTXT:        dc.b    ' FastAssign V3.0 (29.Dec.1996)',$A
  131.             dc.b    ' by Rafik/rdst',$a,0
  132. AboutTXTEnd:
  133.  
  134. *Assign >NIL: ENV: DH0:ENV
  135. *Assign >NIL: T: RAM:T
  136. *Assign >NIL: CLIPS: DH0:T/Clipboards
  137. *Assign >NIL: PRINTERS: DEVS:Printers
  138. *Assign >NIL: KEYMAPS: DEVS:Keymaps
  139. *Assign >NIL: LOCALE: SYS:Locale
  140. *Assign >NIL: HELP: dh0:Help DEFER    ;na ram:t/ help!
  141.  
  142. *Assign >NIL: LIBS: SYS:Classes ADD    ;<-nie
  143. *Assign >NIL: REXX: S:            ;<-nie
  144.  
  145.  
  146. ;                includy
  147.  
  148. _CloseLibrary                    EQU                     -414
  149. _OpenLibrary                     EQU                     -552
  150. *************************************************************************
  151. _Write                           EQU                     -48
  152. _Output                          EQU                     -60
  153. _Lock                            EQU                     -84
  154. _UnLock                          EQU                     -90
  155. _DupLock                         EQU                     -96
  156. _CreateDir                       EQU                     -120
  157. _AssignLock                      EQU                     -612
  158. *************************************************************************
  159. *unfold
  160.