home *** CD-ROM | disk | FTP | other *** search
/ ftp.wwiv.com / ftp.wwiv.com.zip / ftp.wwiv.com / pub / MISC / SQDEV200.ZIP / SRC / FFINDA.ASM < prev    next >
Assembly Source File  |  1994-05-23  |  5KB  |  129 lines

  1. ;***************************************************************************
  2. ;*                                                                         *
  3. ;*  Squish Developers Kit Source, Version 2.00                             *
  4. ;*  Copyright 1989-1994 by SCI Communications.  All rights reserved.       *
  5. ;*                                                                         *
  6. ;*  USE OF THIS FILE IS SUBJECT TO THE RESTRICTIONS CONTAINED IN THE       *
  7. ;*  SQUISH DEVELOPERS KIT LICENSING AGREEMENT IN SQDEV.PRN.  IF YOU DO NOT *
  8. ;*  FIND THE TEXT OF THIS AGREEMENT IN THE AFOREMENTIONED FILE, OR IF YOU  *
  9. ;*  DO NOT HAVE THIS FILE, YOU SHOULD IMMEDIATELY CONTACT THE AUTHOR AT    *
  10. ;*  ONE OF THE ADDRESSES LISTED BELOW.  IN NO EVENT SHOULD YOU PROCEED TO  *
  11. ;*  USE THIS FILE WITHOUT HAVING ACCEPTED THE TERMS OF THE SQUISH          *
  12. ;*  DEVELOPERS KIT LICENSING AGREEMENT, OR SUCH OTHER AGREEMENT AS YOU ARE *
  13. ;*  ABLE TO REACH WITH THE AUTHOR.                                         *
  14. ;*                                                                         *
  15. ;*  You can contact the author at one of the address listed below:         *
  16. ;*                                                                         *
  17. ;*  Scott Dudley       FidoNet     1:249/106                               *
  18. ;*  777 Downing St.    Internet    sjd@f106.n249.z1.fidonet.org            *
  19. ;*  Kingston, Ont.     CompuServe  >INTERNET:sjd@f106.n249.z1.fidonet.org  *
  20. ;*  Canada  K7M 5N3    BBS         1-613-634-3058, V.32bis                 *
  21. ;*                                                                         *
  22. ;***************************************************************************
  23. ; Find first file in set (used by FFIND only - do not call directly)
  24.  
  25. IFDEF __FLAT__
  26.  
  27.         .386p
  28.         .model small, pascal
  29.         .code
  30.  
  31.         PUBLIC __DFINDFIRST, __DFINDNEXT
  32.  
  33. __DFINDFIRST proc filename:dword, attr:dword, dta:dword
  34.         mov     edx, dta                        ; Load offset of DTA
  35.         mov     ah, 01ah                        ; Set DTA
  36.         int     21h                             ; Do call
  37.  
  38.         mov     ecx, attr                        ; Attribute for search
  39.         mov     edx, filename                   ; File to search for
  40.         mov     ah, 04eh                        ; FindFirst
  41.         int     21h
  42.  
  43.         jc      done                            ; If carry set, error occured
  44.         xor     eax,eax                         ; Otherwise, RC=0.
  45. done:   ret
  46. __DFINDFIRST endp
  47.  
  48.  
  49. ; Find next file in set (used by FFIND only - do not call directly)
  50.  
  51. __DFINDNEXT proc dta:dword
  52.         mov     edx, dta                        ; Load offset of DTA
  53.         mov     ah, 01ah                        ; Set DTA
  54.         int     21h                             ; Do call
  55.  
  56.         mov     ah, 04fh                        ; FindNext
  57.         int     21h
  58.  
  59.         jc      donen                           ; If carry set, error occured
  60.         xor     eax,eax                         ; Otherwise, RC=0.
  61. donen:  ret
  62. __DFINDNEXT endp
  63.  
  64. ELSE  ; !__FLAT__
  65.  
  66. .model   large, pascal
  67. .code
  68.  
  69. PUBLIC __DFINDFIRST, __DFINDNEXT
  70.  
  71.  
  72. __DFINDFIRST proc filename:dword, attr:word, dta:dword
  73.         push    ds                              ; Save DS
  74.  
  75.         lds     dx, dta
  76. ;        mov     dx, word ptr [dta]              ; Load dta into ds:dx
  77. ;        mov     ax, word ptr [dta+2]
  78. ;        mov     ds, ax
  79.  
  80.         mov     ah, 01ah                        ; Set DTA
  81.         int     21h                             ; Do call
  82.         pop     ds                              ; Restore DS
  83.  
  84.         push    ds
  85.  
  86.         lds     dx, filename
  87. ;        mov     dx, word ptr [filename]         ; Load dta into ds:dx
  88. ;        mov     ax, word ptr [filename+2]
  89. ;        mov     ds, ax
  90.  
  91.         mov     cx, attr                        ; Attribute for search
  92.         mov     ah, 04eh                        ; FindFirst
  93.         int     21h
  94.         pop     ds
  95.  
  96.         jc      done                            ; If carry set, error occured
  97.         xor     ax,ax                           ; Otherwise, RC=0.
  98. done:   ret
  99. __DFINDFIRST endp
  100.  
  101.  
  102. ; Find next file in set (used by FFIND only - do not call directly)
  103.  
  104. __DFINDNEXT proc dta:dword
  105.         push    ds                              ; Save DS
  106.  
  107.         lds     dx, dta
  108. ;        mov     dx, word ptr [dta]              ; Load dta into ds:dx
  109. ;        mov     ax, word ptr [dta+2]
  110. ;        mov     ds, ax
  111.  
  112.         mov     ah, 01ah                        ; Set DTA
  113.         int     21h                             ; Do call
  114.         pop     ds                              ; Restore DS
  115.  
  116.         mov     ah, 04fh                        ; FindNext
  117.         int     21h
  118.  
  119.         jc      donen                           ; If carry set, error occured
  120.         xor     ax,ax                           ; Otherwise, RC=0.
  121. donen:  ret
  122. __DFINDNEXT endp
  123.  
  124.  
  125. ENDIF
  126.  
  127. end
  128.  
  129.