*DECK NS$CDA FUNC NS$CDA(CHAR)U; # CONVERT DISPLAY CODE CHARACTER TO ASCII # # TITLE NS$CDA - CONVERT DISPLAY CODE CHARACTER TO ASCII. # BEGIN # NS$CDA # # ** NS$CDA - CONVERT DISPLAY CODE CHARACTER TO ASCII. * * J.C. LEE 1981 * * THIS IS A UTILITY FUNCTION SUBPROGRAM. ITS FUNCTION IS TO * CONVERT DISPLAY CODE CHARACTER TO ASCII. * * FUNC NS$CDA(CHAR) * * ENTRY: * CHAR = 6-BIT DISPLAY CODE CHARACTER TO BE CONVERTED. * * EXIT: * NONE. * * METHOD: * USE DISPLAY CODE CHARACTER TO INDEX INTO THE 7-BIT * ASCII CONVERSION TABLE WHICH IS INITIALIZED FOR * CDC 64-CHARACTER SET. * # ITEM CHAR U; # DISPLAY CODE CHARACTER # $BEGIN XREF BEGIN PROC NS$DBG; # TRACE PROCEDURE CALL # END $END ITEM I U; # WORD INDEX INTO CONVERSION TABLE # ITEM J U; # BIT INDEX INTO CONVERSION TABLE WORD # # DISPLAY CODE TO 7-BIT ASCII CHARACTER CONVERSION TABLE - INDEXABLE BY DISPLAY CODE AND INITIALIZED FOR CDC 64 CHARACTER SET. # DEF L$ASCIITAB # 8 #; # SIZE OF CONVERSION TABLE # ARRAY ASCIITAB [0:7] S(1); BEGIN ITEM ASCIIC7 U(00,00,60) = [O"35203024161105432160", O"44223124563115472360", O"50243225165125532560", O"54263323014262315500", O"32554673416253265240", O"27520512217240261340", O"21667352250537205140", O"23576743720134571660"]; END CONTROL EJECT; $BEGIN NS$DBG("CDA"); $END I = CHAR / L$ASCIITAB; # WORD INDEX INTO ASCIITAB # J = (CHAR - I*L$ASCIITAB) * 7; # BIT INDEX INTO ASCIITAB WORD # NS$CDA = BASCIIC7[I]; # RETURN ASCII CHARACTER # RETURN; END # NS$CDA # TERM