Microsoft MACRO Assembler Version 3.00 Page 1-1 D F I L L . A S M (SUBROUTINE TO FILLDISK.SRC) 10-10-86 1 PAGE 57,132 2 TITLE D F I L L . A S M (SUBROUTINE TO FILLDISK.SRC) 3 ; 4 ; DFILL CREATE, WRITE AND CLOSE FILE VIA INT 33, FUNCTIONS 60, 64 AND 62 5 ; 6 ; IN PARM 1, STACK FILE NAME (inclusive drive letter) 7 ; PARM 2, " BLOCK 512 BYTES (already filled) 8 ; PARM 3, " NUMBER OF SECTORS (to be written) 9 10 PARM STRUC 11 12 0000 0000 SAVEBP DW 0 13 0002 0000 RETOFF DW 0 14 0004 0000 RETSEG DW 0 15 0006 0000 PARM3 DW 0 16 0008 0000 PARM2 DW 0 17 000A 0000 PARM1 DW 0 18 19 000C PARM ENDS 20 21 = PARMSIZE EQU OFFSET PARM1 - OFFSET RETSEG 22 23 0000 CODE SEGMENT BYTE PUBLIC 'CODE' 24 ASSUME CS:CODE 25 26 0000 DFILL PROC FAR 27 PUBLIC DFILL 28 29 0000 55 PUSH BP ; SET UP BP FOR PARM ADDRESSING 30 0001 8B EC MOV BP, SP 31 32 0003 8B 5E 0A MOV BX, [BP].PARM1 ; GET PTR(DFNAME$) 33 0006 8B 57 02 MOV DX, [BX+2] 34 35 ; MOV AH, 9 ; TEST FOR STRING TRANSFER OK 36 ; INT 33 37 38 0009 B9 0000 MOV CX, 0 ; FILE ATTRIBUTE 39 000C B4 3C MOV AH, 60 ; DOS FUNCTION CREATE FILE 40 000E CD 21 INT 33 ; ------------------------ 41 0010 8B D8 MOV BX, AX ; SAVE FILE HANDLE 42 43 0012 8B 76 08 MOV SI, [BP].PARM2 ; GET BLOCK$ 44 0015 8B 54 02 MOV DX, [SI+2] 45 0018 8B 76 06 MOV SI, [BP].PARM3 ; GET RECORDS% 46 001B 8B 3C MOV DI, [SI] 47 48 001D B9 0200 LOOP: MOV CX, 512 ; BLOCK LENGTH 49 0020 B4 40 MOV AH, 64 ; DOS FUNCTION WRITE FILE 50 0022 CD 21 INT 33 ; ----------------------- 51 0024 4F DEC DI ; RECORDS% 52 0025 75 F6 JNZ LOOP 53  Microsoft MACRO Assembler Version 3.00 Page 1-2 D F I L L . A S M (SUBROUTINE TO FILLDISK.SRC) 10-10-86 54 0027 B4 3E MOV AH, 62 ; DOS FUNCTION CLOSE FILE 55 0029 CD 21 INT 33 ; ----------------------- 56 57 002B 5D POP BP 58 59 002C CA 0006 RET PARMSIZE 60 61 002F DFILL ENDP 62 002F CODE ENDS 63 END  Microsoft MACRO Assembler Version 3.00 Page Symbols-1 D F I L L . A S M (SUBROUTINE TO FILLDISK.SRC) 10-10-86 Structures and records: N a m e Width # fields Shift Width Mask Initial PARM . . . . . . . . . . . . . . 000C 0006 SAVEBP . . . . . . . . . . . . . 0000 RETOFF . . . . . . . . . . . . . 0002 RETSEG . . . . . . . . . . . . . 0004 PARM3. . . . . . . . . . . . . . 0006 PARM2. . . . . . . . . . . . . . 0008 PARM1. . . . . . . . . . . . . . 000A Segments and Groups: N a m e Size Align Combine Class CODE . . . . . . . . . . . . . . 002F BYTE PUBLIC 'CODE' Symbols: N a m e Type Value Attr DFILL. . . . . . . . . . . . . . F PROC 0000 CODE Global Length =002F LOOP . . . . . . . . . . . . . . L NEAR 001D CODE PARMSIZE . . . . . . . . . . . . Text OFFSET PARM1 - OFFSET RETSEG 49698 Bytes free Warning Severe Errors Errors 0 0