home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Supreme Volume 6 #1
/
swsii.zip
/
swsii
/
167
/
FILLDISK.ZIP
/
FILLDISK.LST
< prev
next >
Wrap
File List
|
1990-10-10
|
57KB
|
1,220 lines
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 <const>
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 <const>
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 <const>
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 <const>
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 <const>
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 <const>
01D1 ** MOV AX,OFFSET DRIVE$
01D4 ** CALL $SCMA
01D9 ** JE $+03H
01DB ** JMP I00005
01DE ** INT 3
01DF ** MOV BX,OFFSET <const>
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 <const>
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 <const>
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 <const>
02E0 ** MOV AX,OFFSET DFNAME$
02E3 ** CALL $SCMA
02E8 ** JE $+03H
02EA ** JMP I00010
02ED ** INT 3
02EE ** MOV BX,OFFSET <const>
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 <const>
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 <const>
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 <const>
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 <const>
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 <const>
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 <const>
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 <const>
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 <const>
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 <const>
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 <const>
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 <const>
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 <const>
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 <const>
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 <const>
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 <const>
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 <const>
07D5 ** CALL $PV1D
07DA ** CALL $PV4
07DF 087C PRINT USING "####,.###"; RES;
07DF ** INT 3
07E0 ** MOV BX,OFFSET <const>
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 <const>
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 <const>
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 <const>
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 <const>
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 <const>
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 <const>
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 <const>
09AF ** CALL $PV1D
09B4 ** MOV BX,RECORDS%
09B8 ** CALL $PV1C
09BD ** MOV BX,OFFSET <const>
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 <const>
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 <const>
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 <const>
0AE8 ** CALL $PV1D
0AED ** MOV BX,RECORDS%
0AF1 ** CALL $PV1C
0AF6 ** MOV BX,OFFSET <const>
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 <const>
0B1D ** CALL $PV1D
0B22 ** MOV BX,DRIVE%
0B26 ** ADD BX,40H
0B29 ** INTO
0B2A ** CALL $CHR
0B2F ** XCHG AX,BX
0B30 ** MOV BX,OFFSET <const>
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 <const>
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 <const>
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 <const>
0BB9 ** MOV DX,OFFSET RESP$
0BBC ** CALL $SASA
0BC1 ** JMP I00029
0BC4 ** I00028: INT 3
0BC5 ** MOV BX,OFFSET <const>
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 <const>
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 <const>
0C5F ** MOV AX,OFFSET A$
0C62 ** CALL $SCMA
0C67 ** MOV DX,0000H
0C6A ** JNE $+01H
0C6C ** DEC DX
0C6D ** MOV BX,OFFSET <const>
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 <const>
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)