COMTVDT 
COMMON
          CTEXT  COMTVDT - IVT VIRTUAL ASCII / DISPLAY CODE TRANSLATION 
*         COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
          BASE   D
          LIST   D
  
  
          IF     -DEF,QUAL$,1 
          QUAL   COMTVDT
 TVXD     SPACE  4,10 
*****     TVXD - DISPLAY CODE/IVT ASCII TRANSLATION TABLE.
*         P.D. FARRELL.      76/09/02.
 TVXD     SPACE  4,10 
 TVXD     IF     -DEF,TVXD
**        VXD - DEFINE INPUT/OUTPUT CONVERSION. 
* 
*         THE CONVERSION TABLE CONSISTS OF PARALLEL INPUT AND 
*         OUTPUT CONVERSIONS INDEXED BY TABLE WORD LOCATION.
* 
*         ENTRY - 
* 
* L       VXD    OC,IC,I,S,SC 
*                *L*  = LOCATION FIELD (OPTIONAL).
*                *OC* = HEXADECIMAL OUTPUT CONVERSION.
*                *IC* = BINARY INPUT CONVERSION.
*                *I*  = IGNORE CHARACTER IN NORMAL MODE.
*                *S*  = SPECIAL PROCESSING NECESSARY FOR OUTPUT.
*                *SC* = SPECIAL CHARACTER IN NORMAL MODE. 
* 
*         EXIT   (IF CPU CODE)
*         1/I, 1/S, 1/M, 3/, 6/SC, 12/, 1/N, 10/, 7/OC, 6/, 12/IC.
* 
*                (IF PPU CODE)
*                1/N, 11/OC.
* 
*                M = SPECIAL CHARACTER IN NORMAL MODE.  (GENERATED
*                    BY EXISTANCE OF *SC* FIELD IN MACRO).
* 
*                N = IGNORE OUTPUT CONVERSION IF SET.  (GENERATED BY
*                    NULL *OC* FIELD IN MACRO.
          SPACE  4,10 
**        63/64 CHARACTER SET CONVERSIONS.
* 
*         THE CONVERSION TABLE IS ASSEMBLED USING THE CDC 64
*         CHARACTER SET.  TWO MODIFICATION TABLES ARE PROVIDED
*         TO ENABLE THE USER TO REPLACE TABLE ENTRIES TO CHANGE 
*         THE TABLE TO CORRESPOND TO EITHER 63 OR 64 CHARACTER
*         SETS.  EACH MODIFICATION TABLE CONSISTS OF WORD PAIRS,
*         THE FIRST WORD GIVING THE LOCATION INTO WHICH THE SEC-
*         OND WORD IS TO BE STORED RELATIVE TO THE BEGINNING
*         OF THE CONVERSION TABLE PROPER TO PROVIDE THE CORRECT 
*         CONVERSION.  THE MODIFICATION TABLES ARE EACH TERMIN- 
*         ATED BY A NEGATIVE WORD.
          SPACE  4,10 
**        ABBREVIATIONS-
* 
*                THE FOLLOWING ABBREVIATIONS ARE USED IN DOCUMENTING
*                OUTPUT AND INPUT CONVERSIONS:  
* 
*                            ACK  ACKNOWLEDGE 
*                            AM   AMPERSAND 
*                            AP   APOSTROPHE
*                            AS   ASTERISK
*                            AT   COMMERCIAL AT 
*                            BEL  BELL
*                            BRK  BREAK 
*                            BS   BACKSPACE 
*                            CAN  CANCEL
*                            CB   CLOSING BRACKET 
*                            CF   CIRCUMFLEX
*                            CL   COLON 
*                            CM   COMMA 
*                            CP   CLOSING PARENTHESIS 
*                            CR   CARRIAGE RETURN 
*                            DC1  DEVICE CONTROL 1 (X-0N) 
*                            DC2  DEVICE CONTROL 2
*                            DC3  DEVICE CONTROL 3 (X-OFF)
*                            DC4  DEVICE CONTROL 4 (STOP) 
*                            DLE  DATA LINK ESCAPE
*                            DQ   DOUBLE QUOTE (DIARESIS) 
*                            DS   DOLLAR SIGN 
*                            EM   END OF MEDIUM 
*                            ENQ  ENQUIRY 
*                            EQ   EQUALS SIGN 
*                            EOT  END OF TRANSMISSION 
*                            ESC  ESCAPE
*                            ETB  END OF TRANSMISSION BLOCK 
*                            ETX  END OF TEXT 
*                            EX   EXCLAMATION POINT 
*                            FF   FORM FEED 
*                            FS   FILE SEPARATOR
*                            GS   GROUP SEPARATOR 
*                            GT   GREATER THAN
*                            GV   GRAVE ACCENT
*                            HT   HORIZONTAL TAB
*                            LB   LEFT BRACE
*                            LC   LOWER CASE
*                            LF   LINE FEED 
*                            LT   LESS THAN 
*                            MI   MINUS (HYPHEN)
*                            NAK  NEGATIVE ACKNOWLEDGE
*                            NM   NUMBER SIGN 
*                            NUL  NULL (IDLE) 
*                            OB   OPENING BRACKET 
*                            OP   OPENING PARENTHESIS 
*                            PC   PERCENTUM 
*                            PD   PERIOD (DECIMAL POINT)
*                            PL   PLUS
*                            QM   QUESTION MARK 
*                            RB   RIGHT BRACE 
*                            RS   RECORD SEPARATOR
*                            RVS  REVERSE SLANT 
*                            SC   SEMICOLON 
*                            SI   SHIFT IN
*                            SL   SLANT (DIVISION)
*                            SO   SHIFT OUT 
*                            SP   SPACE 
*                            SOH  START OF HEADING
*                            STX  START OF TEXT 
*                            SUB  SUBSTITUE 
*                            SYN  SYNCHRONOUS IDLE
*                            TL   TILDE (OVERLINE)
*                            UC   UPPER CASE
*                            UL   UNDERLINE 
*                            US   UNIT SEPARATOR
*                            VL   VERTICAL LINE 
*                            VT   VERTICAL TAB
  
  
          PURGMAC VXD 
          MACRO  VXD,L,OC,IC,I,S,SC 
  
  NOREF .1,.2,.3
.1 SET 0
.2 SET 0
.3 SET 0
  IFC EQ,*OC**,1
.2 SET 1
VXD IFCP
  IFC NE,*I**,1 
.1 SET 1
  IFC NE,*S**,1 
.3 SET 1
  IFC NE,*SC**,2
  VFD 1/.1,1/.3,1/1,3/0,6/SC_B,12/0,1/.2,17/0#_OC,18/IC_B 
  ELSE 1
  VFD 1/.1,1/.3,22/0,1/.2,17/0#_OC,18/IC_B
VXD ELSE
  VFD 1/.2,11/0#_OC 
VXD ENDIF 
  ENDM
 TVXD     SPACE  4,10 
**        TVXD - INPUT/OUTPUT CONVERSION TABLE. 
  
  
 TVXD     BSS    0
          LOC    0
  
*                                 OUTPUT         INPUT          SPECIAL 
  
 00       VXD    3A,7640,I,S      CL             BRK
 01       VXD    41,7641,I        UC A           SOH
 02       VXD    42,7642,I        UC B           STX
 03       VXD    43,7643,I        UC C           ETX
 04       VXD    44,7644,I        UC D           EOT
 05       VXD    45,7645,I        UC E           ENQ
 06       VXD    46,7646,I        UC F           ACK
 07       VXD    47,7647,I        UC G           BEL
  
 08       VXD    48,7650,I        UC H           BS 
 09       VXD    49,7651,I        UC I           HT 
 0A       VXD    4A,7652,I        UC J           LF 
 0B       VXD    4B,7653,I        UC K           VT 
 0C       VXD    4C,7654,I        UC L           FF 
 0D       VXD    4D,7655,I        UC M           CR 
 0E       VXD    4E,7656,I        UC N           SO 
 0F       VXD    4F,7657,I        UC 0           SI 
  
 10       VXD    50,7660,I        UC P           DLE
 11       VXD    51,7661,I        UC Q           DC1
 12       VXD    52,7662,I        UC R           DC2
 13       VXD    53,7663,I        UC S           DC3
 14       VXD    54,7664,I        UC T           DC4
 15       VXD    55,7665,I        UC U           NAK
 16       VXD    56,7666,I        UC V           SYN
 17       VXD    57,7667,I        UC W           ETB
  
 18       VXD    58,7670,I        UC X           CAN
 19       VXD    59,7671,I        UC Y           EM 
 1A       VXD    5A,7672,I        UC Z           SUB
 1B       VXD    30,7673,I        0              ESC
 1C       VXD    31,7674,I        1              FS 
 1D       VXD    32,7675,I        2              GS 
 1E       VXD    33,7676,I        3              RS 
 1F       VXD    34,7677,I        4              US 
  
 20       VXD    35,55            5              SP 
 21       VXD    36,66            6              EX 
 22       VXD    37,64            7              DQ 
 23       VXD    38,60            8              NM 
 24       VXD    39,53            9              DS 
 25       VXD    2B,63            PL             PC 
 26       VXD    2D,67            MI             AM 
 27       VXD    2A,70            AS             AP 
  
 28       VXD    2F,51            SL             OP 
 29       VXD    28,52            OP             CP 
 2A       VXD    29,47            CP             AS 
 2B       VXD    24,45            DS             PL 
 2C       VXD    3D,56            EQ             CM 
 2D       VXD    20,46            SP             MI 
 2E       VXD    2C,57            CM             PD 
 2F       VXD    2E,50            PD             SL 
  
 30       VXD    23,33            NM             0
 31       VXD    5B,34            OB             1
 32       VXD    5D,35            CB             2
 33       VXD    25,36            PC             3
 34       VXD    22,37            DQ             4
 35       VXD    5F,40            UL             5
 36       VXD    21,41            EX             6
 37       VXD    26,42            AM             7
  
 38       VXD    27,43            AP             8
 39       VXD    3F,44            QM             9
 3A       VXD    3C,7404,,,0      LT             CL             CL
 3B       VXD    3E,77            GT             SC 
 3C       VXD    40,72,,S         AT             LT 
 3D       VXD    5C,54            RVS            EQ 
 3E       VXD    5E,73,,S         CF             GT 
 3F       VXD    3B,71            SC             QM 
  
*         OUTPUT CONVERSIONS FOLLOWING THIS POINT CONSIST OF *76XX* 
*         NOS EXTENDED CHARACTERS.
  
 40       VXD    ,7401,,,74       NUL            AT             AT
 41       VXD    61,01            LC A           UC A 
 42       VXD    62,02            LC A           UC B 
 43       VXD    63,03            LC C           UC C 
 44       VXD    64,04            LC D           UC D 
 45       VXD    65,05            LC E           UC E 
 46       VXD    66,06            LC F           UC F 
 47       VXD    67,07            LC G           UC G 
  
 48       VXD    68,10            LC H           UC H 
 49       VXD    69,11            LC I           UC I 
 4A       VXD    6A,12            LC J           UC J 
 4B       VXD    6B,13            LC K           UC K 
 4C       VXD    6C,14            LC L           UC L 
 4D       VXD    6D,15            LC M           UC M 
 4E       VXD    6E,16            LC N           UC N 
 4F       VXD    6F,17            LC O           UC O 
  
 50       VXD    70,20            LC P           UC P 
 51       VXD    71,21            LC Q           UC Q 
 52       VXD    72,22            LC R           UC R 
 53       VXD    73,23            LC S           UC S 
 54       VXD    74,24            LC T           UC T 
 55       VXD    75,25            LC U           UC U 
 56       VXD    76,26            LC V           UC V 
 57       VXD    77,27            LC W           UC W 
  
 58       VXD    78,30            LC X           UC X 
 59       VXD    79,31            LC Y           UC Y 
 5A       VXD    7A,32            LC Z           UC Z 
 5B       VXD    7B,61            LB             OB 
 5C       VXD    7C,75            VL             RVS
 5D       VXD    7D,62            RB             CB 
 5E       VXD    7E,7402,,,76     TL             CF             CF
 5F       VXD    7F,65            DEL            UL 
  
 60       VXD    00,7407,,,74     NUL            GV             AT
 61       VXD    01,7601          SOH            LC A 
 62       VXD    02,7602          STX            LC B 
 63       VXD    03,7603          ETX            LC C 
 64       VXD    04,7604          EOT            LC D 
 65       VXD    05,7605          ENQ            LC E 
 66       VXD    06,7606          ACK            LC F 
 67       VXD    07,7607          BEL            LC G 
  
 68       VXD    08,7610          BS             LC H 
 69       VXD    09,7611          HT             LC I 
 6A       VXD    0A,7612          LF             LC J 
 6B       VXD    0B,7613          VT             LC K 
 6C       VXD    0C,7614          FF             LC L 
 6D       VXD    0D,7615          CR             LC M 
 6E       VXD    0E,7616          SO             LC N 
 6F       VXD    0F,7617          SI             LC O 
  
 70       VXD    10,7620          DLE            LC P 
 71       VXD    11,7621          DC1            LC Q 
 72       VXD    12,7622          DC2            LC R 
 73       VXD    13,7623          DC3            LC S 
 74       VXD    14,7624          DC4            LC T 
 75       VXD    15,7625          NAK            LC U 
 76       VXD    16,7626          SYN            LC V 
 77       VXD    17,7627          ETB            LC W 
  
 78       VXD    18,7630          CAN            LC X 
 79       VXD    19,7631          EM             LC Y 
 7A       VXD    1A,7632          SUB            LC Z 
 7B       VXD    1B,7633,,,61     ESC            LB             OB
 7C       VXD    1C,7634,,,75     FS             VL             RVS 
 7D       VXD    1D,7635,,,62     GS             RB             CB
 7E       VXD    1E,7636,,,76     RS             TL             CF
 7F       VXD    1F,7637,I        US             DEL
  
*         THE FOLLOWING REPRESENT SPECIAL *74XX* OUTPUT CONVERSIONS.
  
          VXD    ,0,I             NULL           NULL 
          VXD    40,0,I           AT             NULL 
          VXD    5E,0,I           CF             NULL 
          VXD    ,0,I             NULL           NULL 
          VXD    3A,0,I           CL             NULL 
          VXD    ,0,I             NULL           NULL 
          VXD    ,0,I             NULL           NULL 
          VXD    60,0,I           AP             NULL 
          VXD    0D,0,I           CR             NULL 
          VXD    0A,0,I           LF             NULL 
          VXD    1F,0,I,S         US
  
 TVXDL    EQU    *
          LOC    *O 
          SPACE  4,10 
**        64 TO 63 CHARACTER SET MODIFICATION TABLE.
* 
*         ENTRY  2 WORDS- 
*                60/ TABLE LOCATION (END OF TABLE IF NEGATIVE). 
*                60/ REPLACEMENT WORD.
  
  
 TVXD63   BSS    0
          CON    0#25 
 25       VXD    2B,7404,I        PL             PC 
          CON    63B
 33       VXD    3A,36            CL             3
          CON    0#3A 
 3A       VXD    3C,63            LT             CL 
          CON    204B 
          VXD    25,0,I           PC             NULL 
          CON    -1          END OF TABLE 
          SPACE  4,10 
**        63 TO 64 CHARACTER SET MODIFICATION TABLE.
* 
*         ENTRY  2 WORDS- 
*                60/ TABLE LOCATION (END OF TABLE IF NEGATIVE). 
*                60/ REPLACEMENT WORD.
  
  
 TVXD64   BSS    0
          CON    0#25 
 25       VXD    2B,63            PL             PC 
          CON    63B
 33       VXD    25,36            PC             3
          CON    0#3A 
 3A       VXD    3C,7404,,,0      LT             CL             CL
          CON    204B 
          VXD    3A,0,I           CL             NULL 
          CON    -1          END OF TABLE 
  
  
 TVXD     ENDIF 
 COMTVDT  SPACE  4,10 
 QUAL$    IF     -DEF,QUAL$ 
          QUAL   *
 TVXD     EQU    /COMTVDT/TVXD
 TVXDL    EQU    /COMTVDT/TVXDL 
 TVXD63   EQU    /COMTVDT/TVXD63
 TVXD64   EQU    /COMTVDT/TVXD64
 QUAL$    ENDIF 
          BASE   *
          LIST   *
          ENDX
