home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / PASCAL / FSPACE.ZIP / FSPACE.BAS < prev   
Encoding:
BASIC Source File  |  1987-01-10  |  1.6 KB  |  46 lines

  1. 10 ' *** FSPACE.BAS ***   9-1-86
  2. 20 ' Determine free space on on path pth$
  3. 30 '
  4. 40 'Written by Burks A. Smith
  5. 50 '           Datasmith, Inc.
  6. 60 '           Box 8036
  7. 70 '           Shawnee Mission KS 66208
  8. 80 '
  9. 90 '
  10. 100 ' < This is a test program
  11. 110 '
  12. 120 GOSUB 500 'initialize
  13. 130 PTH$ = ""
  14. 140 GOSUB 1000
  15. 150 PRINT FSPACE;" bytes free"
  16. 160 END
  17. 170 '
  18. 500 ' < Initialize Free Space Subroutine
  19. 510 '
  20. 520 DEF SEG
  21. 530 A=PEEK(&H2E)+256*PEEK(&H2F): CMPL%=NOT(A=530) 'compare A = this line
  22. 540 RESTORE 610: FS$=""
  23. 550 READ A$
  24. 560 WHILE A$<>"/*": FS$=FS$+CHR$(VAL(A$)): READ A$: WEND
  25. 570 RETURN
  26. 600 ' 8086 instructions for DOS call to get disk free space
  27. 610 DATA &H55,&H8B,&HEC,&HB4,&H30,&HCD,&H21,&H3C,0,&H75,&H9,&HB8,0
  28. 620 DATA &H80,&H33,&HD2,&H8A,&HCC,&HEB,&H26,&H8B,&H76,&H8,&H8B,&H14
  29. 630 DATA &HB4,&H36,&HCD,&H21,&HF7,&HE1,&HF7,&HE3,&H33,&HC9,&H50,&H0B
  30. 640 DATA &HC2,&H58,&H74,&H11,&H92,&HFE,&HC5,&HD1,&HE2,&HD1,&HD0,&H73
  31. 650 DATA &HF8,&HB1,&HA1,&H2A,&HCD,&HD1,&HE8,&HD1,&HDA,&H8B,&H7E,&H6
  32. 660 DATA &H88,&H35,&H47,&HAB,&H88,&H0D,&H5D,&HCA,&H4,0,/*
  33. 670 '
  34. 1000 ' < Find Disk Free Space
  35. 1010 ' expects pth$=path;  returns dr%=drive #, fspace=free space
  36. 1020 DEF SEG
  37. 1030 IF CMPL% THEN SPO=2 ELSE SPO=1
  38. 1040 FS=PEEK(VARPTR(FS$)+SPO)+256*PEEK(VARPTR(FS$)+SPO+1) 'addr of FS$
  39. 1050 IF FS>32767 THEN FS%=FS-65536! ELSE FS%=FS
  40. 1060 X%=INSTR(PTH$,":"): IF X%<2 THEN DR%=0: GOTO 1080
  41. 1070 DR%=(ASC(MID$(PTH$,X%-1,1)) AND &HDF)-64
  42. 1080 FSPACE=0
  43. 1090 IF NOT CMPL% THEN CALL FS(DR%,FSPACE): RETURN  '<- interpreted
  44. 1100 CALL ABSOLUTE (DR%,FSPACE,FS%)                 '<- compiled
  45. 1110 RETURN
  46.