home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgLangD.iso / Assembly / DISK_I17.ASM < prev    next >
Assembly Source File  |  1986-09-24  |  920b  |  40 lines

  1. CGROUP    GROUP    CODE_SEG, DATA_SEG
  2.     ASSUME    CS:CGROUP, DS:CGROUP
  3.  
  4.  
  5. CODE_SEG    SEGMENT PUBLIC
  6.  
  7.     PUBLIC    READ_SECTOR
  8. DATA_SEG    SEGMENT PUBLIC
  9.     EXTRN    SECTOR:BYTE
  10.     EXTRN    DISK_DRIVE_NO:BYTE
  11.     EXTRN    CURRENT_SECTOR_NO:WORD
  12. DATA_SEG    ENDS
  13. ;-----------------------------------------------------------------------;
  14. ; This procedure reads one sector (512 bytes) into SECTOR.        ;
  15. ;                                    ;
  16. ; Reads:    CURRENT_SECTOR_NO, DISK_DRIVE_NO            ;
  17. ; Writes:    SECTOR                            ;
  18. ;-----------------------------------------------------------------------;
  19. READ_SECTOR    PROC    NEAR
  20.     PUSH    AX
  21.     PUSH    BX
  22.     PUSH    CX
  23.     PUSH    DX
  24.     MOV    AL,DISK_DRIVE_NO    ;Drive number
  25.     MOV    CX,1            ;Read only 1 sector
  26.     MOV    DX,CURRENT_SECTOR_NO    ;Logical sector number
  27.     LEA    BX,SECTOR        ;Where to store this sector
  28.     INT    25h            ;Read the sector
  29.     POPF                ;Discard flags put on stack by DOS
  30.     POP    DX
  31.     POP    CX
  32.     POP    BX
  33.     POP    AX
  34.     RET
  35. READ_SECTOR    ENDP
  36.  
  37. CODE_SEG    ENDS
  38.  
  39.     END
  40.