DOSSEG
.MODEL    SMALL

.STACK

.DATA

     PUBLIC    SECTOR_OFFSET
;-----------------------------------------------;
; SECTOR_OFFSET es el desplazamiento de la mi-  ;
; tad del sector, dentro del sector completo.   ;
; Tiene que ser un m£ltiplo de 16, y no puede   ;
; ser mayor de 256.                             ;
;-----------------------------------------------;
SECTOR_OFFSET  DW   0

     PUBLIC    CURRENT_SECTOR_NO, DISK_DRIVE_NO
CURRENT_SECTOR_NO   DW   0         ;Inicialmente sector 0
DISK_DRIVE_NO       DB   0         ;Inicialmente unidad A:

     PUBLIC    LINES_BEFORE_SECTOR, HEADER_LINE_NO
     PUBLIC    HEADER_PART_1, HEADER_PART_2
;-----------------------------------------------;
; LINES_BEFORE_SECTOR es el n£mero de l¡neas al ;
; principio de la pantalla despu‚s de presentar ;
; medio sector.                                 ;
;-----------------------------------------------;
LINES_BEFORE_SECTOR DB   2
HEADER_LINE_NO      DB   0
HEADER_PART_1       DB   'Disco ',0
HEADER_PART_2       DB   '         Sector ',0

.DATA?

     PUBLIC    SECTOR
;-----------------------------------------------;
; El sector de entrada (sobre 8192 bytes) es    ;
; almacenado en esta parte de la memoria.       ;
;-----------------------------------------------;
SECTOR    DB   8192 DUP (?)

.CODE

     EXTRN     CLEAR_SCREEN:PROC, READ_SECTOR:PROC
     EXTRN     INIT_SEC_DISP:PROC, WRITE_HEADER:PROC
DISK_PATCH     PROC
     MOV  AX,DGROUP           ;Pone el segmento de datos en AX
     MOV  DS,AX               ;Pone DS parta que apunte a los datos

     CALL CLEAR_SCREEN
     CALL WRITE_HEADER
     CALL READ_SECTOR
     CALL INIT_SEC_DISP

     MOV  AH,4Ch              ;Regresa al DOS
     INT  21h
DISK_PATCH     ENDP


     END  DISK_PATCH

