CR   EQU  13             ;Retorno de carro
LF   EQU  10             ;Salto de l¡nea

.MODEL    SMALL
.CODE

     PUBLIC    CLEAR_SCREEN
;-----------------------------------------------------------------------;
; Este procedimiento borra la pantalla completa                         ;
;-----------------------------------------------------------------------;
CLEAR_SCREEN   PROC
     PUSH AX
     PUSH BX
     PUSH CX
     PUSH DX
     XOR  AL,AL          ;Deja en balnco toda la pantalla
     XOR  CX,CX          ;La esquina superior izquierda est  en (0,0)
     MOV  DH,24          ;La l¡nea inferior de la pantalla es la 24
     MOV  DL,79          ;El lado derecho est  en la columna 79
     MOV  BH,7           ;Usa el atributo normal para los espacio en blanco
     MOV  AH,6           ;Llama a la funci¢n SCROLL-UP
     INT  10h            ;Limpia la pantalla
     POP  DX
     POP  CX
     POP  BX
     POP  AX
     RET
CLEAR_SCREEN   ENDP


     PUBLIC    GOTO_XY
;-----------------------------------------------------------------------;
; Este procedimiento mueve el cursor                                    ;
;                                                                       ;
; A la entrada: DH     Fila (Y)                                         ;
;               DL     Columna (X)                                      ;
;-----------------------------------------------------------------------;
GOTO_XY        PROC
     PUSH AX
     PUSH BX
     MOV  BH,0           ;Visualiza la p gina 0
     MOV  AH,2           ;Llamada a SET CURSOR POSITION
     INT  10h
     POP  BX
     POP  AX
     RET
GOTO_XY        ENDP

     PUBLIC    SEND_CRLF
;-----------------------------------------------------------------------;
; Este procedimiento simplemente env¡a un retorno de carro y un salto   ;
; de l¡nea a la pantalla usando rutinas del DOS, de forma que el des-   ;
; plazamiento de la pantalla sea correcto.                              ;
;-----------------------------------------------------------------------;
SEND_CRLF PROC
     PUSH AX
     PUSH DX
     MOV  AH,2
     MOV  DL,CR
     INT  21h
     MOV  DL,LF
     INT  21h
     POP  DX
     POP  AX
     RET
SEND_CRLF ENDP


     END
