home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / Assembler / DVD!OMA2.DMS / in.adf / Examples / Library / DOS / DOS.asm next >
Encoding:
Assembly Source File  |  1994-10-13  |  3.2 KB  |  211 lines

  1.  
  2. ; DOS-Interface
  3.  
  4.     INCLUDE    "lvo/dos.i"
  5.  
  6.     XREF    _DOSBase
  7.  
  8.  
  9.  
  10.  
  11.  
  12. CREATE MACRO Name,Registermaske,Registeranzahl,Satz1,Anzahl1,Satz2,Anzahl2...
  13.  
  14.     IFD    \1
  15.     XDEF    _\1
  16.  
  17. _\1
  18.     IFEQ    \3-1
  19.     move.l    \2,-(SP)
  20.     ELSE
  21.     movem.l    \2,-(SP)
  22.     ENDC
  23.  
  24. TIEFE    SET    4+4*\3
  25.     IFNC    '\4',''
  26.     SATZ    \4,\5,\6,\7,\8,\9,\a,\b,\c,\d,\e,\f,\g,\h,\i,\j
  27.     ENDC
  28.  
  29.     move.l    _DOSBase,a6
  30.     jsr        _LVO\1(a6)
  31.     IFEQ    \3-1
  32.     move.l    (SP)+,\2
  33.     ELSE
  34.     movem.l    (SP)+,\2
  35.     ENDC
  36.     rts
  37.  
  38.     ENDC
  39.  
  40.     ENDM
  41.  
  42.  
  43.  
  44.  
  45.  
  46. SATZ    MACRO    Satz1,Anzahl1,Satz2,Anzahl2...
  47.     IFEQ    \2-1
  48.     move.l    TIEFE(SP),\1
  49.     ELSE
  50.     movem.l    TIEFE(SP),\1
  51.     ENDC
  52. TIEFE    SET    TIEFE+4*\2
  53.     IFNC    '\3',''
  54.     SATZ    \3,\4,\5,\6,\7,\8,\9,\a,\b,\c,\d,\e,\f,\g,\h,\i
  55.     ENDC
  56.     ENDM
  57.  
  58.  
  59.  
  60.  
  61.  
  62. ; Open(name,accessMode)(D1/D2)
  63.     CREATE    Open,d2-d3/a6,3,d1-d2,2
  64.  
  65. ; Close(file)(D1)
  66.     CREATE    Close,d2-d3/a6,3,d1,1
  67.  
  68. ; Read(file,buffer,length)(D1/D2/D3)
  69.     CREATE    Read,d2-d3/a6,3,d1-d3,3
  70.  
  71. ; Write(file,buffer,length)(D1/D2/D3)
  72.     CREATE    Write,d2-d3/a6,3,d1-d3,3
  73.  
  74. ; Input()
  75.     CREATE    Input,d2-d3/a6,3
  76.  
  77. ; Output()
  78.     CREATE    Output,d2-d3/a6,3
  79.  
  80. ; Seek(file,position,offset)(D1/D2/D3)
  81.     CREATE    Seek,d2-d3/a6,3,d1-d3,3
  82.  
  83. ; DeleteFile(name)(D1)
  84.     CREATE    DeleteFile,d2-d3/a6,3,d1,1
  85.  
  86. ; Rename(oldName,newName)(D1/D2)
  87.     CREATE    Rename,d2-d3/a6,3,d1-d2,2
  88.  
  89. ; Lock(name,type)(D1/D2)
  90.     CREATE    Lock,d2-d3/a6,3,d1-d2,2
  91.  
  92. ; UnLock(lock)(D1)
  93.     CREATE    UnLock,d2-d3/a6,3,d1,1
  94.  
  95. ; DupLock(lock)(D1)
  96.     CREATE    DupLock,d2-d3/a6,3,d1,1
  97.  
  98. ; Examine(lock,fileInfoBlock)(D1/D2)
  99.     CREATE    Examine,d2-d3/a6,3,d1-d2,2
  100.  
  101. ; ExNext(lock,fileInfoBlock)(D1/D2)
  102.     CREATE    ExNext,d2-d3/a6,3,d1-d2,2
  103.  
  104. ; Info(lock,parameterBlock)(D1/D2)
  105.     CREATE    Info,d2-d3/a6,3,d1-d2,2
  106.  
  107. ; CreateDir(name)(D1)
  108.     CREATE    CreateDir,d2-d3/a6,3,d1,1
  109.  
  110. ; CurrentDir(lock)(D1)
  111.     CREATE    CurrentDir,d2-d3/a6,3,d1,1
  112.  
  113. ; IoErr()
  114.     CREATE    IoErr,d2-d3/a6,3
  115.  
  116. ; CreateProc(name,pri,segList,stackSize)(D1/D2/D3/D4)
  117.     CREATE    CreateProc,d2-d4/a6,4,d1-d4,4
  118.  
  119. ; Exit(returnCode)(D1)
  120.     CREATE    Exit,d2-d3/a6,3,d1,1
  121.  
  122. ; LoadSeg(fileName)(D1)
  123.     CREATE    LoadSeg,d2-d3/a6,3,d1,1
  124.  
  125. ; UnLoadSeg(segment)(D1)
  126.     CREATE    UnLoadSeg,d2-d3/a6,3,d1,1
  127.  
  128. ; GetPacket(wait)(D1)
  129.     CREATE    GetPacket,d2-d3/a6,3,d1,1
  130.  
  131. ; QueuePacket(packet)(D1)
  132.     CREATE    QueuePacket,d2-d3/a6,3,d1,1
  133.  
  134. ; DeviceProc(name)(D1)
  135.     CREATE    DeviceProc,d2-d3/a6,3,d1,1
  136.  
  137. ; SetComment(name,comment)(D1/D2)
  138.     CREATE    SetComment,d2-d3/a6,3,d1-d2,2
  139.  
  140. ; SetProtection(name,mask)(D1/D2)
  141.     CREATE    SetProtection,d2-d3/a6,3,d1-d2,2
  142.  
  143. ; DateStamp(date)(D1)
  144.     CREATE    DateStamp,d2-d3/a6,3,d1,1
  145.  
  146. ; Delay(timeout)(D1)
  147.     CREATE    Delay,d2-d3/a6,3,d1,1
  148.  
  149. ; WaitForChar(file,timeout)(D1/D2)
  150.     CREATE    WaitForChar,d2-d3/a6,3,d1-d2,2
  151.  
  152. ; ParentDir(lock)(D1)
  153.     CREATE    ParentDir,d2-d3/a6,3,d1,1
  154.  
  155. ; IsInteractive(file)(D1)
  156.     CREATE    IsInteractive,d2-d3/a6,3,d1,1
  157.  
  158. ; Execute(string,file,file)(D1/D2/D3)
  159.     CREATE    Execute,d2-d3/a6,3,d1-d3,3
  160.  
  161.  
  162.  
  163.  
  164.  
  165. ; Offsets
  166.  
  167.     IFD    OFFSETS
  168.  
  169.     XDEF    _LVOOpen
  170.     XDEF    _LVOClose
  171.     XDEF    _LVORead
  172.     XDEF    _LVOWrite
  173.     XDEF    _LVOInput
  174.     XDEF    _LVOOutput
  175.     XDEF    _LVOSeek
  176.     XDEF    _LVODeleteFile
  177.     XDEF    _LVORename
  178.     XDEF    _LVOLock
  179.     XDEF    _LVOUnLock
  180.     XDEF    _LVODupLock
  181.     XDEF    _LVOExamine
  182.     XDEF    _LVOExNext
  183.     XDEF    _LVOInfo
  184.     XDEF    _LVOCreateDir
  185.     XDEF    _LVOCurrentDir
  186.     XDEF    _LVOIoErr
  187.     XDEF    _LVOCreateProc
  188.     XDEF    _LVOExit
  189.     XDEF    _LVOLoadSeg
  190.     XDEF    _LVOUnLoadSeg
  191.     XDEF    _LVOGetPacket
  192.     XDEF    _LVOQueuePacket
  193.     XDEF    _LVODeviceProc
  194.     XDEF    _LVOSetComment
  195.     XDEF    _LVOSetProtection
  196.     XDEF    _LVODateStamp
  197.     XDEF    _LVODelay
  198.     XDEF    _LVOWaitForChar
  199.     XDEF    _LVOParentDir
  200.     XDEF    _LVOIsInteractive
  201.     XDEF    _LVOExecute
  202.  
  203.     ENDC
  204.  
  205.  
  206.  
  207.  
  208.  
  209.     END
  210.  
  211.