IMD 1.16: 2/09/2008 10:31:52 84-93812-03-d100 f81203 asyncmux.lst    @0|)wwЀЀtQql)  " }gA ` MIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIOS4 ME480081214245800800812142458 800812142458:ASYNCMUX LSTASYNCMUX DIAGNOSTIC LISTING 84-93812-11-D100 84-93812-01-D100   IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII M@jjggg@ o G`k_C# b# }B u[ ]e JRiCCp@<;: F8P@ G;NPCHC C GTqE'ɞ * Cϟx @0DAJL )‘ЀЀΎQBx"  i+ fEB)3 `jmBBI,v  BI,m  @EEFF)D^EF% jH@pOğv g7g4]X] PhV+s=胾c_N GF֞ؾ “@ALS)"$ C k1/j-h p vRw ppwp ki 15 !^\d X %'+Ns愾Q)s ED|{ @$ o O m J K i g. V tsFn`"FED) E`Cnrgy w"N{Rq1H }L2`0tG- Bc (>=)8008191550547580081915525025800819155250d( ) * + , - . / 0 . ASYNCMUX LST1563 COMP Q 07B4 C782 07B7 1564 COPY Q,CLOCK STORE IN RTC TIME CELL 07B5 6309 1565  POP 07B6 2309 1566 RSK 0004 1567 LPOOL 07B7 0091 CLOCK 07B8 0BA8 CHANL 07B9 021 B8 TEKTST 07BA 0BBE BAULST 1568 * 07BB 0078 1569 ONESEC WORD 120 120 TICKS  1570 * 1571 * SUBROUTINE TO REDUCE TIME-OUT INTERVAL BY HALF FOR 1572 * WRITE OR READ OPTION TABLE OPERATION 1573 * 000007BC 1574 HALFTIM EQU $ 07BC 4309 1575 PUSH SSTAT 07BD 0040 07BE C378 07B7 1576 COPY CLOCK,Q GET TICKS FROM CELL 07BF 4049 1577  COMP Q 07C0 4E08 1578 SHIFT Q,R,1 DIVIDE IT BY TWO 07C1 4049 1579 COMP Q  07C2 C774 07B7 1580 COPY Q,CLOCK STORE IT BACK IN TIME CELL 07C3 6309 1581 POP 07C4 2309 1582 RSK 1583 * 1584 * SUBROUTINE TO EXAMINE THE STATUS OF EACH CHANNEL & LOOP 1585 * UNTIL ALL BUSY FLAGS ARE GONE OR TIME-OUT OCCURES. 1586 * 000007C5 1587 EXAMSTA EQU $ 07C5 4309 1588 PUSH SSTAT 1PAGE 0054 MACRO (E100) ASYNC MUX DIAGNOSTIC 84-93812-10 D100 1980/08/19 15:29:30.75 SI = DM01.ASYNCMUX .ASM SO = DF00.ASYNCMUX .OBJ LI = DF01.ASYNCMUX .LST 07C6 0040 07C7 A2DC 0824 1589 LOOP7 COPY =CHNLST,X 07C8 A722 076B 1590 COPY X,CHLPTR1 SET CHANL. LIST ADDRESS POINTER 07C9 A080 0000 1591 EXAMLP COPY 0(X),X GET CHAN# 07CA 33D8 07E3 1592 JLT X,EXRSTA 07CB E343 078F 1593 COPY TSTLPT,Y 07CC 80C0 0000 1594 COPY 0(Y,X),A GET TEST COMMAND TYPE 07CD 1801 1595 AND =1,A IS IT XMT? 07CE 1146 07D5 1596 JEQ A,EXAM1 07CF E2D5 0825 1597 COPY =XMTSTAT,Y 07D0 08FF 1598 COPY =-1,A 07D1 B8C0 0000 1599 CSK A,0(Y,X)  IS XMT STATUS STILL NOT CHANGED 07D2 0000 1600 NOP 07D3 9E81 07D5 1601 JMP $+2 07D4 9E72 07C7 1602 JMP LOOP7 STATUS HAS NOT KHINOEL 07D5 E339 078F 1603 EXAM1 COPY TSTLPT,Y 07D6 80C0 0000 1604 COPY 0(Y,X),A GET COMMAND TYPE 07D7 1802 1605 AND =2,A IS IT RCV?  07D8 1146 07DF 1606 JEQ A,EXRSTA1 07D9 E2CC 0826 1607 COPY =RCVSTAT,Y GET POINTER OF 2ND STATUS LIST 07DA 08FF 1608 COPY =-1,A 07DB B8C0 0000 1609 CSK A,0(Y,X) IS STATUS STILL NOT CHANGED? 07DC 0000 1610 NOP 07DD 9E81 07DF 1611 JMP EXRSTA1 07DE 9E68 07C7 1612  JMP LOOP7 STATUS HAS NOT CHANGED 07DF DF0B 076B 1613 EXRSTA1 IMS CHLPTR1 INC. CHANL. POINTER 07E0 0000 1614 NOP 07E1 A309 076B 1615 COPY CHLPTR1,X 07E2 9E66 07C9 1616 JMP EXAMLP LOOKK AT STATUS OF NEXT CHANNEL 07E3 6309 1617 EXRSTA POP 07E4 2309 1618 RSK  1619 * 1620 * SUBROUTINE TO COMPARE TWO BUFFER CONTENTS. 1621 * UPON RETURN: 'BUFERR' SETS FOR ERROR ,RESETS FOR NO ERROR 1622 * 1PAGE 0055 MACRO (E100) ASYNC MUX DIAGNOSTIC 84-93812-10 D100 1980/2 08/19 15:29:32.25 SI = DM01.ASYNCMUX .ASM SO = DF00.ASYNCMUX .OBJ LI = DF01.ASYNCMUX .LST 000007E5 1623 BUFCHK EQU $ 07E5 4309 1624 PUSH SSTAT 07E6 0040 07E7 E2BE 0826 1625 COPY =RCVSTAT,Y GET RCV STATUS TABLE ADDRESS 07E8 08FF 1626 COPY =-1,A 07E9 B8C0 0000 1627 CSK A,0(Y,X) EOB INTERRUPT? 07EA 0000 1628 NOP 07EB 9E81 07ED 1629 JMP $+2 07EC 9E87 07F4 1630  JMP BCHKRET NO EOB INTERRUPT 07ED 83B9 0827 1631 COPY ERRLST,A GET ERROR TYPE 07EE 0C03  1632 CLSN A,=3 IS IT TYPE 3? 07EF 9E8D 07FD 1633 JMP ERTYP3 07F0 0C04 1634  CLSN A,=4 IS IT TYPE 4? 07F1 9E95 0807 1635 JMP ERTYP4 07F2 0C05 1636 CLSN A,=5 IS IT TYPE 5? 07F3 9E99 080D 1637 JMP ERTYP5 07F4 0900 1638 BCHKRET COPY =0,A 07F5 87B2 0828 1639 COPY A,BUFERR 07F6 2070 1640 ERBUF COPY K,X 07F7 8482 0002 1641  COPY A,AREG(X) 07F8 6309 1642 POP 07F9 2309 1643 RSK 07FA FE97 0812 1644 CHKBUF JSK  COMPBUF COMPARE THE BUFFERS 07FB 1138 07F4 1645 JEQ A,BCHKRET NO BUFFER ERROR 07FC 9E79 07F6 1646 JMP ERBUF 07FD E311 078F 1647 ERTYP3 COPY TSTLPT,Y 07FE 80C0 0000 1648 COPY 0(Y,X),A GET COMMAND TYPE 07FF 1802 1649 AND =2,A IS IT RCV? 0800 1133 07F4 1650 JEQ  A,BCHKRET 0801 E2A7 0829 1651 COPY =OPTRCVP,Y GET RCV. OPT. TABLE BUFFER POINTER 0802 80C0 0000 1652  COPY 0(Y,X),A GET RCV. OPT. TABLE BUFFER ADDRESS 0803 E2A6 082A 1653 COPY =OPTXMTP,Y GET XMT OPT. TABLE BUFFER POINTER 0804 E0C0 0000 1654 COPY 0(Y,X),Y GET XMT OPT. TABLE BUFFER ADDRESS 0805 4906  1655 COPY =6,Q NO. OF BYTES TO COMPARE 0806 9E73 07FA 1656 JMP CHKBUF 1PAGE 0056 MACRO (E100) ASYNC MUX DIAGNOSTIC 84-93812-10 D100 1980/08/19 15:29:34.00 SI = DM01.ASYNCMUX .ASM SO = DF00.ASYNCMUX .OBJ LI = DF01.ASYNCMUX .LST 0807 E2A3 082B 1657 ERTYP4 COPY =RBUFPTR,Y GET RCV. DATA BUFFER POINTER 0808 80C0 0000 1658 COPY 0(Y,X),A GET RCV DATA BUFFER ADDRESS 0809 E2A2 082C 1659 COPY =XBUFPTR,Y GET XMT ADATA BUFFER POINTER 080A E0C0 0000 1660 COPY 0(Y,X),Y GET XMT DATA BUFFER ADDRESS 080B C3A1 082D 1661 COPY BYTCNT,Q SET NO. OF BYTES TO COMPARE 080C 9E6D 07FA 1662 JMP CHKBUF 080D E29D 082B  1663 ERTYP5 COPY =RBUFPTR,Y GET RCV DATD BUFFER POINTER 080E 80C0 0000 1664 COPY 0(Y,X),A GET RCV DATA BUFFER ADDRESS 080F E29E 082E 1665 COPY =EOLBUF,Y GET EOL BUFFER ADDRESS 0810 C39C 082D 1666  COPY BYTCNT,Q 0811 9E68 07FA 1667 JMP CHKBUF 1668 * 1669 * SUBROUTINE TO COMPARE BUFFERS 1670 * ON ENTRY: (A)= 1ST BUFFER ADDRESS 1671 * (Y)= 2ND BUF3 FER ADDRESS 1672 * (Q)=NO. OF BYTES TO COMPARE 1673 * UPON RETURN: (A)=BUFFER MISCOMPARED ERROR IF SET 1674 * 00000812 1675 COMPBUF EQU $ 0812 4309 1676 PUSH  SSTAT 0813 0040 0814 511F 07F4 1677 JEQ Q,BCHKRET NO COMPARSION IF BYTE COUNT=0 0815 2048 1678  EXCH Q,X X REG. BECOMES BYTE POINTER 0816 2AFF 1679 COMPLP SUB =1,X DECREMENT BYTE POINTER 0817 0E25 1680 SBIT 2,S SET BYTE MODE 0818 0068 1681 EXCH Y,A 0819 C0C0 0000 1682 COPYB 0(Y,X),Q FETCH A BYTE FROM 1ST BUFFER 081A 6008 1683 EXCH A,Y 081B CCC0 0000 1684 SUBB 0(Y,X),Q COMPARE WITH 2ND BUFFER 081C 0E27 1685 RBIT 2,S 081D 5143 0821 1686 JEQ Q,COMPOK 081E 0901 1687 COPY =1,A 081F 8788 0828 1688 COPY  A,BUFERR 0820 9E55 07F6 1689 JMP ERBUF 0821 3292 07F4 1690 COMPOK JLE X,BCHKRET 1PAGE 0057 MACRO (E100) ASYNC MUX DIAGNOSTIC 84-93812-10 D100 1980/08/19 15:29:36.00 SI = DM01.ASYNCMUX .ASM SO = DF00.ASYNCMUX .OBJ LI = DF01.ASYNCMUX .LST 0822 9E73 0816 1691 JMP COMPLP 0823 E000 1692 DLYCNT WORD :E000  DELAY COUNT STORAGE 000B 1693 LPOOL 0824 0BA9 CHNLST 0825 0BD1 XMTSTAT 0826 0BD9 RCVSTAT 0827 0E8B ERRLST 0828 0741 BUFERR 0829 0CAC OPTRCVP 082A 0CA4 OPTXMTP 082B 0CC1 RBUFPTR 082C 0CB9 XBUFPTR 082D 0C72 BYTCNT 082E 0C73 EOLBUF 1694 * 1695 * SUBROUTINE TO CHECK STATUS AND REPORT ERRORS 1696 *  0000082F 1697 ERRCHK EQU $ 082F 4309 1698 PUSH SSTAT 0830 0040 0831 8271 0823 1699  COPY DLYCNT,A 0832 14BF 0832 1700 IJNE A,$ DELAY TO ENSURE ALL STATUS HAVE BEEN SETTLED 0833 A270 0824 1701 COPY =CHNLST,X INIT. CHANL. LIST ADDRESS POINTER 0834 A7D7 088C 1702 COPY X,CHLPTR 0835 A080 0000 1703 ERRKLP COPY 0(X),X GET CHAN# 0836 3341 0838 1704 JGE X,$+2 0837 9FDB 0893 1705 JMP ERRCHK10 0838 FFDB 0894 1706 JSK XMTCHK CHECK XMT STATUS 0839 116E 0868 1707 JEQ A,ERRCHK1 083A 82DA 0895 1708 COPY =CNLMSG,A PRINT CHANNEL NO. 083B FFD1 088D 1709 JSK MSG 083C 0020 1710 COPY X,A 083D FFD8 0896 1711 JSK DECOUT 083E FFCF 088E 1712 JSK NEWLIN 083F FFD7 0897 1713 JSK PBAUD PRINT BAUD RATE 1PAGE 0058  MACRO (E100) ASYNC MUX DIAGNOSTIC 84-93812-10 D100 1980/08/19 15:29:37.50 SI = DM01.ASYNCMUX .ASM SO = DF00.ASYNCMUX .OBJ LI = DF01.ASYNCMUX .LST 0840 82D7 0898 1714 COPY =ERRNUM,A 0841 FFCB 088D 1715 JSK MSG 0842 E2D6 0899 1716 COPY =ERRLST+1,Y GET ERROR # 0843 8040 0000 1717 COPY 0(Y),A 0844 FFD1 0896 1718 JSK DECOUT PRINT ERROR # 0845 E2D4 089A 1719 COPY =ERRTAB,Y ERROR MESSAGE T4 ABLE POINTER 0846 6002 1720 ADD A,Y 0847 8040 0000 1721 COPY 0(Y),A 0848 FFC4 088D 1722  JSK MSG PRINT ERROR MMSSAGE 0849 4000 1723 COPY A,Q Q=ERROR MESSAGE ADDRESS 084A 82D0 089B 1724 COPY =FAILMSG,A 084B FFC1 088D 1725 JSK MSG 084C FFC1 088E 1726  JSK NEWLIN 084D DFC1 088F 1727 IMS ERRCNT0 084E 0000 1728 NOP 084F 0104 1729  IN 4,A READ CONSOLE REGISTER 0850 B6BF 0890 1730 OR =:1000,A 0851 0404 1731  SELP A,4 OUTPUT ERROR INIKATOR TO CONSOLE 0852 83BE 0891 1732 COPY HLTFLG,A 0853 1141 0855 1733 JEQ A,$+2 0854 0E0D 1734 HLT ERROR HALT,Q=ERROR MSG. ADDRESS, X=CHAN# 0855 E24F 0825 1735 COPY =XMTSTAT,Y GET XMT STATUS POINTER 0856 08FF 1736 COPY =-1,A 0857 B8C0 0000 1737 CSK A,0(Y,X) IS STATUS =-1? 0858 0000 1738 NOP 0859 9E8A 0864 1739  JMP ERRCHK0 085A 82B7 0892 1740 COPY =ERR2,A PRINT NO EOB INTERRUPT 085B FFB1 088D 1741  JSK MSG 085C 4000 1742 COPY A,Q Q=ERROR MESSAGE ADDRESS 085D FFB0 088E 1743  JSK NEWLIN 085E 0104 1744 IN 4,A READ CONSOLE REGISTER 085F B6B0 0890 1745  OR =:1000,A 0860 0404 1746 SELP A,4 OUTPUT ERROR INDICATOR TO CONSOLE 0861 83AF 0891 1747 COPY HLTFLG,A 0862 1141 0864 1748 JEQ A,$+2 HALT ON ERROR REQUESTED? 1PAGE 0059 MACRO (E100) ASYNC MUX DIAGNOSTIC 84-93812-10 D100 1980/08/19 15:29:39.25 SI = DM01.ASYNCMUX .ASM SO = DF00.ASYNCMUX  .OBJ LI = DF01.ASYNCMUX .LST 0863 0E0D 1749 HLT ERROR HALT NO EOB INTERRUPT 0864 FFB7 089C 1750 ERRCHK0 JSK RCVCHK CHECK RCV STATUS 0865 1141 0867 1751 JEQ A,$+2 0866 9E8A 0871 1752 JMP ERRCHK2 0867 9EC5 08AD 1753 JMP ERRCHK3 0868 FFB3 089C 1754 ERRCHK1 JSK  RCVCHK CHECK RCV STATUS 0869 11C1 086B 1755 JNE A,$+2 086A 9FB2 089D 1756 JMP NOERR+1  086B 82A9 0895 1757 COPY =CNLMSG,A 086C FFA0 088D 1758 JSK MSG 086D 0020 1759 COPY X,A PRINT CHAN# 086E FFA7 0896 1760 JSK DECOUT 086F FF9E 088E 1761 JSK NEWLIN 0870 FFA6 0897 1762 JSK PBAUD PRINT BAUD RATE 0871 82A6 0898 1763 ERRCHK2 COPY =ERRNUM,A 0872 FF9A 088D 1764 JSK MSG 0873 E2AA 089E 1765 COPY =ERRLST+2,Y 0874 8040 0000 1766 COPY 0(Y),A GET ERROR CODE 0875 FFA0 0896 1767 JSK DECOUT PRINT ERROR CODE 0876 E2A3 089A 1768 COPY =ERRTAB,Y 0877 6002 1769 ADD A,Y 0878 8040 0000 1770 COPY 0(Y),A  A=ERROR MESSAGE ADDRESS 0879 FF93 088D 1771 JSK MSG PRINT ERROR MESSAGFE 087A 4000 1772 5  COPY A,Q Q=ERROR MESSAGE ADDRESS 087B 829F 089B 1773 COPY =FAILMSG,A 087C FF90 088D 1774 JSK MSG 087D FF90 088E 1775 JSK NEWLIN 087E DF90 088F 1776 IMS ERRCNT0 INC. ERROR COUNTER 087F 0000 1777 NOP 0880 0104 1778 IN 4,A READ CONSOLE 0881 B68E 0890 1779 OR =:1000,A 0882 0404 1780 SELP A,4 OUTPUT ERROR INDICATOR TO CONSOLE 0883 838D 0891 1781 COPY HLTFLG,A 0884 1141 0886 1782 JEQ A,$+2 0885 0E0D 1783  HLT ERROR HALT, Q=ERROR ADDRESS MESSAGE, X=CHNA# 1PAGE 0060 MACRO (E100) ASYNC MUX DIAGNOSTIC 84-93812-10 D100 1980/08/19 15:29:41.50 SI = DM01.ASYNCMUX .ASM SO = DF00.ASYNCMUX .OBJ LI = DF01.ASYNCMUX .LST 0886 E21F 0826 1784 COPY =RCVSTAT,Y 0887 08FF 1785 COPY =-1,A 0888 B8C0 0000 1786 CSK  A,0(Y,X) IS RCV STATUS =-1? 0889 0000 1787 NOP 088A 9EA2 08AD 1788 JMP ERRCHK3 088B 9E95 08A1 1789 JMP ERRCK22 0015 1790 LPOOL 088C 0BBB CHLPTR 088D 0A37 MSG 088E 0A45 NEWLIN 088F 0248 ERRCNT0 0890 1000 0891 024B HLTFLG 0892 0D89 ERR2 0893 094C ERRCHK10 0894 0705 XMTCHK 0895 0F97 CNLMSG 0896 0A4D DECOUT 0897 0AD3 PBAUD 0898 0FA5 ERRNUM 0899 0E8C 089A 0E8F ERRTAB 089B 0D65 FAILMSG 089C 071D RCVCHK 089D 0948 089E 0E8D 089F 08A0 08A1 8270 0892 1791 ERRCK22 COPY =ERR2,A PRIONT NO EOB INTERRUPT 08A2 FF6A 088D 1792  JSK MSG 08A3 4000 1793 COPY A,Q Q=ERROR MESSAGE ADDRESS 08A4 FF69 088E 1794 JSK NEWLIN 08A5 DF69 088F 1795 IMS ERRCNT0 08A6 0000 1796 NOP 08A7 0104 1797  IN 4,A READ CONSOLE 1PAGE 0061 MACRO (E100) ASYNC MUX DIAGNOSTIC 84-93812-10 D100 1980/08/19 15:29:42.50 SI = DM01.ASYNCMUX .ASM SO = DF00.ASYNCMUX .OBJ LI = DF01.ASYNCMUX .LST 08A8 B667 0890 1798 OR =:1000,A 08A9 0404 1799 SELP A,4 OUTPUT ERROR INDICATOR TO CONSOLE 08AA 8366 0891 1800  COPY HLTFLG,A 08AB 1141 08AD 1801 JEQ A,$+2 08AC 0E0D 1802 HLT NO EOB INTERRUPT, X=CHAN# 08AD E3D3 0901 1803 ERRCHK3 COPY TSTLPT,Y 08AE 80C0 0000 1804 COPY 0(Y,X),A GET TYPE OF COMMAND 08AF 1801 1805 AND =1,A IS IT XMT? 08B0 114B 08BC 1806 JEQ A,ERRCHK4 08B1 82D9 090B 1807 COPY =XMTSE,A 08B2 FF5A 088D 1808 JSK MSG 08B3 83CE 0902 1809  COPY XMTMSK,A 08B4 FFD7 090C 1810 JSK HEXOUT PRINT EXPECTED XMT STATUS 08B5 FF58 088E 1811  JSK NEWLIN 08B6 82D6 090D 1812 COPY =XMTS,A 08B7 FF55 088D 1813 JSK MSG 08B8 E2D5 090E 1814 COPY =XMTSTAT,Y 08B9 80C0 0000 1815 COPY 0(Y,X),A 08BA FFD1 090C 1816 JSK  HEXOUT PRINT ACTUAL XMT STATUS 08BB FF52 088E 1817 JSK NEWLIN 08BC E3C4 0901 1818 ERRCHK4 COPY 6  TSTLPT,Y 08BD 80C0 0000 1819 COPY 0(Y,X),A 08BE 1802 1820 AND =2,A IS IT RCV? 08BF 114B 08CB 1821 JEQ A,ERRCHK5 08C0 82CE 090F 1822 COPY =RCVSE,A 08C1 FF4B 088D 1823  JSK MSG 08C2 83CD 0910 1824 COPY RCVMSK,A 08C3 FFC8 090C 1825 JSK HEXOUT PRINT EXPECTED RCV STATUS 08C4 FF49 088E 1826 JSK NEWLIN 08C5 82CB 0911 1827 COPY =RCVS,A 08C6 FF46 088D 1828 JSK MSG 08C7 E2CA 0912 1829 COPY =RCVSTAT,Y 08C8 80C0 0000 1830 COPY  0(Y,X),A 08C9 FFC2 090C 1831 JSK HEXOUT PRINT ACTUAL RCV STATUS 08CA FF43 088E 1832 JSK  NEWLIN 1PAGE 0062 MACRO (E100) ASYNC MUX DIAGNOSTIC 84-93812-10 D100 1980/08/19 15:29:44.25 SI = DM01.ASYNCMUX .ASM SO = DF00.ASYNCMUX .OBJ LI = DF01.ASYNCMUX .LST 08CB 83B7 0903 1833 ERRCHK5 COPY ERRLST,A GET ERROR TYPE 08CC 0C02 1834 CLSN A,=2 TYPE 2 ERROR ? 08CD 9E87 08D5 1835 JMP ERRCHK6 08CE 0C03  1836 CLSN A,=3 TYPE 3 ERROR ? 08CF 9E9A 08EA 1837 JMP ERRCHK7 08D0 0C04 1838 CLSN A,=4 TYPE 4 ERROR ? 08D1 9EC5 0917 1839 JMP ERRCHK8 08D2 0C05 1840  CLSN A,=5 TYPE 5 ERROR ? 08D3 9EDC 0930 1841 JMP ERRCHK9 08D4 9EF2 0947 1842 JMP  NOERR 08D5 E3AB 0901 1843 ERRCHK6 COPY TSTLPT,Y 08D6 80C0 0000 1844 COPY 0(Y,X),A GET COMMAND TYPE 08D7 1802 1845 AND =2,A IS IT RCV? 08D8 11C1 08DA 1846 JNE A,$+2 08D9 9EED 0947 1847 JMP NOERR 08DA 82AA 0905 1848 COPY =EXPMSG,A PRINT EXPECT MOD. REG. 08DB FF31 088D  1849 JSK MSG 08DC 82B6 0913 1850 COPY =MRGMSG,A 08DD FF2F 088D 1851 JSK MSG 08DE 83B1 0910 1852 COPY RCVMSK,A GET MOD. REG. BUFFER POINTER 08DF FFAC 090C 1853 JSK HEXOUT PRINT EXPECTED MOD. REG. 08E0 FF2D 088E 1854 JSK NEWLIN 08E1 82A4 0906 1855 COPY =ACTMSG,A PRINT ACTUAL MOD. REG. 08E2 FF2A 088D 1856 JSK MSG 08E3 82AF 0913 1857 COPY =MRGMSG,A 08E4 FF28 088D 1858 JSK MSG 08E5 E2AC 0912 1859 COPY =RCVSTAT,Y GET ACTUAL MOD. REG BUFFER ADDRESS 08E6 80C0 0000 1860 COPY 0(Y,X),A GET ACTUAL MOD. REG DATA 08E7 FFA4 090C 1861 JSK HEXOUT PRINT ACTUAL MOD. REG. 08E8 FF25 088E 1862 JSK NEWLIN 08E9 9EDD 0947 1863 JMP NOERR 08EA 839C 0907 1864 ERRCHK7 COPY BUFERR,A BUFFER ERROR IN TYPE 3? 08EB 113D 08E9 1865 JEQ A,$-2 08EC 8298 0905 1866 COPY =EXPMSG,A 08ED FF1F 088D 1867 JSK MSG 1PAGE 0063 MACRO (E100) ASYNC MUX DIAGNOSTIC 84-93812-10 D100 1980/08/19 15:29:46.25 SI = DM01.ASYNCMUX .ASM SO = DF00.ASYNCMUX .OBJ LI = DF01.ASYNCMUX .LST 08EE 82A5 0914 1868 COPY =OPTBMSG,A 08EF FF1D 088D 1869 JSK MSG 08F0 E297 0908 7  1870 COPY =OPTXMTP,Y 08F1 A0C0 0000 1871 COPY 0(Y,X),X GET EXPECTED OPT. TABLE ADDRESS 08F2 4903 1872 COPY =3,Q 6 BYTES TO BE PRINTED 08F3 FF95 0909 1873 JSK BUFDUMP 08F4 A317 088C 1874 COPY CHLPTR,X RECOVER CHAN# IN X REG. 08F5 A080 0000 1875 COPY 0(X),X 08F6 828F 0906 1876 COPY =ACTMSG,A PRINT ACTUAL OPT. TABLE 08F7 FF15 088D 1877 JSK MSG 08F8 829B 0914 1878 COPY =OPTBMSG,A 08F9 FF13 088D 1879 JSK MSG 08FA E28F 090A 1880 COPY =OPTRCVP,Y 08FB A0C0 0000 1881 COPY 0(Y,X),X GET ACTUAL OPT. TABLE ADDRESS 08FC 4903 1882 COPY =3,Q PRINT 6 BYTES 08FD FF8B 0909 1883 JSK BUFDUMP 08FE A30D 088C 1884 COPY CHLPTR,X 08FF A080 0000 1885 COPY 0(X),X RECOVER CHAN# IN X REG. 0900 9EC6 0947 1886 ERRCK77 JMP NOERR 0016 1887 LPOOL 0901 0B93 TSTLPT 0902 0CA2 XMTMSK 0903 0E8B ERRLST 0904 0947 NOERR 0905 0FDA EXPMSG 0906 0FE0 ACTMSG 0907 0741 BUFERR 0908 0CA4 OPTXMTP 0909 0A77 BUFDUMP 090A 0CAC OPTRCVP 090B 0FC2 XMTSE 090C 0A64 HEXOUT 090D 0FAC XMTS 090E 0BD1 XMTSTAT 090F 0FCE RCVSE 1PAGE 0064 MACRO (E100) ASYNC MUX DIAGNOSTIC 84-93812-10 D100 1980/08/19 15:29:47.50 SI = DM01.ASYNCMUX .ASM SO = DF00.ASYNCMUX .OBJ LI = DF01.ASYNCMUX .LST 0910 0CA3 RCVMSK 0911 0FB7 RCVS 0912 0BD9 RCVSTAT 0913 0FE5 MRGMSG 0914 0FEC OPTBMSG 0915 0916 0917 836F 0907 1888 ERRCHK8 COPY BUFERR,A  BUFFER ERROR? 0918 1127 0900 1889 JEQ A,ERRCK77 0919 826B 0905 1890 COPY =EXPMSG,A 091A FFB4 094F 1891 JSK MSG 091B 82B4 0950 1892 COPY =DATMSG,A 091C FFB2 094F 1893 JSK MSG 091D E2B3 0951 1894 COPY =XBUFPTR,Y 091E A0C0 0000 1895 COPY 0(Y,X),X GET EXPECTED DATA BUFFER ADDRESS 091F C3AE 094E 1896 COPY BYTCNT,Q GET NO. BYTES TO PRINT 0920 4E08 1897 SHIFT Q,R,1 0921 FF67 0909 1898 JSK BUFDUMP PRINT EXPECTED DATA 0922 A3AF 0952 1899 COPY CHLPTR,X 0923 A080 0000 1900 COPY 0(X),X RECOVER CHAN# IN X REG. 0924 8261 0906 1901 COPY  =ACTMSG,A 0925 FFA9 094F 1902 JSK MSG 0926 82A9 0950 1903 COPY =DATMSG,A 0927 FFA7 094F 1904 JSK MSG 0928 82AA 0953 1905 COPY =RBUFPTR,A 0929 A0C0 0000 1906 COPY 0(Y,X),X  GET ACTUAL DATA BUFFER ADDRESS 092A C3A3 094E 1907 COPY BYTCNT,Q GET NO. OF BYTES TO PRINT 092B 4E08  1908 SHIFT Q,R,1 092C FF5C 0909 1909 JSK BUFDUMP PRINT ACTUAL DATA 092D A3A4 0952 1910 COPY CHLPTR,X 092E A080 0000 1911 COPY 0(X),X RECOVER CHAN# IN X REG. 092F 9E97 0947 1912 JMP NOERR 0930 8356 0907 1913 ERRCHK9 COPY BUFERR,A BUFFER ERROR? 0931 113D 092F 1914 JEQ A,$-2 0932 8252 0905 1915 COPY =EXPMSG,A 1PAGE 0065 MACRO (E100) ASYNC MUX DIAGNOSTIC 84-93812-10 D108 0 1980/08/19 15:29:49.50 SI = DM01.ASYNCMUX .ASM SO = DF00.ASYNCMUX .OBJ LI = DF01.ASYNCMUX .LST 0933 FF9B 094F  1916 JSK MSG 0934 829B 0950 1917 COPY =DATMSG,A 0935 FF99 094F 1918 JSK MSG 0936 A29D 0954 1919 COPY =EOLBUF,X 0937 C396 094E 1920 COPY BYTCNT,Q GET BYTE COUNTS 0938 4B01 1921 ADD =1,Q 0939 4E08 1922 SHIFT Q,R,1 093A FF4E 0909 1923 JSK BUFDUMP PRINT ACTUAL EOL BUFFER 093B A396 0952 1924 COPY CHLPTR,X 093C A080 0000 1925 COPY 0(X),X RECOVER CHAN# IN X REG. 093D 8248 0906 1926 COPY =ACTMSG,A PRINT ACTUAL DATA 093E FF90 094F 1927 JSK MSG 093F 8290 0950 1928 COPY =DATMSG,A 0940 FF8E 094F 1929 JSK MSG 0941 E291 0953 1930 COPY =RBUFPTR,Y 0942 A0C0 0000 1931 COPY 0(Y,X),X GET ACTUAL EOL DATA BUFFER POINTER 0943 C38A 094E 1932 COPY BYTCNT,Q GET BYTE COUNT 0944 4B01 1933 ADD =1,Q 0945 4E08 1934 SHIFT Q,R,1 0946 FF42 0909 1935 JSK BUFDUMP PRINT ACTUAL EOL BUFFER 0947 FF8D 0955 1936 NOERR JSK NEWLIN 0948 DF89 0952 1937 IMS CHLPTR INC. CHAN# LIST POINTER 0949 0000 1938 NOP 094A A387 0952 1939 COPY CHLPTR,X 094B 9F8A 0956 1940 JMP ERRKLP  CHECK ERROR OF NEXT CHANNEL 094C 6309 1941 ERRCHK10 POP 094D 2309 1942 RSK 0009 1943  LPOOL 094E 0C72 BYTCNT 094F 0A37 MSG 0950 100B DATMSG 0951 0CB9 XBUFPTR 0952 0BBB CHLPTR 0953 0CC1 RBUFPTR 0954 0C73 EOLBUF 1PAGE 0066 MACRO (E100) ASYNC MUX DIAGNOSTIC 84-93812-10 D100 1980/08/19 15:29:50.75 SI = DM01.ASYNCMUX .ASM SO = DF00.ASYNCMUX .OBJ LI = DF01.ASYNCMUX .LST 0955 0A45 NEWLIN 0956 0835 ERRKLP 1944 *  1945 * SUBROUTINE TO WRITE OPT. TABLE & CHECK ERROR 1946 * 00000957 1947 WOPTAB EQU $ 0957 4309 1948 PUSH SSTAT 0958 0040 0959 822E 0908 1949 COPY =OPTXMTP,A 095A 87DA 09B5  1950 COPY A,BUFPTR0 SET XMT BUFFER POINTER 095B 0904 1951 COPY =4,A 095C 8771 094E 1952 COPY A,BYTCNT SET 4 BYTE COUNTS 095D C2CE 09AC 1953 COPY =TSTLST4,Q 095E C722 0901 1954  COPY Q,TSTLPT SET TEST LIST POINTER 095F FFD6 09B6 1955 JSK PAIOB SET UP AUTO I/O BLOCKS 0960 FFCC 09AD 1956 WOPTAB1 JSK SZETIME SET TIME-OUT INTERVAL 0961 FFCC 09AE 1957 JSK HALFTIM REDUCE INTERVAL BY HALF 0962 0903 1958 COPY =:03,A SET ERROR TYPE 0963 871F 0903 1959  COPY A,ERRLST 0964 C2D2 09B7 1960 COPY =WROPT,Q 0965 C7C9 09AF 1961 COPY Q,CMDWD1  SET WRITE OPT. COMMAND 0966 E21C 0903 1962 COPY =ERRLST,Y 0967 0905 1963 COPY =:05,A 0968 8441 0001 1964 COPY A,1(Y) SET ERROR CODES 0969 0900 1965 COPY =NORXMT,A SET EXP9 ECTED XMT STATUS 096A 8717 0902 1966 COPY A,XMTMSK 096B FFC5 09B1 1967 JSK DOIT SEND COMMANDS AND CHECK FOR ERRORS 096C 6309 1968 POP 096D 2309 1969 RSK 1970 *  1971 * SUBROUTINE TO READ & VERIFY OPTION TABLE 1972 * 0000096E 1973 ROPTAB EQU  $ 096E 4309 1974 PUSH SSTAT 096F 0040 1PAGE 0067 MACRO (E100) ASYNC MUX DIAGNOSTIC 84-93812-10 D100 1980/08/19 15:29:52.50 SI = DM01.ASYNCMUX .ASM SO = DF00.ASYNCMUX .OBJ LI = DF01.ASYNCMUX .LST 0970 A2C7 09B8 1975 COPY =CHNLST1,X 0971 A7C7 09B9 1976 COPY X,CHLPTR2 0972 A080 0000 1977 ROPT2 COPY 0(X),X GET CHAN# 0973 33F5 09A9 1978 JLT X,ROPTAB5 0974 A7C5 09BA 1979 COPY X,CHNLST SET ONE CHANNEL AT A TIME 0975 08FF 1980 COPY =-1,A 0976 87C4 09BB 1981 COPY A,CHNLST+1 0977 82BA 09B2 1982 COPY =TSTLST3,A 0978 8708 0901 1983 COPY A,TSTLPT SET TEST LIST POINTER 0979 8210 090A 1984 COPY =OPTRCVP,A 097A 87C1 09BC 1985 COPY A,BUFPTR1 SET RCV BUFFER POINTER 097B 0907 1986 COPY =7,A 097C 8751 094E 1987 COPY A,BYTCNT SET BYTE COUNT COPY =64,A 097D FFBF 09BD 1988 JSK CLRBUF CLEAR BUFFER 097E E3BF 09BE 1989 COPY TSTPTR,Y 097F 8040 0000 1990 COPY 0(Y),A GET TEST NO. 0980 0C01 1991 CLSN A,=1 IT IS TEST 1? 0981 9E84 0986 1992 JMP ROPTAB2 0982 0940 1993 COPY =64,A 0983 87BB 09BF 1994 COPY A,MODE SET SECONDARY VECTOR OFFSET 0984 FFB1 09B6 1995 JSK PAIOB SET AUTO I/O BLOCKS 0985 9E83 0989 1996 JMP ROPTAB1 0986 0900 1997 ROPTAB2 COPY =0,A 0987 87B7 09BF 1998 COPY  A,MODE SET PRIMARY VECTOR 0988 FFAD 09B6 1999 JSK PAIOB 0989 FFA3 09AD 2000 ROPTAB1 JSK SZETIME SZET UP TIME-OUT INTERVAL 098A FFA3 09AE 2001 JSK HALFTIM 098B 0903 2002 COPY =:03,A 098C 87A6 09B3 2003 COPY A,ERRLST SET ERROR TYPE 098D C2B2 09C0 2004 COPY =RDOPT,Q 098E C7A5 09B4 2005 COPY Q,CMDWD2 098F E2A3 09B3 2006 COPY =ERRLST,Y 0990 0906 2007  COPY =:06,A 0991 8442 0002 2008 COPY A,2(Y) SET ERROR CODE 0992 0900 2009 COPY =NORRCV,A SET RCV STATUS 1PAGE 0068 MACRO (E100) ASYNC MUX DIAGNOSTIC 84-93812-10 D100 1980/08/19 15:29:54.50 SI = DM01.ASYNCMUX .ASM SO = DF00.ASYNCMUX .OBJ LI = DF01.ASYNCMUX .LST 0993 87AD 09C1 2010 COPY A,RCVMSK 0994 FFAD 09C2 2011 JSK CLRSTA CLEAR STATUS TABLES 0995 FFAD 09C3 2012 JSK CLXSTA 0996 0E85 2013 SBIT 8,S 0997 0E55 2014 SBIT 5,S 0998 FFAB 09C4 2015 JSK OUTOP SEND COMMANDS 0999 FFAB 09C5 2016 JSK EXAMSTA WAIT FOR EOB INTERRUPTS 099A 0E57 2017 :  RBIT 5,S DSIABLE RTC CLOCK 099B A39E 09BA 2018 COPY CHNLST,X GET CHAN# 099C E2A9 09C6  2019 COPY =OPTRCVP,Y 099D E0C0 0000 2020 COPY 0(Y,X),Y GET RCV OPT. TABLE ADDRESS 099E 0E25 2021 SBIT 2,S SET BYTE MODE 099F 8044 0004 2022 COPYB 4(Y),A SET STATUS BYTE 09A0 8447 0007 2023 COPYB A,7(Y) PUT IT IN 8TH BYTE 09A1 8046 0006 2024 COPYB 6(Y),A 09A2 8444 0004 2025 COPYB A,4(Y) 09A3 0E27 2026 RBIT 2,S 09A4 FFA2 09C7 2027 JSK  ERRCHK CHECK FOR ERRORS 09A5 DF93 09B9 2028 IMS CHLPTR2 INC. CHANL. LIST POINTER 09A6 0000  2029 NOP 09A7 A391 09B9 2030 COPY CHLPTR2,X 09A8 9E49 0972 2031 JMP ROPT2 REPEAT FOR NEXT CHANNEL 09A9 FF9E 09C8 2032 ROPTAB5 JSK RCHANL 09AA 6309 2033 POP 09AB 2309 2034 RSK 001E 2035 LPOOL 09AC 102F TSTLST4 09AD 0797 SZETIME 09AE 07BC HALFTIM 09AF 03D2 CMDWD1  09B0 0000 NORXMT 09B1 0A88 DOIT 09B2 1027 TSTLST3 09B3 0E8B ERRLST 09B4 03D3 CMDWD2 1PAGE 0069 MACRO (E100) ASYNC MUX DIAGNOSTIC 84-93812-10 D100 1980/08/19 15:29:56.25 SI = DM01.ASYNCMUX .ASM SO = DF00.ASYNCMUX .OBJ LI = DF01.ASYNCMUX .LST 09B5 0CB5 BUFPTR0 09B6 076F PAIOB 09B7 1020 WROPT 09B8 0BB2 CHNLST1 09B9 0BBD CHLPTR2 09BA 0BA9 CHNLST 09BB 0BAA 09BC 0CB6 BUFPTR1 09BD 0AB3 CLRBUF 09BE 0BA5 TSTPTR 09BF 03D1 MODE 09C0 4100 RDOPT 09C1 0CA3 RCVMSK 09C2 06EF CLRSTA 09C3 06FA CLXSTA 09C4 0656 OUTOP 09C5 07C5 EXAMSTA 09C6 0CAC OPTRCVP 09C7 082F ERRCHK 09C8 0AA6 RCHANL 09C9 2036 * 2037 * SUBROUTINE TO WRITE MODEM REGISTER 2038 * ON ENTRY: 'MDMREG'=DATA TO BE WRITTEN 2039 * 000009CA 2040 WMOREG EQU $ 09CA 4309 2041 PUSH SSTAT 09CB 0040  09CC FF60 09AD 2042 JSK SZETIME SET UP TIME OUT INTERVAL 09CD FF60 09AE 2043 JSK HALFTIM 09CE 825D 09AC 2044 COPY =TSTLST4,A 09CF 87C1 0A11 2045 COPY A,TSTLPT SET TEST LIST POINTER 09D0 C2C1 0A12 2046 COPY =WRMOD,Q 09D1 F7C1 0A13 2047 OR MDMREG,Q COMBINE WRITE MOD. REG. CMD. WITH DATA 09D2 C75C 09AF 2048 COPY Q,CMDWD1 1PAGE 0070 MACRO (E100) ASYNC MUX DIAGNOSTIC 84-93812-10 D100 1980/08/19 15:29:57.00 SI = DM01.ASYNCMUX .ASM SO = DF00.ASYNCMUX .OBJ LI = DF01.ASYNCMUX .LST 09D3 E25F 09B3 2049 COPY =ERRLST,Y 09D4 0902 2050 COPY =2,A 09D5 8440 0000 2051 COPY A,0(Y) SET ERROR TYPE 09D6 0903 2052 COPY =:03,A 09D7 8441 0001 2053 COPY A,1(Y) SET ERROR CODES 09D8 0900 2054 COPY =NORXMT,A 09D9 87BA 0A14 2055 COPY A,XMTMSK GET EXPECTED XMT STATUS 09DA FF56 09B1 2056 JSK DOIT DO THE TEST 09DB 6309 2057 POP 09DC 2309 2058 RSK 2059 * 2060 * SUBROUTINE TO READ MODEM REGISTERS ;  2061 * ON ENTRY: 'RCVMSK'=EXPECTED STATUS 2062 * 000009DD 2063 RMOREG EQU $ 09DD 4309  2064 PUSH SSTAT 09DE 0040 09DF 8252 09B2 2065 COPY =TSTLST3,A 09E0 87B0 0A11 2066 COPY A,TSTLPT SET UP TEST LIST POINTER 09E1 C2B3 0A15 2067 COPY =RDMOD,Q GET READ MOD. REG. COMMAND 09E2 C751 09B4 2068 COPY Q,CMDWD2 09E3 E24F 09B3 2069 COPY =ERRLST,Y 09E4 0902 2070  COPY =2,A SET ERROR TYPE 09E5 8440 0000 2071 COPY A,0(Y) 09E6 0904 2072 COPY =:04,A 09E7 8442 0002 2073 COPY A,2(Y) 09E8 FF44 09AD 2074 JSK SZETIME 09E9 FF47 09B1 2075 JSK DOIT 09EA 6309 2076 POP 09EB 2309 2077 RSK 2078 *  2079 * INPUT A BYTE FROM THE KEYBOARD 2080 * UPON REURN: (A)=CHARACTER BYTE IN ASCII  2081 * 0000007C 2082 DTTYDA EQU :7C 1PAGE 0071 MACRO (E100) ASYNC MUX DIAGNOSTIC 84-93812-10 D100 1980/08/19 15:29:58.75 SI = DM01.ASYNCMUX .ASM SO = DF00.ASYNCMUX .OBJ LI = DF01.ASYNCMUX .LST 000009EC 2083  IKB EQU $ 09EC 4309 2084 PUSH SSTAT 09ED 0040 09EE 0E87 2085 RBIT 8,S 09EF 82A6 0A16 2086 COPY =:9618,A START ECHO, NO INTERRUPTS 09F0 02F9 2087 OUT A,DTTYDA%1;1 09F1 A2A5 0A17 2088 COPY =:100,X 000009F2 2089 IKB10 EQU $ 09F2 01F9 2090 IN DTTYDA%1;1,A 09F3 0E39 2091 SHIFT A,RO,4 09F4 36BD 09F2 2092 JF OV,IKB10 09F5 01F8 2093 IN DTTYDA%1,A 09F6 22F9 2094 OUT X,DTTYDA%1;1 09F7 2070 2095  COPY K,X 09F8 187F 2096 AND =:7F,A 09F9 8482 0002 2097 COPY A,AREG(X) 09FA 0E85  2098 SBIT 8,S ENABLE INTERRUPT 09FB 6309 2099 POP 09FC 2309 2100 RSK 2101 * 2102 * OUTPUT A CHARACTER TO CRT , (A)=CHARACTER 2103 * 000009FD 2104 OTT EQU $ 09FD 4309 2105 PUSH SSTAT 09FE 0040 09FF 0E87 2106 RBIT  8,S 0A00 16CD 0A0E 2107 JF SS,OTT90 OMIT ALL OUPUT IF SENSE SW. IS NOT SET 0A01 A396 0A18 2108  COPY PNTFLG,X 0A02 31CB 0A0E 2109 JNE X,OTT90 0A03 A295 0A19 2110 COPY =:8612,X 0A04 22F9 2111 OUT X,DTTYDA%1;1 0A05 02F8 2112 OUT A,DTTYDA%1 0A06 A290 0A17 2113  COPY =:100,X 00000A07 2114 OTT10 EQU $ 0A07 01F9 2115 IN DTTYDA%1;1,A 1PAGE 0072 MACRO (E100) ASYNC MUX DIAGNOSTIC 84-93812-10 D100 1980/08/19 15:30:00.25 SI = DM01.ASYNCMUX .ASM SO = DF00.ASYNCMUX  .OBJ LI = DF01.ASYNCMUX .LST 0A08 0E49 2116 SHIFT A,RO,5 0A09 363D 0A07 2117 JT OV,OTT10 00000A0A 2118 OTT20 EQU $ 0A0A 01F9 2119 IN DTTYDA%1;1,A 0A0B 0E49 2120 <  SHIFT A,RO,5 0A0C 36BD 0A0A 2121 JF OV,OTT20 0A0D 22F9 2122 OUT X,DTTYDA%1;1  00000A0E 2123 OTT90 EQU $ 0A0E 0E85 2124 SBIT 8,S ENABLE INTERRUPT 0A0F 6309  2125 POP 0A10 2309 2126 RSK 0009 2127 LPOOL 0A11 0B93 TSTLPT 0A12 1000 WRMOD 0A13 0C99 MDMREG 0A14 0CA2 XMTMSK 0A15 4000 RDMOD 0A16 9618 0A17 0100 0A18 02B9 PNTFLG 0A19 8612 2128 * 2129 * INPUT DECIMAL NUMBER, CONVERT IT TO BINARY 2130 * AND PUT IT IN A REG. THE 1ST NON-NUMERIC 2131 * CHARACTER TERMINATES THE INPUT AND IS RETURNED 2132 * IN Q REG. NUMBERS IN THE RANGE 0-32767 MAY BE TYPED. 2133 * 00000A1A 2134 DECIN EQU $ 0A1A 4309 2135  PUSH SSTAT 0A1B 0040 0A1C 4900 2136 COPY =0,Q ZERO THE TEMP. 0A1D FE4E 09EC 2137  JSK IKB 0A1E 187F 2138 AND =:7F,A MASK OFF THE PARITY BIT 0A1F 0C0D 2139  CLSN A,=:0D IS 1ST BYTE A CR? 0A20 9E90 0A31 2140 JMP DECI30 1PAGE 0073 MACRO (E100) ASYNC MUX DIAGNOSTIC 84-93812-10 D100 1980/08/19 15:30:01.25 SI = DM01.ASYNCMUX .ASM SO = DF00.ASYNCMUX .OBJ LI = DF01.ASYNCMUX  .LST 0A21 9E82 0A24 2141 JMP $+3 00000A22 2142 DECI10 EQU $ 0A22 FE49 09EC 2143 JSK IKB GET A BYTE 0A23 187F 2144 AND =:7F,A MASK OFF PARITY BIT 0A24 0D30 2145 CSK A,='0' 0A25 9E8C 0A32 2146 JMP DECI90 <'0',INVALID NUMERIC 0A26 0000 2147  NOP >'0',POTENTIALLY VALID 0A27 0D39 2148 CSK A,='9' ='0',VALID 0A28 9E81 0A2A 2149 JMP DECI20 ,'9',VALID NUMERIC 0A29 9E88 0A32 2150 JMP DECI90 >'9',INVALID NUMERIC 00000A2A 2151 DECI20 EQU $ 0A2A 180F 2152 AND =:F,A 0A2B 2040 2153  COPY Q,X SAVE A COPY OF TEMP. 0A2C 4E21 2154 SHIFT Q,LO,3 TEMP*8 0A2D 4022  2155 ADD X,Q TEMP*9 0A2E 4022 2156 ADD X,Q TEMP*10 0A2F 4002  2157 ADD A,Q TMEP*10+NUM 0A30 9E71 0A22 2158 JMP DECI10 00000A31 2159 DECI30 EQU $ 0A31 0900 2160 COPY =0,A FLAGGED A CR 00000A32 2161 DECI90 EQU $ 0A32 2070 2162 COPY K,X 0A33 8483 0003 2163 COPY A,QREG(X) 0A34 C482 0002 2164 COPY Q,AREG(X) 0A35 6309 2165 POP 0A36 2309 2166 RSK 2167 *  2168 * OUPUT A MESSAGE WHOSE ADDRESS IS IN (A). MESSAGE IS 2169 * TERMINATED BY A BYTE OF ALL ONE BITS  2170 * 00000A37 2171 MSG EQU $ 0A37 4309 2172 PUSH SSTAT 0A38 0040 0A39 0002 2173 ADD A,A BYTE ADDRESS 0A3A 2000 2174 COPY A,X 1PAGE 0074 MACRO (E= 100) ASYNC MUX DIAGNOSTIC 84-93812-10 D100 1980/08/19 15:30:02.75 SI = DM01.ASYNCMUX .ASM SO = DF00.ASYNCMUX .OBJ LI = DF01.ASYNCMUX .LST 00000A3B 2175 MSG10 EQU $ 0A3B 0E25 2176 SBIT 2,S SET BYTE MODE 0A3C 8080 0000 2177 COPYB 0(X),A 0A3D 0E27 2178 RBIT 2,S 0A3E 0CFF 2179  CLSN =:FF,A TERMINAL BYTE? 0A3F 9E83 0A43 2180 JMP MSG90 YES, END 0A40 FE3C 09FD 2181 JSK OTT NO, OUTPUT IT 0A41 2B01 2182 ADD =1,X BUMP BYTE POINTER 0A42 9E78 0A3B 2183 JMP MSG10 00000A43 2184 MSG90 EQU $ 0A43 6309 2185 POP 0A44 2309 2186 RSK 2187 * 2188 * OUTPUT A LF/CR 2189 * 00000A45 2190 NEWLIN EQU $ 0A45 4309 2191 PUSH SSTAT 0A46 0040 0A47 090D 2192 COPY  =:D,A 0A48 FE34 09FD 2193 JSK OTT 0A49 090A 2194 COPY =:A,A 0A4A FE32 09FD 2195  JSK OTT 0A4B 6309 2196 POP 0A4C 2309 2197 RSK 2198 *  2199 * CONVERT BINARY NUMBER IN (A) TO DECIMAL 2200 * AND OUTPUT IT ON THE CRT 2201 *  00000A4D 2202 DECOUT EQU $ 0A4D 4309 2203 PUSH SSTAT 0A4E 0040 0A4F E2A6 0A76 2204  COPY =DECTAB,Y 0A50 4000 2205 COPY A,Q 00000A51 2206 DECO10 EQU $ 0A51 A040 0000  2207 COPY 0(Y),X 1PAGE 0075 MACRO (E100) ASYNC MUX DIAGNOSTIC 84-93812-10 D100 1980/08/19 15:30:04.00 SI = DM01.ASYNCMUX .ASM SO = DF00.ASYNCMUX .OBJ LI = DF01.ASYNCMUX .LST 0A52 33C9 0A5C 2208 JLT X,DECO90  0A53 08FF 2209 COPY =-1,A 00000A54 2210 DECO20 EQU $ 0A54 0B01 2211 ADD  =1,A 0A55 4023 2212 SUB X,Q 0A56 533D 0A54 2213 JGE Q,DECO20 0A57 4022 2214  ADD X,Q 0A58 0B30 2215 ADD ='0',A 0A59 FE23 09FD 2216 JSK OTT 0A5A 6B01  2217 ADD =1,Y 0A5B 9E75 0A51 2218 JMP DECO10 00000A5C 2219 DECO90 EQU $ 0A5C 6309 2220 POP 0A5D 2309 2221 RSK 00000A5E 2222 DECTAB EQU $ 0A5E 2710 2223 WORD 10000,1000,100,10,1,-1 0A5F 03E8 0A60 0064 0A61 000A 0A62 0001 0A63 FFFF 2224 *  2225 * CONVERT (A) TO HEX OUTPUT 2226 * 00000A64 2227 HEXOUT EQU $ 0A64 4309  2228 PUSH SSTAT 0A65 0040 0A66 2904 2229 COPY =4,X COUNT CHARS. TO OUTPUT 0A67 4000 2230 COPY A,Q SAVE ARGMENT 00000A68 2231 HEXO10 EQU $ 0A68 0EB9 2232 SHIFT A,RO,12 GET UPPER NIBBLE 0A69 0AF6 2233 SUB =10,A 0A6A 1342 0A6D 2234  JGE A,HEXO20 0A6B 0B3A 2235 ADD ='0'+10,A 0A6C 9E81 0A6E 2236 JMP HEXO30 1PAGE 00> 76 MACRO (E100) ASYNC MUX DIAGNOSTIC 84-93812-10 D100 1980/08/19 15:30:05.25 SI = DM01.ASYNCMUX .ASM SO = DF00.ASYNCMUX  .OBJ LI = DF01.ASYNCMUX .LST 00000A6D 2237 HEXO20 EQU $ 0A6D 0B41 2238 ADD ='A',A  00000A6E 2239 HEXO30 EQU $ 0A6E FE0E 09FD 2240 JSK OTT 0A6F 0040 2241 COPY  Q,A 0A70 0E31 2242 SHIFT A,LO,4 0A71 4000 2243 COPY A,Q 0A72 2AFF 2244  SUB =1,X 0A73 31B4 0A68 2245 JNE X,HEXO10 0A74 6309 2246 POP 0A75 2309 2247  RSK 0001 2248 LPOOL 0A76 0A5E DECTAB 2249 * 2250 * DUMP AN AREA IN MEMORY IN HEX, Q=NO. OF WORDS TO BE DUMPED 2251 * (X)=FIRT WORD ADDRESS TO DUMP 2252 *  00000A77 2253 BUFDUMP EQU $ 0A77 4309 2254 PUSH SSTAT 0A78 0040 0A79 6908 2255  COPY =8,Y 8 WORDS PER LINE 00000A7A 2256 BUFD10 EQU $ 0A7A 0920 2257 COPY =' ',A PRINT A SPACE 0A7B FE01 09FD 2258 JSK OTT 0A7C 8080 0000 2259 COPY 0(X),A 0A7D FE66 0A64 2260 JSK HEXOUT PRINT THAT WORD 0A7E 2B01 2261 ADD =1,X INCREMENT ADDRESS 0A7F 4AFF 2262 SUB =1,Q DECREMENT WORD COUNT 0A80 5144 0A85 2263 JEQ Q,BUFD90 DONE 0A81 6AFF 2264 SUB =1,Y DECREMNT NUMBER COUNT 0A82 71B7 0A7A 2265 JNE Y,BUFD10 SAME LINE 0A83 FE41 0A45 2266 JSK NEWLIN 0A84 9E74 0A79 2267 JMP BUFDUMP+2 00000A85 2268 BUFD90 EQU $ 0A85 FE3F 0A45 2269 JSK NEWLIN 1PAGE 0077 MACRO (E100) ASYNC MUX DIAGNOSTIC 84-93812-10 D100 1980/08/19 15:30:06.75 SI = DM01.ASYNCMUX .ASM SO = DF00.ASYNCMUX .OBJ LI = DF01.ASYNCMUX .LST 0A86 6309 2270 POP 0A87 2309 2271 RSK 2272 * 2273 * SUBROUTINE TO DO SEND COMMANDS AND CHECK ERRORS 2274 * 00000A88 2275 DOIT EQU $ 0A88 4309 2276 PUSH SSTAT 0A89 0040 0A8A FF92 0A9D 2277 JSK CLXSTA CLEAR STATUS 0A8B FF92 0A9E 2278 JSK CLRSTA 0A8C 0E85 2279 SBIT 8,S ENABLE CPU INTERRUPT 0A8D 0E55  2280 SBIT 5,S 0A8E FF90 0A9F 2281 JSK OUTOP SEND COMMANDS 0A8F FF90 0AA0 2282  JSK EXAMSTA WAIT FOR EOB INTERRUPTS 0A90 0E57 2283 RBIT 5,S TRUN OFF RTC INTERRUPT 0A91 FF8F 0AA1 2284 JSK ERRCHK CHECK FOR ERRORS 0A92 6309 2285 POP 0A93 2309 2286 RSK 2287 * 2288 * SUBROUTINE TO WRITE STANDARD OPT. TABLE & MODEM REGISTER  2289 * 00000A94 2290 STDOPT EQU $ 0A94 4309 2291 PUSH SSTAT 0A95 0040 0A96 FF8B 0AA2 2292 JSK SETOPT SET UP BUFFER 0A97 FF8B 0AA3 2293 JSK WOPTAB WRITE STD? . OPT. TABLE 0A98 0907 2294 COPY =:07,A 0A99 878A 0AA4 2295 COPY A,MDMREG 0A9A FF8A 0AA5 2296 JSK WMOREG WRITE DTR,RTS,AUX 0A9B 6309 2297 POP 0A9C 2309 2298 RSK  0009 2299 LPOOL 0A9D 06FA CLXSTA 0A9E 06EF CLRSTA 0A9F 0656 OUTOP 1PAGE 0078 MACRO (E100) ASYNC MUX DIAGNOSTIC 84-93812-10 D100 1980/08/19 15:30:08.25 SI = DM01.ASYNCMUX .ASM SO = DF00.ASYNCMUX .OBJ LI = DF01.ASYNCMUX  .LST 0AA0 07C5 EXAMSTA 0AA1 082F ERRCHK 0AA2 06D4 SETOPT 0AA3 0957 WOPTAB 0AA4 0C99 MDMREG 0AA5 09CA WMOREG  2300 * 2301 * SUBROUTINE TO PUT CONTENT 0F 2ND CHANNEL NO. LIST 2302 * ONTO ORIGINAL CHANNEL NO. LIST 2303 * 00000AA6 2304 RCHANL EQU $ 0AA6 4309 2305 PUSH SSTAT 0AA7 0040 0AA8 E2BD 0AE6 2306 COPY =CHNLST1,Y 0AA9 A2BD 0AE7 2307 COPY =CHNLST,X 0AAA 8040 0000 2308 RCHANL0 COPY 0(Y),A 0AAB 13C4 0AB0 2309 JLT A,RCHANL1 0AAC 8480 0000 2310 COPY  A,0(X) 0AAD 6B01 2311 ADD =1,Y 0AAE 2B01 2312 ADD =1,X 0AAF 9E7A 0AAA 2313  JMP RCHANL0 0AB0 8480 0000 2314 RCHANL1 COPY A,0(X) 0AB1 6309 2315 POP 0AB2 2309 2316 RSK 2317 * 2318 * SUBROUTINE TO CLEAR THE BUFFERS 2319 * 00000AB3 2320 CLRBUF EQU $ 0AB3 4309 2321 PUSH SSTAT 0AB4 0040 0AB5 A2B1 0AE7 2322 COPY =CHNLST,X 0AB6 A7B1 0AE8 2323 COPY X,CHLPTR1 0AB7 A080 0000 2324 CLRBUF0 COPY 0(X),X GET CHANNEL NO. 0AB8 33CE 0AC7 2325 JLT X,CLRBUF1 0AB9 E3AF 0AE9 2326 COPY BUFPTR1,Y GET BUFFER POINTER 1PAGE 0079 MACRO (E100) ASYNC MUX DIAGNOSTIC 84-93812-10 D100 1980/08/19 15:30:09.75 SI = DM01.ASYNCMUX .ASM SO = DF00.ASYNCMUX .OBJ LI = DF01.ASYNCMUX .LST 0ABA E0C0 0000 2327 COPY 0(Y,X),Y GET BUFFER ADDRESS 0ABB 0900 2328 COPY =0,A 0ABC C3AD 0AEA 2329 COPY BYTCNT,Q GET NO. BYTES 0ABD 4B01  2330 ADD =1,Q 0ABE 4E08 2331 SHIFT Q,R,1 0ABF 4041 2332 NEG Q 0AC0 8440 0000 2333 COPY A,0(Y) 0AC1 6B01 2334 ADD =1,Y INCREMENT BUFFER ADDRESS 0AC2 54BD 0AC0 2335 IJNE Q,$-2 0AC3 DFA4 0AE8 2336 IMS CHLPTR1 0AC4 0000 2337 NOP  0AC5 A3A2 0AE8 2338 COPY CHLPTR1,X 0AC6 9E70 0AB7 2339 JMP CLRBUF0 0AC7 6309 2340 CLRBUF1 POP 0AC8 2309 2341 RSK 2342 * 2343 * SUBROUTINE TO RESET ASYNCMUX BORAD 2344 * 00000AC9 2345 RSTMUX EQU $ 0AC9 4309 2346 PUSH SSTAT 0ACA 0040 0ACB 0900 2347 COPY =0,A 0ACC C39E 0AEB 2348 COPY ADBAS,Q GET DEVICE BASE ADDRESS 0ACD 4E30 2349 SHIFT Q,L,4 0ACE 4B04 2350 ADD =4,Q COMBINE ADDRESS WITH FUNCTION @ CODE 0ACF 430A 2351 XNX Q 0AD0 0400 2352 SELP A,ADSEL 0AD1 6309 2353  POP 0AD2 2309 2354 RSK 2355 * 2356 * SUBROUTINE TO PRINT CURRENT OPERATING BAUD RATE 2357 * 00000AD3 2358 PBAUD EQU $ 0AD3 4309 2359 PUSH SSTAT 0AD4 0040 1PAGE 0080 MACRO (E100) ASYNC MUX DIAGNOSTIC 84-93812-10 D100 1980/08/19 15:30:11.00 SI = DM01.ASYNCMUX .ASM SO = DF00.ASYNCMUX .OBJ LI = DF01.ASYNCMUX .LST 0AD5 8296 0AEC 2360 COPY =BRMSG,A 0AD6 FF96 0AED 2361  JSK MSG 0AD7 E396 0AEE 2362 COPY BAUPTR,Y GET BAUD RATE CODE POINTER 0AD8 8040 0000 2363  COPY 0(Y),A GET BAUD RATE CODE IN HEX 0AD9 E295 0AEF 2364 COPY =BAUTAB0,Y GET BAUD RATE TABLE ADDRESS 0ADA 48F0 2365 COPY =-16,Q 0ADB B841 0001 2366 PBAUD0 CSK A,1(Y) 0ADC 0000 2367 NOP 0ADD 9E83 0AE1 2368 JMP PBAUD1 BAUD RATE CODE DOESNOT MATCH TABLE 0ADE 8040 0000 2369  COPY 0(Y),A GET DECIMAL EQUIVALENT BAUD RATE 0ADF FF90 0AF0 2370 JSK DECOUT PRINT THIS OUT 0AE0 9E82 0AE3 2371 JMP PBAUD2 0AE1 6B02 2372 PBAUD1 ADD =2,Y INCREMENT ADDRESS POINTER 0AE2 54B8 0ADB 2373 IJNE Q,PBAUD0 LOOP UNTIL TABLE ENDS 0AE3 FF8D 0AF1 2374 PBAUD2 JSK NEWLIN LINE FEED & CR 0AE4 6309 2375 POP 0AE5 2309 2376 RSK 000C 2377  LPOOL 0AE6 0BB2 CHNLST1 0AE7 0BA9 CHNLST 0AE8 0BBC CHLPTR1 0AE9 0CB6 BUFPTR1 0AEA 0C72 BYTCNT 0AEB 0BA7 ADBAS 0AEC 0F9E BRMSG 0AED 0A37 MSG 0AEE 0BCF BAUPTR 0AEF 0D2B BAUTAB0 0AF0 0A4D DECOUT 0AF1 0A45 NEWLIN 0AF2 4309 2378  PEOB 0 0AF3 0040 0AF4 2900 2378+ 0AF5 E3B0 0B26 2378+ 0AF6 80C0 0000 2378+ 1PAGE 0081 MACRO (E100) ASYNC MUX DIAGNOSTIC 84-93812-10 D100 1980/08/19 15:30:12.25 SI = DM01.ASYNCMUX .ASM SO = DF00.ASYNCMUX .OBJ LI = DF01.ASYNCMUX .LST 0AF7 0C03 2378+ 0AF8 9E81 0AFA 2378+ 0AF9 0C01 2378+ 0AFA 9E82 0AFD 2378+ 0AFB E2AB 0B27 2378+ 0AFC 9FAB 0B28 2378+ 0AFD E2AB 0B29 2378+ 0AFE 9FA9 0B28 2378+ 0AFF 4309 2379 PEOB 1 0B00 0040 0B01 2901 2379+ 0B02 E3A3 0B26 2379+ 0B03 80C0 0000 2379+ 0B04 0C03 2379+ 0B05 9E81 0B07 2379+ 0B06 0C01 2379+ 0B07 9E82 0B0A 2379+ 0B08 E29E 0B27 2379+ 0B09 9F9E 0B28 2379+ 0B0A E29E 0B29 2379+ 0B0B 9F9C 0B28 2379+ 0B0C 4309  2380 PEOB 2 0B0D 0040 0B0E 2902 2380+ 0B0F E396 0B26 2380+ 0B10 80C0 0000 2380+ 0B11 0C03  2380+ 0B12 9E81 0B14 2380+ 0B13 0C01 2380+ 0B14 9E82 0B17 2380+ 0B15 E291 0B27 2380+ 0B16 9F91 0B28 2380+ 0B17 E291 0B29 2380+ 0B18 9F8F 0B28 2380+ 0B19 4309 2381 PEOB 3 1PAGE 0082 MACRO (E100) ASYNC MUX DIAGNOSTIC 84-93812-10 D100 1980/08/19 15:30:13.75 SI = DM01.ASYNCMUX .ASM SO = DF00.ASYNCMUX .OBJ LI = DF01.ASYNCMUX .LST  0B1A 0040 0B1B 2903 2381+ 0B1C E2F6 0B93 2381+ 0B1D 80C0 0000 2381+ 0B1E 0C03 2381+ 0B1F 9E81 0B21 2381+ A 0B20 0C01 2381+ 0B21 9E82 0B24 2381+ 0B22 E284 0B27 2381+ 0B23 9F84 0B28 2381+ 0B24 E284 0B29 2381+ 0B25 9F82 0B28 2381+ 0004 2382 LPOOL 0B26 0B93 TSTLPT 0B27 0BD9 RCVSTAT 0B28 05D6 EOB 0B29 0BD1 XMTSTAT 0B2A 4309 2383 PEOB 4 0B2B 0040 0B2C 2904 2383+ 0B2D E2E5 0B93 2383+ 0B2E 80C0 0000 2383+ 0B2F 0C03  2383+ 0B30 9E81 0B32 2383+ 0B31 0C01 2383+ 0B32 9E82 0B35 2383+ 0B33 E273 0B27 2383+ 0B34 9F73 0B28 2383+ 0B35 E273 0B29 2383+ 0B36 9F71 0B28 2383+ 0B37 4309 2384 PEOB 5 0B38 0040 0B39 2905 2384+ 0B3A E2D8 0B93 2384+ 0B3B 80C0 0000 2384+ 1PAGE 0083 MACRO (E100) ASYNC MUX DIAGNOSTIC 84-93812-10 D100 1980/08/19 15:30:14.50 SI = DM01.ASYNCMUX .ASM SO = DF00.ASYNCMUX .OBJ LI = DF01.ASYNCMUX .LST 0B3C 0C03 2384+ 0B3D 9E81 0B3F 2384+  0B3E 0C01 2384+ 0B3F 9E82 0B42 2384+ 0B40 E266 0B27 2384+ 0B41 9F66 0B28 2384+ 0B42 E266 0B29 2384+ 0B43 9F64 0B28 2384+ 0B44 4309 2385 PEOB 6 0B45 0040 0B46 2906 2385+ 0B47 E2CB 0B93 2385+ 0B48 80C0 0000 2385+ 0B49 0C03 2385+ 0B4A 9E81 0B4C 2385+ 0B4B 0C01 2385+ 0B4C 9E82 0B4F 2385+ 0B4D E259 0B27 2385+ 0B4E 9F59 0B28 2385+ 0B4F E259 0B29 2385+ 0B50 9F57 0B28 2385+ 0B51 4309 2386 PEOB 7 0B52 0040 0B53 2907  2386+ 0B54 E2BE 0B93 2386+ 0B55 80C0 0000 2386+ 0B56 0C03 2386+ 0B57 9E81 0B59 2386+ 0B58 0C01 2386+ 0B59 9E82 0B5C 2386+ 0B5A E24C 0B27 2386+ 0B5B 9F4C 0B28 2386+ 0B5C E24C 0B29 2386+ 0B5D 9F4A 0B28 2386+ 0000  2387 LPOOL 1PAGE 0084 MACRO (E100) ASYNC MUX DIAGNOSTIC 84-93812-10 D100 1980/08/19 15:30:15.50 SI = DM01.ASYNCMUX .ASM SO = DF00.ASYNCMUX .OBJ LI = DF01.ASYNCMUX .LST 0B5E 4309 2388 SEOB 0 0B5F 0040 0B60 2900 2388+ 0B61 E245 0B27 2388+ 0B62 9F45 0B28 2388+ 0B63 4309 2389 SEOB 1 0B64 0040 0B65 2901  2389+ 0B66 E240 0B27 2389+ 0B67 9F40 0B28 2389+ 0B68 4309 2390 SEOB 2 0B69 0040 0B6A 2902  2390+ 0B6B E23B 0B27 2390+ 0B6C 9F3B 0B28 2390+ 0B6D 4309 2391 SEOB 3 0B6E 0040 0B6F 2903 2391+ 0B70 E236 0B27 2391+ 0B71 9F36 0B28 2391+ 0000 2392 LPOOL 0B72 4309 2393 SEOB 4 0B73 0040 0B74 2904 2393+ 0B75 E231 0B27 2393+ 0B76 9F31 0B28 2393+ 0B77 4309 2394 SEOB 5 0B78 0040 0B79 2905 2394+ 0B7A E22C 0B27 2394+ 0B7B 9F2C 0B28 2394+ 0B7C 4309 2395 SEOB 6 0B7D 0040 0B7E 2906 2395+ 0B7F E227 0B27 2395+ 1PAGE 0085 MACRO (E100) ASYNC MUX DIAGNOSTIC 84-93812-10 D100 1980/08/19 15:30:17.00 SI = DM01.ASYNCMUX .ASM SO = DF00.ASYNCMUX .OBJ LI = DF01.ASYNCMUX .LST 0B80 9F27 0B28 2395+ 0B81 4309  2396 SEOB 7 0B82 0040 0B83 2907 2396+ 0B84 E222 0B27 2396+ 0B85 9F22 0B28 2396+ 0000  2397 LPOOL 2398 * EQUATES AND BUFFER AREAS 2399 * 00000040 2400 SSTAT  EQU :40 0000000C 2401 TSTCNT EQU 12 TOTAL NO. TESTS 00000000 2402 ADSEL EQU 0 B  00000006 2403 AECO EQU 6 00000003 2404 RCVXMT EQU 3 00000001 2405 XMTO EQU 1 00000002 2406 RCVO EQU 2 00002F00 2407 XREGMSK EQU :2F00 00000000 2408 NORRCV EQU  :0000 NORMAL RECEIVE STATUS 00000000 2409 NORXMT EQU :0000 NORMAL XMT STATUS 00000040  2410 RMRCV EQU :0040 RANGE CHECK RCV STATUS 00000060 2411 SPCRCV EQU :0060 SPECIAL CHARACTER RCV STATUS 000010E7 2412 RREGMSK EQU :10E7 RECEIVER STATUS MASK 00000043 2413 INHTIM EQU :43 10 MS TIMER BYPASS 00000003 2414 PLEXMOD EQU :03 HALF DUPLEX MODE 00000100  2415 DUPLEX EQU :0100 00008000 2416 RSTRCV EQU :8000 RESET RCV HALF CHANNEL 00002000 2417 RSTXMT EQU :2000 REESET XMT HALF CHANNEL 00001000 2418 WRMOD EQU :1000 WRITE MODEM REGISTER 00001020 2419 WROPT EQU :1020 WRITE OPTION TABLE 00001040 2420 WRBUF EQU :1040 WRITE BUFFER 00001060 2421 WRBRK EQU :1060 SEND BREAK 00001080 2422 WREOL EQU  :1080 SEND EOL 000010A0 2423 WRCNC EQU :10A0 SEND CONTROL CHARACTER 000010C0 2424 WRSPC EQU :10C0 WRITE SPECIAL CHARACTER 00004000 2425 RDMOD EQU :4000 READ MODEM REGISTER 1PAGE 0086 MACRO (E100) ASYNC MUX DIAGNOSTIC 84-93812-10 D100 1980/08/19 15:30:18.50 SI = DM01.ASYNCMUX .ASM SO = DF00.ASYNCMUX .OBJ LI = DF01.ASYNCMUX .LST 00004100 2426 RDOPT EQU :4100 READ OPT. TABLE 00004800 2427 RDBUF EQU :4800 READ BUFFER 00004A00 2428 RCVRM EQU :4A00 RECEIVE MESSAGE, RM 00004B00 2429 RCVCR EQU :4B00 RCV MESSAGE CM,RM 00004C00 2430 RCVAE EQU :4C00  RECEIVE MESSAGE AE 00004D00 2431 RCVAC EQU :4D00 RECEIVE MESSAGE AE,CM 00004F00 2432 RCVACR EQU :4F00 RECEIVE MESSAGE AE,CM,RM 00000001 2433 DSR EQU :1 DATA SET READY 00000002 2434 CTS EQU :2 CLEAR TO SEND 00000004 2435 CD EQU :4 CARRER DETECT 00000008 2436 RI EQU :8 RING INDICATOR 00000001 2437 DTR EQU :1  DATA TERMINAL READY 00000002 2438 RTS EQU :2 READY TO SEND 00000004 2439 AUX EQU  :4 AUXILIARY BIT 00000008 2440 ANS EQU :8 AUTO ANSWER 00000000 2441 RXBSY  EQU :0000 REVEIVER BUSY 00000000 2442 TXBSY EQU :0000 TRANSMIT BUSY 00000001 2443 DAFC EQU 1 FUNCTION CODE 00003000 2444 BUSY EQU :3000 BUSY MASK 0B86 0366  2445 TSTAB WORD TEST0,TEST1,TEST2,TEST3,TEST4,TEST5,TEST6,TEST7 0B87 0369 0B88 0385 0B89 03A2 0B8A 03A7 0B8B 03EE 0B8C 0418 0B8D 0439 0B8E 0463 2446 WORD TEST8,TEST9,TEST12,TEST10,TEST11 0B8F 0483 0B90 054E 0B91 04C D7 0B92 0506 0B93 0000 2447 TSTLPT WORD 0 0B94 0000 2448 TSTLST WORD 0,1,2,3,4,5,6 LIST OF TEST NOS.TO BE TESTED 0B95 0001 1PAGE 0087 MACRO (E100) ASYNC MUX DIAGNOSTIC 84-93812-10 D100 1980/08/19 15:30:20.25 SI = DM01.ASYNCMUX .ASM SO = DF00.ASYNCMUX .OBJ LI = DF01.ASYNCMUX .LST 0B96 0002 0B97 0003 0B98 0004 0B99 0005 0B9A 0006 0B9B 0007 2449 WORD 7,8,9,:A,:B,-1,-1,-1,-1,-1 0B9C 0008 0B9D 0009 0B9E 000A 0B9F 000B 0BA0 FFFF 0BA1 FFFF 0BA2 FFFF 0BA3 FFFF 0BA4 FFFF 0BA5 0B94 2450 TSTPTR WORD TSTLST TEST LIST POINTER 0BA6 0000 2451 TESTNO WORD 0 TEST NO. NOW DOING 0BA7 0007 2452 ADBAS WORD :7 DEVICE ADDRESS 0BA8 0004 2453 CHANL WORD 4 8 OR 4 CHANNEL INDICATOR 0BA9 0000 2454 CHNLST WORD 0,1,2,3,-1 LIST OF CHANNEL NOS. TO BE TESTED 0BAA 0001 0BAB 0002 0BAC 0003 0BAD FFFF 0BAE FFFF 2455 RES 4,-1 0BB2 0000 2456 CHNLST1 WORD 0,1,2,3,-1 2ND CHANNEL NO. LIST 0BB3 0001 0BB4 0002 0BB5 0003 0BB6 FFFF 0BB7 FFFF 2457 RES 4,-1 0BBB 0BA9 2458 CHLPTR WORD CHNLST CHANNEL LIST POINTER 0BBC 0BA9  2459 CHLPTR1 WORD CHNLST 2ND CHANNEL LIST POINTER 0BBD 0000 2460 CHLPTR2 WORD 0 0BBE 003C 2461 BAULST WORD :3C,:3A,:38,:37,:36,:35 LIST OF BAUD RATES TO TEST 1PAGE 0088 MACRO (E100) ASYNC MUX DIAGNOSTIC 84-93812-10 D100 1980/08/19 15:30:21.75 SI = DM01.ASYNCMUX .ASM SO = DF00.ASYNCMUX .OBJ LI = DF01.ASYNCMUX .LST 0BBF 003A 0BC0 0038 0BC1 0037 0BC2 0036 0BC3 0035 0BC4 0034 2462 WORD :34,:33 0BC5 0033 0BC6 FFFF 2463 RES 9,-1 0BCF 0BBE 2464 BAUPTR WORD BAULST BAUD RATE LIST POINTER 0BD0 0000 2465 STAPTR WORD 0 STATUS LIST POINTER 0BD1 FFFF 2466 XMTSTAT RES 8,-1 XMT STATUS 0BD9 FFFF  2467 RCVSTAT RES 8,-1 RCV STATUS 0BE1 0000 2468 AIOINST WORD 0 AIB/AOB INSTRUCTION 0BE2 0000 2469 RCVBUF0 RES 18,0 CHAN#0 RCV BUFFER 0BF4 0000 2470 RCVBUF1 RES 18,0  CAHN#1 RCV BUFFER 0C06 0000 2471 RCVBUF2 RES 18,0 CHAN#2 RCV BUFFER 0C18 0000 2472 RCVBUF3 RES  18,0 CHAN#3 RCV BUFFER 0C2A 0000 2473 RCVBUF4 RES 18,0 CHAN#4 RCV BUFFER 0C3C 0000 2474 RCVBUF5 RES 18,0 CHAN#5 RCV BUFFER 0C4E 0000 2475 RCVBUF6 RES 18,0 CHAN#6 RCV BUFFER  0C60 0000 2476 RCVBUF7 RES 18,0 CHAN#7 RCV BUFFER 0C72 0000 2477 BYTCNT WORD 0 BYTE COUNT 0C73 0D00 2478 EOLBUF WORD :0D00 0C74 0000 2479 RES 15,0 0C83 0A00 2480  WORD :0A00 0C84 0000 2481 BRKBUF WORD 0,1,2,4,8,16,-1 0C85 0001 0C86 0002 0C87 0004 0C88 0008 0C89 0010 0C8A FFFF 0C8B 0C84 2482 BRKPT WORD BRKBUF 0C8C 0003 2483 CTLCHR WORD :03,:0D,:02,-1 CONTROL CHARACTER TABLE 0C8D 000D 1PAGE 0089 MACRO (E100) ASYNC MUX DIAGNOSTIC 84-93812-10 D100 1980/08/19 15:30:23.00 SI = DM01D .ASYNCMUX .ASM SO = DF00.ASYNCMUX .OBJ LI = DF01.ASYNCMUX .LST 0C8E 0002 0C8F FFFF 0C90 0C8C 2484 CTLPT  WORD CTLCHR CONTROL CHAR. TABLE POINTER 0C91 0C9A 2485 SCRPTR WORD SPCTAB,SPCTAB+1,SPCTAB+2,SPCTAB+3 0C92 0C9B 0C93 0C9C 0C94 0C9D 0C95 0C9E 2486 WORD SPCTAB+4,SPCTAB+5,SPCTAB+6,SPCTAB+7 0C96 0C9F 0C97 0CA0 0C98 0CA1 0C99 0000 2487 MDMREG WORD 0 MODEM REGISTER DATA 0C9A 3A0D 2488 SPCTAB BYTE  :3A,:0D,:3B,:0D,:3C,:0D,:3D,:0D,:3E,:0D,:3F,:0D 0C9B 3B0D 0C9C 3C0D 0C9D 3D0D 0C9E 3E0D 0C9F 3F0D 0CA0 2A0D 2489  BYTE :2A,:0D,:2B,:0D SPECIAL CHARACTER TABLE 0CA1 2B0D 0CA2 0000 2490 XMTMSK WORD 0 XMT STATUS 0CA3 0000 2491 RCVMSK WORD 0 RECEIVER STATUS 0CA4 0D0B 2492 OPTXMTP WORD OPTXMT0,OPTXMT1,OPTXMT2,OPTXMT3,OPTXMT4 0CA5 0D0F 0CA6 0D13 0CA7 0D17 0CA8 0D1B 0CA9 0D1F 2493 WORD OPTXMT5,OPTXMT6,OPTXMT7 0CAA 0D23 0CAB 0D27 0CAC 0CEB 2494 OPTRCVP WORD OPTRCV0,OPTRCV1,OPTRCV2,OPTRCV3,OPTRCV4 0CAD 0CEF 0CAE 0CF3 0CAF 0CF7 0CB0 0CFB 1PAGE 0090 MACRO (E100) ASYNC MUX DIAGNOSTIC 84-93812-10 D100 1980/08/19 15:30:24.25 SI = DM01.ASYNCMUX .ASM SO = DF00.ASYNCMUX .OBJ LI = DF01.ASYNCMUX .LST 0CB1 0CFF 2495 WORD OPTRCV5,OPTRCV6,OPTRCV7 0CB2 0D03 0CB3 0D07 0CB4 0000 2496 BUFPTR WORD 0 0CB5 0000 2497 BUFPTR0 WORD 0 0CB6 0000 2498 BUFPTR1 WORD 0 0CB7 63DD 2499 OPTDEF BYTE :63,:DD,:39,:37 DEFAULT OPTION TABLE 0CB8 3937 0CB9 0CC9 2500 XBUFPTR WORD XMTBUF,XMTBUF,XMTBUF,XMTBUF,XMTBUF 0CBA 0CC9 0CBB 0CC9 0CBC 0CC9 0CBD 0CC9 0CBE 0CC9 2501 WORD XMTBUF,XMTBUF,XMTBUF 0CBF 0CC9 0CC0 0CC9 0CC1 0BE2 2502 RBUFPTR WORD RCVBUF0,RCVBUF1,RCVBUF2,RCVBUF3 0CC2 0BF4 0CC3 0C06 0CC4 0C18 0CC5 0C2A 2503 WORD RCVBUF4,RCVBUF5,RCVBUF6,RCVBUF7 0CC6 0C3C 0CC7 0C4E 0CC8 0C60 0CC9 3031 2504 XMTBUF BYTE '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ' 0CCA 3233 0CCB 3435 0CCC 3637 0CCD 3839 0CCE 4142 0CCF 4344 0CD0 4546 0CD1 4748 0CD2 494A 0CD3 4B4C 1PAGE 0091 MACRO (E100) ASYNC MUX DIAGNOSTIC 84-93812-10 D100 1980/08/19 15:30:25.00 SI = DM01.ASYNCMUX .ASM SO = DF00.ASYNCMUX .OBJ LI = DF01.ASYNCMUX .LST 0CD4 4D4E 0CD5 4F50 0CD6 5152 0CD7 5354 0CD8 5556 0CD9 5758 0CDA 595A 0CDB 0000 2505 XMBFPT RES 8,0 0CE3 0000 2506 RMBFPT RES 8,0 0CEB 0000 2507 OPTRCV0 RES 4,0 0CEF 0000 2508 OPTRCV1 RES 4,0 0CF3 0000 2509 OPTRCV2 RES 4,0 0CF7 0000 2510 OPTRCV3 RES 4,0 0CFB 0000 2511 OPTRCV4 RES 4,0 0CFF 0000 2512 OPTRCV5 RES 4,0 0D03 0000 2513 OPTRCV6 RES 4,0 0D07 0000 2514 OPTRCV7 RES 4,0 0D0B 0000 2515 OPTXMT0 RES 4,0 0D0F 0000 2516 OPTXMT1 RES 4,0 0D13 0000  2517 OPTXMT2 RES 4,0 0D17 0000 2518 OPTXMT3 RES 4,0 0D1B 0000 2519 OPTXMT4 RES 4,0 0D1F 0000 2520 OPTXMT5 RES 4,0 0D23 0000 2521 OPTXMT6 RES 4,0 0D27 0000 2522 OPTXMT7 RES 4,0E  0D2B 0032 2523 BAUTAB0 WORD 50,:30,75,:31,110,:32,135,:33,150,:34,300,:35 0D2C 0030 0D2D 004B 0D2E 0031 0D2F 006E 0D30 0032 0D31 0087 0D32 0033 0D33 0096 0D34 0034 1PAGE 0092 MACRO (E100) ASYNC MUX DIAGNOSTIC 84-93812-10 D100 1980/08/19 15:30:26.00 SI = DM01.ASYNCMUX .ASM SO = DF00.ASYNCMUX .OBJ LI = DF01.ASYNCMUX .LST 0D35 012C 0D36 0035 0D37 0258 2524 WORD 600,:36,1200,:37,1800,:38,2000,:39,2400,:3A,3600,:3B 0D38 0036 0D39 04B0 0D3A 0037 0D3B 0708 0D3C 0038 0D3D 07D0 0D3E 0039 0D3F 0960 0D40 003A 0D41 0E10 0D42 003B 0D43 12C0 2525 WORD 4800,:3C,7200,:3D,9600,:3E,19200,:3F 0D44 003C 0D45 1C20 0D46 003D 0D47 2580 0D48 003E 0D49 4B00 0D4A 003F 0D4B FFF0  2526 BAUTTL WORD -16 0D4C 003C 2527 DBAUD WORD :3C,:3A,:38,:37,:36,:35,:34,:33,-1 0D4D 003A 0D4E 0038  0D4F 0037 0D50 0036 0D51 0035 0D52 0034 0D53 0033 0D54 FFFF 0D55 0AF2 2528 EOBADR WORD EOB0,EOB1,EOB2,EOB3,EOB4,EOB5,EOB6,EOB7 0D56 0AFF 0D57 0B0C 1PAGE 0093 MACRO (E100) ASYNC MUX DIAGNOSTIC 84-93812-10 D100 1980/08/19 15:30:27.00 SI = DM01.ASYNCMUX .ASM SO = DF00.ASYNCMUX .OBJ LI = DF01.ASYNCMUX .LST 0D58 0B19 0D59 0B2A 0D5A 0B37 0D5B 0B44 0D5C 0B51 0D5D 0B5E 2529 WORD EOBS0,EOBS1,EOBS2,EOBS3,EOBS4,EOBS5,EOBS6,EOBS7 0D5E 0B63 0D5F 0B68 0D60 0B6D 0D61 0B72 0D62 0B77 0D63 0B7C 0D64 0B81 2530 * 2531 * ERROR MESSAGES  2532 * 0D65 4641 2533 FAILMSG BYTE 'FAILED' 0D66 494C 0D67 4544 0D68 FFFF 2534 WORD -1 0D69 2050 2535 ERR0 BYTE ' PARTIAL RESET XMT HALF CHANL ' 0D6A 4152 0D6B 5449 0D6C 414C 0D6D 2052 0D6E 4553 0D6F 4554 0D70 2058 0D71 4D54 0D72 2048 0D73 414C 0D74 4620 0D75 4348 0D76 414E 0D77 4C20 1PAGE 0094 MACRO (E100) ASYNC MUX DIAGNOSTIC 84-93812-10 D100 1980/08/19 15:30:27.75 SI = DM01.ASYNCMUX .ASM SO = DF00.ASYNCMUX .OBJ LI = DF01.ASYNCMUX .LST 0D78 FFFF 2536 WORD -1 0D79 2050 2537 ERR1 BYTE ' PARTIAL RESET RCV HALF CHANL ' 0D7A 4152 0D7B 5449 0D7C 414C 0D7D 2052 0D7E 4553 0D7F 4554 0D80 2052 0D81 4356 0D82 2048 0D83 414C 0D84 4620 0D85 4348 0D86 414E 0D87 4C20 0D88 FFFF 2538 WORD -1 0D89 2A2A 2539 ERR2 BYTE '** NO EOB INTERRUPT ' 0D8A 204E 0D8B 4F20 0D8C 454F 0D8D 4220 0D8E 494E 0D8F 5445 0D90 5252 0D91 5550 0D92 5420 0D93 FFFF  2540 WORD -1 0D94 2057 2541 ERR3 BYTE ' WRTIE MODEM REG. ' 0D95 5254 0D96 4945 0D97 204D 0D98 4F44 0D99 454D 0D9A 2052 1PAGE 0095 MACRO (E100) ASYNC MUX DIAGNOSTIC 84-93812-10 D100 1980/08/19 15:30:28.50 SI = DM01.ASYNCMUX .ASM SO = DF00.ASYNCMUX .OBJ LI = DF01.ASYNCMUX .LST 0D9B 4547 0D9C 2E20 0D9D FFFF 2542  WORD -1 0D9E 2052 2543 ERR4 BYTE ' READ MODEM REG. ' 0D9F 4541 0DA0 4420 0DA1 4D4F 0DA2 4445 0DA3 4D20 0DA4 5245 0DA5 472E 0DA6 2020 0DA7 FFFF 2544 WORD -1 0DA8 2057 2545 ERR5 BYTE ' WRITE OPT. TABLE ' 0DA9 5249 0DAA 5445 0DAB 204F 0DAC 5054 0DAD 2E20 0DAE 5441 0DAF 424C 0DB0 4520 0DB1 FFFF 2546 F  WORD -1 0DB2 2052 2547 ERR6 BYTE ' READ OPT. TABLE ' 0DB3 4541 0DB4 4420 0DB5 4F50 0DB6 542E 0DB7 2054 0DB8 4142 0DB9 4C45 0DBA 2020 0DBB FFFF 2548 WORD -1 0DBC 2057 2549 ERR7 BYTE ' WRITE SPECIAL CHARACTER ' 0DBD 5249 1PAGE 0096 MACRO (E100) ASYNC MUX DIAGNOSTIC 84-93812-10 D100 1980/08/19 15:30:29.00 SI = DM01.ASYNCMUX .ASM SO = DF00.ASYNCMUX .OBJ LI = DF01.ASYNCMUX .LST 0DBE 5445 0DBF 2053 0DC0 5045 0DC1 4349 0DC2 414C 0DC3 2043 0DC4 4841 0DC5 5241 0DC6 4354 0DC7 4552 0DC8 2020 0DC9 FFFF 2550 WORD -1 0DCA 2052 2551 ERR8 BYTE ' RECEIVE CHARACTER MACTH ' 0DCB 4543 0DCC 4549 0DCD 5645 0DCE 2043 0DCF 4841 0DD0 5241 0DD1 4354 0DD2 4552 0DD3 204D 0DD4 4143 0DD5 5448 0DD6 2020 0DD7 FFFF 2552 WORD -1 0DD8 2053 2553 ERR9 BYTE ' SEND CONTROL CHARACTER ' 0DD9 454E 0DDA 4420 0DDB 434F 0DDC 4E54 0DDD 524F 0DDE 4C20 0DDF 4348 0DE0 4152 1PAGE 0097 MACRO (E100) ASYNC MUX DIAGNOSTIC 84-93812-10 D100 1980/08/19 15:30:29.75 SI = DM01.ASYNCMUX .ASM SO = DF00.ASYNCMUX .OBJ LI = DF01.ASYNCMUX .LST 0DE1 4143 0DE2 5445 0DE3 5220 0DE4 FFFF 2554 WORD -1 0DE5 2052 2555 ERR10 BYTE ' RECEIVE RANGE MATCH ' 0DE6 4543 0DE7 4549 0DE8 5645 0DE9 2052 0DEA 414E 0DEB 4745 0DEC 204D 0DED 4154 0DEE 4348 0DEF 2020 0DF0 FFFF 2556 WORD -1 0DF1 2053 2557 ERR11 BYTE ' SEND NEWLIN ' 0DF2 454E 0DF3 4420 0DF4 4E45 0DF5 574C 0DF6 494E 0DF7 2020 0DF8 FFFF 2558 WORD  -1 0DF9 2053 2559 ERR12 BYTE ' SEND BREAK ' 0DFA 454E 0DFB 4420 0DFC 4252 0DFD 4541 0DFE 4B20 0DFF FFFF  2560 WORD -1 0E00 2046 2561 ERR13 BYTE ' FULL DUPLEX XMT BUFFER ' 0E01 554C 0E02 4C20 0E03 4455 1PAGE 0098 MACRO (E100) ASYNC MUX DIAGNOSTIC 84-93812-10 D100 1980/08/19 15:30:30.50 SI = DM01.ASYNCMUX .ASM SO = DF00.ASYNCMUX .OBJ LI = DF01.ASYNCMUX .LST 0E04 504C 0E05 4558 0E06 2058 0E07 4D54 0E08 2042 0E09 5546 0E0A 4645 0E0B 5220 0E0C FFFF 2562 WORD -1 0E0D 2046 2563 ERR14 BYTE ' FULL DUPLEX RCV BUFFER ' 0E0E 554C 0E0F 4C20 0E10 4455 0E11 504C 0E12 4558 0E13 2052 0E14 4356 0E15 2042 0E16 5546 0E17 4645 0E18 5220 0E19 FFFF  2564 WORD -1 0E1A 2048 2565 ERR15 BYTE ' HALF DUPLEX XMT BUFFER ' 0E1B 414C 0E1C 4620 0E1D 4455 0E1E 504C 0E1F 4558 0E20 2058 0E21 4D54 0E22 2042 0E23 5546 0E24 4645 0E25 5220 0E26 FFFF 2566 WORD -1 1PAGE 0099 MACRO (E100) ASYNC MUX DIAGNOSTIC 84-93812-10 D100 1980/08/19 15:30:31.00 SI = DM01.ASYNCMUX .ASM SO = DF00.ASYNCMUX .OBJ LI = DF01.ASYNCMUX .LST 0E27 2048 2567 ERR16 BYTE ' HALF DUPLEX RCV BUFFER ' 0E28 414C 0E29 4620 0E2A 4455 0E2B 504C 0E2C 4558 0E2D 2052 0E2E 4356 0E2F 2042 0E30 5546 0E31 4645 0E32 5220 0E33 FFFF  2568 WORD -1 0E34 2046 2569 ERR17 BYTE ' FIRMWARE AUTO ECHO TRANSMIT ' 0E35 4952 0E36 4D57 0E37 4152 0E38 4520 0E39 4155 0E3A 544F 0E3B 2045 0E3C 4348 0E3D 4F20 0E3E 5452 0E3F 414E 0E40 534D 0E41 4954 0E42 202G 0 0E43 FFFF 2570 WORD -1 0E44 204C 2571 ERR18 BYTE ' LOCAL LOOPBACK TRANSMIT ' 0E45 4F43 0E46 414C 0E47 204C 0E48 4F4F 0E49 5042 1PAGE 0100 MACRO (E100) ASYNC MUX DIAGNOSTIC 84-93812-10 D100 1980/08/19 15:30:31.75 SI = DM01.ASYNCMUX .ASM SO = DF00.ASYNCMUX .OBJ LI = DF01.ASYNCMUX .LST 0E4A 4143 0E4B 4B20 0E4C 5452 0E4D 414E 0E4E 534D 0E4F 4954 0E50 2020 0E51 FFFF 2572 WORD -1 0E52 2048 2573 ERR19 BYTE ' HARDWARE AUTO ECHO TRANSMIT ' 0E53 4152 0E54 4457 0E55 4152 0E56 4520 0E57 4155 0E58 544F 0E59 2045 0E5A 4348 0E5B 4F20 0E5C 5452 0E5D 414E 0E5E 534D 0E5F 4954 0E60 2020 0E61 FFFF 2574 WORD -1 0E62 2046 2575 ERR20 BYTE ' FIRMWARE AUTO ECHO RECEIVE ' 0E63 4952 0E64 4D57 0E65 4152 0E66 4520 0E67 4155 0E68 544F 0E69 2045 0E6A 4348  0E6B 4F20 0E6C 5245 1PAGE 0101 MACRO (E100) ASYNC MUX DIAGNOSTIC 84-93812-10 D100 1980/08/19 15:30:32.75 SI = DM01.ASYNCMUX .ASM SO = DF00.ASYNCMUX .OBJ LI = DF01.ASYNCMUX .LST 0E6D 4345 0E6E 4956 0E6F 4520 0E70 FFFF 2576  WORD -1 0E71 204C 2577 ERR21 BYTE ' LOCAL LOOPBACK RECEIVE ' 0E72 4F43 0E73 414C 0E74 204C 0E75 4F4F 0E76 5042 0E77 4143 0E78 4B20 0E79 5245 0E7A 4345 0E7B 4956 0E7C 4520 0E7D FFFF 2578 WORD -1 0E7E 2048 2579 ERR22 BYTE ' HARDWARE ECHO RECEIVE ' 0E7F 4152 0E80 4457 0E81 4152 0E82 4520 0E83 4543 0E84 484F 0E85 2052 0E86 4543 0E87 4549 0E88 5645 0E89 2020 0E8A FFFF 2580 WORD -1 0E8B 0000 2581 ERRLST  RES 3,0 0E8E 0000 2582 ERRCODE WORD 0 0E8F 0D69 2583 ERRTAB WORD ERR0,ERR1,ERR2,ERR3,ERR4,ERR5,ERR6,ERR7 0E90 0D79 0E91 0D89 1PAGE 0102 MACRO (E100) ASYNC MUX DIAGNOSTIC 84-93812-10 D100 1980/08/19 15:30:33.25 SI = DM01.ASYNCMUX .ASM SO = DF00.ASYNCMUX .OBJ LI = DF01.ASYNCMUX .LST 0E92 0D94 0E93 0D9E 0E94 0DA8 0E95 0DB2 0E96 0DBC 0E97 0DCA 2584 WORD ERR8,ERR9,ERR10,ERR11,ERR12,ERR13,ERR14,ERR15,ERR16 0E98 0DD8 0E99 0DE5 0E9A 0DF1 0E9B 0DF9 0E9C 0E00 0E9D 0E0D 0E9E 0E1A 0E9F 0E27 0EA0 0E34 2585 WORD ERR17,ERR18,ERR19,ERR20,ERR21,ERR22 0EA1 0E44 0EA2 0E52 0EA3 0E62 0EA4 0E71 0EA5 0E7E 0EA6 4153 2586 TITLE BYTE 'ASYNC MUX DIAGNOSTIC, REV D1',:FF,:FF 0EA7 594E 0EA8 4320 0EA9 4D55 0EAA 5820 0EAB 4449 0EAC 4147 0EAD 4E4F 0EAE 5354 0EAF 4943 0EB0 2C20 0EB1 5245 0EB2 5620 0EB3 4431 0EB4 FFFF 1PAGE 0103 MACRO (E100) ASYNC MUX DIAGNOSTIC 84-93812-10 D100 1980/08/19 15:30:33.75 SI = DM01.ASYNCMUX .ASM SO = DF00.ASYNCMUX .OBJ LI = DF01.ASYNCMUX .LST 0EB5 5445 2587 QUERY BYTE 'TEST CHOICES: ',:0D,:0A 0EB6 5354 0EB7 2043 0EB8 484F 0EB9 4943 0EBA 4553 0EBB 3A20 0EBC 0D0A 0EBD 2020 2588  BYTE ' D - DEFAULT',:0D,:0A 0EBE 2044 0EBF 202D 0EC0 2044 0EC1 4546 0EC2 4155 0EC3 4C54 0EC4 0D0A 0EC5 2020  2589 BYTE ' T - TECHNICIAN',:0D,:0A 0EC6 2054 0EC7 202D 0EC8 2054 0EC9 4543 0ECA 484E 0ECB 4943 0ECC 4941 0ECD 4E0D 0ECE 0A20 0ECF 2020 2590 BYTE ' R - REPEAT LAST ',:0D,:0A 0ED0 5220 0ED1 2D20 0ED2 5H 245 0ED3 5045 0ED4 4154 0ED5 204C 0ED6 4153 0ED7 5420 1PAGE 0104 MACRO (E100) ASYNC MUX DIAGNOSTIC 84-93812-10 D100 1980/08/19 15:30:34.50 SI = DM01.ASYNCMUX .ASM SO = DF00.ASYNCMUX .OBJ LI = DF01.ASYNCMUX .LST 0ED8 0D0A 0ED9 2020  2591 BYTE ' G - GOTO DEBUG',:0D,:0A 0EDA 2047 0EDB 202D 0EDC 2047 0EDD 4F54 0EDE 4F20 0EDF 4445 0EE0 4255 0EE1 470D 0EE2 0A20 0EE3 454E 2592 BYTE 'ENTER CHOICE ? ',:FF,:FF 0EE4 5445 0EE5 5220 0EE6 4348  0EE7 4F49 0EE8 4345 0EE9 203F 0EEA 20FF 0EEB FF20 0EEC 5445 2593 TCHQRY BYTE 'TECH TEST : ',:0D,:0A 0EED 4348 0EEE 2054 0EEF 4553 0EF0 5420 0EF1 3A20 0EF2 0D0A 0EF3 2020 2594 BYTE ' ENTER TEST NOS. (0-C) ? ',:FF,:FF 0EF4 454E 0EF5 5445 0EF6 5220 0EF7 5445 0EF8 5354 0EF9 204E 0EFA 4F53 1PAGE 0105 MACRO (E100) ASYNC MUX DIAGNOSTIC 84-93812-10 D100 1980/08/19 15:30:35.25 SI = DM01.ASYNCMUX .ASM SO = DF00.ASYNCMUX .OBJ LI = DF01.ASYNCMUX .LST  0EFB 2E20 0EFC 2830 0EFD 2D43 0EFE 2920 0EFF 3F20 0F00 FFFF 0F01 2020 2595 CHLMSG BYTE ' ENTER CHANNEL NOS. (0-7) ? ',:FF,:FF 0F02 454E 0F03 5445 0F04 5220 0F05 4348 0F06 414E 0F07 4E45 0F08 4C20 0F09 4E4F 0F0A 532E 0F0B 2028 0F0C 302D 0F0D 3729 0F0E 203F 0F0F 20FF 0F10 FF20 0F11 2020 2596 BAUQRY BYTE ' ENTER BAUD RATE ? ',:FF,:FF 0F12 454E 0F13 5445 0F14 5220 0F15 4241 0F16 5544 0F17 2052 0F18 4154 0F19 4520 0F1A 3F20 0F1B FFFF 0F1C 2020  2597 DVAMSG BYTE ' ENTER DEVICE ADDRESS IN HEX (DEF=:7) ? :',:FF,:FF 0F1D 454E 1PAGE 0106 MACRO (E100) ASYNC MUX DIAGNOSTIC 84-93812-10 D100 1980/08/19 15:30:36.00 SI = DM01.ASYNCMUX .ASM SO = DF00.ASYNCMUX .OBJ LI = DF01.ASYNCMUX .LST 0F1E 5445 0F1F 5220 0F20 4445 0F21 5649 0F22 4345 0F23 2041 0F24 4444 0F25 5245 0F26 5353 0F27 2049 0F28 4E20  0F29 4845 0F2A 5820 0F2B 2844 0F2C 4546 0F2D 3D3A 0F2E 3729 0F2F 203F 0F30 203A 0F31 FFFF 0F32 2020 2598 INTMSG BYTE ' ENTER INTERRUPT ADDRESS IN HEX (DEF=:2000) ? :',:FF,:FF 0F33 454E 0F34 5445 0F35 5220 0F36 494E 0F37 5445 0F38 5252 0F39 5550 0F3A 5420 0F3B 4144 0F3C 4452 0F3D 4553 0F3E 5320 0F3F 494E 0F40 2048 1PAGE 0107 MACRO (E100) ASYNC MUX DIAGNOSTIC 84-93812-10 D100 1980/08/19 15:30:36.25 SI = DM01.ASYNCMUX .ASM SO = DF00.ASYNCMUX .OBJ LI = DF01.ASYNCMUX .LST 0F41 4558 0F42 2028 0F43 4445 0F44 463D 0F45 3A32 0F46 3030 0F47 3029 0F48 203F 0F49 203A 0F4A FFFF 0F4B 2020 2599 CHLNO BYTE ' ENTER NO. OF CHANNELS (4 OR 8, DEF=4)? ',:FF,:FF 0F4C 454E 0F4D 5445 0F4E 5220 0F4F 4E4F 0F50 2E20 0F51 4F46 0F52 2043 0F53 4841 0F54 4E4E 0F55 454C 0F56 5320 0F57 2834 0F58 204F 0F59 5220 0F5A 382C 0F5B 2044 0F5C 4546 0F5D 3D34 0F5E 293F 0F5F 20FF 0F60 FF20 0F61 2020 2600 HLTMSG BYTE ' HALT ON ERROR (Y OR N)? ',:FF,:FF 0F62 4841 0F63 4C54 1PAGE 0108 MACRO (E100) ASYNC MUX DIAGNOSTIC 84-93812-10 D100 1980/08/19 15:30:36.75 SI = DM01.ASYNCMUX .ASM SO = DF00.ASYNCMUX .OBJ LI = DF01.ASYNCMUX .LST 0F64 204F 0F65 4E20 0F66 4552 0F67 524F 0F68 5220 0F69 2859 0F6A 204F 0F6B 5220 0F6C 4E29 0F6D 3F20 0F6E FFFF 0F6F 5041 2601 PASSMSG BYTE 'PASS NO. 'I ,:FF,:FF 0F70 5353 0F71 204E 0F72 4F2E 0F73 20FF 0F74 FF20 0F75 5445 2602 TSTMSG BYTE 'TEST NO. ',:FF,:FF 0F76 5354 0F77 204E 0F78 4F2E 0F79 20FF 0F7A FF20 0F7B 544F 2603 TLERR0 BYTE 'TOTAL ERRORS, THIS PASS ',:FF,:FF 0F7C 5441 0F7D 4C20 0F7E 4552 0F7F 524F 0F80 5253 0F81 2C20 0F82 5448 0F83 4953 0F84 2050 0F85 4153 0F86 5320 1PAGE 0109 MACRO (E100) ASYNC MUX DIAGNOSTIC 84-93812-10 D100 1980/08/19 15:30:37.75 SI = DM01.ASYNCMUX .ASM SO = DF00.ASYNCMUX .OBJ LI = DF01.ASYNCMUX .LST 0F87 2020 0F88 FFFF 0F89 544F 2604 TLERR1 BYTE 'TOTAL ERRORS, ALL PASSES ',:FF,:FF 0F8A 5441 0F8B 4C20 0F8C 4552 0F8D 524F 0F8E 5253 0F8F 2C20 0F90 414C 0F91 4C20 0F92 5041 0F93 5353 0F94 4553 0F95 2020 0F96 FFFF 0F97 4348 2605 CNLMSG BYTE 'CHANNEL NO. ',:FF,:FF 0F98 414E 0F99 4E45 0F9A 4C20 0F9B 4E4F 0F9C 2E20 0F9D FFFF 0F9E 4241 2606 BRMSG BYTE 'BAUD RATE ',:FF,:FF 0F9F 5544 0FA0 2052 0FA1 4154 0FA2 4520 0FA3 2020 0FA4 FFFF 0FA5 2A2A 2607 ERRNUM BYTE '** ERROR # ',:FF,:FF 0FA6 2045 0FA7 5252 0FA8 4F52  0FA9 2023 1PAGE 0110 MACRO (E100) ASYNC MUX DIAGNOSTIC 84-93812-10 D100 1980/08/19 15:30:38.25 SI = DM01.ASYNCMUX .ASM  SO = DF00.ASYNCMUX .OBJ LI = DF01.ASYNCMUX .LST 0FAA 20FF 0FAB FF20 0FAC 4143 2608 XMTS BYTE 'ACTUAL XMT STATUS :',:FF,:FF 0FAD 5455 0FAE 414C 0FAF 2058 0FB0 4D54 0FB1 2053 0FB2 5441 0FB3 5455 0FB4 5320 0FB5 3AFF 0FB6 FF20 0FB7 4143 2609 RCVS BYTE 'ACTUAL RCV STATUS :',:FF,:FF 0FB8 5455 0FB9 414C 0FBA 2052 0FBB 4356 0FBC 2053 0FBD 5441 0FBE 5455 0FBF 5320 0FC0 3AFF 0FC1 FF20 0FC2 4558 2610 XMTSE BYTE 'EXPECTED XMT STATUS :',:FF,:FF 0FC3 5045 0FC4 4354 0FC5 4544 0FC6 2058 0FC7 4D54 0FC8 2053 0FC9 5441 0FCA 5455 0FCB 5320 0FCC 3AFF 1PAGE 0111 MACRO (E100) ASYNC MUX DIAGNOSTIC 84-93812-10 D100 1980/08/19 15:30:39.00 SI = DM01.ASYNCMUX .ASM SO = DF00.ASYNCMUX .OBJ  LI = DF01.ASYNCMUX .LST 0FCD FF20 0FCE 4558 2611 RCVSE BYTE 'EXPECTED RCV STATUS :',:FF,:FF 0FCF 5045 0FD0 4354 0FD1 4544 0FD2 2052 0FD3 4356 0FD4 2053 0FD5 5441 0FD6 5455 0FD7 5320 0FD8 3AFF 0FD9 FF20 0FDA 4558 2612 EXPMSG BYTE 'EXPECTED ',:FF,:FF 0FDB 5045 0FDC 4354 0FDD 4544 0FDE 20FF 0FDF FF20 0FE0 4143 2613 ACTMSG BYTE 'ACTUAL ',:FF,:FF 0FE1 5455 0FE2 414C 0FE3 20FF 0FE4 FF20 0FE5 4D4F 2614 MRGMSG BYTE 'MODEM REG. :',:FF,:FF 0FE6 4445 0FE7 4D20 0FE8 5245 0FE9 472E 0FEA 203A 0FEB FFFF 0FEC 4F50 2615 OPTBMSG BYTE 'OPT. TABLE ',:FF,:FF 0FED 542E 0FEE 2054 0FEF 4142 1PAGE 0112 MACRO (E100) ASYNC MUX DIAGNOSTIC 84-93812-10 D100 1980/08/19 15:30:39.50 SI = DM01.ASYNCMUX .ASM SO = DF00.ASYNCMUX .OBJ LI = DF01.ASYNCMUX .LST 0FF0 4C45 0FF1 20FF 0FF2 FF20 0FF3 2A2A 2616 BADBAU BYTE '** INVALID BAUD RATE',:FF,:FF 0FF4 2049 0FF5 4E56 0FF6 414C 0FF7 4944 0FF8 2042 0FF9 4155 0FFA 4420 0FFB 5241 0FFC 5445 0FFD FFFF 0FFE 2A2A 2617 MTPMSG BYTE '** MEMORY EXCEPTION TRAP',:FF,:FF 0FFF 204D 1000 454D 1001 4F52 1002 5920 1003 4558 1004 4345 1005 5054 1006 494F 1007 4E20 1008 5452 1009 4150 100A FFFF 10J 0B 4441 2618 DATMSG BYTE 'DATA ',:FF,:FF 100C 5441 100D 20FF 100E FF20 100F 0002 2619 TSTLST0 WORD RCVO,RCVXMT,RCVO,RCVXMT,RCVO,RCVXMT,RCVO,RCVXMT 1010 0003 1011 0002 1012 0003 1PAGE 0113 MACRO (E100) ASYNC MUX DIAGNOSTIC 84-93812-10 D100 1980/08/19 15:30:40.25 SI = DM01.ASYNCMUX .ASM SO = DF00.ASYNCMUX .OBJ LI = DF01.ASYNCMUX .LST 1013 0002 1014 0003 1015 0002 1016 0003 1017 0002 2620 TSTLST1 WORD RCVO,XMTO,RCVO,XMTO,RCVO,XMTO,RCVO,XMTO 1018 0001 1019 0002 101A 0001 101B 0002 101C 0001 101D 0002 101E 0001 101F 0003 2621 TSTLST2 WORD RCVXMT,RCVXMT,RCVXMT,RCVXMT,RCVXMT,RCVXMT,RCVXMT,RCVXMT 1020 0003 1021 0003 1022 0003 1023 0003 1024 0003 1025 0003 1026 0003 1027 0002 2622 TSTLST3 WORD RCVO,RCVO,RCVO,RCVO,RCVO,RCVO,RCVO,RCVO 1028 0002 1029 0002 102A 0002 102B 0002 102C 0002 102D 0002 102E 0002 102F 0001 2623 TSTLST4 WORD XMTO,XMTO,XMTO,XMTO,XMTO,XMTO,XMTO,XMTO 1030 0001 1031 0001 1032 0001 1033 0001 1034 0001 1035 0001 1PAGE 0114 MACRO (E100) ASYNC MUX DIAGNOSTIC 84-93812-10 D100 1980/08/19 15:30:41.00 SI = DM01.ASYNCMUX .ASM SO = DF00.ASYNCMUX .OBJ LI = DF01.ASYNCMUX .LST 1036 0001 1037 0001 2624 TSTLST5  WORD XMTO,RCVO,XMTO,RCVO,XMTO,RCVO,XMTO,RCVO 1038 0002 1039 0001 103A 0002 103B 0001 103C 0002 103D 0001 103E 0002 103F 0003 2625 TSTLST6 WORD RCVXMT,RCVO,RCVXMT,RCVO,RCVXMT,RCVO,RCVXMT,RCVO 1040 0002 1041 0003 1042 0002 1043 0003 1044 0002 1045 0003 1046 0002 1047 0006 2626 TSTLST7 WORD AECO,RCVXMT,AECO,RCVXMT,AECO,RCVXMT,AECO,RCVXMT 1048 0003 1049 0006 104A 0003 104B 0006 104C 0003 104D 0006 104E 0003 104F 0003 2627 TSTLST8 WORD RCVXMT,AECO,RCVXMT,AECO,RCVXMT,AECO,RCVXMT,AECO 1050 0006 1051 0003 1052 0006 1053 0003 1054 0006 1055 0003 1056 0006 00001057  2628 STACKE EQU $ 1057 0000 2629 RES 150,0 1PAGE 0115 MACRO (E100) ASYNC MUX DIAGNOSTIC 84-93812-10 D100 1980/08/19 15:30:42.75 SI = DM01.ASYNCMUX .ASM SO = DF00.ASYNCMUX .OBJ LI = DF01.ASYNCMUX .LST 000010ED 2630 STACK EQU $ 10ED 2000 2631 PROGEND WORD :2000 2632 END 0000 ERRORS (0000) 0000 WARNINGS (0000) MTO,RCVO 1038 0002 1039 0001 103A 0002 103B 0001 103C 0002 103D 0001 103E 0002 103F 0003 2625 TSTLST6 WORD RCVXMT,RCVO,RCVXMT,RCVO,RCVXMT,RCVO,RCVXMT,RCVO 1040 0002 1041 0003 1042 0002 1043 0IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIK IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIL IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII