home *** CD-ROM | disk | FTP | other *** search
/ Shareware Supreme Volume 6 #1 / swsii.zip / swsii / 167 / FILLDISK.ZIP / DFILL.ASM < prev    next >
Assembly Source File  |  1990-10-10  |  1KB  |  64 lines

  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. SAVEBP    DW    0
  13. RETOFF     DW    0
  14. RETSEG    DW    0
  15. PARM3    DW    0
  16. PARM2    DW    0
  17. PARM1     DW    0
  18.  
  19. PARM    ENDS
  20.  
  21. PARMSIZE EQU OFFSET PARM1 - OFFSET RETSEG
  22.  
  23. CODE     SEGMENT BYTE PUBLIC 'CODE'
  24.      ASSUME    CS:CODE
  25.  
  26. DFILL        PROC    FAR
  27.         PUBLIC DFILL 
  28.  
  29.     PUSH    BP            ; SET UP BP FOR PARM ADDRESSING
  30.      MOV    BP, SP
  31.  
  32.      MOV    BX, [BP].PARM1       ; GET PTR(DFNAME$)   
  33.     MOV     DX, [BX+2]
  34.  
  35. ;    MOV    AH, 9            ; TEST FOR STRING TRANSFER OK
  36. ;    INT    33
  37.  
  38.     MOV    CX, 0             ; FILE ATTRIBUTE         
  39.          MOV     AH, 60            ; DOS FUNCTION CREATE FILE
  40.     INT     33            ; ------------------------
  41.         MOV        BX, AX              ; SAVE FILE HANDLE
  42.  
  43.     MOV    SI, [BP].PARM2        ; GET BLOCK$
  44.     MOV    DX, [SI+2]
  45.     MOV    SI, [BP].PARM3        ; GET RECORDS%
  46.     MOV    DI, [SI]
  47.  
  48. LOOP:      MOV     CX, 512         ; BLOCK LENGTH
  49.            MOV    AH, 64            ; DOS FUNCTION WRITE FILE
  50.     INT    33            ; -----------------------
  51.      DEC    DI                ; RECORDS%
  52.     JNZ    LOOP 
  53.  
  54.         MOV     AH, 62            ; DOS FUNCTION CLOSE FILE
  55.         INT     33              ; -----------------------
  56.      
  57.     POP     BP
  58.  
  59.     RET    PARMSIZE
  60.  
  61. DFILL    ENDP
  62. CODE     ENDS
  63.     END
  64.