.MODEL    SMALL

.CODE

     PUBLIC    READ_BYTE
;-----------------------------------------------------------------------;
; Este procedimiento lee un car cter ASCII. Este procedimiento es una   ;
; versi˘n de prueba de READ_BYTE.                                       ;
;                                                                       ;
; Devuelve:    AL      El c˘digo del car cter (a no ser que             ;
;                       AH sea igual a 0).                              ;
;              AH      0 si lee un car cter ASCII.                      ;
;                      1 si lee una tecla especial.                     ;
;-----------------------------------------------------------------------;
READ_BYTE PROC
     XOR  AH,AH               ;Llama a la funci˘n de lectura del teclado
     INT  16h                 ;Lee el c˘digo de car cter/exploraci˘n
                              ; del teclado
     OR   AL,AL               ;¨Es un c˘digo ampliado?
     JZ   EXTENDED_CODE       ;Sˇ
NOT_EXTENDED:
     XOR  AH,AH               ;Devuelve s˘lo el c˘digo ASCII
DONE_READING:
     RET

EXTENDED_CODE:
     MOV  AL,AH               ;Pone el c˘digo de exploraci˘n en AL
     MOV  AH,1                ;Avisa que es un c˘digo ampliado
     JMP  DONE_READING
READ_BYTE ENDP


     END
