home *** CD-ROM | disk | FTP | other *** search
/ Shareware Supreme Volume 6 #1 / swsii.zip / swsii / 167 / FILLDISK.ZIP / FILLDISK.SRC < prev    next >
Text File  |  1990-10-10  |  4KB  |  118 lines

  1. DIM BLOCK$(511)
  2. DIM DFNAME$(15)
  3. START:
  4. CLEAR
  5. LOCATE  1,10: PRINT "FILLDISK.EXE       DOS UTILITY       10/10/90 BENNY THE ROBOT"
  6. LOCATE  2,10: PRINT "____________"
  7.  
  8. LOCATE  4,10: PRINT "Purpose:  Calculate remaining free disk space on target drive"
  9. LOCATE  5,10: PRINT "          and fill with one file  of specified constant data."
  10.  
  11. REPEAT:
  12. LOCATE  8,1: PRINT SPACE$(80)
  13. LOCATE 18,1: PRINT SPACE$(80)
  14. LOCATE 21,1: PRINT SPACE$(80)
  15. LOCATE 22,1: PRINT SPACE$(80)
  16. LOCATE  8,10: INPUT "Enter drive you want to work on (A, B, C ...): ",DRIVE$
  17. IF LEN(DRIVE$) > 1 THEN GOTO REPEAT
  18. IF DRIVE$ = "" THEN DRIVE$ = "A"
  19. DRIVE% = ASC(DRIVE$)
  20. IF DRIVE% > 96 THEN DRIVE% = DRIVE% - 96 ELSE DRIVE% = DRIVE% - 64
  21. LOCATE  8,57: PRINT CHR$(DRIVE% + 64)
  22.  
  23. NAMEAGAIN:
  24. LOCATE  9,1: PRINT SPACE$(80)
  25. LOCATE  9,10: PRINT "Enter file name, RETURN for default file name  FILLER.TMP"
  26. LOCATE  9,57: INPUT "",DFNAME$
  27. IF LEN(DFNAME$) > 12 THEN GOTO NAMEAGAIN
  28. IF DFNAME$ = "" THEN DFNAME$ = "FILLER.TMP"
  29. LOCATE  9,57: PRINT SPACE$(12)
  30. LOCATE  9,57: PRINT DFNAME$
  31. LOCATE 10,10: PRINT "Fill character,  RETURN for default:  00  (entry in hex)"
  32. LOCATE 11,10: PRINT "(Entries in decimal must be followed by D)"
  33. GOTO ENTERVAL
  34.  
  35. VALAGAIN:
  36. LOCATE 10,48: PRINT SPACE$(32)
  37. LOCATE 11,1: PRINT SPACE$(80)
  38. ENTERVAL:
  39. LOCATE 10,48: INPUT "",DFILLER$
  40. IF DFILLER$ = "" THEN DFILLER% = 0: GOTO GETSPACE
  41. IF LEN(DFILLER$) < 3 THEN GOTO HEXVALUE
  42. IF VAL(DFILLER$) > 255 THEN GOTO VALAGAIN
  43. IF RIGHT$(DFILLER$,1) = "D" OR RIGHT$(DFILLER$,1) = "d" THEN DFILLER% = VAL(LEFT$(DFILLER$,3)):TYPE$ = "Decimal":GOTO GETSPACE
  44.  
  45. HEXVALUE:
  46. H2 = VAL(LEFT$(DFILLER$,1))
  47. H1 = VAL(MID$(DFILLER$,2,1))
  48. DFILLER% = H2 * 16 + H1
  49. TYPE$ = "Hexadecimal"
  50.  
  51. GETSPACE:
  52. LOCATE 11,1: PRINT SPACE$(80)
  53. LOCATE 10,52: PRINT SPACE$(20)
  54. LOCATE 10,52: PRINT TYPE$
  55. LOCATE 12,10: PRINT "checking free disk space, please wait ... "
  56.  
  57. BLOCK$ = STRING$(512,DFILLER%)
  58.  
  59. CALL DSPACE(DRIVE%,SECTORS%,BYTES%,CLUSTERS%)
  60.  
  61. LOCATE 13,1: PRINT SPACE$(80)
  62. LOCATE 14,1: PRINT SPACE$(80)
  63. LOCATE 15,1: PRINT SPACE$(80)
  64. LOCATE 12,1: PRINT SPACE$(80)
  65. LOCATE 12,10: PRINT "Bytes per sector:      ";BYTES%
  66. LOCATE 13,10: PRINT "Sectors per cluster:   ";SECTORS%
  67. LOCATE 14,10: PRINT "Available clusters:    ";CLUSTERS%;
  68.               PRINT "      Total sectors: ";SECTORS%*CLUSTERS%
  69. SECTORS = SECTORS%: BYTES = BYTES%: CLUSTERS = CLUSTERS%
  70.  
  71. RES = SECTORS * BYTES * CLUSTERS / 1000
  72. LOCATE 16,10: PRINT "There are ";
  73.           PRINT USING "####,.###"; RES;
  74.               PRINT " KBytes  ready to be filled with ASCII  ";
  75. IF DFILLER% < 32 THEN PRINT "CTRL ";CHR$(DFILLER%+64) ELSE PRINT CHR$(DFILLER%)
  76.  
  77. RECORDS% = INT(CLUSTERS * SECTORS)
  78. LOCATE 18,10: PRINT "How many sectors do you want to write, max. ";RECORDS%
  79. LOCATE 19,10: PRINT "(RETURN for default,  0 to exit program)"
  80. LOCATE 18,55: INPUT "",RECMIN$
  81. LOCATE 18,55: PRINT SPACE$(6)
  82. LOCATE 18,55: PRINT RECMIN$
  83.  
  84. CHECKENTRY:
  85. RECMIN% = VAL(RECMIN$)
  86. IF RECMIN$ = "" THEN RECMIN% = RECORDS%
  87. IF RECMIN% < 1 THEN GOTO PROGEXIT
  88. IF RECMIN% > RECORDS% THEN GOTO REFUSE
  89. GOTO ACCEPT
  90. REFUSE:
  91. LOCATE 18,10: PRINT "You are only allowed to write a maximum of  ";RECORDS%;" sectors"
  92. LOCATE 19,10: PRINT "Please enter again,  0 to exit program   "
  93. LOCATE 18,55: INPUT "",RECMIN$
  94. LOCATE 18,1: PRINT SPACE$(80)
  95. LOCATE 19,1: PRINT SPACE$(80)
  96. GOTO CHECKENTRY:
  97. ACCEPT:
  98. RECORDS% = RECMIN%
  99. LOCATE 18,1: PRINT SPACE$(80)
  100. LOCATE 19,1: PRINT SPACE$(80)
  101. LOCATE 18,10: PRINT "writing ";RECORDS%;" sectors, please wait ... "
  102.  
  103. LOCATE 20,10: PRINT "File named  ";CHR$(DRIVE%+64)+":";DFNAME$
  104. DFNAME$ = CHR$(DRIVE%+64)+":"+DFNAME$+CHR$(0)+"$"
  105.  
  106. CALL DFILL(DFNAME$,BLOCK$,RECORDS%)
  107.  
  108. PROGEXIT:
  109. IF RECMIN% < 1 THEN RESP$ = "         PROGRAM ABORTED" ELSE RESP$ = "DONE"
  110. LOCATE 21,1: PRINT SPACE$(80)
  111. LOCATE 21,67: PRINT RESP$
  112. LOCATE 22,10: INPUT "Do again ? (Y/N): ",ANSWER$
  113. A$ = LEFT$(ANSWER$,1)
  114. IF A$ = "y" OR A$ = "Y" THEN LOCATE 16,16: PRINT "were": GOTO START
  115.  
  116. SYSTEM
  117. 
  118.