home *** CD-ROM | disk | FTP | other *** search
/ The Datafile PD-CD 3 / PDCD_3.iso / pocketbk / developmen / oplexamp / FSIZE.OPL < prev    next >
Text File  |  1993-06-29  |  628b  |  29 lines

  1. PROC fsize&:(f$)
  2.  
  3.     LOCAL pinfo$(16),ppinfo%,fname$(20),err%,ret&
  4.     LOCAL ax%,bx%,cx%,dx%,si%,di%    /*  variables MUST be in this order  */
  5.  
  6.     ppinfo% = ADDR(pinfo$) + 1    /*  pinfo$ is P_INFO struct  */
  7.     fname$ = f$ + CHR$(0)        /*  name must be zero-terminated  */
  8.  
  9.     ax% = $0800                    /*  $08 is subfunction number  */ 
  10.     bx% = ADDR(fname$) + 1          
  11.     cx% = ppinfo%
  12.     dx% = $00
  13.     di% = $00
  14.     si% = $00
  15.  
  16.     err% = OS($87,ADDR(ax%))        /*  $87 is FilStatusGet interrupt  */
  17.     
  18.     IF (err% AND 1)
  19.         ret& = (ax% AND $FF) - 256
  20.     ELSE
  21.         POKEB ADDR(pinfo$),16
  22.         ret& = PEEKL(ADDR(pinfo$) + 5)
  23.     ENDIF
  24.  
  25.     RETURN ret&
  26.  
  27. ENDP
  28.         
  29.