home *** CD-ROM | disk | FTP | other *** search
/ Media Share 9 / MEDIASHARE_09.ISO / progmisc / nfsrc21.zip / DIRFUNC.ASM < prev    next >
Assembly Source File  |  1991-08-16  |  3KB  |  78 lines

  1. ; File......: DIRFUNC.ASM
  2. ; Author....: Ted Means
  3. ; Date......: $Date:   15 Aug 1991 23:06:42  $
  4. ; Revision..: $Revision:   1.2  $
  5. ; Log file..: $Logfile:   E:/nanfor/src/dirfunc.asv  $
  6. ; This is an original work by Ted Means and is placed in the
  7. ; public domain.
  8. ;
  9. ; Modification history:
  10. ; ---------------------
  11. ;
  12. ; $Log:   E:/nanfor/src/dirfunc.asv  $
  13. ;  
  14. ;     Rev 1.2   15 Aug 1991 23:06:42   GLENN
  15. ;  Forest Belt proofread/edited/cleaned up doc
  16. ;  
  17. ;     Rev 1.1   14 Jun 1991 19:54:24   GLENN
  18. ;  Minor edit to file header
  19. ;  
  20. ;     Rev 1.0   01 Apr 1991 01:03:12   GLENN
  21. ;  Nanforum Toolkit
  22. ;  
  23. ;
  24.  
  25. Public   __ftdir
  26.  
  27. Extrn    __ParInfo:Far
  28. Extrn    __ParC:Far
  29. Extrn    __RetNI:Far
  30.  
  31. Segment  _NanFor   Word      Public    "CODE"
  32.          Assume    CS:_NanFor
  33.  
  34. Proc     __ftdir   Far
  35.  
  36.          Push      BP                        ; Save BP
  37.          Mov       BP,SP                     ; Set up stack reference
  38.  
  39.          Xor       AX,AX                     ; Prepare to count params
  40.          Push      AX                        ; Save on stack
  41.          Call      __ParInfo                 ; Call parameter info routine
  42.          Or        AX,AX                     ; Zero params?
  43.          JNE       Test1                     ; If not zero, continue
  44.          Mov       AX,99                     ; Set return value
  45.          Jmp       Short Done                ; Go to end
  46.  
  47. Test1:   Mov       AX,1                      ; Check parameter #1
  48.          Push      AX                        ; Save parameter # on stack
  49.          Call      __ParInfo                 ; Call parameter info routine
  50.          Test      AX,1                      ; See if parameter is character
  51.          JNZ       Get1                      ; If so, continue
  52.          Mov       AX,99                     ; Set return value
  53.          Jmp       Short Done                ; Go to end
  54.  
  55. Get1:    Mov       AX,1                      ; Select parameter #1
  56.          Push      AX                        ; Save parameter # on stack
  57.          Call      __ParC                    ; Retrieve parameter
  58.  
  59.          Push      DS                        ; Save DS
  60.          Mov       DS,DX                     ; Load pathspec segment
  61.          Mov       DX,AX                     ; Load pathspec offset
  62.          Mov       AH,[Byte Ptr BP + 7]      ; Get requested DOS service
  63.          Int       21h                       ; Call DOS
  64.          Pop       DS                        ; Restore DS
  65.          JC        Done                      ; Carry flag means error
  66.          Xor       AX,AX                     ; Set return value
  67.  
  68. Done:    Push      AX                        ; Save return value on stack
  69.          Call      __RetNI                   ; Return value to Clipper app
  70.          Mov       SP,BP                     ; Realign stack
  71.          Pop       BP                        ; Restore BP
  72.          Ret
  73. Endp     __ftdir
  74. Ends     _NanFor
  75. End
  76. 
  77.