Category : Utilities for DOS and Windows Machines
Archive   : FILLDISK.ZIP
Filename : FILLDISK.LST

 
Output of file : FILLDISK.LST contained in archive : FILLDISK.ZIP
PAGE 1
10-13-86
13:33:05
Offset Data Source Line IBM Personal Computer BASIC Compiler V2.00

0030 0006 DIM BLOCK$(511)
0030 0006 DIM DFNAME$(15)
0030 0006 START:
0030 0006 CLEAR
0030 ** CALL $INI
0035 ** CALL $560
003A ** I00001: CALL $DSW
003F ** CALL $EVT
0044 ** INT 3
0045 ** INT 3
0046 ** INT 3
0047 ** I00002: INT 3
0048 ** CALL $LINA
004D ** INT 3
004E ** CALL $CLX
0053 0846 LOCATE 1,10: PRINT "FILLDISK.EXE DOS UTILITY 10/10
/90 BENNY THE ROBOT"
0053 ** INT 3
0054 ** MOV BX,0001H
0057 ** CALL $LO0
005C ** MOV BX,000AH
005F ** CALL $LO2
0064 ** INT 3
0065 ** CALL $PR0A
006A ** MOV BX,OFFSET
006D ** CALL $PV2D
0072 ** CALL $PV4
0077 0846 LOCATE 2,10: PRINT "____________"
0077 ** INT 3
0078 ** MOV BX,0002H
007B ** CALL $LO0
0080 ** MOV BX,000AH
0083 ** CALL $LO2
0088 ** INT 3
0089 ** CALL $PR0A
008E ** MOV BX,OFFSET
0091 ** CALL $PV2D
0096 ** CALL $PV4
009B 0846
009B 0846 LOCATE 4,10: PRINT "Purpose: Calculate remaining free disk sp
ace on target drive"
009B ** INT 3
009C ** MOV BX,0004H
009F ** CALL $LO0
00A4 ** MOV BX,000AH
00A7 ** CALL $LO2
00AC ** INT 3
00AD ** CALL $PR0A
00B2 ** MOV BX,OFFSET
00B5 ** CALL $PV2D
00BA ** CALL $PV4
00BF 0846 LOCATE 5,10: PRINT " and fill with one file of speci
fied constant data."
00BF ** INT 3
PAGE 2
10-13-86
13:33:05
Offset Data Source Line IBM Personal Computer BASIC Compiler V2.00

00C0 ** MOV BX,0005H
00C3 ** CALL $LO0
00C8 ** MOV BX,000AH
00CB ** CALL $LO2
00D0 ** INT 3
00D1 ** CALL $PR0A
00D6 ** MOV BX,OFFSET
00D9 ** CALL $PV2D
00DE ** CALL $PV4
00E3 0846
00E3 0846 REPEAT:
00E3 ** INT 3
00E4 ** I00003: INT 3
00E5 ** CALL $LINA
00EA 0846 LOCATE 8,1: PRINT SPACE$(80)
00EA ** INT 3
00EB ** MOV BX,0008H
00EE ** CALL $LO0
00F3 ** MOV BX,0001H
00F6 ** CALL $LO2
00FB ** INT 3
00FC ** CALL $PR0A
0101 ** MOV BX,0050H
0104 ** CALL $SP$
0109 ** CALL $PV2D
010E ** CALL $PV4
0113 0846 LOCATE 18,1: PRINT SPACE$(80)
0113 ** INT 3
0114 ** MOV BX,0012H
0117 ** CALL $LO0
011C ** MOV BX,0001H
011F ** CALL $LO2
0124 ** INT 3
0125 ** CALL $PR0A
012A ** MOV BX,0050H
012D ** CALL $SP$
0132 ** CALL $PV2D
0137 ** CALL $PV4
013C 0846 LOCATE 21,1: PRINT SPACE$(80)
013C ** INT 3
013D ** MOV BX,0015H
0140 ** CALL $LO0
0145 ** MOV BX,0001H
0148 ** CALL $LO2
014D ** INT 3
014E ** CALL $PR0A
0153 ** MOV BX,0050H
0156 ** CALL $SP$
015B ** CALL $PV2D
0160 ** CALL $PV4
0165 0846 LOCATE 22,1: PRINT SPACE$(80)
0165 ** INT 3
0166 ** MOV BX,0016H
0169 ** CALL $LO0
PAGE 3
10-13-86
13:33:05
Offset Data Source Line IBM Personal Computer BASIC Compiler V2.00

016E ** MOV BX,0001H
0171 ** CALL $LO2
0176 ** INT 3
0177 ** CALL $PR0A
017C ** MOV BX,0050H
017F ** CALL $SP$
0184 ** CALL $PV2D
0189 ** CALL $PV4
018E 0846 LOCATE 8,10: INPUT "Enter drive you want to work on (A, B, C .
..): ",DRIVE$
018E ** INT 3
018F ** MOV BX,0008H
0192 ** CALL $LO0
0197 ** MOV BX,000AH
019A ** CALL $LO2
019F ** INT 3
01A0 ** MOV BX,OFFSET
01A3 ** CALL $IN0A
01A8 ** DB 02H
01A9 ** CALL $IPUA
01AE ** DB 01H
01AF ** DB 04H
01B0 ** MOV BX,OFFSET DRIVE$
01B3 ** CALL $IPUB
01B8 084A IF LEN(DRIVE$) > 1 THEN GOTO REPEAT
01B8 ** INT 3
01B9 ** MOV BX,OFFSET DRIVE$
01BC ** CALL $LENA
01C1 ** CMP BX,01H
01C4 ** JG $+03H
01C6 ** JMP I00004
01C9 ** INT 3
01CA ** JMP I00003
01CD 084A IF DRIVE$ = "" THEN DRIVE$ = "A"
01CD ** I00004: INT 3
01CE ** MOV BX,OFFSET
01D1 ** MOV AX,OFFSET DRIVE$
01D4 ** CALL $SCMA
01D9 ** JE $+03H
01DB ** JMP I00005
01DE ** INT 3
01DF ** MOV BX,OFFSET
01E2 ** MOV DX,OFFSET DRIVE$
01E5 ** CALL $SASA
01EA 084A DRIVE% = ASC(DRIVE$)
01EA ** I00005: INT 3
01EB ** MOV BX,OFFSET DRIVE$
01EE ** CALL $LENB
01F3 ** XCHG AX,BX
01F4 ** MOV DRIVE%,AX
01F7 084C IF DRIVE% > 96 THEN DRIVE% = DRIVE% - 96 ELSE DRIVE% = DRIVE% -
64
01F7 ** INT 3
01F8 ** CMP WORD PTR DRIVE%,60H
PAGE 4
10-13-86
13:33:05
Offset Data Source Line IBM Personal Computer BASIC Compiler V2.00

01FD ** JG $+03H
01FF ** JMP I00006
0202 ** INT 3
0203 ** MOV AX,DRIVE%
0206 ** ADD AX,0FFA0H
0209 ** INTO
020A ** MOV DRIVE%,AX
020D ** JMP I00007
0210 ** I00006: INT 3
0211 ** MOV AX,DRIVE%
0214 ** ADD AX,0FFC0H
0217 ** INTO
0218 ** MOV DRIVE%,AX
021B 084C LOCATE 8,57: PRINT CHR$(DRIVE% + 64)
021B ** I00007: INT 3
021C ** MOV BX,0008H
021F ** CALL $LO0
0224 ** MOV BX,0039H
0227 ** CALL $LO2
022C ** INT 3
022D ** CALL $PR0A
0232 ** MOV BX,DRIVE%
0236 ** ADD BX,40H
0239 ** INTO
023A ** CALL $CHR
023F ** CALL $PV2D
0244 ** CALL $PV4
0249 084C
0249 084C NAMEAGAIN:
0249 ** INT 3
024A ** I00008: INT 3
024B ** CALL $LINA
0250 084C LOCATE 9,1: PRINT SPACE$(80)
0250 ** INT 3
0251 ** MOV BX,0009H
0254 ** CALL $LO0
0259 ** MOV BX,0001H
025C ** CALL $LO2
0261 ** INT 3
0262 ** CALL $PR0A
0267 ** MOV BX,0050H
026A ** CALL $SP$
026F ** CALL $PV2D
0274 ** CALL $PV4
0279 084C LOCATE 9,10: PRINT "Enter file name, RETURN for default file n
ame FILLER.TMP"
0279 ** INT 3
027A ** MOV BX,0009H
027D ** CALL $LO0
0282 ** MOV BX,000AH
0285 ** CALL $LO2
028A ** INT 3
028B ** CALL $PR0A
0290 ** MOV BX,OFFSET
PAGE 5
10-13-86
13:33:05
Offset Data Source Line IBM Personal Computer BASIC Compiler V2.00

0293 ** CALL $PV2D
0298 ** CALL $PV4
029D 084C LOCATE 9,57: INPUT "",DFNAME$
029D ** INT 3
029E ** MOV BX,0009H
02A1 ** CALL $LO0
02A6 ** MOV BX,0039H
02A9 ** CALL $LO2
02AE ** INT 3
02AF ** MOV BX,OFFSET
02B2 ** CALL $IN0A
02B7 ** DB 02H
02B8 ** CALL $IPUA
02BD ** DB 01H
02BE ** DB 04H
02BF ** MOV BX,OFFSET DFNAME$
02C2 ** CALL $IPUB
02C7 0850 IF LEN(DFNAME$) > 12 THEN GOTO NAMEAGAIN
02C7 ** INT 3
02C8 ** MOV BX,OFFSET DFNAME$
02CB ** CALL $LENA
02D0 ** CMP BX,0CH
02D3 ** JG $+03H
02D5 ** JMP I00009
02D8 ** INT 3
02D9 ** JMP I00008
02DC 0850 IF DFNAME$ = "" THEN DFNAME$ = "FILLER.TMP"
02DC ** I00009: INT 3
02DD ** MOV BX,OFFSET
02E0 ** MOV AX,OFFSET DFNAME$
02E3 ** CALL $SCMA
02E8 ** JE $+03H
02EA ** JMP I00010
02ED ** INT 3
02EE ** MOV BX,OFFSET
02F1 ** MOV DX,OFFSET DFNAME$
02F4 ** CALL $SASA
02F9 0850 LOCATE 9,57: PRINT SPACE$(12)
02F9 ** I00010: INT 3
02FA ** MOV BX,0009H
02FD ** CALL $LO0
0302 ** MOV BX,0039H
0305 ** CALL $LO2
030A ** INT 3
030B ** CALL $PR0A
0310 ** MOV BX,000CH
0313 ** CALL $SP$
0318 ** CALL $PV2D
031D ** CALL $PV4
0322 0850 LOCATE 9,57: PRINT DFNAME$
0322 ** INT 3
0323 ** MOV BX,0009H
0326 ** CALL $LO0
032B ** MOV BX,0039H
PAGE 6
10-13-86
13:33:05
Offset Data Source Line IBM Personal Computer BASIC Compiler V2.00

032E ** CALL $LO2
0333 ** INT 3
0334 ** CALL $PR0A
0339 ** MOV BX,OFFSET DFNAME$
033C ** CALL $PV2D
0341 ** CALL $PV4
0346 0850 LOCATE 10,10: PRINT "Fill character, RETURN for default: 00
(entry in hex)"
0346 ** INT 3
0347 ** MOV BX,000AH
034A ** CALL $LO0
034F ** CALL $LO2
0354 ** INT 3
0355 ** CALL $PR0A
035A ** MOV BX,OFFSET
035D ** CALL $PV2D
0362 ** CALL $PV4
0367 0850 LOCATE 11,10: PRINT "(Entries in decimal must be followed by D)
"
0367 ** INT 3
0368 ** MOV BX,000BH
036B ** CALL $LO0
0370 ** MOV BX,000AH
0373 ** CALL $LO2
0378 ** INT 3
0379 ** CALL $PR0A
037E ** MOV BX,OFFSET
0381 ** CALL $PV2D
0386 ** CALL $PV4
038B 0850 GOTO ENTERVAL
038B ** INT 3
038C ** JMP I00011
038F 0850
038F 0850 VALAGAIN:
038F ** INT 3
0390 ** I00012: INT 3
0391 ** CALL $LINA
0396 0850 LOCATE 10,48: PRINT SPACE$(32)
0396 ** INT 3
0397 ** MOV BX,000AH
039A ** CALL $LO0
039F ** MOV BX,0030H
03A2 ** CALL $LO2
03A7 ** INT 3
03A8 ** CALL $PR0A
03AD ** MOV BX,0020H
03B0 ** CALL $SP$
03B5 ** CALL $PV2D
03BA ** CALL $PV4
03BF 0850 LOCATE 11,1: PRINT SPACE$(80)
03BF ** INT 3
03C0 ** MOV BX,000BH
03C3 ** CALL $LO0
03C8 ** MOV BX,0001H
PAGE 7
10-13-86
13:33:05
Offset Data Source Line IBM Personal Computer BASIC Compiler V2.00

03CB ** CALL $LO2
03D0 ** INT 3
03D1 ** CALL $PR0A
03D6 ** MOV BX,0050H
03D9 ** CALL $SP$
03DE ** CALL $PV2D
03E3 ** CALL $PV4
03E8 0850 ENTERVAL:
03E8 ** INT 3
03E9 ** I00011: INT 3
03EA ** CALL $LINA
03EF 0850 LOCATE 10,48: INPUT "",DFILLER$
03EF ** INT 3
03F0 ** MOV BX,000AH
03F3 ** CALL $LO0
03F8 ** MOV BX,0030H
03FB ** CALL $LO2
0400 ** INT 3
0401 ** MOV BX,OFFSET
0404 ** CALL $IN0A
0409 ** DB 02H
040A ** CALL $IPUA
040F ** DB 01H
0410 ** DB 04H
0411 ** MOV BX,OFFSET DFILLER$
0414 ** CALL $IPUB
0419 0854 IF DFILLER$ = "" THEN DFILLER% = 0: GOTO GETSPACE
0419 ** INT 3
041A ** MOV BX,OFFSET
041D ** MOV AX,OFFSET DFILLER$
0420 ** CALL $SCMA
0425 ** JE $+03H
0427 ** JMP I00013
042A ** INT 3
042B ** MOV DFILLER%,0000H
0431 ** INT 3
0432 ** JMP I00014
0435 0856 IF LEN(DFILLER$) < 3 THEN GOTO HEXVALUE
0435 ** I00013: INT 3
0436 ** MOV BX,OFFSET DFILLER$
0439 ** CALL $LENA
043E ** CMP BX,03H
0441 ** JL $+03H
0443 ** JMP I00015
0446 ** INT 3
0447 ** JMP I00016
044A 0856 IF VAL(DFILLER$) > 255 THEN GOTO VALAGAIN
044A ** I00015: INT 3
044B ** MOV BX,OFFSET DFILLER$
044E ** CALL $VAL
0453 ** MOV DI,OFFSET
0456 ** CALL $FCMD
045B ** JA $+03H
045D ** JMP I00017
PAGE 8
10-13-86
13:33:05
Offset Data Source Line IBM Personal Computer BASIC Compiler V2.00

0460 ** INT 3
0461 ** JMP I00012
0464 0856 IF RIGHT$(DFILLER$,1) = "D" OR RIGHT$(DFILLER$,1) = "d" THEN DF
ILLER% = VAL(LEFT$(DFILLER$,3)):TYPE$ = "Decimal":GOTO GETSPACE
0464 ** I00017: INT 3
0465 ** MOV BX,OFFSET DFILLER$
0468 ** MOV DX,0001H
046B ** MOV CX,BX
046D ** CALL $RIG
0472 ** XCHG AX,BX
0473 ** MOV BX,OFFSET
0476 ** CALL $SCMA
047B ** MOV 0FAH[BP],DX
047E ** MOV DX,0000H
0481 ** JNE $+01H
0483 ** DEC DX
0484 ** MOV BX,CX
0486 ** MOV AX,DX
0488 ** MOV DX,0FAH[BP]
048B ** CALL $RIG
0490 ** XCHG AX,BX
0491 ** MOV DX,BX
0493 ** MOV BX,OFFSET
0496 ** CALL $SCMA
049B ** MOV CX,0000H
049E ** JNE $+01H
04A0 ** DEC CX
04A1 ** OR CX,DX
04A3 ** AND CX,CX
04A5 ** JNE $+03H
04A7 ** JMP I00018
04AA ** INT 3
04AB ** MOV BX,OFFSET DFILLER$
04AE ** MOV DX,0003H
04B1 ** CALL $LEF
04B6 ** CALL $VAL
04BB ** CALL $CIND
04C0 ** XCHG AX,BX
04C1 ** MOV DFILLER%,AX
04C4 ** INT 3
04C5 ** MOV BX,OFFSET
04C8 ** MOV DX,OFFSET TYPE$
04CB ** CALL $SASA
04D0 ** INT 3
04D1 ** JMP I00014
04D4 085A
04D4 085A HEXVALUE:
04D4 ** I00018: INT 3
04D5 ** I00016: INT 3
04D6 ** CALL $LINA
04DB 085A H2 = VAL(LEFT$(DFILLER$,1))
04DB ** INT 3
04DC ** MOV BX,OFFSET DFILLER$
04DF ** MOV DX,0001H
PAGE 9
10-13-86
13:33:05
Offset Data Source Line IBM Personal Computer BASIC Compiler V2.00

04E2 ** CALL $LEF
04E7 ** CALL $VAL
04EC ** CALL $CSPB
04F1 ** MOV DI,OFFSET H2!
04F4 ** CALL $FASC
04F9 085E H1 = VAL(MID$(DFILLER$,2,1))
04F9 ** INT 3
04FA ** MOV BX,OFFSET DFILLER$
04FD ** MOV DX,0002H
0500 ** MOV CX,0001H
0503 ** CALL $MID
0508 ** CALL $VAL
050D ** CALL $CSPB
0512 ** MOV DI,OFFSET H1!
0515 ** CALL $FASC
051A 0862 DFILLER% = H2 * 16 + H1
051A ** INT 3
051B ** MOV SI,OFFSET H2!
051E ** CALL $FSHA
0523 ** DB 04H
0524 ** MOV DI,OFFSET H1!
0527 ** CALL $FADC
052C ** CALL $CINC
0531 ** XCHG AX,BX
0532 ** MOV DFILLER%,AX
0535 0862 TYPE$ = "Hexadecimal"
0535 ** INT 3
0536 ** MOV BX,OFFSET
0539 ** MOV DX,OFFSET TYPE$
053C ** CALL $SASA
0541 0862
0541 0862 GETSPACE:
0541 ** INT 3
0542 ** I00014: INT 3
0543 ** CALL $LINA
0548 0862 LOCATE 11,1: PRINT SPACE$(80)
0548 ** INT 3
0549 ** MOV BX,000BH
054C ** CALL $LO0
0551 ** MOV BX,0001H
0554 ** CALL $LO2
0559 ** INT 3
055A ** CALL $PR0A
055F ** MOV BX,0050H
0562 ** CALL $SP$
0567 ** CALL $PV2D
056C ** CALL $PV4
0571 0862 LOCATE 10,52: PRINT SPACE$(20)
0571 ** INT 3
0572 ** MOV BX,000AH
0575 ** CALL $LO0
057A ** MOV BX,0034H
057D ** CALL $LO2
0582 ** INT 3
PAGE 10
10-13-86
13:33:05
Offset Data Source Line IBM Personal Computer BASIC Compiler V2.00

0583 ** CALL $PR0A
0588 ** MOV BX,0014H
058B ** CALL $SP$
0590 ** CALL $PV2D
0595 ** CALL $PV4
059A 0862 LOCATE 10,52: PRINT TYPE$
059A ** INT 3
059B ** MOV BX,000AH
059E ** CALL $LO0
05A3 ** MOV BX,0034H
05A6 ** CALL $LO2
05AB ** INT 3
05AC ** CALL $PR0A
05B1 ** MOV BX,OFFSET TYPE$
05B4 ** CALL $PV2D
05B9 ** CALL $PV4
05BE 0862 LOCATE 12,10: PRINT "checking free disk space, please wait ...
"
05BE ** INT 3
05BF ** MOV BX,000CH
05C2 ** CALL $LO0
05C7 ** MOV BX,000AH
05CA ** CALL $LO2
05CF ** INT 3
05D0 ** CALL $PR0A
05D5 ** MOV BX,OFFSET
05D8 ** CALL $PV2D
05DD ** CALL $PV4
05E2 0862
05E2 0862 BLOCK$ = STRING$(512,DFILLER%)
05E2 ** INT 3
05E3 ** MOV BX,0200H
05E6 ** MOV DX,DFILLER%
05EA ** CALL $ST$
05EF ** MOV DX,OFFSET BLOCK$
05F2 ** CALL $SASA
05F7 0866
05F7 0866 CALL DSPACE(DRIVE%,SECTORS%,BYTES%,CLUSTERS%)
05F7 ** INT 3
05F8 ** MOV AX,OFFSET DRIVE%
05FB ** PUSH AX
05FC ** MOV AX,OFFSET SECTORS%
05FF ** PUSH AX
0600 ** MOV AX,OFFSET BYTES%
0603 ** PUSH AX
0604 ** MOV AX,OFFSET CLUSTERS%
0607 ** PUSH AX
0608 ** CALL $ASP
060D ** CALL DSPACE
0612 ** PUSH DS
0613 ** POP ES
0614 ** CLD
0615 086C
0615 086C LOCATE 13,1: PRINT SPACE$(80)
PAGE 11
10-13-86
13:33:05
Offset Data Source Line IBM Personal Computer BASIC Compiler V2.00

0615 ** INT 3
0616 ** MOV BX,000DH
0619 ** CALL $LO0
061E ** MOV BX,0001H
0621 ** CALL $LO2
0626 ** INT 3
0627 ** CALL $PR0A
062C ** MOV BX,0050H
062F ** CALL $SP$
0634 ** CALL $PV2D
0639 ** CALL $PV4
063E 086C LOCATE 14,1: PRINT SPACE$(80)
063E ** INT 3
063F ** MOV BX,000EH
0642 ** CALL $LO0
0647 ** MOV BX,0001H
064A ** CALL $LO2
064F ** INT 3
0650 ** CALL $PR0A
0655 ** MOV BX,0050H
0658 ** CALL $SP$
065D ** CALL $PV2D
0662 ** CALL $PV4
0667 086C LOCATE 15,1: PRINT SPACE$(80)
0667 ** INT 3
0668 ** MOV BX,000FH
066B ** CALL $LO0
0670 ** MOV BX,0001H
0673 ** CALL $LO2
0678 ** INT 3
0679 ** CALL $PR0A
067E ** MOV BX,0050H
0681 ** CALL $SP$
0686 ** CALL $PV2D
068B ** CALL $PV4
0690 086C LOCATE 12,1: PRINT SPACE$(80)
0690 ** INT 3
0691 ** MOV BX,000CH
0694 ** CALL $LO0
0699 ** MOV BX,0001H
069C ** CALL $LO2
06A1 ** INT 3
06A2 ** CALL $PR0A
06A7 ** MOV BX,0050H
06AA ** CALL $SP$
06AF ** CALL $PV2D
06B4 ** CALL $PV4
06B9 086C LOCATE 12,10: PRINT "Bytes per sector: ";BYTES%
06B9 ** INT 3
06BA ** MOV BX,000CH
06BD ** CALL $LO0
06C2 ** MOV BX,000AH
06C5 ** CALL $LO2
06CA ** INT 3
PAGE 12
10-13-86
13:33:05
Offset Data Source Line IBM Personal Computer BASIC Compiler V2.00

06CB ** CALL $PR0A
06D0 ** MOV BX,OFFSET
06D3 ** CALL $PV1D
06D8 ** MOV BX,BYTES%
06DC ** CALL $PV2C
06E1 ** CALL $PV4
06E6 086C LOCATE 13,10: PRINT "Sectors per cluster: ";SECTORS%
06E6 ** INT 3
06E7 ** MOV BX,000DH
06EA ** CALL $LO0
06EF ** MOV BX,000AH
06F2 ** CALL $LO2
06F7 ** INT 3
06F8 ** CALL $PR0A
06FD ** MOV BX,OFFSET
0700 ** CALL $PV1D
0705 ** MOV BX,SECTORS%
0709 ** CALL $PV2C
070E ** CALL $PV4
0713 086C LOCATE 14,10: PRINT "Available clusters: ";CLUSTERS%;
0713 ** INT 3
0714 ** MOV BX,000EH
0717 ** CALL $LO0
071C ** MOV BX,000AH
071F ** CALL $LO2
0724 ** INT 3
0725 ** CALL $PR0A

072A ** MOV BX,OFFSET
072D ** CALL $PV1D
0732 ** MOV BX,CLUSTERS%
0736 ** CALL $PV1C
073B ** CALL $PV4
0740 086C PRINT " Total sectors: ";SECTORS%*CLUSTERS%
0740 ** INT 3
0741 ** CALL $PR0A
0746 ** MOV BX,OFFSET
0749 ** CALL $PV1D
074E ** MOV AX,CLUSTERS%
0751 ** IMUL SECTORS%
0755 ** INTO
0756 ** XCHG AX,BX
0757 ** CALL $PV2C
075C ** CALL $PV4
0761 086C SECTORS = SECTORS%: BYTES = BYTES%: CLUSTERS = CLUSTERS%
0761 ** INT 3
0762 ** MOV BX,SECTORS%
0766 ** CALL $CISA
076B ** MOV DI,OFFSET SECTORS!
076E ** CALL $FASC
0773 ** INT 3
0774 ** MOV BX,BYTES%
0778 ** CALL $CISA
077D ** MOV DI,OFFSET BYTES!
0780 ** CALL $FASC
PAGE 13
10-13-86
13:33:05
Offset Data Source Line IBM Personal Computer BASIC Compiler V2.00

0785 ** INT 3
0786 ** MOV BX,CLUSTERS%
078A ** CALL $CISA
078F ** MOV DI,OFFSET CLUSTERS!
0792 ** CALL $FASC
0797 0878
0797 0878 RES = SECTORS * BYTES * CLUSTERS / 1000
0797 ** INT 3
0798 ** MOV DI,OFFSET BYTES!
079B ** MOV SI,OFFSET SECTORS!
079E ** CALL $FMUA
07A3 ** MOV DI,OFFSET CLUSTERS!
07A6 ** CALL $FMUC
07AB ** MOV DI,OFFSET
07AE ** CALL $FDVC
07B3 ** MOV DI,OFFSET RES!
07B6 ** CALL $FASC
07BB 087C LOCATE 16,10: PRINT "There are ";
07BB ** INT 3
07BC ** MOV BX,0010H
07BF ** CALL $LO0
07C4 ** MOV BX,000AH
07C7 ** CALL $LO2
07CC ** INT 3
07CD ** CALL $PR0A
07D2 ** MOV BX,OFFSET
07D5 ** CALL $PV1D
07DA ** CALL $PV4
07DF 087C PRINT USING "####,.###"; RES;
07DF ** INT 3
07E0 ** MOV BX,OFFSET
07E3 ** CALL $PR0B
07E8 ** MOV BX,OFFSET RES!
07EB ** CALL $PV1A
07F0 ** CALL $PV4
07F5 087C PRINT " KBytes ready to be filled with ASCII ";
07F5 ** INT 3
07F6 ** CALL $PR0A
07FB ** MOV BX,OFFSET
07FE ** CALL $PV1D
0803 ** CALL $PV4
0808 087C IF DFILLER% < 32 THEN PRINT "CTRL ";CHR$(DFILLER%+64) ELSE PRIN
T CHR$(DFILLER%)
0808 ** INT 3
0809 ** CMP WORD PTR DFILLER%,20H
080E ** JL $+03H
0810 ** JMP I00019
0813 ** INT 3
0814 ** CALL $PR0A
0819 ** MOV BX,OFFSET
081C ** CALL $PV1D
0821 ** MOV BX,DFILLER%
0825 ** ADD BX,40H
0828 ** INTO
PAGE 14
10-13-86
13:33:05
Offset Data Source Line IBM Personal Computer BASIC Compiler V2.00

0829 ** CALL $CHR
082E ** CALL $PV2D
0833 ** CALL $PV4
0838 ** JMP I00020
083B ** I00019: INT 3
083C ** CALL $PR0A
0841 ** MOV BX,DFILLER%
0845 ** CALL $CHR
084A ** CALL $PV2D
084F ** CALL $PV4
0854 087C
0854 087C RECORDS% = INT(CLUSTERS * SECTORS)
0854 ** I00020: INT 3
0855 ** MOV DI,OFFSET SECTORS!
0858 ** MOV SI,OFFSET CLUSTERS!
085B ** CALL $FMUA
0860 ** MOV BX,OFFSET $AC!
0863 ** CALL $INT
0868 ** CALL $CINC
086D ** XCHG AX,BX
086E ** MOV RECORDS%,AX
0871 087E LOCATE 18,10: PRINT "How many sectors do you want to write, max
. ";RECORDS%
0871 ** INT 3
0872 ** MOV BX,0012H
0875 ** CALL $LO0
087A ** MOV BX,000AH
087D ** CALL $LO2
0882 ** INT 3
0883 ** CALL $PR0A
0888 ** MOV BX,OFFSET
088B ** CALL $PV1D
0890 ** MOV BX,RECORDS%
0894 ** CALL $PV2C
0899 ** CALL $PV4
089E 087E LOCATE 19,10: PRINT "(RETURN for default, 0 to exit program)"
089E ** INT 3
089F ** MOV BX,0013H
08A2 ** CALL $LO0
08A7 ** MOV BX,000AH
08AA ** CALL $LO2
08AF ** INT 3
08B0 ** CALL $PR0A
08B5 ** MOV BX,OFFSET
08B8 ** CALL $PV2D
08BD ** CALL $PV4
08C2 087E LOCATE 18,55: INPUT "",RECMIN$
08C2 ** INT 3
08C3 ** MOV BX,0012H
08C6 ** CALL $LO0
08CB ** MOV BX,0037H
08CE ** CALL $LO2
08D3 ** INT 3
08D4 ** MOV BX,OFFSET
PAGE 15
10-13-86
13:33:05
Offset Data Source Line IBM Personal Computer BASIC Compiler V2.00

08D7 ** CALL $IN0A
08DC ** DB 02H
08DD ** CALL $IPUA
08E2 ** DB 01H
08E3 ** DB 04H
08E4 ** MOV BX,OFFSET RECMIN$
08E7 ** CALL $IPUB
08EC 0882 LOCATE 18,55: PRINT SPACE$(6)
08EC ** INT 3
08ED ** MOV BX,0012H
08F0 ** CALL $LO0
08F5 ** MOV BX,0037H
08F8 ** CALL $LO2
08FD ** INT 3
08FE ** CALL $PR0A
0903 ** MOV BX,0006H
0906 ** CALL $SP$
090B ** CALL $PV2D
0910 ** CALL $PV4
0915 0882 LOCATE 18,55: PRINT RECMIN$
0915 ** INT 3
0916 ** MOV BX,0012H
0919 ** CALL $LO0
091E ** MOV BX,0037H
0921 ** CALL $LO2
0926 ** INT 3
0927 ** CALL $PR0A
092C ** MOV BX,OFFSET RECMIN$
092F ** CALL $PV2D
0934 ** CALL $PV4
0939 0882
0939 0882 CHECKENTRY:
0939 ** INT 3
093A ** I00021: INT 3
093B ** CALL $LINA
0940 0882 RECMIN% = VAL(RECMIN$)
0940 ** INT 3
0941 ** MOV BX,OFFSET RECMIN$
0944 ** CALL $VAL
0949 ** CALL $CIND
094E ** XCHG AX,BX
094F ** MOV RECMIN%,AX
0952 0884 IF RECMIN$ = "" THEN RECMIN% = RECORDS%
0952 ** INT 3
0953 ** MOV BX,OFFSET
0956 ** MOV AX,OFFSET RECMIN$
0959 ** CALL $SCMA
095E ** JE $+03H
0960 ** JMP I00022
0963 ** INT 3
0964 ** MOV AX,RECORDS%
0967 ** MOV RECMIN%,AX
096A 0884 IF RECMIN% < 1 THEN GOTO PROGEXIT
096A ** I00022: INT 3
PAGE 16
10-13-86
13:33:05
Offset Data Source Line IBM Personal Computer BASIC Compiler V2.00

096B ** CMP WORD PTR RECMIN%,01H
0970 ** JL $+03H
0972 ** JMP I00023
0975 ** INT 3
0976 ** JMP I00024
0979 0884 IF RECMIN% > RECORDS% THEN GOTO REFUSE
0979 ** I00023: INT 3
097A ** MOV AX,RECORDS%
097D ** CMP AX,RECMIN%
0981 ** JL $+03H
0983 ** JMP I00025
0986 ** INT 3
0987 ** JMP I00026
098A 0884 GOTO ACCEPT
098A ** I00025: INT 3
098B ** JMP I00027
098E 0884 REFUSE:
098E ** INT 3
098F ** I00026: INT 3
0990 ** CALL $LINA
0995 0884 LOCATE 18,10: PRINT "You are only allowed to write a maximum of
";RECORDS%;" sectors"
0995 ** INT 3
0996 ** MOV BX,0012H
0999 ** CALL $LO0
099E ** MOV BX,000AH
09A1 ** CALL $LO2
09A6 ** INT 3
09A7 ** CALL $PR0A
09AC ** MOV BX,OFFSET
09AF ** CALL $PV1D
09B4 ** MOV BX,RECORDS%
09B8 ** CALL $PV1C
09BD ** MOV BX,OFFSET
09C0 ** CALL $PV2D
09C5 ** CALL $PV4
09CA 0884 LOCATE 19,10: PRINT "Please enter again, 0 to exit program "
09CA ** INT 3
09CB ** MOV BX,0013H
09CE ** CALL $LO0
09D3 ** MOV BX,000AH
09D6 ** CALL $LO2
09DB ** INT 3
09DC ** CALL $PR0A
09E1 ** MOV BX,OFFSET
09E4 ** CALL $PV2D
09E9 ** CALL $PV4
09EE 0884 LOCATE 18,55: INPUT "",RECMIN$
09EE ** INT 3
09EF ** MOV BX,0012H
09F2 ** CALL $LO0
09F7 ** MOV BX,0037H
09FA ** CALL $LO2
09FF ** INT 3
PAGE 17
10-13-86
13:33:05
Offset Data Source Line IBM Personal Computer BASIC Compiler V2.00

0A00 ** MOV BX,OFFSET
0A03 ** CALL $IN0A
0A08 ** DB 02H
0A09 ** CALL $IPUA
0A0E ** DB 01H
0A0F ** DB 04H
0A10 ** MOV BX,OFFSET RECMIN$
0A13 ** CALL $IPUB
0A18 0884 LOCATE 18,1: PRINT SPACE$(80)
0A18 ** INT 3
0A19 ** MOV BX,0012H
0A1C ** CALL $LO0
0A21 ** MOV BX,0001H
0A24 ** CALL $LO2
0A29 ** INT 3
0A2A ** CALL $PR0A
0A2F ** MOV BX,0050H
0A32 ** CALL $SP$
0A37 ** CALL $PV2D
0A3C ** CALL $PV4
0A41 0884 LOCATE 19,1: PRINT SPACE$(80)
0A41 ** INT 3
0A42 ** MOV BX,0013H
0A45 ** CALL $LO0
0A4A ** MOV BX,0001H
0A4D ** CALL $LO2
0A52 ** INT 3
0A53 ** CALL $PR0A
0A58 ** MOV BX,0050H
0A5B ** CALL $SP$
0A60 ** CALL $PV2D
0A65 ** CALL $PV4
0A6A 0884 GOTO CHECKENTRY:
0A6A ** INT 3
0A6B ** JMP I00021
0A6E 0884 ACCEPT:
0A6E ** INT 3
0A6F ** I00027: INT 3
0A70 ** CALL $LINA
0A75 0884 RECORDS% = RECMIN%
0A75 ** INT 3
0A76 ** MOV AX,RECMIN%
0A79 ** MOV RECORDS%,AX
0A7C 0884 LOCATE 18,1: PRINT SPACE$(80)
0A7C ** INT 3
0A7D ** MOV BX,0012H
0A80 ** CALL $LO0
0A85 ** MOV BX,0001H
0A88 ** CALL $LO2
0A8D ** INT 3
0A8E ** CALL $PR0A
0A93 ** MOV BX,0050H
0A96 ** CALL $SP$
0A9B ** CALL $PV2D
PAGE 18
10-13-86
13:33:05
Offset Data Source Line IBM Personal Computer BASIC Compiler V2.00

0AA0 ** CALL $PV4
0AA5 0884 LOCATE 19,1: PRINT SPACE$(80)
0AA5 ** INT 3
0AA6 ** MOV BX,0013H
0AA9 ** CALL $LO0
0AAE ** MOV BX,0001H
0AB1 ** CALL $LO2
0AB6 ** INT 3
0AB7 ** CALL $PR0A
0ABC ** MOV BX,0050H
0ABF ** CALL $SP$
0AC4 ** CALL $PV2D
0AC9 ** CALL $PV4
0ACE 0884 LOCATE 18,10: PRINT "writing ";RECORDS%;" sectors, please wait
... "
0ACE ** INT 3
0ACF ** MOV BX,0012H
0AD2 ** CALL $LO0
0AD7 ** MOV BX,000AH
0ADA ** CALL $LO2
0ADF ** INT 3
0AE0 ** CALL $PR0A
0AE5 ** MOV BX,OFFSET
0AE8 ** CALL $PV1D
0AED ** MOV BX,RECORDS%
0AF1 ** CALL $PV1C
0AF6 ** MOV BX,OFFSET
0AF9 ** CALL $PV2D
0AFE ** CALL $PV4
0B03 0884
0B03 0884 LOCATE 20,10: PRINT "File named ";CHR$(DRIVE%+64)+":";DFNAME$
0B03 ** INT 3
0B04 ** MOV BX,0014H
0B07 ** CALL $LO0
0B0C ** MOV BX,000AH
0B0F ** CALL $LO2
0B14 ** INT 3
0B15 ** CALL $PR0A
0B1A ** MOV BX,OFFSET
0B1D ** CALL $PV1D
0B22 ** MOV BX,DRIVE%
0B26 ** ADD BX,40H
0B29 ** INTO
0B2A ** CALL $CHR
0B2F ** XCHG AX,BX
0B30 ** MOV BX,OFFSET
0B33 ** CALL $AD$A
0B38 ** CALL $PV1D
0B3D ** MOV BX,OFFSET DFNAME$
0B40 ** CALL $PV2D
0B45 ** CALL $PV4
0B4A 0884 DFNAME$ = CHR$(DRIVE%+64)+":"+DFNAME$+CHR$(0)+"$"
0B4A ** INT 3
0B4B ** MOV BX,DRIVE%
PAGE 19
10-13-86
13:33:05
Offset Data Source Line IBM Personal Computer BASIC Compiler V2.00

0B4F ** ADD BX,40H
0B52 ** INTO
0B53 ** CALL $CHR
0B58 ** XCHG AX,BX
0B59 ** MOV BX,OFFSET
0B5C ** CALL $AD$A
0B61 ** XCHG AX,BX
0B62 ** MOV BX,OFFSET DFNAME$
0B65 ** MOV DX,BX
0B67 ** CALL $AD$A
0B6C ** MOV CX,BX
0B6E ** XOR BX,BX
0B70 ** CALL $CHR
0B75 ** XCHG AX,CX
0B76 ** CALL $AD$A
0B7B ** XCHG AX,BX
0B7C ** MOV BX,OFFSET
0B7F ** CALL $AD$A
0B84 ** CALL $SASA
0B89 0884
0B89 0884 CALL DFILL(DFNAME$,BLOCK$,RECORDS%)
0B89 ** INT 3
0B8A ** MOV AX,OFFSET DFNAME$
0B8D ** PUSH AX
0B8E ** MOV AX,OFFSET BLOCK$
0B91 ** PUSH AX
0B92 ** MOV AX,OFFSET RECORDS%
0B95 ** PUSH AX
0B96 ** CALL $ASP
0B9B ** CALL DFILL
0BA0 ** PUSH DS
0BA1 ** POP ES
0BA2 ** CLD
0BA3 0884
0BA3 0884 PROGEXIT:
0BA3 ** INT 3
0BA4 ** I00024: INT 3
0BA5 ** CALL $LINA
0BAA 0884 IF RECMIN% < 1 THEN RESP$ = " PROGRAM ABORTED" ELSE RES
P$ = "DONE"
0BAA ** INT 3
0BAB ** CMP WORD PTR RECMIN%,01H
0BB0 ** JL $+03H
0BB2 ** JMP I00028
0BB5 ** INT 3
0BB6 ** MOV BX,OFFSET
0BB9 ** MOV DX,OFFSET RESP$
0BBC ** CALL $SASA
0BC1 ** JMP I00029
0BC4 ** I00028: INT 3
0BC5 ** MOV BX,OFFSET
0BC8 ** MOV DX,OFFSET RESP$
0BCB ** CALL $SASA
0BD0 0888 LOCATE 21,1: PRINT SPACE$(80)
PAGE 20
10-13-86
13:33:05
Offset Data Source Line IBM Personal Computer BASIC Compiler V2.00

0BD0 ** I00029: INT 3
0BD1 ** MOV BX,0015H
0BD4 ** CALL $LO0
0BD9 ** MOV BX,0001H
0BDC ** CALL $LO2
0BE1 ** INT 3
0BE2 ** CALL $PR0A
0BE7 ** MOV BX,0050H
0BEA ** CALL $SP$
0BEF ** CALL $PV2D
0BF4 ** CALL $PV4
0BF9 0888 LOCATE 21,67: PRINT RESP$
0BF9 ** INT 3
0BFA ** MOV BX,0015H
0BFD ** CALL $LO0
0C02 ** MOV BX,0043H
0C05 ** CALL $LO2
0C0A ** INT 3
0C0B ** CALL $PR0A
0C10 ** MOV BX,OFFSET RESP$
0C13 ** CALL $PV2D
0C18 ** CALL $PV4
0C1D 0888 LOCATE 22,10: INPUT "Do again ? (Y/N): ",ANSWER$
0C1D ** INT 3
0C1E ** MOV BX,0016H
0C21 ** CALL $LO0
0C26 ** MOV BX,000AH
0C29 ** CALL $LO2
0C2E ** INT 3
0C2F ** MOV BX,OFFSET
0C32 ** CALL $IN0A
0C37 ** DB 02H
0C38 ** CALL $IPUA
0C3D ** DB 01H
0C3E ** DB 04H
0C3F ** MOV BX,OFFSET ANSWER$
0C42 ** CALL $IPUB
0C47 088C A$ = LEFT$(ANSWER$,1)
0C47 ** INT 3
0C48 ** MOV BX,OFFSET ANSWER$
0C4B ** MOV DX,0001H
0C4E ** CALL $LEF
0C53 ** MOV DX,OFFSET A$
0C56 ** CALL $SASA
0C5B 0890 IF A$ = "y" OR A$ = "Y" THEN LOCATE 16,16: PRINT "were": GOTO S
TART
0C5B ** INT 3
0C5C ** MOV BX,OFFSET
0C5F ** MOV AX,OFFSET A$
0C62 ** CALL $SCMA
0C67 ** MOV DX,0000H
0C6A ** JNE $+01H
0C6C ** DEC DX
0C6D ** MOV BX,OFFSET
PAGE 21
10-13-86
13:33:05
Offset Data Source Line IBM Personal Computer BASIC Compiler V2.00

0C70 ** CALL $SCMA
0C75 ** MOV CX,0000H
0C78 ** JNE $+01H
0C7A ** DEC CX
0C7B ** OR CX,DX
0C7D ** AND CX,CX
0C7F ** JNE $+03H
0C81 ** JMP I00030
0C84 ** INT 3
0C85 ** MOV BX,0010H
0C88 ** CALL $LO0
0C8D ** CALL $LO2
0C92 ** INT 3
0C93 ** CALL $PR0A
0C98 ** MOV BX,OFFSET
0C9B ** CALL $PV2D
0CA0 ** CALL $PV4
0CA5 ** INT 3
0CA6 ** JMP I00002
0CA9 0890
0CA9 0890 SYSTEM
0CA9 ** I00030: INT 3
0CAA ** CALL $END
0CAF 0890
0CAF ** CALL $ENP
0CB6 0890

50424 Bytes Available
47950 Bytes Free

0 Warning Error(s)
0 Severe Error(s)




  3 Responses to “Category : Utilities for DOS and Windows Machines
Archive   : FILLDISK.ZIP
Filename : FILLDISK.LST

  1. Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!

  2. This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.

  3. But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: http://www.os2museum.com/wp/mtswslnk/