25.03.2015 Views

IBM 5150 PC Technical Reference (6025005, August, 1981) (PDF)

IBM 5150 PC Technical Reference (6025005, August, 1981) (PDF)

IBM 5150 PC Technical Reference (6025005, August, 1981) (PDF)

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

LOC OBJ LINE SOURCE<br />

,,-..., <br />

,,-..., <br />

EiO! EC<br />

E7DZ A82:0<br />

E704 7508<br />

E706 E2F9<br />

E7D8 sa<br />

E7D9 80ce80<br />

E7ae Ee88<br />

E7DE<br />

E7Df 83EA05<br />

E7El 59<br />

E7EZ: 8ACl<br />

E7£4 EE<br />

E7E5 E97EFF<br />

E7E8<br />

E7E8 80Z671007F<br />

E7ED 83C204<br />

E7FO BOOI<br />

E7n EE<br />

E7F3 83C202<br />

E1F6 2BC9<br />

E7Fa<br />

E7F8 EC<br />

E7F9 AB20<br />

E7FB 7507<br />

E7FD E2F9<br />

E7fF<br />

E7FF 8480<br />

EaCI E962FF<br />

EB04<br />

Ea04 4A<br />

Eaos<br />

ESOS EC<br />

E806 A801<br />

Eece 7509<br />

EeCA F6067100eO<br />

E80F 74F4<br />

E811 EBEC<br />

E813<br />

EB13 241E<br />

EB15 8AED<br />

EBl7 88940000<br />

E81B EC<br />

E81C E947ff<br />

E8lF<br />

E81F 88940000<br />

E823 83C205<br />

E826 EC<br />

E827 8AEO<br />

E82:9 42<br />

E82:A EC<br />

E82B E938FF<br />

1582 IN AL,DX ; GET STATUS<br />

158l TEST AL,ZOH ; IS TRANSMITTER READY<br />

1584 JNZ All ; OUT_CHAR<br />

1585 LOOP AID ; GO BACK FOR MORE. AND TEST FOR TIME OUT<br />

1586 POP AX ; RECOVER ORIGINAL INPUT<br />

1587 OR AH.SOH ; SET THE TIME OUT BIT<br />

1"8 JMP Al ; RETUWN<br />

1589 All: ; OUT_CHAR<br />

1590 SUB OX,S " DATA PORT<br />

1591 POP ex ; RECOVER IN ex TEMPORARILY<br />

1592 MOV AL,Cl ; GET OUT CHAR TO Al FOR OUT. STATUS IN AH<br />

1593 OUT DX,Al ; OUTPUT CHARACTER<br />

1594 JMP Al ; RETURN<br />

1595<br />

1596 J------ RECEIVE CHARACTER FROM COMMO LINE<br />

1597<br />

1598 .1.12 :<br />

1599 ANO BIOS_BREAK. 07FH ; TURN OFF BREAK BIT IN BYTE<br />

1600 ADO DX,4 j MODEM CON1ROl REGISTER<br />

1601 MOV Al,! ; DATA TERMINAL READY<br />

1602 OUT OX,At<br />

1603 ADO DX,2 ; MODEM STATUS REGISTER<br />

1604 SUB CX,CX ; ESTABLISH TIME OUT COUNT<br />

1605 A13: ; WAIT_DSR<br />

1606 IN Al,OX ; MODEM STATUS<br />

1607 TEST Al,2OM ; DATA SET READY<br />

1608 JNZ A1S ; IS IT READY YET<br />

1609 LOOP All ; WAIT UNTIL IT IS<br />

1610 A14: ; TIME_OUT_ERR<br />

1611 MOV AH.80H ; SET TIME OUT ERROR<br />

1612 JMP Al J RETUPN WITH ERROR<br />

1611 AIS: ; WAIT_OSR_ENO<br />

1614 DEC OX ; LINE STATUS REGISTER<br />

1615 A16: ; WAIT_RECV<br />

1616 IN Al,OX ; GET STATUS<br />

1617 TEST Alol J RECEIVE BUFFER FUll<br />

)618 JNZ A17 ; GET CHAR<br />

1619 TEST BIOS_BREAK,BOH J TEST FOR BREAK KEY<br />

1620 JZ Alb I LOOP IF ~mT<br />

)621 JMP A14 i SET TIME OUT ERROR<br />

1622 A17: ; GET_CHAR<br />

)623 AND Al,OOOl1110B ; TEST FOR ERROR CONDITIONS ON RECV CHAR<br />

1624 MOV AH,Al ; SAVE THIS PART OF STATUS FOR LATER OPERATION<br />

1625 MOV DX,RS232_BASE[ SI J ; DATA PORT<br />

1626 Al,DX ; GET CHARACTER FROH LINE<br />

1627 '" JMP Al ; RETURN<br />

1628<br />

1629 ;------ COMMO PORT STATUS ROUTINE<br />

1630<br />

1631 A18:<br />

1632 MOV OX ,RS232_BASE[SI J<br />

1633 ADO OX.S J CONTROL PORT<br />

1634 IN AL,OX ; GET LINE COHTROL STATUS<br />

1635 MOV AH,Al I PUT IN AH FOR RETURN<br />

1636 INC OX ; POINT TO MODEM STATUS REGISTER<br />

1637 IN Al,OX ; GET MODEM CONTROL STATUS<br />

1638 JMP Al ; RETURN<br />

1639 RS232_IO ENOP<br />

1640 ; ---- INT 16 -------------------------------­<br />

1641 i KEYBOARD I/O<br />

1642: THESE ROUTINES PROVIDE KEYBOARD SUPPORT<br />

)643 ; INPUT<br />

1644 I AHJ=O READ THE NEXT ASCII CHARACTER STRUCK FROM THE KEYBOARD<br />

1645 RETURN THE RESULT IN I AU, SCAN CODE IN (AH I<br />

164& (AHJ=l SET THE Z FlAG TO INDICATE IF AN ASCII CHARACTER IS AVAIlABLE<br />

1641 TO BE READ.<br />

1648 (ZF )=1 -- NO COOE AVAILABLE<br />

1649 (IF )=0 -- CODE IS AVAILABLE<br />

1650 IF Zf = 0, THE NEXT CHARACTE~ IN THE BUFftR TO BE READ IS<br />

1651 IN AX, AtID THE ENTRY REMAINS IN THE BUFFER<br />

1652 (AHI=2 RETURN THE CURRENT SHIFT STATUS IN AL PEGISTER<br />

1653 THE BIT SETTINGS FOR THIS CODE ARE INDICATED IN THE<br />

1654 THE EQUATES FOR KBJLAG<br />

1655 ; OUTPUT<br />

1656 AS NOTED ABOVE, OIRY AX Atm FLAGS CHANGED<br />

1651 All REGISTERS RETAWED<br />

1658 1--------- ------- -----------------------­<br />

A-23

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!