home *** CD-ROM | disk | FTP | other *** search
/ The CDPD Public Domain Collection for CDTV 3 / CDPDIII.bin / pd / programming / assembler / thesource / volume2 / source / system / asmmacros.lha / Lock.i < prev    next >
Encoding:
Text File  |  1990-11-16  |  1.4 KB  |  51 lines

  1.      NOLIST
  2. Lock        MACRO              ; 14 Jan 88
  3. *------------------------------; Start of Lock macro.
  4.      NOLIST
  5.      IFC '\4','read'
  6.      LIST
  7.                                ; Make D2 indicate the read accessMode.
  8.      MOVE.L #-2,D2
  9.      NOLIST
  10.      ENDC
  11.      IFC '\4','write'
  12.      LIST
  13.                                ; Make D2 indicate the write accessMode.
  14.      MOVE.L #-1,D2
  15.      NOLIST
  16.      ENDC
  17.      IFC '\1','I'              ; If <PointerToFileName> is specified, then
  18.      LIST
  19.                                ; Put <PointerToFileName> in D1.
  20.      MOVE.L #\2,D1
  21.      NOLIST
  22.      ENDC
  23.      IFC '\1','D'              ; If <filename> is specified, then
  24.      LIST
  25.                                ; Make D1 point to <filename>.str .
  26.      MOVE.L #\2.str,D1
  27.      NOLIST
  28.      IFND \2.str               ; Unless it was previously defined,
  29.      LIST
  30.      SECTION DataSection,DATA  ; The ASCII <filename> string goes here.
  31. \2.str:
  32.      DC.B '\2',0
  33.      CNOP 0,2
  34.      SECTION   "",CODE
  35.      NOLIST
  36.      ENDC
  37.      ENDC
  38.      LIST
  39.      CallLib Lock,dos          ; Call Lock to get a lock on <filename>.
  40.                                ; Put the lock at <LockName>.
  41.      MOVE.L D0,\3
  42.      SECTION   BSS_Section,BSS
  43.      CNOP 0,2
  44. \3:
  45.      DS.L 1                    ; This is the location of <LockName>.
  46.      SECTION   "",CODE
  47.      TST.L D0                  ; Make the zero flag indicate failure.
  48. *------------------------------; End of Lock macro.
  49.      ENDM
  50.      LIST
  51.