Figure 9-19 gives a typical program sequence which uses programmed I/O to input 80 characters from the 8251A, whose data buffer register's address is 0050, and put them in the memory buffer beginning at LINE.
Figure 9-19 Inputting a line of characters through an 8251A
MOV AL,00110101B ;ENABLE TRANSMITTER AND RECEIVER
OUT 51H,AL ;AND CLEAR ERROR BITS
MOV DI,0 ;INITIALIZE INDEX
MOV CX,80 ;PUT COUNT IN CX
BEGIN: IN AL,51H
TEST AL,02H
JZ BEGIN
IN AL,50H ;INPUT CHARACTER AND
MOV LINE[DI],AL ;PUT IN LINE BUFFER
INC DI
IN AL,51H ;CHECK ERROR
TEST AL,00111000B ;BITS AND
JNZ ERROR ;IF NO ERROR IS FOUND
LOOP BEGIN ;CONTINUE INPUTTING
JMP SHORT EXIT
ERROR: CALL NEAR PTR ER_ROUT ;ELSE CALL ERR_ROUT
EXIT: .
.
.
| PRETHODNA FOLIJA | SADRZAJ | SLEDECA FOLIJA |