FCOPY 
          IDENT  FCOPY,FETS,FCOPY 
          ABS 
          ENTRY  FCOPY
          ENTRY  RFL= 
          SYSCOM B1 
*COMMENT  FCOPY - FILE COPY.
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
          TITLE  FCOPY - FILE COPY. 
          SPACE  4,10 
***       FCOPY - FILE COPY.
*         D. R. HILGREN      79/01/15.
*         J.    HOLLISTER    82/02/22.
          SPACE  4,10 
***              *FCOPY* CONVERTS A FILE FROM ONE CODE SET FORMAT 
*         TO ANOTHER CODE SET FORMAT. 
          SPACE  4,20 
***       COMMAND.
* 
*       FCOPY(P=LFN1,N=LFN2,PC=IC1,NC=IC2,PL=LT1,NL=LT2,FL=L,LB=N,R,A)
* 
*         LFN1   FILE TO BE CONVERTED (DEFAULT IS *OLD*).  LFN1 
*                IS NOT REWOUND BEFORE OR AFTER THE OPERATION.
* 
*         LFN2   FILE WRITTEN IN NEW FORMAT (DEFAULT IS *NEW*). 
*                LFN2 IS NOT REWOUND BEFORE OR AFTER THE OPERATION. 
* 
*         IC1    INTERNAL CHARACTERISTIC OF LFN1 (DEFAULT IS
*                *ASCII*).
* 
*         IC2    INTERNAL CHARACTERISTIC OF LFN2 (DEFAULT IS
*                *ASCII8*). 
* 
*                DIS =     6 BIT DISPLAY CODE BASED ON EITHER 63 OR 64
*                          CHARACTER SET, WHICHEVER IS IN USE IN THE
*                          RESIDENT SYSTEM. 
* 
*                DIS63 =   6 BIT DISPLAY CODE, BASED ON 63
*                          CHARACTER SET. 
* 
*                DIS64 =   6 BIT DISPLAY CODE, BASED ON 64
*                          CHARACTER SET. 
* 
*                ASCII =   6/12 DISPLAY CODE BASED ON EITHER 63 OR 64 
*                          CHARACTER SET. 
* 
*                ASCII63 = 6/12 DISPLAY CODE BASED ON THE 63 CHARACTER
*                          SET. 
* 
*                ASCII64 = 6/12 DISPLAY CODE, BASED ON THE 64 CHARACTER 
*                          SET. 
* 
*                ASCII8 =  7 BIT SUBSET OF 8 BIT ASCII, RIGHT 
*                          JUSTIFIED IN 12 BITS.
* 
*                ASCII88 = FULL 8 BIT ASCII CHARACTER SET IN 8 BITS.
* 
*                ASCFL =   FULL 8 BIT ASCII, IN FIXED LENGTH LINES
*                          WITHOUT LINE TERMINATORS (STRANGER TAPES 
*                          ONLY). 
* 
*                EBCFL =   8 BIT EBCDIC, IN FIXED LENGTH LINES
*                          WITHOUT LINE TERMINATORS (STRANGER TAPES 
*                          ONLY). 
* 
*         LT1    LINE TERMINATOR OF LFN1 (DEFAULT IS ZERO BYTE).
* 
*         LT2    LINE TERMINATOR OF LFN2 (DEFAULT IS ZERO BYTE).
* 
*                ZB   = ZERO BYTE.
*                CR   = CARRIAGE RETURN.
*                FF   = FORM FEED.
*                LF   = LINE FEED.
*                US   = UNIT SEPARATOR. 
*                RS   = RECORD SEPARATOR. 
*                CRLF = CARRIAGE RETURN-LINE FEED.
*                LFCR = LINE FEED-CARRIAGE RETURN.
*                NN   = SPECIFIED OCTAL VALUE.
* 
*                THE FOLLOWING TABLE SPECIFIES THE LEGAL COMBINATIONS 
*                OF CODE SETS (INTERNAL CHARACTERISTICS) AND LINE 
*                TERMINATORS. 
* 
* 
*                         *          LINE TERMINATOR
*                CODE SET * 
*                         * ZB  CR  FF  LF  US  RS  CRLF  LFCR   NN 
*                ****************************************************** 
*                DIS      *  Y   N   N   N   N   N    N    N    0-77B 
*                         * 
*                DIS63    *  Y   N   N   N   N   N    N    N    0-77B 
*                         * 
*                DIS64    *  Y   N   N   N   N   N    N    N    0-77B 
*                         * 
*                ASCII    *  Y   Y   Y   Y   Y   Y    N    N    0-77B * 
*                         * 
*                ASCII63  *  Y   Y   Y   Y   Y   Y    N    N    0-77B * 
*                         * 
*                ASCII64  *  Y   Y   Y   Y   Y   Y    N    N    0-77B * 
*                         * 
*                ASCII8   *  Y   Y   Y   Y   Y   Y    Y    Y   0-377B 
*                         * 
*                ASCII88  *  N   Y   Y   Y   Y   Y    Y    Y   0-377B 
*                         * 
*                ASCFL    *  N   N   N   N   N   N    N    N      N 
*                         * 
*                EBCFL    *  N   N   N   N   N   N    N    N      N 
* 
*                * +7400B OR 7700B, IF DESIRED. 
* 
*         L      FIXED LENGTH LINE LENGTH.  THIS PARAMETER IS ONLY
*                USED ON STRANGER TAPES.  (DEFAULT IS 80) 
* 
*         N      LINES PER BLOCK ON STRANGER TAPE.  FOR S-FORMAT
*                STRANGER TAPE, THE PRODUCT OF THE FIXED LINE LENGTH
*                AND THE BLOCK LENGTH MUST BE LESS THAN OR EQUAL TO 
*                3840.  (DEFAULT IS 3840 DIVIDED BY FIXED LENGTH LINE 
*                LENGTH)
* 
*         R   -  IF SPECIFIED, LFN1 AND LFN2 ARE REWOUND BEFORE AND 
*                AFTER THE OPERATION. 
* 
*         A   -  IF SPECIFIED, ABORT AFTER THE OPERATION IF ERRORS
*                OCCURRED.
          SPACE  4,15 
***       DAYFILE MESSAGES. 
* 
*         * BAD FCOPY CONVERSION TABLE.* - FCOPY TABLES 
*         ARE IN ERROR. CONSULT SITE ANALYST. 
* 
*         * ERROR IN FCOPY ARGUMENTS.* - ERROR DETECTED IN
*         COMMAND ARGUMENTS.
* 
*         * ERROR LIMIT. XXXXXX ADDITIONAL ERRORS FOUND.* - MORE
*         THAN 20 ERRORS WERE FOUND DURING CONVERSION.
* 
*         * FCOPY COMPLETE.* - INFORMATIVE MESSAGE INDICATING 
*         *FCOPY* COMPLETION. 
* 
*         * FILE NAME CONFLICT.* - LFN1 CAN NOT BE THE SAME 
*         FILE NAME AS LFN2.
* 
*         * UNKNOWN CODE CCCC,  FILE XXXX,  RECORD YYYY,  LINE
*         ZZZZZZ.* - CODE IS NOT A VALID CHARACTER IN THE INPUT 
*         CHARACTER SET.
* 
*         * INPUT FILE NOT FOUND.* - LFN1 MUST BE AN EXISTING 
*         LOCAL OR ATTACHED DIRECT ACCESS FILE. 
* 
*         * UNRECOGNIZED CODE SET PARAMETER.* - *PC* OR *NC*
*         PARAMETER SPECIFIES UNSUPPORTED CONVERSION. 
* 
*         *UNRECOGNIZED LINE TERMINATOR PARAMETER.* - *PL* OR *NL*
*         PARAMETER SPECIFIES AN UNSUPPORTED LINE TERMINATOR. 
* 
*         *CODE SET LINE TERMINATOR CONFLICT.* - THE LINE TERMINATOR
*         SPECIFIED ON THE *PL* OR *NL* PARAMETER IS NOT SUPPORTED BY 
*         THE CODE SET SPECIFIED ON THE *PC* OR *NC* PARAMETER. 
* 
*         * XXXXXX LINES TRUNCATED.* - THE NUMBER OF LINES INDICATED
*         WERE TOO LONG FOR THE SPECIFIED FIXED LENGTH LINE ON A COPY 
*         TO A STRANGER TAPE. 
* 
*         * INCORRECT FILE TYPE FOR SPECIFIED CHARACTER SET.* - EITHER
*         YOU SPECIFIED *ASCFL* OR *EBCFL* AS THE CHARACTER SET FOR A 
*         FILE NOT RESIDING ON A STRANGER TAPE, OR SOME OTHER CHARACTER 
*         SET FOR A FILE ON A STRANGER TAPE.
* 
*         * LINE TERMINATORS NOT USED ON A STRANGER TAPE.* - YOU
*         SPECIFIED A LINE TERMINATOR FOR A STRANGER TAPE FILE. 
          TITLE  SYMBOL DEFINITIONS.
          SPACE  4,10 
****      ASSEMBLY CONSTANTS. 
  
  
 PBUFL    EQU    20041B      OLD BUFFER LENGTH
 NBUFL    EQU    20041B      NEW BUFFER LENGTH
 WBUFL    EQU    101B        WORKING WRITE BUFFER 
 FETODL   EQU    16          OPTICAL DISK FET EXTENSION LENGTH
 BLNK     EQU    55B         DISPLAY CHARACTER BLANK
 ZBCH     EQU    400B        INTERNAL ZERO BYTE CHARACTER 
 EORC     EQU    401B        INTERNAL EOR CHARACTER 
 EOFC     EQU    402B        INTERNAL EOF CHARACTER 
 EOIC     EQU    403B        INTERNAL EOI CHARACTER 
 TLEN     EQU    403B        CONVERSION BASE TABLE LENGTH 
 MCVTL    EQU    1006B       MAXIMUM CONVERSION TABLE LENGTH
 MXCB     EQU    3840D       MAXIMUM CHARACTERS/BLOCK, S-FORMAT TAPE
  
****
          SPACE  4,10 
*         COMMON DECKS. 
  
  
*CALL     COMCMAC 
*CALL     COMCCMD 
*CALL     COMSLFM 
          QUAL   COMSMTX
*CALL     COMSMTX 
          QUAL   *
          SPACE  4,10 
**        CONV - GENERATE CONVERSION BASE TABLE ENTRY.
* 
*         CONV   X,Y
* 
*         ENTRY  X = NUMERIC VALUE. 
*                Y = NUMERIC VALUE. 
* 
*T        24/0, 18/X, 18/Y
  
          PURGMAC  CONV 
  
 CONV     MACRO  X,Y
          VFD    24D/0,18D/X,18D/Y
 CONV     ENDM
          TITLE  WORKING STORAGE. 
          SPACE  4,10 
*         FET DEFINITIONS.
  
  
          ORG    110B 
 FETS     BSS    0
  
 P        BSS    0           OLD FILE 
 OLD      FILEB  PBUF,PBUFL,FET=10
          ORG    P+11B
          VFD    30/0,12/FETODL,18/P+12B
          BSSZ   FETODL      OPTICAL DISK FET EXTENSION 
  
  
 N        BSS    0           NEW FILE 
 NEW      FILEB  NBUF,NBUFL,FET=10
          ORG    N+11B
          VFD    30/0,12/FETODL,18/N+12B
          BSSZ   FETODL      OPTICAL DISK FET EXTENSION 
  
  
*         INPUT PARAMETERS. 
  
  
 PC       VFD    42/0LASCII,18/0  DEFAULT *PC* VALUE
 NC       VFD    42/0LASCII8,18/0  DEFAULT *NC* VALUE 
 PL       CON    0           OLD FILE LINE TERMINATOR 
 NL       CON    0           NEW FILE LINE TERMINATOR 
 FL       CON    0           CHARACTERS PER LINE, STRANGER TAPE 
 LB       CON    0           LINES PER BLOCK, STRANGER TAPE 
 R        CON    0           REWIND FLAG
 A        CON    0           ABORT FLAG 
          SPACE  4,10 
*         GLOBAL VARIABLES. 
  
  
 ASV      CON    1           ASSUMED VALUE FOR *A* AND *R* PARAMETERS 
 CLNF     CON    0           6 BIT COLON FOUND FLAG 
 ENDF     CON    0           EOI DETECTED FLAG
 ERCT     CON    0           ERROR COUNT
 ERLM     CON    20D         ERROR LIMIT
 FILE     CON    1           FILE NUMBER
 IBHW     CON    0           FULL SIZED INPUT BLOCK HEADER WORD 
 ILCC     CON    0           INPUT LINE CHARACTER COUNT 
 ILCT     CON    0           INPUT LINES REMAINING IN BLOCK 
 INDX     CON    0           OFFSET TO SPECIAL SECTION OF TABLE 
 IPTR     CON    0           LOCATION TO STORE HEADER WORD ON OUTPUT
 IWRD     CON    0           CURRENT INPUT WORD 
 LINE     CON    1           CURRENT LINE 
 OBHW     CON    0           FULL SIZED OUTPUT BLOCK HEADER WORD
 OLCC     CON    0           OUTPUT LINE CHARACTER COUNT
 OLCT     CON    0           OUTPUT LINES REMAINING IN BLOCK
 OWRD     CON    0           CURRENT OUTPUT WORD
 RAHD     CON    -1          READ AHEAD CHARACTER 
 RCRD     CON    1           RECORD NUMBER
 SPAC     CON    40B         BLANK OUTPUT CHARACTER CODE
 STPI     CON    0           NON-ZERO IF INPUT FILE IS STRANGER TAPE
 STPO     CON    0           NON-ZERO IF OUTPUT FILE IS STRANGER TAPE 
 TCVTL    CON    TLEN        CONVERSION TABLE LENGTH
 TRNC     CON    0           TRUNCATED LINE COUNT 
 UBC      CON    0           UNUSED BIT COUNT 
  
          SPACE  4,10 
*         DAYFILE MESSAGES. 
  
  
 MSGA     DATA   C* FCOPY COMPLETE.*
 MSGB     DATA   C* BAD FCOPY CONVERSION TABLE.*
 MSGC     DATA   50H UNKNOWN CODE CCCC,  FILE XXXX,  RECORD YYYY,  LIN
          DATA   C*E ZZZZZZ.* 
 MSGD     DATA   C* ERROR LIMIT. XXXXXX ADDITIONAL ERRORS FOUND.* 
 MSGE     DATA   C* ERRORS OCCURRED IN FCOPY. SEE DAYFILE.* 
 MSGF     DATA   C* XXXXXX LINES TRUNCATED.*
 MSGG     DATA   C*      1 LINE TRUNCATED.* 
  
  
          TITLE  MAIN ROUTINE.
 FCOPY    SB1    1           ENTRY
          RJ     PRS         PRESET PROGRAM 
          SA1    R
          ZR     X1,FCO0     IF NO REWIND OF FILES
          REWIND P
          REWIND N
 FCO0     SB7    A0+
          NZ     B7,FCO1     IF FILES NOT OF LIKE TYPE
          RJ     CLF         COPY LIKE FILES
          EQ     FCO4        TERMINATE COPY 
  
 FCO1     RECALL N,R
          SA1    STPO 
          ZR     X1,FCO1.3   IF OUTPUT FILE NOT STRANGER TAPE 
          WRITEO N           RESERVE WORD FOR FIRST BLOCK HEADER WORD 
 FCO1.3   SA1    STPI 
          ZR     X1,FCO1.5   IF INPUT FILE NOT STRANGER TAPE
          READN  P,R         READ STRANGER TAPE 
          RJ     STB         START FIRST STRANGER TAPE BLOCK
          EQ     FCO2        START CONVERSION 
  
 FCO1.5   READ   P,R         READ NORMAL FILE 
 FCO2     RJ     GCH         GET NEXT CHARACTER 
          RJ     TCH         TRANSLATE CHARACTER
          NG     X2,FCO3     IF CHARACTER IGNORED 
          RJ     PCH         OUTPUT CHARACTER 
 FCO3     SA2    ENDF        CHECK FOR EOI
          ZR     X2,FCO2     IF NOT EOI 
 FCO4     RJ     PFE         PRINT FINAL ERROR MESSAGES 
          SA1    R
          ZR     X1,FCO5     IF NO REWIND OF FILES
          REWIND P
          REWIND N
 FCO5     MESSAGE X5,3       PRINT TERMINATION MESSAGE
          SA1    A
          ZR     X1,FCO6     IF *A* PARAMETER NOT SPECIFIED 
          SX1    MSGA        ADDRESS OF TERMINATION MESSAGE 
          BX1    X5-X1
          ZR     X1,FCO6     IF NORMAL TERMINATION
          ABORT 
  
 FCO6     ENDRUN
          TITLE  SUBROUTINES. 
          SPACE  4,10 
**        CLF - COPY FILE WITHOUT CONVERSION (SPECIAL CASE).
* 
*         ENTRY  FET SET TO READ INPUT FILE.
* 
*         EXIT   FILE COPIED. 
* 
*         USES   X - 1, 2, 6. 
*                A - 1, 6.
*                B - 6, 7.
* 
*         CALLS  WTW= 
* 
*         MACROS READ, READW, WRITER, WRITEF. 
  
  
 CLF      SUBR               ENTRY/EXIT 
 CLF1     READ   P,R
 CLF2     READW  P,WBUF,WBUFL  COPY TO WORKING BUFFER 
          BX6    X1          SAVE STATUS
          SA6    CLFS 
          SB7    B6-WBUF     PRESET WTW PARAMETERS
          SB6    WBUF 
          SX2    N
          RJ     =XWTW=      EMPTY WORKING FILE TO NEW FILE 
          SA1    CLFS        GET READ STATUS
          NG     X1,CLF4     IF EOF/EOI 
          ZR     X1,CLF2     IF NOT EOR 
          WRITER N,R
          EQ     CLF1        CONTINUE COPY
  
 CLF4     SX1    X1+1 
          NG     X1,CLFX     IF EOI 
          WRITEF N,R
          EQ     CLF1        CONTINUE COPY
  
 CLFS     CON    0           READ STATUS
 FBH      SPACE  4,15 
**        FBH - FORM BLOCK HEADER WORD. 
* 
*         FORMS THE BLOCK HEADER WORD NEEDED FOR STRANGER TAPE OUTPUT.
* 
*         ENTRY  (X1) = OUTPUT LINE CHARACTER COUNT.
*                (X2) = LINES IN BLOCK. 
*                (B7) = BITS PER CHARACTER. 
* 
*         EXIT   (X6) = BLOCK HEADER WORD.
* 
*         USES   X - 1, 2, 3, 4, 5, 6.
*                A - NONE.
*                B - B7.
  
  
 FBH      SUBR               ENTRY/EXIT 
          IX3    X1*X2       COMPUTE CHARACTERS IN BLOCK
          SX4    B7+
          IX3    X3*X4       BITS IN BLOCK
          SX5    60D
          BX4    X3 
          BX6    X5 
          IX1    X4/X6       CYBER WORDS IN BLOCK, TRUNCATED
          IX2    X1*X5       CYBER BITS 
          IX6    X3-X2       BITS USED IN LAST WORD 
          ZR     X6,FBH1     IF NO UNUSED BITS
          IX6    X5-X6       UNUSED BIT COUNT 
          SX1    X1+B1       ROUND UP WORD COUNT
          LX6    24 
 FBH1     BX6    X6+X1       FORM BLOCK HEADER WORD 
          EQ     FBHX        RETURN 
          SPACE  4,20 
**        GCH - GET CHARACTER.
* 
*         ENTRY  (B2) = CURRENT POSITION IN INPUT WORD. 
*                (B4) = INPUT CHARACTER LENGTH. 
*                (IWRD) = CURRENT INPUT WORD. 
*                (RAHD) = READ AHEAD CHARACTER. 
*                       = -1 IF NONE. 
* 
*         EXIT   (X2) = CHARACTER TO PROCESS. 
*                (B2) = NEW POSITION IN INPUT WORD. 
*                (RAHD) = NEW READ AHEAD CHARACTER. 
*                       = -1 IF NONE. 
*                IN FILES NOT USING THE ZERO BYTE LINE TERMINATOR,
*                ZERO CHARACTERS OCCURRING BETWEEN AN EOR, EOF OR EOI 
*                AND THE LAST LINE TERMINATOR PRECEDING IT ARE IGNORED. 
* 
*         USES   X - 1, 2, 3, 4, 5, 6, 7. 
*                A - 1, 2, 3, 6, 7. 
*                B - 2, 6, 7. 
* 
*         CALLS  PCH, RCH, TCH. 
  
  
 GCH      SUBR               ENTRY/EXIT 
          SA2    RAHD        GET READ AHEAD WORD
          SX6    -B1         CLEAR READ AHEAD 
          SA6    A2 
          PL     X2,GCHX     IF CHARACTER ALREADY READ
          RJ     RCH         READ CHARACTER 
          NZ     X2,GCHX     IF NOT ZERO CHARACTER
          SA1    IWRD        GET INPUT WORD 
          NZ     X1,GCHX     IF MORE CHARACTERS IN WORD 
          SA3    PL          GET INPUT LINE TERMINATOR
          SX3    X3-ZBCH
          NZ     X3,GCH3     IF INPUT LINE TERMINATOR NOT ZERO BYTE 
          SA1    INDX        GET INDEX
          NZ     X1,GCHX     IF UNCOMPLETED DOUBLE LENGTH CHARACTER 
  
*         CHECK FOR ZERO BYTE.
  
          SB7    B2+B4
          SB6    12D
          LT     B7,B6,GCH1  IF NO ROOM FOR ZERO BYTE 
          SX2    ZBCH        SET ZERO BYTE CHARACTER
          SB2    B0+         SET CURRENT INPUT WORD EMPTY 
          EQ     GCHX        RETURN 
  
 GCH1     RJ     RCH         READ NEXT CHARACTER
          SA1    IWRD        GET NEW INPUT WORD 
          NZ     X2,GCH2     IF NOT ZERO CHARACTER
          NZ     X1,GCH2     IF NOT ZERO BYTE 
          SX2    ZBCH        SET ZERO BYTE CHARACTER
          SB2    B0+         INPUT WORD IS EMPTY
          EQ     GCHX        RETURN 
  
 GCH2     SX6    X2          SET READ AHEAD CHARACTER 
          SA6    RAHD 
          BX2    X2-X2       RESET CHARACTER TO ZERO
          EQ     GCHX        RETURN 
  
*         CHECK FOR EXTRANEOUS ZERO CHARACTERS. 
  
 GCH3     SX5    B2          COMPUTE NUMBER OF CHARACTERS LEFT IN WORD
          SX4    B4 
          IX6    X5/X4
          SX4    B4 
          IX4    X4*X6       COMPUTE LEFTOVER BITS
          SX6    X6+1 
          IX5    X5-X4
          SA6    GCHA 
          SB2    X5 
          RJ     RCH         READ NEXT CHARACTER FROM NEW WORD
          SX4    X2-EOIC-1
          SX5    X2-EORC
          PL     X4,GCH4     IF NOT EOR, EOF, OR EOI
          PL     X5,GCHX     IF CHARACTER IS EOR, EOF OR EOI
 GCH4     SX6    X2          SAVE CHARACTER 
          SA6    GCHB 
 GCH5     SA1    GCHA        CHECK ZERO CHARACTER COUNT 
          SX7    X1-1        DECREMENT CHARACTER COUNT
          NG     X7,GCH6     IF NO MORE ZERO CHARACTERS TO PROCESS
          BX2    X2-X2
          SA7    GCHA        SAVE COUNT 
          RJ     TCH         TRANSLATE ZERO CHARACTER 
          NG     X2,GCH5     IF CHARACTER IS TO BE IGNORED
          RJ     PCH         OUTPUT CHARACTER 
          EQ     GCH5        CONTINUE 
  
 GCH6     SA2    GCHB        RESTORE FINAL CHARACTER
          EQ     GCHX        RETURN 
  
  
 GCHA     CON    0           ZERO CHARACTER COUNT 
 GCHB     CON    0           TEMPORARY CHARACTER STORAGE
 PCH      SPACE  4,20 
**        PCH - OUTPUT CHARACTER. 
* 
*         ENTRY  (X2) = CHARACTER TO WRITE. 
*                (B3) = CURRENT POSITION IN OUTPUT WORD.
*                (B5) = OUTPUT CHARACTER LENGTH.
*                (X6) = CHARACTER COUNT.
* 
*         EXIT   (B3) = NEW POSITION IN OUTPUT WORD.
*                (CLNF) = 1 IF CHARACTER WRITTEN WAS A
*                          6 BIT DISPLAY CODE COLON.
*                (ENDF) = 1 IF EOI DETECTED.
* 
*         USES   X - 1, 2, 3, 5, 6, 7.
*                A - 1, 3, 7. 
*                B - 6, 7.
* 
*         CALLS  GCH, WCH, WTB, WZB.
* 
*         MACROS WRITEO.
  
  
 PCH      SUBR               ENTRY/EXIT 
          SX3    B5          SET BIT COUNT
          IX6    X3*X6
          SA1    NL          CHECK FOR EOL
          SB7    X6 
          BX1    X1-X2
          SA3    STPO 
          NZ     X1,PCH3     IF NOT EOL 
          SA1    LINE        INCREMENT LINE COUNT 
          SX7    X1+B1
          SA7    A1 
          NZ     X3,PCH7     IF OUTPUT FILE IS STRANGER TAPE
  
*         PROCESS DISPLAY CODE COLON. 
  
 PCH1     SX5    X2-ZBCH
          SA3    CLNF        GET COLON FLAG 
          NZ     X5,PCH3     IF NOT ZERO BYTE EOL 
          ZR     X3,PCH2     IF COLON FLAG NOT SET
          SX2    BLNK        SET BLANK TO GUARD COLON 
          RJ     WCH         WRITE BLANK CHARACTER
          BX7    X7-X7       CLEAR COLON FLAG 
          SA7    CLNF 
 PCH2     RJ     WZB         WRITE ZERO BYTE
          EQ     PCHX        RETURN 
  
*         WRITE CHARACTER.
  
 PCH3     BX7    X7-X7       CLEAR COLON FLAG 
          SB6    6
          NZ     X2,PCH4     IF NOT ZERO CHARACTER
          NE     B6,B7,PCH4  IF ZERO CHARACTER NOT 6 BIT COLON
          SX7    B1+         SET COLON FLAG 
 PCH4     SA7    CLNF        SAVE COLON FLAG
          ZR     X3,PCH5     IF OUTPUT FILE IS NOT STRANGER TAPE
          SA3    OLCC 
          ZR     X3,PCH6     IF RECORD (LINE) FULL
          SX7    X3-1        DECREMENT OUTPUT LINE CHARACTER COUNT
          SA7    A3 
 PCH5     RJ     WCH         WRITE CHARACTER
          SA1    STPO 
          ZR     X1,PCHX     IF OUTPUT FILE NOT STRANGER TAPE, RETURN 
          SA1    ENDF 
          ZR     X1,PCHX     IF NOT EOI 
          RJ     WTB         WRITE TAPE BLOCK 
          EQ     PCHX        RETURN 
  
*         TRUNCATE LONG LINE. 
  
 PCH6     RJ     GCH         READ NEXT INPUT FILE CHARACTER 
          SA1    PL          CHECK FOR LINE TERMINATOR
          BX1    X2-X1
          NZ     X1,PCH6     IF NOT LINE TERMINATOR 
          SA1    TRNC        INCREMENT TRUNCATION COUNT 
          SX6    X1+B1
          SA6    A1 
          EQ     PCH8        START A NEW LINE 
  
*         BLANK FILL REMAINDER OF A SHORT LINE. 
  
 PCH7     SA3    OLCC        CHECK CHARACTER COUNT
          ZR     X3,PCH8     IF NO MORE ROOM IN LINE
          SX7    X3-1        DECREMENT CHARACTER COUNT
          SA2    SPAC        ADD ANOTHER BLANK TO LINE
          SB7    B5 
          SA7    A3 
          RJ     WCH
          EQ     PCH7        CHECK IF LINE IS FULL
  
 PCH8     SA1    FL          RESET OUTPUT LINE CHARACTER COUNT
          BX6    X1 
          SA6    OLCC 
          SA1    OLCT        DECREMENT OUTPUT LINE COUNT
          SX7    X1-1 
          SA7    A1 
          NZ     X7,PCHX     IF NOT END OF BLOCK, RETURN
  
*         WRITE CURRENT STRANGER TAPE BLOCK.
  
          SA3    OWRD        WRITE LAST WORD OF BLOCK 
          BX7    X7-X7       CLEAR OUTPUT WORD
          BX6    X3 
          SA7    A3 
          WRITEO N
          SB3    60D         RESET OUTPUT WORD POINTER
          RJ     WTB         WRITE STRANGER TAPE BLOCK
          EQ     PCHX        RETURN 
 PFE      SPACE  4,20 
**        PFE - PRINT FINAL ERROR MESSAGES. 
* 
*         ENTRY  (ERCT) = TRANSLATION ERROR COUNT.
*                (ERLM) = TRANSLATION ERROR LIMIT.
*                (TRNC) = TRUNCATED LINE COUNT. 
* 
*         EXIT   (X5) = ADDRESS OF TERMINATION MESSAGE. 
*                ERROR MESSAGES PRINTED, IF APPROPRIATE.
* 
*         USES   X - 0, 1, 2, 5, 6. 
*                A - 1, 2, 6. 
*                B - 5. 
* 
*         CALLS  CDD. 
* 
*         MACROS MESSAGE. 
  
  
 PFE      SUBR               ENTRY/EXIT 
  
*         PROCESS LINE TRUNCATION COUNT.
  
          SX5    MSGA        SET NORMAL TERMINATION MESSAGE 
          SA1    TRNC 
          SB5    X1 
          ZR     X1,PFE2     IF NO LINES TRUNCATED
          SX5    MSGE        SET ABNORMAL TERMINATION MESSAGE 
          NE     B5,B1,PFE0  IF MORE THAN ONE LINE TRUNCATED
          SX2    MSGG 
          EQ     PFE1        PRINT ERROR MESSAGE
  
 PFE0     RJ     CDD         CONVERT TRUNCATION COUNT TO DISPLAY
          MX0    -18
          SA1    MSGF 
          SX2    A1 
          LX6    18          POSITION COUNT FOR MESSAGE 
          BX1    -X0*X1      CLEAR PLACE FOR COUNT
          BX6    X0*X6       REMOVE EXTRANEOUS BLANKS 
          BX6    X1+X6       SET COUNT IN MESSAGE 
          SA6    A1+
 PFE1     MESSAGE  X2,3      * XXXXXX LINES TRUNCATED.* 
  
*         PROCESS TRANSLATION ERROR COUNT.
  
 PFE2     SA2    ERCT        GET ERROR COUNT
          SA1    ERLM        GET ERROR LIMIT
          IX1    X2-X1
          ZR     X2,PFEX     IF NO TRANSLATION ERRORS, RETURN 
          SX5    MSGE        SET ABNORMAL TERMINATION MESSAGE 
          NG     X1,PFEX     IF ERROR LIMIT NOT REACHED 
          RJ     CDD         CONVERT EXCESS ERROR COUNT TO DISPLAY
          SA1    MSGD+1 
          MX0    -36
          BX1    X0*X1       CLEAR SPACE FOR COUNT
          BX6    -X0*X6      REMOVE EXTRA BLANKS
          BX6    X1+X6       SET COUNT IN MESSAGE 
          SA6    A1+
          MESSAGE  MSGD,3    * ERROR LIMIT. ...*
          EQ     PFEX        RETURN 
          SPACE  4,15 
**        PTE - PROCESS TRANSLATION ERROR.
* 
*         ENTRY  (X2) = CHARACTER CODE, RIGHT JUSTIFIED.
*                (X5) = INDEX VALUE FOR 6/12 CHARACTERS.
* 
*         USES   X - 0, 1, 3, 4, 5, 6.
*                A - 1, 3, 5, 6.
*                B - 6, 7.
* 
*         CALLS  CDD, COD.
* 
*         MACROS MESSAGE. 
  
  
 PTE      SUBR               ENTRY/EXIT 
          SA1    ERCT        GET ERROR COUNT
          SA3    ERLM        GET ERROR LIMIT
          SX6    X1+B1       INCREMENT ERROR COUNT
          SA6    A1+
          IX6    X3-X6
          NG     X6,PTEX     IF ERROR LIMIT EXCEEDED, RETURN
          SX6    B4          SAVE (B) REGISTERS 
          SB6    B2 
          SB7    B3 
          SA6    PTEA 
          MX0    -24
  
*         PUT CHARACTER CODE IN MESSAGE.
  
          SX4    X5-200B
          SX6    X5-300B
          NZ     X4,PTE1     IF NOT 12 BIT 6/12 CHAR STARTING WITH 74 
          SX5    7400B
 PTE1     NZ     X6,PTE2     IF NOT 12 BIT 6/12 CHAR STARTING WITH 76 
          SX5    7600B
 PTE2     IX1    X2+X5       FORM FULL 12 BIT CHARACTER 
          SA5    MSGC+1 
          RJ     COD         CONVERT CODE TO DISPLAY
          BX6    -X0*X6 
          LX0    12 
          LX6    12 
          BX5    X0*X5       CLEAR SPACE FOR CODE 
          BX6    X5+X6       PUT CODE IN MESSAGE
          SA5    MSGC+2 
          SA6    MSGC+1 
  
*         PUT FILE NUMBER IN MESSAGE. 
  
          SA1    FILE        GET FILE NUMBER
          MX0    -24
          RJ     CDD         CONVERT FILE NUMBER TO DISPLAY 
          BX6    -X0*X6 
          BX5    X0*X5       CLEAR PLACE FOR FILE NUMBER
          BX6    X5+X6       SET FILE NUMBER IN MESSAGE 
          SA5    MSGC+4 
          SA6    MSGC+2 
  
*         PUT RECORD NUMBER IN MESSAGE. 
  
          SA1    RCRD        GET RECORD NUMBER
          RJ     CDD         CONVERT RECORD NUMBER TO DISPLAY 
          BX6    -X0*X6 
          MX0    -36
          LX6    36D         POSITION RECORD NUMBER 
          BX5    -X0*X5      CLEAR PLACE FOR RECORD NUMBER
          BX6    X6+X5       SET RECORD NUMBER IN MESSAGE 
          SA5    MSGC+5 
          SA6    MSGC+4 
  
*         PUT LINE NUMBER IN MESSAGE. 
  
          SA1    LINE        GET LINE NUMBER
          RJ     CDD         CONVERT LINE NUMBER TO DISPLAY 
          BX6    -X0*X6      REMOVE EXTRA BLANKS
          LX0    12 
          LX6    12 
          BX5    X0*X5       CLEAR POSITION FOR LINE NUMBER 
          BX6    X5+X6       SET LINE NUMBER IN MESSAGE 
          SA6    MSGC+5 
  
*         WRITE MESSAGE TO DAYFILE. 
  
          MESSAGE  MSGC,3    * UNKNOWN CODE CCCC, FILE XXXX,... * 
          SA1    PTEA        RESTORE SAVED (B) REGISTERS
          SB2    B6 
          SB3    B7 
          SB4    X1+
          EQ     PTEX        RETURN 
  
 PTEA     DATA   0           B REGISTER STORAGE 
          SPACE  4,10 
**        RCH - READ CHARACTER. 
* 
*         ENTRY  (B2) = CURRENT POSITION IN INPUT WORD. 
*                (B4) = INPUT CHARACTER LENGTH. 
*                (IWRD) = CURRENT INPUT WORD. 
* 
*         EXIT   (X2) = CHARACTER READ, RIGHT JUSTIFIED.
*                (B2) = NEW POSITION IN INPUT WORD. 
*                (IWRD) = CURRENT INPUT WORD. 
* 
*         USES   X - 0, 1, 2, 3, 5, 6, 7. 
*                A - 1, 2, 3, 6, 7. 
*                B - 2, 6, 7. 
* 
*         CALLS  STB. 
* 
*         MACROS READ, READO, RECALL. 
  
  
 RCH      SUBR               ENTRY/EXIT 
          SA3    STPI 
          ZR     X3,RCH0     IF INPUT FILE NOT STRANGER TAPE
          SA3    ILCC        DECREMENT INPUT LINE CHARACTER COUNT 
          SX7    X3-1 
          SA7    A3+
          NZ     X3,RCH0     IF NOT END OF LINE 
          SA1    FL          RESET INPUT LINE CHARACTER COUNT 
          SA2    PL          SET EOL CHARACTER
          BX7    X1 
          SA7    A3 
          SA1    ILCT        DECREMENT INPUT LINE COUNT 
          SX7    X1-1 
          ZR     X7,RCH6     IF NO MORE ROOM IN BLOCK 
          SA7    A1+
          EQ     RCHX        RETURN 
  
 RCH0     GT     B4,B2,RCH1  IF NO WHOLE CHARACTERS LEFT IN WORD
          MX0    1           BUILD MASK 
          SB7    B4-B1
          SA1    IWRD        GET INPUT WORD 
          AX0    B7 
          BX2    X0*X1       EXTRACT CHARACTER
          BX6    -X0*X1      DELETE CHARACTER FROM INPUT WORD 
          LX2    B4 
          LX6    B4 
          SB2    B2-B4
          SA6    A1+         SAVE INPUT WORD
          EQ     RCHX        RETURN 
  
 RCH1     SB6    B4 
          BX5    X5-X5
          ZR     B2,RCH2     IF INPUT WORD EMPTY
          SA1    IWRD        GET INPUT WORD 
          SB6    B4-B2       COMPUTE REMAINDER
          LX5    X1,B4       SET PARTIAL CHARACTER
 RCH2     READO  P           READ NEXT WORD 
          NZ     X1,RCH3     IF EOR, EOF, OR EOI
          MX0    1           BUILD MASK 
          SB7    B6-B1
          AX0    B7 
          BX2    X0*X6       EXTRACT PARTIAL CHARACTER
          BX6    -X0*X6      DELETE USED BITS 
          LX2    B6 
          LX6    B6 
          BX2    X5+X2
          SB2    60D         RESET CURRENT POSTION
          SA6    IWRD        SAVE INPUT WORD
          SB2    B2-B6
          EQ     RCHX        RETURN 
  
 RCH3     SA2    STPI 
          NZ     X2,RCH5     IF INPUT FILE ON STRANGER TAPE 
          SA2    STPO 
          NG     X1,RCH4     IF EOF OR EOI
          NZ     X2,RCH3.1   IF OUTPUT FILE ON STRANGER TAPE
          READ   P,R
          RECALL N,R
 RCH3.1   SX2    EORC        SET EOR CHARACTER
          SB2    B0+         SET CURRENT INPUT WORD EMPTY 
          EQ     RCHX        RETURN 
  
 RCH4     SX1    X1+1 
          NG     X1,RCH5     IF EOI 
          NZ     X2,RCH4.1   IF OUTPUT FILE ON STRANGER TAPE
          READ   P,R
          RECALL N,R
 RCH4.1   SX2    EOFC        SET EOF CHARACTER
          SB2    B0+         SET CURRENT INPUT WORD EMPTY 
          EQ     RCHX        RETURN 
  
 RCH5     SX2    EOIC        SET EOI CHARACTER
          EQ     RCHX        RETURN 
  
 RCH6     RJ     STB         START NEW STRANGER TAPE BLOCK
          SA2    PL          SET LINE TERMINATOR AS OUTPUT CHARACTER
          ZR     X1,RCHX     IF NOT EOI 
          SX7    EOIC        SET EOI AS NEXT CHARACTER READ 
          SA7    RAHD 
          EQ     RCHX        RETURN 
          SPACE  4,20 
**        STB - START STRANGER TAPE BLOCK.
* 
*         ENTRY  (IBHW) = INPUT BLOCK HEADER WORD FOR FULL BLOCK. 
*                (FL) = FIXED LENGTH LINE LENGTH. 
*                (LB) = LINES PER BLOCK.
* 
*         EXIT   (X1) = NONZERO IF EOI REACHED. 
*                NEW BLOCK STARTED IF NOT EOI.
*                (ILCC) RESET FOR NEW LINE. 
*                (ILCT) RESET FOR NEW BLOCK.
* 
*         USES   X - 0, 1, 3, 6, 7. 
*                A - 1, 3, 7. 
*                B - 2, 7.
* 
*         MACROS READN, READO, RECALL.
  
  
 STB      SUBR               ENTRY/EXIT 
 STB1     READO  P           READ BLOCK HEADER WORD 
          SB7    X1 
          LT     B7,B1,STB2  IF NEW READ DOES NOT NEED TO BE ISSUED 
          READN  P,R         READ TAPE
          RECALL N,R
          EQ     STB1        GET HEADER WORD
  
 STB2     NZ     X1,STBX     IF END OF TAPE 
          SA1    IBHW 
          SA3    LB          GET LINE COUNT FOR FULL TAPE BLOCK 
          IX1    X1-X6
          BX7    X3 
          ZR     X1,STB3     IF FULL SIZE BLOCK 
          SX3    X6+         NUMBER OF 60 BIT WORDS IN BLOCK
          SX0    60D
          AX6    24          UNUSED BIT COUNT 
          IX3    X3*X0       COMPUTE BITS IN BLOCK
          SX1    B4+
          IX3    X3-X6
          IX7    X3/X1       COMPUTE NUMBER OF CHARACTERS IN BLOCK
          SA1    FL          COMPUTE NUMBER OF LINES IN BLOCK 
          IX7    X7/X1
 STB3     SA7    ILCT        SAVE INPUT LINE COUNT
          SA1    FL          RESET INPUT CHARACTER COUNT
          SB2    B0          SET TO START NEW INPUT WORD
          BX7    X1 
          SA7    ILCC 
          SX1    B0+         SET EXIT CONDITION 
          EQ     STBX        RETURN 
          SPACE  4,20 
**        TCH - TRANSLATE CHARACTER.
* 
*         ENTRY  (X2) = CHARACTER TO TRANSLATE. 
*                (A0) = CONVERSION TABLE FWA. 
* 
*         EXIT   (X2) = NEW CHARACTER(S), RIGHT JUSTIFIED.
*                     = -1 IF CHARACTER IS TO BE IGNORED. 
*                (X6) = CHARACTER COUNT.
* 
*         USES   X - 0, 1, 2, 3, 4, 5, 6. 
*                A - 1, 5, 6. 
*                B - 6, 7.
* 
*         CALLS  PTE. 
* 
*         MACROS ABORT, MESSAGE.
  
  
 TCH      SUBR               ENTRY/EXIT 
          SA5    INDX        GET INDEX
          MX0    -9 
          BX2    -X0*X2      TRUNCATE TOP 3 BITS
          BX6    X6-X6       CLEAR INDEX
          SB7    X2 
          SA1    TCVTL       GET TABLE LENGTH 
          SB6    X1 
          SA6    A5+
          SB7    B7+X5       COMPUTE ENTRY NUMBER 
          LE     B7,B6,TCH1  IF ENTRY NEEDED IS WITHIN TABLE BOUNDS 
          SX2    B7+
          RJ     PTE         GENERATE ERROR 
          SX2    -B1         IGNORE CHARACTER 
          EQ     TCHX        RETURN 
  
 TCH1     SA1    A0+B7       GET CONVERSION TABLE ENTRY 
          MX0    -36         EXTRACT DATA ITEM
          BX4    -X0*X1 
          MX0    -3 
          LX1    59-53
          BX6    -X0*X1      GET COUNT
          MX0    -2 
          AX1    4
          BX3    -X0*X1      EXTRACT OPTION 
          NZ     X3,TCH3     IF NOT NORMAL CONVERSION 
          BX2    X4          SET NEW CHARACTER
          EQ     TCHX        RETURN 
  
 TCH3     SX3    X3-1 
          NZ     X3,TCH5     IF NOT NO-CONVERSION OPTION
          ZR     X4,TCH4     IF NOT AN ERROR
          RJ     PTE         PROCESS ERROR
 TCH4     SX2    -B1         IGNORE CHARACTER 
          EQ     TCHX        RETURN 
  
 TCH5     SX3    X3-1 
          NZ     X3,TCH6     IF NOT SET INDEX OPTION
          BX6    X4          SET INDEX
          SA6    INDX 
          SX2    -B1         IGNORE CHARACTER 
          EQ     TCHX        RETURN 
  
 TCH6     MESSAGE  MSGB,3    * BAD FCOPY CONVERSION TABLE.* 
          ABORT 
 WCH      SPACE  4,15 
**        WCH - WRITE CHARACTER.
* 
*         ENTRY  (X2) = CHARACTER TO WRITE. 
*                (B3) = CURRENT POSITION IN OUTPUT WORD.
*                (B7) = CHARACTER LENGTH. 
* 
*         EXIT   (B3) = NEW POSITION IN OUTPUT WORD.
*                (ENDF) = 1 IF EOI DETECTED.
* 
*         USES   X - 0, 1, 2, 3, 5, 6, 7. 
*                A - 1, 2, 3, 5, 6, 7.
*                B - 3, 6, 7. 
* 
*         MACROS WRITEF, WRITEO, WRITER.
  
  
 WCH10    SX7    B1+         SET END FLAG 
          SA7    ENDF 
  
 WCH      SUBR               ENTRY/EXIT 
          SA1    TCVTL
          SX1    X1+B1
          IX6    X2-X1
          SX5    X2-EORC
          SA1    OWRD        GET OUTPUT WORD
          PL     X6,WCH7     IF 12 BIT CHARACTER
          NG     X5,WCH7     IF NOT EOR, EOF, OR EOI
          SB6    B3-60D 
          SX6    B3 
          SA6    UBC
          ZR     B6,WCH4     IF OUTPUT WORD EMPTY 
          BX6    X1 
          SB3    60          RESET CURRENT POSITION 
          WRITEO N
          BX7    X7-X7       CLEAR OUTPUT WORD
          SA7    OWRD 
 WCH4     SA1    STPO 
          NZ     X1,WCH10    IF OUTPUT FILE ON STRANGER TAPE
  
*         PROCESS EOR.
  
          NZ     X5,WCH5     IF NOT EOR 
          SA5    RCRD        GET RECORD NUMBER
          SA3    N+1         FET+1
          AX3    48 
          SX3    X3-2ROD     OPTICAL DISK DEVICE TYPE 
          NZ     X3,WCH4.1   IF NOT *OD*
          SA3    N+6         FET+6
          SA2    UBC         UNUSED BIT COUNT 
          MX0    30 
          LX2    24 
          BX3    X0*X3
          BX6    X2+X3
          SA6    N+6
 WCH4.1   WRITER N,R
          SX7    X5+B1       INCREMENT RECORD NUMBER
          SA7    A5 
          SX6    B1+         RESET LINE NUMBER
          SA6    LINE 
          EQ     WCHX        RETURN 
  
*         PROCESS EOF.
  
 WCH5     SX5    X5-1 
          NZ     X5,WCH6     IF NOT EOF 
          SA5    FILE        GET FILE NUMBER
          WRITEF N,R
          SX7    X5+B1       INCREMENT FILE NUMBER
          SX6    B1+         RESET LINE AND RECORD NUMBERS
          SA7    A5 
          SA6    LINE 
          SA6    RCRD 
          EQ     WCHX        RETURN 
  
*         PROCESS EOI.
  
 WCH6     RECALL N
          SA3    N+2         GET *IN* POINTER 
          SA2    N+3         GET *OUT* POINTER
          IX3    X3-X2
          ZR     X3,WCH10    IF NO MORE WORDS TO WRITE
          WRITER N           FLUSH BUFFER 
          EQ     WCH10       SET END FLAG 
  
*         WRITE CHARACTER.
  
 WCH7     GT     B7,B3,WCH8  IF NOT ENOUGH ROOM FOR CHARACTER IN WORD 
          SB3    B3-B7       DECREMENT CURRENT POSITION 
          LX2    B3 
          BX6    X1+X2
          SA6    OWRD        SAVE OUTPUT WORD 
          EQ     WCHX        RETURN 
  
*         START A NEW OUTPUT WORD.
  
 WCH8     SB6    B7          SET DEFAULT REMAINDER
          BX6    X1 
          ZR     B3,WCH9     IF NO ROOM IN WORD 
          SB6    B7-B3       FORM AND INSERT PARTIAL CHARACTER
          AX3    X2,B6
          BX6    X1+X3
 WCH9     SB3    60D         RESET CURRENT POSITION 
          SB3    B3-B6       DECREMENT CURRENT POSITION 
          LX2    B3 
          MX0    1
          SB7    B6-B1
          AX0    X0,B7
          BX7    X0*X2       SET NEW OUTPUT WORD
          SA7    OWRD 
          WRITEO N           WRITE OLD OUTPUT WORD
          EQ     WCHX        RETURN 
 WTB      SPACE  4,20 
**        WTB - WRITE TAPE BLOCK. 
* 
*         ENTRY  (B7) = OUTPUT CHARACTER SIZE.
*                (IPTR) = ADDRESS TO USE FOR BLOCK HEADER WORD. 
*                (ENDF) = SET IF EOI REACHED IN INPUT FILE. 
*                (OBHW) = OUTPUT BLOCK HEADER WORD FOR FULL BLOCK.
*                (OLCT) = COUNT OF REMAINING LINES IN OUTPUT BLOCK. 
* 
*         EXIT   BLOCK WRITTEN TO STRANGER TAPE.
*                (IPTR) UPDATED.
*                (OLCT) RESET.
* 
*         USES   X - 1, 2, 3, 6.
*                A - 1, 2, 3, 6.
*                B - NONE.
* 
*         CALLS  FBH. 
* 
*         MACROS WRITEN, WRITEO.
  
  
 WTB      SUBR               ENTRY/EXIT 
          SA3    OBHW        GET FULL SIZE OUTPUT BLOCK HEADER WORD 
          SA2    OLCT 
          SA1    FL 
          BX6    X3 
          ZR     X2,WTB1     IF BLOCK FULL SIZE 
          SA3    LB 
          IX2    X3-X2       COMPUTE LINES USED IN BLOCK
          ZR     X2,WTB2     IF EMPTY BLOCK 
          RJ     FBH         FORM BLOCK HEADER WORD 
 WTB1     SA2    IPTR        SET HEADER WORD IN BLOCK 
          SA6    X2+
          WRITEN N,R         WRITE BLOCK
 WTB2     SA1    ENDF 
          NZ     X1,WTBX     IF END OF INFORMATION, RETURN
  
*         START NEW BLOCK.
  
          SA3    N+2         GET LOCATION FOR NEXT BLOCK HEADER WORD
          BX6    X3 
          SA6    IPTR 
          WRITEO N           RESERVE WORD FOR BLOCK HEADER WORD 
          SA1    LB          RESET OUTPUT LINE COUNT
          BX6    X1 
          SA6    OLCT 
          EQ     WTBX        RETURN 
 WZB      SPACE  4,15 
**        WZB - WRITE ZERO BYTE.
* 
*         ENTRY  (B3) = POSITION IN OUTPUT WORD.
* 
*         EXIT   (B3) UPDATED.
* 
*         USES   X - 1, 6, 7. 
*                A - 1, 6, 7. 
*                B - 3. 
* 
*         MACROS WRITEO.
  
  
 WZB      SUBR               ENTRY/EXIT 
          SA1    OWRD        GET OUTPUT WORD
          SB6    12D
          BX6    X1 
          WRITEO N
          GE     B3,B6,WZB1  IF WORD WRITTEN WAS PROPER ZERO BYTE 
          SX6    B0+
          WRITEO N
 WZB1     BX7    X7-X7       ZERO OUTPUT WORD 
          SA7    OWRD 
          SB3    60D         RESET CURRENT POSITION 
          EQ     WZBX        RETURN 
          SPACE  4,10 
*         COMMON DECKS. 
  
  
*CALL     COMCCDD 
*CALL,COMCCOD 
*CALL     COMCCIO 
*CALL,COMCLFM 
*CALL,COMCRDO 
*CALL     COMCRDW 
*CALL     COMCSYS 
*CALL,COMCWTO 
*CALL     COMCWTW 
*CALL,COMTCVT 
          TITLE  CONVERSION BASE TABLES 
          SPACE  4,10 
*         BUFFERS.
  
  
          USE    BUFFERS
  
 TCVT     BSSZ   MCVTL       CONVERSION TABLE 
 WBUF     BSSZ   WBUFL       WORKING WRITE BUFFER 
 BUF      BSS    0
 PBUF     EQU    BUF         OLD BUFFER 
 NBUF     EQU    PBUF+PBUFL  NEW BUFFER 
 RFL=     EQU    NBUF+NBUFL+4500B 
          SPACE  4,10 
**        CONVERSION BASE TABLES. 
  
  
          BASE   O
          SPACE  4,10 
 TD64     BSS    0           64 CHARACTER DISPLAY CODE
          QUAL   COMTCVT
          LOC    0
  
*                                    TO         FROM
*                                   DIS64       DIS64 
  
          CONV   T64D000,F64D000                 :  
          CONV   T64D001,F64D001                 A
          CONV   T64D002,F64D002                 B
          CONV   T64D003,F64D003                 C
          CONV   T64D004,F64D004                 D
          CONV   T64D005,F64D005                 E
          CONV   T64D006,F64D006                 F
          CONV   T64D007,F64D007                 G
          CONV   T64D010,F64D010                 H
          CONV   T64D011,F64D011                 I
          CONV   T64D012,F64D012                 J
          CONV   T64D013,F64D013                 K
          CONV   T64D014,F64D014                 L
          CONV   T64D015,F64D015                 M
          CONV   T64D016,F64D016                 N
          CONV   T64D017,F64D017                 O
          CONV   T64D020,F64D020                 P
          CONV   T64D021,F64D021                 Q
          CONV   T64D022,F64D022                 R
          CONV   T64D023,F64D023                 S
          CONV   T64D024,F64D024                 T
          CONV   T64D025,F64D025                 U
          CONV   T64D026,F64D026                 V
          CONV   T64D027,F64D027                 W
          CONV   T64D030,F64D030                 X
          CONV   T64D031,F64D031                 Y
          CONV   T64D032,F64D032                 Z
          CONV   T64D033,F64D033                 0
          CONV   T64D034,F64D034                 1
          CONV   T64D035,F64D035                 2
          CONV   T64D036,F64D036                 3
          CONV   T64D037,F64D037                 4
          CONV   T64D040,F64D040     BLANK       5
          CONV   T64D041,F64D041     !           6
          CONV   T64D042,F64D042     "           7
          CONV   T64D043,F64D043     #           8
          CONV   T64D044,F64D044     $           9
          CONV   T64D045,F64D045     %           +
          CONV   T64D046,F64D046     &           -
          CONV   T64D047,F64D047     '           *
          CONV   T64D050,F64D050     (           /
          CONV   T64D051,F64D051     )           (
          CONV   T64D052,F64D052     *           )
          CONV   T64D053,F64D053     +           $
          CONV   T64D054,F64D054     ,           =
          CONV   T64D055,F64D055     -           BLANK
          CONV   T64D056,F64D056     .           ,
          CONV   T64D057,F64D057     /           .
          CONV   T64D060,F64D060     0           #
          CONV   T64D061,F64D061     1           [
          CONV   T64D062,F64D062     2           ]
          CONV   T64D063,F64D063     3           %
          CONV   T64D064,F64D064     4           "
          CONV   T64D065,F64D065     5           _
          CONV   T64D066,F64D066     6           !
          CONV   T64D067,F64D067     7           &
          CONV   T64D070,F64D070     8           '
          CONV   T64D071,F64D071     9           ?
          CONV   T64D072,F64D072     :           <
          CONV   T64D073,F64D073     ;           >
          CONV   T64D074,F64D074     <           @
          CONV   T64D075,F64D075     =           \
          CONV   T64D076,F64D076     >           ^
          CONV   T64D077,F64D077     ?           ;
          CONV   T64D100,F64D100     @
          CONV   T64D101,F64D101     A
          CONV   T64D102,F64D102     B
          CONV   T64D103,F64D103     C
          CONV   T64D104,F64D104     D
          CONV   T64D105,F64D105     E
          CONV   T64D106,F64D106     F
          CONV   T64D107,F64D107     G
          CONV   T64D110,F64D110     H
          CONV   T64D111,F64D111     I
          CONV   T64D112,F64D112     J
          CONV   T64D113,F64D113     K
          CONV   T64D114,F64D114     L
          CONV   T64D115,F64D115     M
          CONV   T64D116,F64D116     N
          CONV   T64D117,F64D117     O
          CONV   T64D120,F64D120     P
          CONV   T64D121,F64D121     Q
          CONV   T64D122,F64D122     R
          CONV   T64D123,F64D123     S
          CONV   T64D124,F64D124     T
          CONV   T64D125,F64D125     U
          CONV   T64D126,F64D126     V
          CONV   T64D127,F64D127     W
          CONV   T64D130,F64D130     X
          CONV   T64D131,F64D131     Y
          CONV   T64D132,F64D132     Z
          CONV   T64D133,F64D133     [
          CONV   T64D134,F64D134     \
          CONV   T64D135,F64D135     ]
          CONV   T64D136,F64D136     ^
          CONV   T64D137,F64D137     _
          CONV   T64D140,F64D140
          CONV   T64D141,F64D141     A
          CONV   T64D142,F64D142     B
          CONV   T64D143,F64D143     C
          CONV   T64D144,F64D144     D
          CONV   T64D145,F64D145     E
          CONV   T64D146,F64D146     F
          CONV   T64D147,F64D147     G
          CONV   T64D150,F64D150     H
          CONV   T64D151,F64D151     I
          CONV   T64D152,F64D152     J
          CONV   T64D153,F64D153     K
          CONV   T64D154,F64D154     L
          CONV   T64D155,F64D155     M
          CONV   T64D156,F64D156     N
          CONV   T64D157,F64D157     O
          CONV   T64D160,F64D160     P
          CONV   T64D161,F64D161     Q
          CONV   T64D162,F64D162     R
          CONV   T64D163,F64D163     S
          CONV   T64D164,F64D164     T
          CONV   T64D165,F64D165     U
          CONV   T64D166,F64D166     V
          CONV   T64D167,F64D167     W
          CONV   T64D170,F64D170     X
          CONV   T64D171,F64D171     Y
          CONV   T64D172,F64D172     Z
          CONV   T64D173,F64D173     [
          CONV   T64D174,F64D174     \
          CONV   T64D175,F64D175     ]
          CONV   T64D176,F64D176     ^
          CONV   T64D177,F64D177
  
          CONV   T64D200,F64D200
          CONV   T64D201,F64D201
          CONV   T64D202,F64D202
          CONV   T64D203,F64D203
          CONV   T64D204,F64D204
          CONV   T64D205,F64D205
          CONV   T64D206,F64D206
          CONV   T64D207,F64D207
          CONV   T64D210,F64D210
          CONV   T64D211,F64D211
          CONV   T64D212,F64D212
          CONV   T64D213,F64D213
          CONV   T64D214,F64D214
          CONV   T64D215,F64D215
          CONV   T64D216,F64D216
          CONV   T64D217,F64D217
          CONV   T64D220,F64D220
          CONV   T64D221,F64D221
          CONV   T64D222,F64D222
          CONV   T64D223,F64D223
          CONV   T64D224,F64D224
          CONV   T64D225,F64D225
          CONV   T64D226,F64D226
          CONV   T64D227,F64D227
          CONV   T64D230,F64D230
          CONV   T64D231,F64D231
          CONV   T64D232,F64D232
          CONV   T64D233,F64D233
          CONV   T64D234,F64D234
          CONV   T64D235,F64D235
          CONV   T64D236,F64D236
          CONV   T64D237,F64D237
          CONV   T64D240,F64D240     BLANK
          CONV   T64D241,F64D241     !
          CONV   T64D242,F64D242     "
          CONV   T64D243,F64D243     #
          CONV   T64D244,F64D244     $
          CONV   T64D245,F64D245     %
          CONV   T64D246,F64D246     &
          CONV   T64D247,F64D247     '
          CONV   T64D250,F64D250     (
          CONV   T64D251,F64D251     )
          CONV   T64D252,F64D252     *
          CONV   T64D253,F64D253     +
          CONV   T64D254,F64D254     ,
          CONV   T64D255,F64D255     -
          CONV   T64D256,F64D256     .
          CONV   T64D257,F64D257     /
          CONV   T64D260,F64D260     0
          CONV   T64D261,F64D261     1
          CONV   T64D262,F64D262     2
          CONV   T64D263,F64D263     3
          CONV   T64D264,F64D264     4
          CONV   T64D265,F64D265     5
          CONV   T64D266,F64D266     6
          CONV   T64D267,F64D267     7
          CONV   T64D270,F64D270     8
          CONV   T64D271,F64D271     9
          CONV   T64D272,F64D272     :  
          CONV   T64D273,F64D273     ;
          CONV   T64D274,F64D274     <
          CONV   T64D275,F64D275     =
          CONV   T64D276,F64D276     >
          CONV   T64D277,F64D277     ?
          CONV   T64D300,F64D300     @
          CONV   T64D301,F64D301     A
          CONV   T64D302,F64D302     B
          CONV   T64D303,F64D303     C
          CONV   T64D304,F64D304     D
          CONV   T64D305,F64D305     E
          CONV   T64D306,F64D306     F
          CONV   T64D307,F64D307     G
          CONV   T64D310,F64D310     H
          CONV   T64D311,F64D311     I
          CONV   T64D312,F64D312     J
          CONV   T64D313,F64D313     K
          CONV   T64D314,F64D314     L
          CONV   T64D315,F64D315     M
          CONV   T64D316,F64D316     N
          CONV   T64D317,F64D317     O
          CONV   T64D320,F64D320     P
          CONV   T64D321,F64D321     Q
          CONV   T64D322,F64D322     R
          CONV   T64D323,F64D323     S
          CONV   T64D324,F64D324     T
          CONV   T64D325,F64D325     U
          CONV   T64D326,F64D326     V
          CONV   T64D327,F64D327     W
          CONV   T64D330,F64D330     X
          CONV   T64D331,F64D331     Y
          CONV   T64D332,F64D332     Z
          CONV   T64D333,F64D333     [
          CONV   T64D334,F64D334     \
          CONV   T64D335,F64D335     ]
          CONV   T64D336,F64D336     ^
          CONV   T64D337,F64D337     _
          CONV   T64D340,F64D340
          CONV   T64D341,F64D341     A
          CONV   T64D342,F64D342     B
          CONV   T64D343,F64D343     C
          CONV   T64D344,F64D344     D
          CONV   T64D345,F64D345     E
          CONV   T64D346,F64D346     F
          CONV   T64D347,F64D347     G
          CONV   T64D350,F64D350     H
          CONV   T64D351,F64D351     I
          CONV   T64D352,F64D352     J
          CONV   T64D353,F64D353     K
          CONV   T64D354,F64D354     L
          CONV   T64D355,F64D355     M
          CONV   T64D356,F64D356     N
          CONV   T64D357,F64D357     O
          CONV   T64D360,F64D360     P
          CONV   T64D361,F64D361     Q
          CONV   T64D362,F64D362     R
          CONV   T64D363,F64D363     S
          CONV   T64D364,F64D364     T
          CONV   T64D365,F64D365     U
          CONV   T64D366,F64D366     V
          CONV   T64D367,F64D367     W
          CONV   T64D370,F64D370     X
          CONV   T64D371,F64D371     Y
          CONV   T64D372,F64D372     Z
          CONV   T64D373,F64D373     [
          CONV   T64D374,F64D374     \
          CONV   T64D375,F64D375     ]
          CONV   T64D376,F64D376     ^
          CONV   T64D377,F64D377
  
          CONV   ZBCH,ZBCH           ZB          ZB 
          CONV   EORC,EORC           EOR         EOR
          CONV   EOFC,EOFC           EOF         EOF
          CONV   EOIC,EOIC           EOI         EOI
  
          LOC    *O 
          QUAL   *
          SPACE  4,10 
 TD63     BSS    0           63 CHARACTER DISPLAY CODE
          QUAL   COMTCVT
          LOC    0
  
*                                    TO         FROM
*                                   DIS63       DIS63 
  
          CONV   T63D000,F63D000
          CONV   T63D001,F63D001                 A
          CONV   T63D002,F63D002                 B
          CONV   T63D003,F63D003                 C
          CONV   T63D004,F63D004                 D
          CONV   T63D005,F63D005                 E
          CONV   T63D006,F63D006                 F
          CONV   T63D007,F63D007                 G
          CONV   T63D010,F63D010                 H
          CONV   T63D011,F63D011                 I
          CONV   T63D012,F63D012                 J
          CONV   T63D013,F63D013                 K
          CONV   T63D014,F63D014                 L
          CONV   T63D015,F63D015                 M
          CONV   T63D016,F63D016                 N
          CONV   T63D017,F63D017                 O
          CONV   T63D020,F63D020                 P
          CONV   T63D021,F63D021                 Q
          CONV   T63D022,F63D022                 R
          CONV   T63D023,F63D023                 S
          CONV   T63D024,F63D024                 T
          CONV   T63D025,F63D025                 U
          CONV   T63D026,F63D026                 V
          CONV   T63D027,F63D027                 W
          CONV   T63D030,F63D030                 X
          CONV   T63D031,F63D031                 Y
          CONV   T63D032,F63D032                 Z
          CONV   T63D033,F63D033                 0
          CONV   T63D034,F63D034                 1
          CONV   T63D035,F63D035                 2
          CONV   T63D036,F63D036                 3
          CONV   T63D037,F63D037                 4
          CONV   T63D040,F63D040     BLANK       5
          CONV   T63D041,F63D041     !           6
          CONV   T63D042,F63D042     "           7
          CONV   T63D043,F63D043     #           8
          CONV   T63D044,F63D044     $           9
          CONV   T63D045,F63D045     BLANK
          CONV   T63D046,F63D046     &           -
          CONV   T63D047,F63D047     '           *
          CONV   T63D050,F63D050     (           /
          CONV   T63D051,F63D051     )           (
          CONV   T63D052,F63D052     *           )
          CONV   T63D053,F63D053     +           $
          CONV   T63D054,F63D054     ,           =
          CONV   T63D055,F63D055     -           BLANK
          CONV   T63D056,F63D056     .           ,
          CONV   T63D057,F63D057     /           .
          CONV   T63D060,F63D060     0           #
          CONV   T63D061,F63D061     1           [
          CONV   T63D062,F63D062     2           ]
          CONV   T63D063,F63D063     3           %
          CONV   T63D064,F63D064     4           "
          CONV   T63D065,F63D065     5           _
          CONV   T63D066,F63D066     6           !
          CONV   T63D067,F63D067     7           &
          CONV   T63D070,F63D070     8           '
          CONV   T63D071,F63D071     9           ?
          CONV   T63D072,F63D072     :           <
          CONV   T63D073,F63D073     ;           >
          CONV   T63D074,F63D074     <           @
          CONV   T63D075,F63D075     =           \
          CONV   T63D076,F63D076     >           ^
          CONV   T63D077,F63D077     ?           ;
          CONV   T63D100,F63D100     @
          CONV   T63D101,F63D101     A
          CONV   T63D102,F63D102     B
          CONV   T63D103,F63D103     C
          CONV   T63D104,F63D104     D
          CONV   T63D105,F63D105     E
          CONV   T63D106,F63D106     F
          CONV   T63D107,F63D107     G
          CONV   T63D110,F63D110     H
          CONV   T63D111,F63D111     I
          CONV   T63D112,F63D112     J
          CONV   T63D113,F63D113     K
          CONV   T63D114,F63D114     L
          CONV   T63D115,F63D115     M
          CONV   T63D116,F63D116     N
          CONV   T63D117,F63D117     O
          CONV   T63D120,F63D120     P
          CONV   T63D121,F63D121     Q
          CONV   T63D122,F63D122     R
          CONV   T63D123,F63D123     S
          CONV   T63D124,F63D124     T
          CONV   T63D125,F63D125     U
          CONV   T63D126,F63D126     V
          CONV   T63D127,F63D127     W
          CONV   T63D130,F63D130     X
          CONV   T63D131,F63D131     Y
          CONV   T63D132,F63D132     Z
          CONV   T63D133,F63D133     [
          CONV   T63D134,F63D134     \
          CONV   T63D135,F63D135     ]
          CONV   T63D136,F63D136     ^
          CONV   T63D137,F63D137     _
          CONV   T63D140,F63D140
          CONV   T63D141,F63D141     A
          CONV   T63D142,F63D142     B
          CONV   T63D143,F63D143     C
          CONV   T63D144,F63D144     D
          CONV   T63D145,F63D145     E
          CONV   T63D146,F63D146     F
          CONV   T63D147,F63D147     G
          CONV   T63D150,F63D150     H
          CONV   T63D151,F63D151     I
          CONV   T63D152,F63D152     J
          CONV   T63D153,F63D153     K
          CONV   T63D154,F63D154     L
          CONV   T63D155,F63D155     M
          CONV   T63D156,F63D156     N
          CONV   T63D157,F63D157     O
          CONV   T63D160,F63D160     P
          CONV   T63D161,F63D161     Q
          CONV   T63D162,F63D162     R
          CONV   T63D163,F63D163     S
          CONV   T63D164,F63D164     T
          CONV   T63D165,F63D165     U
          CONV   T63D166,F63D166     V
          CONV   T63D167,F63D167     W
          CONV   T63D170,F63D170     X
          CONV   T63D171,F63D171     Y
          CONV   T63D172,F63D172     Z
          CONV   T63D173,F63D173     [
          CONV   T63D174,F63D174     \
          CONV   T63D175,F63D175     ]
          CONV   T63D176,F63D176     ^
          CONV   T63D177,F63D177
  
          CONV   T63D200,F63D200
          CONV   T63D201,F63D201
          CONV   T63D202,F63D202
          CONV   T63D203,F63D203
          CONV   T63D204,F63D204
          CONV   T63D205,F63D205
          CONV   T63D206,F63D206
          CONV   T63D207,F63D207
          CONV   T63D210,F63D210
          CONV   T63D211,F63D211
          CONV   T63D212,F63D212
          CONV   T63D213,F63D213
          CONV   T63D214,F63D214
          CONV   T63D215,F63D215
          CONV   T63D216,F63D216
          CONV   T63D217,F63D217
          CONV   T63D220,F63D220
          CONV   T63D221,F63D221
          CONV   T63D222,F63D222
          CONV   T63D223,F63D223
          CONV   T63D224,F63D224
          CONV   T63D225,F63D225
          CONV   T63D226,F63D226
          CONV   T63D227,F63D227
          CONV   T63D230,F63D230
          CONV   T63D231,F63D231
          CONV   T63D232,F63D232
          CONV   T63D233,F63D233
          CONV   T63D234,F63D234
          CONV   T63D235,F63D235
          CONV   T63D236,F63D236
          CONV   T63D237,F63D237
          CONV   T63D240,F63D240     BLANK
          CONV   T63D241,F63D241     !
          CONV   T63D242,F63D242     "
          CONV   T63D243,F63D243     #
          CONV   T63D244,F63D244     $
          CONV   T63D245,F63D245     BLANK
          CONV   T63D246,F63D246     &
          CONV   T63D247,F63D247     '
          CONV   T63D250,F63D250     (
          CONV   T63D251,F63D251     )
          CONV   T63D252,F63D252     *
          CONV   T63D253,F63D253     +
          CONV   T63D254,F63D254     ,
          CONV   T63D255,F63D255     -
          CONV   T63D256,F63D256     .
          CONV   T63D257,F63D257     /
          CONV   T63D260,F63D260     0
          CONV   T63D261,F63D261     1
          CONV   T63D262,F63D262     2
          CONV   T63D263,F63D263     3
          CONV   T63D264,F63D264     4
          CONV   T63D265,F63D265     5
          CONV   T63D266,F63D266     6
          CONV   T63D267,F63D267     7
          CONV   T63D270,F63D270     8
          CONV   T63D271,F63D271     9
          CONV   T63D272,F63D272     :  
          CONV   T63D273,F63D273     ;
          CONV   T63D274,F63D274     <
          CONV   T63D275,F63D275     =
          CONV   T63D276,F63D276     >
          CONV   T63D277,F63D277     ?
          CONV   T63D300,F63D300     @
          CONV   T63D301,F63D301     A
          CONV   T63D302,F63D302     B
          CONV   T63D303,F63D303     C
          CONV   T63D304,F63D304     D
          CONV   T63D305,F63D305     E
          CONV   T63D306,F63D306     F
          CONV   T63D307,F63D307     G
          CONV   T63D310,F63D310     H
          CONV   T63D311,F63D311     I
          CONV   T63D312,F63D312     J
          CONV   T63D313,F63D313     K
          CONV   T63D314,F63D314     L
          CONV   T63D315,F63D315     M
          CONV   T63D316,F63D316     N
          CONV   T63D317,F63D317     O
          CONV   T63D320,F63D320     P
          CONV   T63D321,F63D321     Q
          CONV   T63D322,F63D322     R
          CONV   T63D323,F63D323     S
          CONV   T63D324,F63D324     T
          CONV   T63D325,F63D325     U
          CONV   T63D326,F63D326     V
          CONV   T63D327,F63D327     W
          CONV   T63D330,F63D330     X
          CONV   T63D331,F63D331     Y
          CONV   T63D332,F63D332     Z
          CONV   T63D333,F63D333     [
          CONV   T63D334,F63D334     \
          CONV   T63D335,F63D335     ]
          CONV   T63D336,F63D336     ^
          CONV   T63D337,F63D337     _
          CONV   T63D340,F63D340
          CONV   T63D341,F63D341     A
          CONV   T63D342,F63D342     B
          CONV   T63D343,F63D343     C
          CONV   T63D344,F63D344     D
          CONV   T63D345,F63D345     E
          CONV   T63D346,F63D346     F
          CONV   T63D347,F63D347     G
          CONV   T63D350,F63D350     H
          CONV   T63D351,F63D351     I
          CONV   T63D352,F63D352     J
          CONV   T63D353,F63D353     K
          CONV   T63D354,F63D354     L
          CONV   T63D355,F63D355     M
          CONV   T63D356,F63D356     N
          CONV   T63D357,F63D357     O
          CONV   T63D360,F63D360     P
          CONV   T63D361,F63D361     Q
          CONV   T63D362,F63D362     R
          CONV   T63D363,F63D363     S
          CONV   T63D364,F63D364     T
          CONV   T63D365,F63D365     U
          CONV   T63D366,F63D366     V
          CONV   T63D367,F63D367     W
          CONV   T63D370,F63D370     X
          CONV   T63D371,F63D371     Y
          CONV   T63D372,F63D372     Z
          CONV   T63D373,F63D373     [
          CONV   T63D374,F63D374     \
          CONV   T63D375,F63D375     ]
          CONV   T63D376,F63D376     ^
          CONV   T63D377,F63D377
  
          CONV   ZBCH,ZBCH           ZB          ZB 
          CONV   EORC,EORC           EOR         EOR
          CONV   EOFC,EOFC           EOF         EOF
          CONV   EOIC,EOIC           EOI         EOI
  
          LOC    *O 
          QUAL   *
          SPACE  4,10 
 TA64     BSS    0           64 CHARACTER ASCII 6/12
          QUAL   COMTCVT
          LOC    0
  
*                                    TO         FROM
*                                  ASCII64     ASCII64
  
          CONV   T64A000,F64A000     NUL         :  
          CONV   T64A001,F64A001     SOH         A
          CONV   T64A002,F64A002     STX         B
          CONV   T64A003,F64A003     ETX         C
          CONV   T64A004,F64A004     EOT         D
          CONV   T64A005,F64A005     ENQ         E
          CONV   T64A006,F64A006     ACK         F
          CONV   T64A007,F64A007     BEL         G
          CONV   T64A010,F64A010     BS          H
          CONV   T64A011,F64A011     HT          I
          CONV   T64A012,F64A012     LF          J
          CONV   T64A013,F64A013     VT          K
          CONV   T64A014,F64A014     FF          L
          CONV   T64A015,F64A015     CR          M
          CONV   T64A016,F64A016     SO          N
          CONV   T64A017,F64A017     SI          O
          CONV   T64A020,F64A020     DLE         P
          CONV   T64A021,F64A021     DC1         Q
          CONV   T64A022,F64A022     DC2         R
          CONV   T64A023,F64A023     DC3         S
          CONV   T64A024,F64A024     DC4         T
          CONV   T64A025,F64A025     NAK         U
          CONV   T64A026,F64A026     SYN         V
          CONV   T64A027,F64A027     ETB         W
          CONV   T64A030,F64A030     CAN         X
          CONV   T64A031,F64A031     EM          Y
          CONV   T64A032,F64A032     SUB         Z
          CONV   T64A033,F64A033     ESC         0
          CONV   T64A034,F64A034     FS          1
          CONV   T64A035,F64A035     GS          2
          CONV   T64A036,F64A036     RS          3
          CONV   T64A037,F64A037     US          4
          CONV   T64A040,F64A040     BLANK       5
          CONV   T64A041,F64A041     !           6
          CONV   T64A042,F64A042     "           7
          CONV   T64A043,F64A043     #           8
          CONV   T64A044,F64A044     $           9
          CONV   T64A045,F64A045     %           +
          CONV   T64A046,F64A046     &           -
          CONV   T64A047,F64A047     '           *
          CONV   T64A050,F64A050     (           /
          CONV   T64A051,F64A051     )           (
          CONV   T64A052,F64A052     *           )
          CONV   T64A053,F64A053     +           $
          CONV   T64A054,F64A054     ,           =
          CONV   T64A055,F64A055     -           BLANK
          CONV   T64A056,F64A056     .           ,
          CONV   T64A057,F64A057     /           .
          CONV   T64A060,F64A060     0           #
          CONV   T64A061,F64A061     1           [
          CONV   T64A062,F64A062     2           ]
          CONV   T64A063,F64A063     3           %
          CONV   T64A064,F64A064     4           "
          CONV   T64A065,F64A065     5           _
          CONV   T64A066,F64A066     6           !
          CONV   T64A067,F64A067     7           &
          CONV   T64A070,F64A070     8           '
          CONV   T64A071,F64A071     9           ?
          CONV   T64A072,F64A072     :           <
          CONV   T64A073,F64A073     ;           >
          CONV   T64A074,F64A074     <
          CONV   T64A075,F64A075     =           \
          CONV   T64A076,F64A076     >
          CONV   T64A077,F64A077     ?           ;
          CONV   T64A100,F64A100     @
          CONV   T64A101,F64A101     A
          CONV   T64A102,F64A102     B
          CONV   T64A103,F64A103     C
          CONV   T64A104,F64A104     D
          CONV   T64A105,F64A105     E
          CONV   T64A106,F64A106     F
          CONV   T64A107,F64A107     G
          CONV   T64A110,F64A110     H
          CONV   T64A111,F64A111     I
          CONV   T64A112,F64A112     J
          CONV   T64A113,F64A113     K
          CONV   T64A114,F64A114     L
          CONV   T64A115,F64A115     M
          CONV   T64A116,F64A116     N
          CONV   T64A117,F64A117     O
          CONV   T64A120,F64A120     P
          CONV   T64A121,F64A121     Q
          CONV   T64A122,F64A122     R
          CONV   T64A123,F64A123     S
          CONV   T64A124,F64A124     T
          CONV   T64A125,F64A125     U
          CONV   T64A126,F64A126     V
          CONV   T64A127,F64A127     W
          CONV   T64A130,F64A130     X
          CONV   T64A131,F64A131     Y
          CONV   T64A132,F64A132     Z
          CONV   T64A133,F64A133     [
          CONV   T64A134,F64A134     \
          CONV   T64A135,F64A135     ]
          CONV   T64A136,F64A136     ^
          CONV   T64A137,F64A137     _
          CONV   T64A140,F64A140
          CONV   T64A141,F64A141     A
          CONV   T64A142,F64A142     B
          CONV   T64A143,F64A143     C
          CONV   T64A144,F64A144     D
          CONV   T64A145,F64A145     E
          CONV   T64A146,F64A146     F
          CONV   T64A147,F64A147     G
          CONV   T64A150,F64A150     H
          CONV   T64A151,F64A151     I
          CONV   T64A152,F64A152     J
          CONV   T64A153,F64A153     K
          CONV   T64A154,F64A154     L
          CONV   T64A155,F64A155     M
          CONV   T64A156,F64A156     N
          CONV   T64A157,F64A157     O
          CONV   T64A160,F64A160     P
          CONV   T64A161,F64A161     Q
          CONV   T64A162,F64A162     R
          CONV   T64A163,F64A163     S
          CONV   T64A164,F64A164     T
          CONV   T64A165,F64A165     U
          CONV   T64A166,F64A166     V
          CONV   T64A167,F64A167     W
          CONV   T64A170,F64A170     X
          CONV   T64A171,F64A171     Y
          CONV   T64A172,F64A172     Z
          CONV   T64A173,F64A173     L BRACE
          CONV   T64A174,F64A174     V LINE 
          CONV   T64A175,F64A175     R BRACE
          CONV   T64A176,F64A176     TILDE
          CONV   T64A177,F64A177     DEL
  
          CONV   T64A200,F64A200     NUL
          CONV   T64A201,F64A201     SOH         @
          CONV   T64A202,F64A202     STX         ^
          CONV   T64A203,F64A203     ETX
          CONV   T64A204,F64A204     EOT         :  
          CONV   T64A205,F64A205     ENQ
          CONV   T64A206,F64A206     ACK
          CONV   T64A207,F64A207     BEL
          CONV   T64A210,F64A210     BS 
          CONV   T64A211,F64A211     HT 
          CONV   T64A212,F64A212     LF 
          CONV   T64A213,F64A213     VT 
          CONV   T64A214,F64A214     FF 
          CONV   T64A215,F64A215     CR 
          CONV   T64A216,F64A216     SO 
          CONV   T64A217,F64A217     SI 
          CONV   T64A220,F64A220     DLE
          CONV   T64A221,F64A221     DC1
          CONV   T64A222,F64A222     DC2
          CONV   T64A223,F64A223     DC3
          CONV   T64A224,F64A224     DC4
          CONV   T64A225,F64A225     NAK
          CONV   T64A226,F64A226     SYN
          CONV   T64A227,F64A227     ETB
          CONV   T64A230,F64A230     CAN
          CONV   T64A231,F64A231     EM 
          CONV   T64A232,F64A232     SUB
          CONV   T64A233,F64A233     ESC
          CONV   T64A234,F64A234     FS 
          CONV   T64A235,F64A235     GS 
          CONV   T64A236,F64A236     RS 
          CONV   T64A237,F64A237     US 
          CONV   T64A240,F64A240     BLANK
          CONV   T64A241,F64A241     !
          CONV   T64A242,F64A242     "
          CONV   T64A243,F64A243     #
          CONV   T64A244,F64A244     $
          CONV   T64A245,F64A245     %
          CONV   T64A246,F64A246     &
          CONV   T64A247,F64A247     '
          CONV   T64A250,F64A250     (
          CONV   T64A251,F64A251     )
          CONV   T64A252,F64A252     *
          CONV   T64A253,F64A253     +
          CONV   T64A254,F64A254     ,
          CONV   T64A255,F64A255     -
          CONV   T64A256,F64A256     .
          CONV   T64A257,F64A257     /
          CONV   T64A260,F64A260     0
          CONV   T64A261,F64A261     1
          CONV   T64A262,F64A262     2
          CONV   T64A263,F64A263     3
          CONV   T64A264,F64A264     4
          CONV   T64A265,F64A265     5
          CONV   T64A266,F64A266     6
          CONV   T64A267,F64A267     7
          CONV   T64A270,F64A270     8
          CONV   T64A271,F64A271     9
          CONV   T64A272,F64A272     :  
          CONV   T64A273,F64A273     ;
          CONV   T64A274,F64A274     <
          CONV   T64A275,F64A275     =
          CONV   T64A276,F64A276     >
          CONV   T64A277,F64A277     ?
          CONV   T64A300,F64A300     @
          CONV   T64A301,F64A301     A           A
          CONV   T64A302,F64A302     B           B
          CONV   T64A303,F64A303     C           C
          CONV   T64A304,F64A304     D           D
          CONV   T64A305,F64A305     E           E
          CONV   T64A306,F64A306     F           F
          CONV   T64A307,F64A307     G           G
          CONV   T64A310,F64A310     H           H
          CONV   T64A311,F64A311     I           I
          CONV   T64A312,F64A312     J           J
          CONV   T64A313,F64A313     K           K
          CONV   T64A314,F64A314     L           L
          CONV   T64A315,F64A315     M           M
          CONV   T64A316,F64A316     N           N
          CONV   T64A317,F64A317     O           O
          CONV   T64A320,F64A320     P           P
          CONV   T64A321,F64A321     Q           Q
          CONV   T64A322,F64A322     R           R
          CONV   T64A323,F64A323     S           S
          CONV   T64A324,F64A324     T           T
          CONV   T64A325,F64A325     U           U
          CONV   T64A326,F64A326     V           V
          CONV   T64A327,F64A327     W           W
          CONV   T64A330,F64A330     X           X
          CONV   T64A331,F64A331     Y           Y
          CONV   T64A332,F64A332     Z           Z
          CONV   T64A333,F64A333     [           L BRACE
          CONV   T64A334,F64A334     \           V LINE 
          CONV   T64A335,F64A335     ]           R BRACE
          CONV   T64A336,F64A336     ^           TILDE
          CONV   T64A337,F64A337     _           DEL
          CONV   T64A340,F64A340                 NUL
          CONV   T64A341,F64A341     A           SOH
          CONV   T64A342,F64A342     B           STX
          CONV   T64A343,F64A343     C           ETX
          CONV   T64A344,F64A344     D           EOT
          CONV   T64A345,F64A345     E           ENQ
          CONV   T64A346,F64A346     F           ACK
          CONV   T64A347,F64A347     G           BEL
          CONV   T64A350,F64A350     H           BS 
          CONV   T64A351,F64A351     I           HT 
          CONV   T64A352,F64A352     J           LF 
          CONV   T64A353,F64A353     K           VT 
          CONV   T64A354,F64A354     L           FF 
          CONV   T64A355,F64A355     M           CR 
          CONV   T64A356,F64A356     N           SO 
          CONV   T64A357,F64A357     O           SI 
          CONV   T64A360,F64A360     P           DLE
          CONV   T64A361,F64A361     Q           DC1
          CONV   T64A362,F64A362     R           DC2
          CONV   T64A363,F64A363     S           DC3
          CONV   T64A364,F64A364     T           DC4
          CONV   T64A365,F64A365     U           NAK
          CONV   T64A366,F64A366     V           SYN
          CONV   T64A367,F64A367     W           ETB
          CONV   T64A370,F64A370     X           CAN
          CONV   T64A371,F64A371     Y           EM 
          CONV   T64A372,F64A372     Z           SUB
          CONV   T64A373,F64A373     L BRACE     ESC
          CONV   T64A374,F64A374     V LINE      FS 
          CONV   T64A375,F64A375     R BRACE     GS 
          CONV   T64A376,F64A376     TILDE       RS 
          CONV   T64A377,F64A377     DEL         US 
  
          CONV   ZBCH,ZBCH           ZB          ZB 
          CONV   EORC,EORC           EOR         EOR
          CONV   EOFC,EOFC           EOF         EOF
          CONV   EOIC,EOIC           EOI         EOI
  
          LOC    *O 
          QUAL   *
          SPACE  4,10 
 TA63     BSS    0           63 CHARACTER 6/12 DISPLAY CODE 
          QUAL   COMTCVT
          LOC    0
  
*                                    TO         FROM
*                                  ASCII63     ASCII63
  
          CONV   T63A000,F63A000     NUL
          CONV   T63A001,F63A001     SOH         A
          CONV   T63A002,F63A002     STX         B
          CONV   T63A003,F63A003     ETX         C
          CONV   T63A004,F63A004     EOT         D
          CONV   T63A005,F63A005     ENQ         E
          CONV   T63A006,F63A006     ACK         F
          CONV   T63A007,F63A007     BEL         G
          CONV   T63A010,F63A010     BS          H
          CONV   T63A011,F63A011     HT          I
          CONV   T63A012,F63A012     LF          J
          CONV   T63A013,F63A013     VT          K
          CONV   T63A014,F63A014     FF          L
          CONV   T63A015,F63A015     CR          M
          CONV   T63A016,F63A016     SO          N
          CONV   T63A017,F63A017     SI          O
          CONV   T63A020,F63A020     DLE         P
          CONV   T63A021,F63A021     DC1         Q
          CONV   T63A022,F63A022     DC2         R
          CONV   T63A023,F63A023     DC3         S
          CONV   T63A024,F63A024     DC4         T
          CONV   T63A025,F63A025     NAK         U
          CONV   T63A026,F63A026     SYN         V
          CONV   T63A027,F63A027     ETB         W
          CONV   T63A030,F63A030     CAN         X
          CONV   T63A031,F63A031     EM          Y
          CONV   T63A032,F63A032     SUB         Z
          CONV   T63A033,F63A033     ESC         0
          CONV   T63A034,F63A034     FS          1
          CONV   T63A035,F63A035     GS          2
          CONV   T63A036,F63A036     RS          3
          CONV   T63A037,F63A037     US          4
          CONV   T63A040,F63A040     BLANK       5
          CONV   T63A041,F63A041     !           6
          CONV   T63A042,F63A042     "           7
          CONV   T63A043,F63A043     #           8
          CONV   T63A044,F63A044     $           9
          CONV   T63A045,F63A045     %           +
          CONV   T63A046,F63A046     &           -
          CONV   T63A047,F63A047     '           *
          CONV   T63A050,F63A050     (           /
          CONV   T63A051,F63A051     )           (
          CONV   T63A052,F63A052     *           )
          CONV   T63A053,F63A053     +           $
          CONV   T63A054,F63A054     ,           =
          CONV   T63A055,F63A055     -           BLANK
          CONV   T63A056,F63A056     .           ,
          CONV   T63A057,F63A057     /           .
          CONV   T63A060,F63A060     0           #
          CONV   T63A061,F63A061     1           [
          CONV   T63A062,F63A062     2           ]
          CONV   T63A063,F63A063     3           :  
          CONV   T63A064,F63A064     4           "
          CONV   T63A065,F63A065     5           _
          CONV   T63A066,F63A066     6           !
          CONV   T63A067,F63A067     7           &
          CONV   T63A070,F63A070     8           '
          CONV   T63A071,F63A071     9           ?
          CONV   T63A072,F63A072     :           <
          CONV   T63A073,F63A073     ;           >
          CONV   T63A074,F63A074     <
          CONV   T63A075,F63A075     =           \
          CONV   T63A076,F63A076     >
          CONV   T63A077,F63A077     ?           ;
          CONV   T63A100,F63A100     @
          CONV   T63A101,F63A101     A
          CONV   T63A102,F63A102     B
          CONV   T63A103,F63A103     C
          CONV   T63A104,F63A104     D
          CONV   T63A105,F63A105     E
          CONV   T63A106,F63A106     F
          CONV   T63A107,F63A107     G
          CONV   T63A110,F63A110     H
          CONV   T63A111,F63A111     I
          CONV   T63A112,F63A112     J
          CONV   T63A113,F63A113     K
          CONV   T63A114,F63A114     L
          CONV   T63A115,F63A115     M
          CONV   T63A116,F63A116     N
          CONV   T63A117,F63A117     O
          CONV   T63A120,F63A120     P
          CONV   T63A121,F63A121     Q
          CONV   T63A122,F63A122     R
          CONV   T63A123,F63A123     S
          CONV   T63A124,F63A124     T
          CONV   T63A125,F63A125     U
          CONV   T63A126,F63A126     V
          CONV   T63A127,F63A127     W
          CONV   T63A130,F63A130     X
          CONV   T63A131,F63A131     Y
          CONV   T63A132,F63A132     Z
          CONV   T63A133,F63A133     [
          CONV   T63A134,F63A134     \
          CONV   T63A135,F63A135     ]
          CONV   T63A136,F63A136     ^
          CONV   T63A137,F63A137     _
          CONV   T63A140,F63A140
          CONV   T63A141,F63A141     A
          CONV   T63A142,F63A142     B
          CONV   T63A143,F63A143     C
          CONV   T63A144,F63A144     D
          CONV   T63A145,F63A145     E
          CONV   T63A146,F63A146     F
          CONV   T63A147,F63A147     G
          CONV   T63A150,F63A150     H
          CONV   T63A151,F63A151     I
          CONV   T63A152,F63A152     J
          CONV   T63A153,F63A153     K
          CONV   T63A154,F63A154     L
          CONV   T63A155,F63A155     M
          CONV   T63A156,F63A156     N
          CONV   T63A157,F63A157     O
          CONV   T63A160,F63A160     P
          CONV   T63A161,F63A161     Q
          CONV   T63A162,F63A162     R
          CONV   T63A163,F63A163     S
          CONV   T63A164,F63A164     T
          CONV   T63A165,F63A165     U
          CONV   T63A166,F63A166     V
          CONV   T63A167,F63A167     W
          CONV   T63A170,F63A170     X
          CONV   T63A171,F63A171     Y
          CONV   T63A172,F63A172     Z
          CONV   T63A173,F63A173     L BRACE
          CONV   T63A174,F63A174     V LINE 
          CONV   T63A175,F63A175     R BRACE
          CONV   T63A176,F63A176     TILDE
          CONV   T63A177,F63A177     DEL
  
          CONV   T63A200,F63A200     NUL
          CONV   T63A201,F63A201     SOH         @
          CONV   T63A202,F63A202     STX         ^
          CONV   T63A203,F63A203     ETX
          CONV   T63A204,F63A204     EOT         %
          CONV   T63A205,F63A205     ENQ
          CONV   T63A206,F63A206     ACK
          CONV   T63A207,F63A207     BEL
          CONV   T63A210,F63A210     BS 
          CONV   T63A211,F63A211     HT 
          CONV   T63A212,F63A212     LF 
          CONV   T63A213,F63A213     VT 
          CONV   T63A214,F63A214     FF 
          CONV   T63A215,F63A215     CR 
          CONV   T63A216,F63A216     SO 
          CONV   T63A217,F63A217     SI 
          CONV   T63A220,F63A220     DLE
          CONV   T63A221,F63A221     DC1
          CONV   T63A222,F63A222     DC2
          CONV   T63A223,F63A223     DC3
          CONV   T63A224,F63A224     DC4
          CONV   T63A225,F63A225     NAK
          CONV   T63A226,F63A226     SYN
          CONV   T63A227,F63A227     ETB
          CONV   T63A230,F63A230     CAN
          CONV   T63A231,F63A231     EM 
          CONV   T63A232,F63A232     SUB
          CONV   T63A233,F63A233     ESC
          CONV   T63A234,F63A234     FS 
          CONV   T63A235,F63A235     GS 
          CONV   T63A236,F63A236     RS 
          CONV   T63A237,F63A237     US 
          CONV   T63A240,F63A240     BLANK
          CONV   T63A241,F63A241     !
          CONV   T63A242,F63A242     "
          CONV   T63A243,F63A243     #
          CONV   T63A244,F63A244     $
          CONV   T63A245,F63A245     %
          CONV   T63A246,F63A246     &
          CONV   T63A247,F63A247     '
          CONV   T63A250,F63A250     (
          CONV   T63A251,F63A251     )
          CONV   T63A252,F63A252     *
          CONV   T63A253,F63A253     +
          CONV   T63A254,F63A254     ,
          CONV   T63A255,F63A255     -
          CONV   T63A256,F63A256     .
          CONV   T63A257,F63A257     /
          CONV   T63A260,F63A260     0
          CONV   T63A261,F63A261     1
          CONV   T63A262,F63A262     2
          CONV   T63A263,F63A263     3
          CONV   T63A264,F63A264     4
          CONV   T63A265,F63A265     5
          CONV   T63A266,F63A266     6
          CONV   T63A267,F63A267     7
          CONV   T63A270,F63A270     8
          CONV   T63A271,F63A271     9
          CONV   T63A272,F63A272     :  
          CONV   T63A273,F63A273     ;
          CONV   T63A274,F63A274     <
          CONV   T63A275,F63A275     =
          CONV   T63A276,F63A276     >
          CONV   T63A277,F63A277     ?
          CONV   T63A300,F63A300     @
          CONV   T63A301,F63A301     A           A
          CONV   T63A302,F63A302     B           B
          CONV   T63A303,F63A303     C           C
          CONV   T63A304,F63A304     D           D
          CONV   T63A305,F63A305     E           E
          CONV   T63A306,F63A306     F           F
          CONV   T63A307,F63A307     G           G
          CONV   T63A310,F63A310     H           H
          CONV   T63A311,F63A311     I           I
          CONV   T63A312,F63A312     J           J
          CONV   T63A313,F63A313     K           K
          CONV   T63A314,F63A314     L           L
          CONV   T63A315,F63A315     M           M
          CONV   T63A316,F63A316     N           N
          CONV   T63A317,F63A317     O           O
          CONV   T63A320,F63A320     P           P
          CONV   T63A321,F63A321     Q           Q
          CONV   T63A322,F63A322     R           R
          CONV   T63A323,F63A323     S           S
          CONV   T63A324,F63A324     T           T
          CONV   T63A325,F63A325     U           U
          CONV   T63A326,F63A326     V           V
          CONV   T63A327,F63A327     W           W
          CONV   T63A330,F63A330     X           X
          CONV   T63A331,F63A331     Y           Y
          CONV   T63A332,F63A332     Z           Z
          CONV   T63A333,F63A333     [           L BRACE
          CONV   T63A334,F63A334     \           V LINE 
          CONV   T63A335,F63A335     ]           R BRACE
          CONV   T63A336,F63A336     ^           TILDE
          CONV   T63A337,F63A337     _           DEL
          CONV   T63A340,F63A340                 NUL
          CONV   T63A341,F63A341     A           SOH
          CONV   T63A342,F63A342     B           STX
          CONV   T63A343,F63A343     C           ETX
          CONV   T63A344,F63A344     D           EOT
          CONV   T63A345,F63A345     E           ENQ
          CONV   T63A346,F63A346     F           ACK
          CONV   T63A347,F63A347     G           BEL
          CONV   T63A350,F63A350     H           BS 
          CONV   T63A351,F63A351     I           HT 
          CONV   T63A352,F63A352     J           LF 
          CONV   T63A353,F63A353     K           VT 
          CONV   T63A354,F63A354     L           FF 
          CONV   T63A355,F63A355     M           CR 
          CONV   T63A356,F63A356     N           SO 
          CONV   T63A357,F63A357     O           SI 
          CONV   T63A360,F63A360     P           DLE
          CONV   T63A361,F63A361     Q           DC1
          CONV   T63A362,F63A362     R           DC2
          CONV   T63A363,F63A363     S           DC3
          CONV   T63A364,F63A364     T           DC4
          CONV   T63A365,F63A365     U           NAK
          CONV   T63A366,F63A366     V           SYN
          CONV   T63A367,F63A367     W           ETB
          CONV   T63A370,F63A370     X           CAN
          CONV   T63A371,F63A371     Y           EM 
          CONV   T63A372,F63A372     Z           SUB
          CONV   T63A373,F63A373     L BRACE     ESC
          CONV   T63A374,F63A374     V LINE      FS 
          CONV   T63A375,F63A375     R BRACE     GS 
          CONV   T63A376,F63A376     TILDE       RS 
          CONV   T63A377,F63A377     DEL         US 
  
          CONV   ZBCH,ZBCH           ZB          ZB 
          CONV   EORC,EORC           EOR         EOR
          CONV   EOFC,EOFC           EOF         EOF
          CONV   EOIC,EOIC           EOI         EOI
  
          LOC    *O 
          QUAL   *
          SPACE  4,10 
 TAS8     BSS    0           SHORT VERSION OF 8 BIT ASCII.
          QUAL   COMTCVT
          LOC    0
  
*                                    TO         FROM
*                                  ASCII8      ASCII8 
  
          CONV   T8AS000,F8AS000     NUL         NUL
          CONV   T8AS001,F8AS001     SOH         SOH
          CONV   T8AS002,F8AS002     STX         STX
          CONV   T8AS003,F8AS003     ETX         ETX
          CONV   T8AS004,F8AS004     EOT         EOT
          CONV   T8AS005,F8AS005     ENQ         ENQ
          CONV   T8AS006,F8AS006     ACK         ACK
          CONV   T8AS007,F8AS007     BEL         BEL
          CONV   T8AS010,F8AS010     BS          BS 
          CONV   T8AS011,F8AS011     HT          HT 
          CONV   T8AS012,F8AS012     LF          LF 
          CONV   T8AS013,F8AS013     VT          VT 
          CONV   T8AS014,F8AS014     FF          FF 
          CONV   T8AS015,F8AS015     CR          CR 
          CONV   T8AS016,F8AS016     SO          SO 
          CONV   T8AS017,F8AS017     SI          SI 
          CONV   T8AS020,F8AS020     DLE         DLE
          CONV   T8AS021,F8AS021     DC1         DC1
          CONV   T8AS022,F8AS022     DC2         DC2
          CONV   T8AS023,F8AS023     DC3         DC3
          CONV   T8AS024,F8AS024     DC4         DC4
          CONV   T8AS025,F8AS025     NAK         NAK
          CONV   T8AS026,F8AS026     SYN         SYN
          CONV   T8AS027,F8AS027     ETB         ETB
          CONV   T8AS030,F8AS030     CAN         CAN
          CONV   T8AS031,F8AS031     EM          EM 
          CONV   T8AS032,F8AS032     SUB         SUB
          CONV   T8AS033,F8AS033     ESC         ESC
          CONV   T8AS034,F8AS034     FS          FS 
          CONV   T8AS035,F8AS035     GS          GS 
          CONV   T8AS036,F8AS036     RS          RS 
          CONV   T8AS037,F8AS037     US          US 
          CONV   T8AS040,F8AS040     BLANK       BLANK
          CONV   T8AS041,F8AS041     !           !
          CONV   T8AS042,F8AS042     ""          "" 
          CONV   T8AS043,F8AS043     #           #
          CONV   T8AS044,F8AS044     $           $
          CONV   T8AS045,F8AS045     %           %
          CONV   T8AS046,F8AS046     &           &
          CONV   T8AS047,F8AS047     '           '
          CONV   T8AS050,F8AS050     (           (
          CONV   T8AS051,F8AS051     )           )
          CONV   T8AS052,F8AS052     *           *
          CONV   T8AS053,F8AS053     +           +
          CONV   T8AS054,F8AS054     ,           ,
          CONV   T8AS055,F8AS055     -           -
          CONV   T8AS056,F8AS056     .           .
          CONV   T8AS057,F8AS057     /           /
          CONV   T8AS060,F8AS060     0           0
          CONV   T8AS061,F8AS061     1           1
          CONV   T8AS062,F8AS062     2           2
          CONV   T8AS063,F8AS063     3           3
          CONV   T8AS064,F8AS064     4           4
          CONV   T8AS065,F8AS065     5           5
          CONV   T8AS066,F8AS066     6           6
          CONV   T8AS067,F8AS067     7           7
          CONV   T8AS070,F8AS070     8           8
          CONV   T8AS071,F8AS071     9           9
          CONV   T8AS072,F8AS072     :           :  
          CONV   T8AS073,F8AS073     ;           ;
          CONV   T8AS074,F8AS074     <           <
          CONV   T8AS075,F8AS075     =           =
          CONV   T8AS076,F8AS076     >           >
          CONV   T8AS077,F8AS077     ?           ?
  
          CONV   T8AS100,F8AS100     @           @
          CONV   T8AS101,F8AS101     A           A
          CONV   T8AS102,F8AS102     B           B
          CONV   T8AS103,F8AS103     C           C
          CONV   T8AS104,F8AS104     D           D
          CONV   T8AS105,F8AS105     E           E
          CONV   T8AS106,F8AS106     F           F
          CONV   T8AS107,F8AS107     G           G
          CONV   T8AS110,F8AS110     H           H
          CONV   T8AS111,F8AS111     I           I
          CONV   T8AS112,F8AS112     J           J
          CONV   T8AS113,F8AS113     K           K
          CONV   T8AS114,F8AS114     L           L
          CONV   T8AS115,F8AS115     M           M
          CONV   T8AS116,F8AS116     N           N
          CONV   T8AS117,F8AS117     O           O
          CONV   T8AS120,F8AS120     P           P
          CONV   T8AS121,F8AS121     Q           Q
          CONV   T8AS122,F8AS122     R           R
          CONV   T8AS123,F8AS123     S           S
          CONV   T8AS124,F8AS124     T           T
          CONV   T8AS125,F8AS125     U           U
          CONV   T8AS126,F8AS126     V           V
          CONV   T8AS127,F8AS127     W           W
          CONV   T8AS130,F8AS130     X           X
          CONV   T8AS131,F8AS131     Y           Y
          CONV   T8AS132,F8AS132     Z           Z
          CONV   T8AS133,F8AS133     [           [
          CONV   T8AS134,F8AS134     \           \
          CONV   T8AS135,F8AS135     ]           ]
          CONV   T8AS136,F8AS136     ^           ^
          CONV   T8AS137,F8AS137     _           _
          CONV   T8AS140,F8AS140
          CONV   T8AS141,F8AS141     A           A
          CONV   T8AS142,F8AS142     B           B
          CONV   T8AS143,F8AS143     C           C
          CONV   T8AS144,F8AS144     D           D
          CONV   T8AS145,F8AS145     E           E
          CONV   T8AS146,F8AS146     F           F
          CONV   T8AS147,F8AS147     G           G
          CONV   T8AS150,F8AS150     H           H
          CONV   T8AS151,F8AS151     I           I
          CONV   T8AS152,F8AS152     J           J
          CONV   T8AS153,F8AS153     K           K
          CONV   T8AS154,F8AS154     L           L
          CONV   T8AS155,F8AS155     M           M
          CONV   T8AS156,F8AS156     N           N
          CONV   T8AS157,F8AS157     O           O
          CONV   T8AS160,F8AS160     P           P
          CONV   T8AS161,F8AS161     Q           Q
          CONV   T8AS162,F8AS162     R           R
          CONV   T8AS163,F8AS163     S           S
          CONV   T8AS164,F8AS164     T           T
          CONV   T8AS165,F8AS165     U           U
          CONV   T8AS166,F8AS166     V           V
          CONV   T8AS167,F8AS167     W           W
          CONV   T8AS170,F8AS170     X           X
          CONV   T8AS171,F8AS171     Y           Y
          CONV   T8AS172,F8AS172     Z           Z
          CONV   T8AS173,F8AS173     L BRACE     L BRACE
          CONV   T8AS174,F8AS174     V LINE      V LINE 
          CONV   T8AS175,F8AS175     R BRACE     R BRACE
          CONV   T8AS176,F8AS176     TILDE       TILDE
          CONV   T8AS177,F8AS177     DEL         DEL
  
          CONV   T8AS200,F8AS200     NUL         NUL
          CONV   T8AS201,F8AS201     SOH         SOH
          CONV   T8AS202,F8AS202     STX         STX
          CONV   T8AS203,F8AS203     ETX         ETX
          CONV   T8AS204,F8AS204     EOT         EOT
          CONV   T8AS205,F8AS205     ENQ         ENQ
          CONV   T8AS206,F8AS206     ACK         ACK
          CONV   T8AS207,F8AS207     BEL         BEL
          CONV   T8AS210,F8AS210     BS          BS 
          CONV   T8AS211,F8AS211     HT          HT 
          CONV   T8AS212,F8AS212     LF          LF 
          CONV   T8AS213,F8AS213     VT          VT 
          CONV   T8AS214,F8AS214     FF          FF 
          CONV   T8AS215,F8AS215     CR          CR 
          CONV   T8AS216,F8AS216     SO          SO 
          CONV   T8AS217,F8AS217     SI          SI 
          CONV   T8AS220,F8AS220     DLE         DLE
          CONV   T8AS221,F8AS221     DC1         DC1
          CONV   T8AS222,F8AS222     DC2         DC2
          CONV   T8AS223,F8AS223     DC3         DC3
          CONV   T8AS224,F8AS224     DC4         DC4
          CONV   T8AS225,F8AS225     NAK         NAK
          CONV   T8AS226,F8AS226     SYN         SYN
          CONV   T8AS227,F8AS227     ETB         ETB
          CONV   T8AS230,F8AS230     CAN         CAN
          CONV   T8AS231,F8AS231     EM          EM 
          CONV   T8AS232,F8AS232     SUB         SUB
          CONV   T8AS233,F8AS233     ESC         ESC
          CONV   T8AS234,F8AS234     FS          FS 
          CONV   T8AS235,F8AS235     GS          GS 
          CONV   T8AS236,F8AS236     RS          RS 
          CONV   T8AS237,F8AS237     US          US 
          CONV   T8AS240,F8AS240     BLANK       BLANK
          CONV   T8AS241,F8AS241     !           !
          CONV   T8AS242,F8AS242     QUOTE       QUOTE
          CONV   T8AS243,F8AS243     #           #
          CONV   T8AS244,F8AS244     $           $
          CONV   T8AS245,F8AS245     %           %
          CONV   T8AS246,F8AS246     &           &
          CONV   T8AS247,F8AS247     '           '
          CONV   T8AS250,F8AS250     (           (
          CONV   T8AS251,F8AS251     )           )
          CONV   T8AS252,F8AS252     *           *
          CONV   T8AS253,F8AS253     +           +
          CONV   T8AS254,F8AS254     ,           ,
          CONV   T8AS255,F8AS255     -           -
          CONV   T8AS256,F8AS256     .           .
          CONV   T8AS257,F8AS257     /           /
          CONV   T8AS260,F8AS260     0           0
          CONV   T8AS261,F8AS261     1           1
          CONV   T8AS262,F8AS262     2           2
          CONV   T8AS263,F8AS263     3           3
          CONV   T8AS264,F8AS264     4           4
          CONV   T8AS265,F8AS265     5           5
          CONV   T8AS266,F8AS266     6           6
          CONV   T8AS267,F8AS267     7           7
          CONV   T8AS270,F8AS270     8           8
          CONV   T8AS271,F8AS271     9           9
          CONV   T8AS272,F8AS272     :           :  
          CONV   T8AS273,F8AS273     ;           ;
          CONV   T8AS274,F8AS274     <           <
          CONV   T8AS275,F8AS275     =           =
          CONV   T8AS276,F8AS276     >           >
          CONV   T8AS277,F8AS277     ?           ?
  
          CONV   T8AS300,F8AS300     @           @
          CONV   T8AS301,F8AS301     A           A
          CONV   T8AS302,F8AS302     B           B
          CONV   T8AS303,F8AS303     C           C
          CONV   T8AS304,F8AS304     D           D
          CONV   T8AS305,F8AS305     E           E
          CONV   T8AS306,F8AS306     F           F
          CONV   T8AS307,F8AS307     G           G
          CONV   T8AS310,F8AS310     H           H
          CONV   T8AS311,F8AS311     I           I
          CONV   T8AS312,F8AS312     J           J
          CONV   T8AS313,F8AS313     K           K
          CONV   T8AS314,F8AS314     L           L
          CONV   T8AS315,F8AS315     M           M
          CONV   T8AS316,F8AS316     N           N
          CONV   T8AS317,F8AS317     O           O
          CONV   T8AS320,F8AS320     P           P
          CONV   T8AS321,F8AS321     Q           Q
          CONV   T8AS322,F8AS322     R           R
          CONV   T8AS323,F8AS323     S           S
          CONV   T8AS324,F8AS324     T           T
          CONV   T8AS325,F8AS325     U           U
          CONV   T8AS326,F8AS326     V           V
          CONV   T8AS327,F8AS327     W           W
          CONV   T8AS330,F8AS330     X           X
          CONV   T8AS331,F8AS331     Y           Y
          CONV   T8AS332,F8AS332     Z           Z
          CONV   T8AS333,F8AS333     [           [
          CONV   T8AS334,F8AS334     \           \
          CONV   T8AS335,F8AS335     ]           ]
          CONV   T8AS336,F8AS336     ^           ^
          CONV   T8AS337,F8AS337     _           _
          CONV   T8AS340,F8AS340
          CONV   T8AS341,F8AS341     A           A
          CONV   T8AS342,F8AS342     B           B
          CONV   T8AS343,F8AS343     C           C
          CONV   T8AS344,F8AS344     D           D
          CONV   T8AS345,F8AS345     E           E
          CONV   T8AS346,F8AS346     F           F
          CONV   T8AS347,F8AS347     G           G
          CONV   T8AS350,F8AS350     H           H
          CONV   T8AS351,F8AS351     I           I
          CONV   T8AS352,F8AS352     J           J
          CONV   T8AS353,F8AS353     K           K
          CONV   T8AS354,F8AS354     L           L
          CONV   T8AS355,F8AS355     M           M
          CONV   T8AS356,F8AS356     N           N
          CONV   T8AS357,F8AS357     O           O
          CONV   T8AS360,F8AS360     P           P
          CONV   T8AS361,F8AS361     Q           Q
          CONV   T8AS362,F8AS362     R           R
          CONV   T8AS363,F8AS363     S           S
          CONV   T8AS364,F8AS364     T           T
          CONV   T8AS365,F8AS365     U           U
          CONV   T8AS366,F8AS366     V           V
          CONV   T8AS367,F8AS367     W           W
          CONV   T8AS370,F8AS370     X           X
          CONV   T8AS371,F8AS371     Y           Y
          CONV   T8AS372,F8AS372     Z           Z
          CONV   T8AS373,F8AS373     L BRACE     L BRACE
          CONV   T8AS374,F8AS374     V LINE      V LINE 
          CONV   T8AS375,F8AS375     R BRACE     R BRACE
          CONV   T8AS376,F8AS376     TILDE       TILDE
          CONV   T8AS377,F8AS377     DEL         DEL
  
          CONV   ZBCH,ZBCH           ZB          ZB 
          CONV   EORC,EORC           EOR         EOR
          CONV   EOFC,EOFC           EOF         EOF
          CONV   EOIC,EOIC           EOI         EOI
  
          LOC    *O 
          QUAL   *
          SPACE  4,10 
 TASC     BSS    0           FULL 8 BIT ASCII 
          QUAL   COMTCVT
          LOC    0
  
*                                    TO         FROM
*                                   ASCII       ASCII 
  
          CONV   TASC000,FASC000     NUL         NUL
          CONV   TASC001,FASC001     SOH         SOH
          CONV   TASC002,FASC002     STX         STX
          CONV   TASC003,FASC003     ETX         ETX
          CONV   TASC004,FASC004     EOT         EOT
          CONV   TASC005,FASC005     ENQ         ENQ
          CONV   TASC006,FASC006     ACK         ACK
          CONV   TASC007,FASC007     BEL         BEL
          CONV   TASC010,FASC010     BS          BS 
          CONV   TASC011,FASC011     HT          HT 
          CONV   TASC012,FASC012     LF          LF 
          CONV   TASC013,FASC013     VT          VT 
          CONV   TASC014,FASC014     FF          FF 
          CONV   TASC015,FASC015     CR          CR 
          CONV   TASC016,FASC016     SO          SO 
          CONV   TASC017,FASC017     SI          SI 
          CONV   TASC020,FASC020     DLE         DLE
          CONV   TASC021,FASC021     DC1         DC1
          CONV   TASC022,FASC022     DC2         DC2
          CONV   TASC023,FASC023     DC3         DC3
          CONV   TASC024,FASC024     DC4         DC4
          CONV   TASC025,FASC025     NAK         NAK
          CONV   TASC026,FASC026     SYN         SYN
          CONV   TASC027,FASC027     ETB         ETB
          CONV   TASC030,FASC030     CAN         CAN
          CONV   TASC031,FASC031     EM          EM 
          CONV   TASC032,FASC032     SUB         SUB
          CONV   TASC033,FASC033     ESC         ESC
          CONV   TASC034,FASC034     FS          FS 
          CONV   TASC035,FASC035     GS          GS 
          CONV   TASC036,FASC036     RS          RS 
          CONV   TASC037,FASC037     US          US 
          CONV   TASC040,FASC040     BLANK       BLANK
          CONV   TASC041,FASC041     !           !
          CONV   TASC042,FASC042     ""          "" 
          CONV   TASC043,FASC043     #           #
          CONV   TASC044,FASC044     $           $
          CONV   TASC045,FASC045     %           %
          CONV   TASC046,FASC046     &           &
          CONV   TASC047,FASC047     '           '
          CONV   TASC050,FASC050     (           (
          CONV   TASC051,FASC051     )           )
          CONV   TASC052,FASC052     *           *
          CONV   TASC053,FASC053     +           +
          CONV   TASC054,FASC054     ,           ,
          CONV   TASC055,FASC055     -           -
          CONV   TASC056,FASC056     .           .
          CONV   TASC057,FASC057     /           /
          CONV   TASC060,FASC060     0           0
          CONV   TASC061,FASC061     1           1
          CONV   TASC062,FASC062     2           2
          CONV   TASC063,FASC063     3           3
          CONV   TASC064,FASC064     4           4
          CONV   TASC065,FASC065     5           5
          CONV   TASC066,FASC066     6           6
          CONV   TASC067,FASC067     7           7
          CONV   TASC070,FASC070     8           8
          CONV   TASC071,FASC071     9           9
          CONV   TASC072,FASC072     :           :  
          CONV   TASC073,FASC073     ;           ;
          CONV   TASC074,FASC074     <           <
          CONV   TASC075,FASC075     =           =
          CONV   TASC076,FASC076     >           >
          CONV   TASC077,FASC077     ?           ?
  
          CONV   TASC100,FASC100     @           @
          CONV   TASC101,FASC101     A           A
          CONV   TASC102,FASC102     B           B
          CONV   TASC103,FASC103     C           C
          CONV   TASC104,FASC104     D           D
          CONV   TASC105,FASC105     E           E
          CONV   TASC106,FASC106     F           F
          CONV   TASC107,FASC107     G           G
          CONV   TASC110,FASC110     H           H
          CONV   TASC111,FASC111     I           I
          CONV   TASC112,FASC112     J           J
          CONV   TASC113,FASC113     K           K
          CONV   TASC114,FASC114     L           L
          CONV   TASC115,FASC115     M           M
          CONV   TASC116,FASC116     N           N
          CONV   TASC117,FASC117     O           O
          CONV   TASC120,FASC120     P           P
          CONV   TASC121,FASC121     Q           Q
          CONV   TASC122,FASC122     R           R
          CONV   TASC123,FASC123     S           S
          CONV   TASC124,FASC124     T           T
          CONV   TASC125,FASC125     U           U
          CONV   TASC126,FASC126     V           V
          CONV   TASC127,FASC127     W           W
          CONV   TASC130,FASC130     X           X
          CONV   TASC131,FASC131     Y           Y
          CONV   TASC132,FASC132     Z           Z
          CONV   TASC133,FASC133     [           [
          CONV   TASC134,FASC134     \           \
          CONV   TASC135,FASC135     ]           ]
          CONV   TASC136,FASC136     ^           ^
          CONV   TASC137,FASC137     _           _
          CONV   TASC140,FASC140
          CONV   TASC141,FASC141     A           A
          CONV   TASC142,FASC142     B           B
          CONV   TASC143,FASC143     C           C
          CONV   TASC144,FASC144     D           D
          CONV   TASC145,FASC145     E           E
          CONV   TASC146,FASC146     F           F
          CONV   TASC147,FASC147     G           G
          CONV   TASC150,FASC150     H           H
          CONV   TASC151,FASC151     I           I
          CONV   TASC152,FASC152     J           J
          CONV   TASC153,FASC153     K           K
          CONV   TASC154,FASC154     L           L
          CONV   TASC155,FASC155     M           M
          CONV   TASC156,FASC156     N           N
          CONV   TASC157,FASC157     O           O
          CONV   TASC160,FASC160     P           P
          CONV   TASC161,FASC161     Q           Q
          CONV   TASC162,FASC162     R           R
          CONV   TASC163,FASC163     S           S
          CONV   TASC164,FASC164     T           T
          CONV   TASC165,FASC165     U           U
          CONV   TASC166,FASC166     V           V
          CONV   TASC167,FASC167     W           W
          CONV   TASC170,FASC170     X           X
          CONV   TASC171,FASC171     Y           Y
          CONV   TASC172,FASC172     Z           Z
          CONV   TASC173,FASC173     L BRACE     L BRACE
          CONV   TASC174,FASC174     V LINE      V LINE 
          CONV   TASC175,FASC175     R BRACE     R BRACE
          CONV   TASC176,FASC176     TILDE       TILDE
          CONV   TASC177,FASC177     DEL         DEL
  
          CONV   TASC200,FASC200
          CONV   TASC201,FASC201
          CONV   TASC202,FASC202
          CONV   TASC203,FASC203
          CONV   TASC204,FASC204
          CONV   TASC205,FASC205
          CONV   TASC206,FASC206
          CONV   TASC207,FASC207
          CONV   TASC210,FASC210
          CONV   TASC211,FASC211
          CONV   TASC212,FASC212
          CONV   TASC213,FASC213
          CONV   TASC214,FASC214
          CONV   TASC215,FASC215
          CONV   TASC216,FASC216
          CONV   TASC217,FASC217
          CONV   TASC220,FASC220
          CONV   TASC221,FASC221
          CONV   TASC222,FASC222
          CONV   TASC223,FASC223
          CONV   TASC224,FASC224
          CONV   TASC225,FASC225
          CONV   TASC226,FASC226
          CONV   TASC227,FASC227
          CONV   TASC230,FASC230
          CONV   TASC231,FASC231
          CONV   TASC232,FASC232
          CONV   TASC233,FASC233
          CONV   TASC234,FASC234
          CONV   TASC235,FASC235
          CONV   TASC236,FASC236
          CONV   TASC237,FASC237
          CONV   TASC240,FASC240
          CONV   TASC241,FASC241
          CONV   TASC242,FASC242
          CONV   TASC243,FASC243
          CONV   TASC244,FASC244
          CONV   TASC245,FASC245
          CONV   TASC246,FASC246
          CONV   TASC247,FASC247
          CONV   TASC250,FASC250
          CONV   TASC251,FASC251
          CONV   TASC252,FASC252
          CONV   TASC253,FASC253
          CONV   TASC254,FASC254
          CONV   TASC255,FASC255
          CONV   TASC256,FASC256
          CONV   TASC257,FASC257
          CONV   TASC260,FASC260
          CONV   TASC261,FASC261
          CONV   TASC262,FASC262
          CONV   TASC263,FASC263
          CONV   TASC264,FASC264
          CONV   TASC265,FASC265
          CONV   TASC266,FASC266
          CONV   TASC267,FASC267
          CONV   TASC270,FASC270
          CONV   TASC271,FASC271
          CONV   TASC272,FASC272
          CONV   TASC273,FASC273
          CONV   TASC274,FASC274
          CONV   TASC275,FASC275
          CONV   TASC276,FASC276
          CONV   TASC277,FASC277
  
          CONV   TASC300,FASC300
          CONV   TASC301,FASC301
          CONV   TASC302,FASC302
          CONV   TASC303,FASC303
          CONV   TASC304,FASC304
          CONV   TASC305,FASC305
          CONV   TASC306,FASC306
          CONV   TASC307,FASC307
          CONV   TASC310,FASC310
          CONV   TASC311,FASC311
          CONV   TASC312,FASC312
          CONV   TASC313,FASC313
          CONV   TASC314,FASC314
          CONV   TASC315,FASC315
          CONV   TASC316,FASC316
          CONV   TASC317,FASC317
          CONV   TASC320,FASC320
          CONV   TASC321,FASC321
          CONV   TASC322,FASC322
          CONV   TASC323,FASC323
          CONV   TASC324,FASC324
          CONV   TASC325,FASC325
          CONV   TASC326,FASC326
          CONV   TASC327,FASC327
          CONV   TASC330,FASC330
          CONV   TASC331,FASC331
          CONV   TASC332,FASC332
          CONV   TASC333,FASC333
          CONV   TASC334,FASC334
          CONV   TASC335,FASC335
          CONV   TASC336,FASC336
          CONV   TASC337,FASC337
          CONV   TASC340,FASC340
          CONV   TASC341,FASC341
          CONV   TASC342,FASC342
          CONV   TASC343,FASC343
          CONV   TASC344,FASC344
          CONV   TASC345,FASC345
          CONV   TASC346,FASC346
          CONV   TASC347,FASC347
          CONV   TASC350,FASC350
          CONV   TASC351,FASC351
          CONV   TASC352,FASC352
          CONV   TASC353,FASC353
          CONV   TASC354,FASC354
          CONV   TASC355,FASC355
          CONV   TASC356,FASC356
          CONV   TASC357,FASC357
          CONV   TASC360,FASC360
          CONV   TASC361,FASC361
          CONV   TASC362,FASC362
          CONV   TASC363,FASC363
          CONV   TASC364,FASC364
          CONV   TASC365,FASC365
          CONV   TASC366,FASC366
          CONV   TASC367,FASC367
          CONV   TASC370,FASC370
          CONV   TASC371,FASC371
          CONV   TASC372,FASC372
          CONV   TASC373,FASC373
          CONV   TASC374,FASC374
          CONV   TASC375,FASC375
          CONV   TASC376,FASC376
          CONV   TASC377,FASC377
  
          CONV   ZBCH,ZBCH           ZB          ZB 
          CONV   EORC,EORC           EOR         EOR
          CONV   EOFC,EOFC           EOF         EOF
          CONV   EOIC,EOIC           EOI         EOI
  
          LOC    *O 
          QUAL   *
          SPACE  4,10 
 TEBC     BSS    0           FULL 8 BIT EBCDIC
          QUAL   COMTCVT
          LOC    0
  
                                     TO         FROM
                                   EBCDIC      EBCDIC 
  
          CONV   TEBC000,FEBC000     NUL         NUL
          CONV   TEBC001,FEBC001     SOH         SOH
          CONV   TEBC002,FEBC002     STX         STX
          CONV   TEBC003,FEBC003     ETX         ETX
          CONV   TEBC004,FEBC004     EOT         PF 
          CONV   TEBC005,FEBC005     ENQ         HT 
          CONV   TEBC006,FEBC006     ACK         LC 
          CONV   TEBC007,FEBC007     BEL         DEL
          CONV   TEBC010,FEBC010     BS          GE 
          CONV   TEBC011,FEBC011     HT          RLF
          CONV   TEBC012,FEBC012     LF          SMM
          CONV   TEBC013,FEBC013     VT          VT 
          CONV   TEBC014,FEBC014     FF          FF 
          CONV   TEBC015,FEBC015     CR          CR 
          CONV   TEBC016,FEBC016     SO          SO 
          CONV   TEBC017,FEBC017     SI          SI 
          CONV   TEBC020,FEBC020     DLE         DLE
          CONV   TEBC021,FEBC021     DC1         DC1
          CONV   TEBC022,FEBC022     DC2         DC2
          CONV   TEBC023,FEBC023     DC3 (TM)    TM (DC3) 
          CONV   TEBC024,FEBC024     DC4         RES
          CONV   TEBC025,FEBC025     NAK         NL 
          CONV   TEBC026,FEBC026     SYN         BS 
          CONV   TEBC027,FEBC027     ETB         IL 
          CONV   TEBC030,FEBC030     CAN         CAN
          CONV   TEBC031,FEBC031     EM          EM 
          CONV   TEBC032,FEBC032     SUB         CC 
          CONV   TEBC033,FEBC033     ESC         CU1
          CONV   TEBC034,FEBC034     FS (IFS)    IFS (FS) 
          CONV   TEBC035,FEBC035     GS (IGS)    IGS (GS) 
          CONV   TEBC036,FEBC036     RS (IRS)    IRS (RS) 
          CONV   TEBC037,FEBC037     US (IUS)    IUS (US) 
          CONV   TEBC040,FEBC040     BLANK       DS 
          CONV   TEBC041,FEBC041     !           SOS
          CONV   TEBC042,FEBC042     "           FS 
          CONV   TEBC043,FEBC043     #
          CONV   TEBC044,FEBC044     $           BYP
          CONV   TEBC045,FEBC045     %           LF 
          CONV   TEBC046,FEBC046     &           ETB
          CONV   TEBC047,FEBC047     '           ESC
          CONV   TEBC050,FEBC050     (
          CONV   TEBC051,FEBC051     )
          CONV   TEBC052,FEBC052     *           SM 
          CONV   TEBC053,FEBC053     +           CU2
          CONV   TEBC054,FEBC054     ,
          CONV   TEBC055,FEBC055     -           ENQ
          CONV   TEBC056,FEBC056     .           ACK
          CONV   TEBC057,FEBC057     /           BEL
          CONV   TEBC060,FEBC060     0
          CONV   TEBC061,FEBC061     1
          CONV   TEBC062,FEBC062     2           SYN
          CONV   TEBC063,FEBC063     3
          CONV   TEBC064,FEBC064     4           PN 
          CONV   TEBC065,FEBC065     5           RS 
          CONV   TEBC066,FEBC066     6           UC 
          CONV   TEBC067,FEBC067     7           EOT
          CONV   TEBC070,FEBC070     8
          CONV   TEBC071,FEBC071     9
          CONV   TEBC072,FEBC072     :  
          CONV   TEBC073,FEBC073     ;           CU3
          CONV   TEBC074,FEBC074     <           DC4
          CONV   TEBC075,FEBC075     =           NAK
          CONV   TEBC076,FEBC076     >
          CONV   TEBC077,FEBC077     ?           SUB
          CONV   TEBC100,FEBC100     @           SPACE
          CONV   TEBC101,FEBC101     A
          CONV   TEBC102,FEBC102     B
          CONV   TEBC103,FEBC103     C
          CONV   TEBC104,FEBC104     D
          CONV   TEBC105,FEBC105     E
          CONV   TEBC106,FEBC106     F
          CONV   TEBC107,FEBC107     G
          CONV   TEBC110,FEBC110     H
          CONV   TEBC111,FEBC111     I
          CONV   TEBC112,FEBC112     J           CENT SIGN ([)
          CONV   TEBC113,FEBC113     K           .
          CONV   TEBC114,FEBC114     L           <
          CONV   TEBC115,FEBC115     M           (
          CONV   TEBC116,FEBC116     N           +
          CONV   TEBC117,FEBC117     O           VERT LINE (!)
          CONV   TEBC120,FEBC120     P           &
          CONV   TEBC121,FEBC121     Q
          CONV   TEBC122,FEBC122     R
          CONV   TEBC123,FEBC123     S
          CONV   TEBC124,FEBC124     T
          CONV   TEBC125,FEBC125     U
          CONV   TEBC126,FEBC126     V
          CONV   TEBC127,FEBC127     W
          CONV   TEBC130,FEBC130     X
          CONV   TEBC131,FEBC131     Y
          CONV   TEBC132,FEBC132     Z           !
          CONV   TEBC133,FEBC133     [           $
          CONV   TEBC134,FEBC134     \           *
          CONV   TEBC135,FEBC135     ]           )
          CONV   TEBC136,FEBC136     ^           ;
          CONV   TEBC137,FEBC137     _           ^
          CONV   TEBC140,FEBC140                 -
          CONV   TEBC141,FEBC141     A LC        /
          CONV   TEBC142,FEBC142     B LC 
          CONV   TEBC143,FEBC143     C LC 
          CONV   TEBC144,FEBC144     D LC 
          CONV   TEBC145,FEBC145     E LC 
          CONV   TEBC146,FEBC146     F LC 
          CONV   TEBC147,FEBC147     G LC 
          CONV   TEBC150,FEBC150     H LC 
          CONV   TEBC151,FEBC151     I LC 
          CONV   TEBC152,FEBC152     J LC        VERT LINE
          CONV   TEBC153,FEBC153     K LC        ,
          CONV   TEBC154,FEBC154     L LC        %
          CONV   TEBC155,FEBC155     M LC        _
          CONV   TEBC156,FEBC156     N LC        >
          CONV   TEBC157,FEBC157     O LC        ?
          CONV   TEBC160,FEBC160     P LC 
          CONV   TEBC161,FEBC161     Q LC 
          CONV   TEBC162,FEBC162     R LC 
          CONV   TEBC163,FEBC163     S LC 
          CONV   TEBC164,FEBC164     T LC 
          CONV   TEBC165,FEBC165     U LC 
          CONV   TEBC166,FEBC166     V LC 
          CONV   TEBC167,FEBC167     W LC 
          CONV   TEBC170,FEBC170     X LC 
          CONV   TEBC171,FEBC171     Y LC        BACKWARDS AP 
          CONV   TEBC172,FEBC172     Z LC        :  
          CONV   TEBC173,FEBC173     L BRACKET   #
          CONV   TEBC174,FEBC174     VERT LINE   @
          CONV   TEBC175,FEBC175     R BRACKET   '
          CONV   TEBC176,FEBC176     TILDE       =
          CONV   TEBC177,FEBC177     DEL         "
          CONV   TEBC200,FEBC200     (DS) 
          CONV   TEBC201,FEBC201     (SOS)       A LC 
          CONV   TEBC202,FEBC202     (FS)        B LC 
          CONV   TEBC203,FEBC203                 C LC 
          CONV   TEBC204,FEBC204     (BYP)       D LC 
          CONV   TEBC205,FEBC205     (NL)        E LC 
          CONV   TEBC206,FEBC206     (LC)        F LC 
          CONV   TEBC207,FEBC207     (IL)        G LC 
          CONV   TEBC210,FEBC210                 H LC 
          CONV   TEBC211,FEBC211                 I LC 
          CONV   TEBC212,FEBC212     (SM) 
          CONV   TEBC213,FEBC213     (CU2)
          CONV   TEBC214,FEBC214
          CONV   TEBC215,FEBC215     (RLF)
          CONV   TEBC216,FEBC216     (SMM)
          CONV   TEBC217,FEBC217     (CU1)
          CONV   TEBC220,FEBC220
          CONV   TEBC221,FEBC221                 J LC 
          CONV   TEBC222,FEBC222     (CC)        K LC 
          CONV   TEBC223,FEBC223                 L LC 
          CONV   TEBC224,FEBC224     (PN)        M LC 
          CONV   TEBC225,FEBC225     (RS)        N LC 
          CONV   TEBC226,FEBC226     (UC)        O LC 
          CONV   TEBC227,FEBC227     (GE)        P LC 
          CONV   TEBC230,FEBC230                 Q LC 
          CONV   TEBC231,FEBC231                 R LC 
          CONV   TEBC232,FEBC232
          CONV   TEBC233,FEBC233     (CU3)
          CONV   TEBC234,FEBC234     (PF) 
          CONV   TEBC235,FEBC235     (RES)
          CONV   TEBC236,FEBC236
          CONV   TEBC237,FEBC237
          CONV   TEBC240,FEBC240
          CONV   TEBC241,FEBC241                 TILDE
          CONV   TEBC242,FEBC242                 S LC 
          CONV   TEBC243,FEBC243                 T LC 
          CONV   TEBC244,FEBC244                 U LC 
          CONV   TEBC245,FEBC245                 V LC 
          CONV   TEBC246,FEBC246                 W LC 
          CONV   TEBC247,FEBC247                 X LC 
          CONV   TEBC250,FEBC250                 Y LC 
          CONV   TEBC251,FEBC251                 Z LC 
          CONV   TEBC252,FEBC252
          CONV   TEBC253,FEBC253
          CONV   TEBC254,FEBC254
          CONV   TEBC255,FEBC255
          CONV   TEBC256,FEBC256
          CONV   TEBC257,FEBC257
          CONV   TEBC260,FEBC260
          CONV   TEBC261,FEBC261
          CONV   TEBC262,FEBC262
          CONV   TEBC263,FEBC263
          CONV   TEBC264,FEBC264
          CONV   TEBC265,FEBC265
          CONV   TEBC266,FEBC266
          CONV   TEBC267,FEBC267
          CONV   TEBC270,FEBC270
          CONV   TEBC271,FEBC271
          CONV   TEBC272,FEBC272
          CONV   TEBC273,FEBC273
          CONV   TEBC274,FEBC274
          CONV   TEBC275,FEBC275
          CONV   TEBC276,FEBC276
          CONV   TEBC277,FEBC277
          CONV   TEBC300,FEBC300                 LEFT BRACKET 
          CONV   TEBC301,FEBC301                 A
          CONV   TEBC302,FEBC302                 B
          CONV   TEBC303,FEBC303                 C
          CONV   TEBC304,FEBC304                 D
          CONV   TEBC305,FEBC305                 E
          CONV   TEBC306,FEBC306                 F
          CONV   TEBC307,FEBC307                 G
          CONV   TEBC310,FEBC310                 H
          CONV   TEBC311,FEBC311                 I
          CONV   TEBC312,FEBC312
          CONV   TEBC313,FEBC313
          CONV   TEBC314,FEBC314                 ZIG-ZAG SHAPE
          CONV   TEBC315,FEBC315
          CONV   TEBC316,FEBC316                 Y SHAPE
          CONV   TEBC317,FEBC317
          CONV   TEBC320,FEBC320                 RIGHT BRACKET
          CONV   TEBC321,FEBC321                 J
          CONV   TEBC322,FEBC322                 K
          CONV   TEBC323,FEBC323                 L
          CONV   TEBC324,FEBC324                 M
          CONV   TEBC325,FEBC325                 N
          CONV   TEBC326,FEBC326                 O
          CONV   TEBC327,FEBC327                 P
          CONV   TEBC330,FEBC330                 Q
          CONV   TEBC331,FEBC331                 R
          CONV   TEBC332,FEBC332
          CONV   TEBC333,FEBC333
          CONV   TEBC334,FEBC334
          CONV   TEBC335,FEBC335
          CONV   TEBC336,FEBC336
          CONV   TEBC337,FEBC337
          CONV   TEBC340,FEBC340                 \
          CONV   TEBC341,FEBC341
          CONV   TEBC342,FEBC342                 S
          CONV   TEBC343,FEBC343                 T
          CONV   TEBC344,FEBC344                 U
          CONV   TEBC345,FEBC345                 V
          CONV   TEBC346,FEBC346                 W
          CONV   TEBC347,FEBC347                 X
          CONV   TEBC350,FEBC350                 Y
          CONV   TEBC351,FEBC351                 Z
          CONV   TEBC352,FEBC352     (ZIG-ZAG)
          CONV   TEBC353,FEBC353
          CONV   TEBC354,FEBC354     (Y SHAPE)   CHAIR SHAPE
          CONV   TEBC355,FEBC355
          CONV   TEBC356,FEBC356
          CONV   TEBC357,FEBC357
          CONV   TEBC360,FEBC360                 0
          CONV   TEBC361,FEBC361                 1
          CONV   TEBC362,FEBC362                 2
          CONV   TEBC363,FEBC363                 3
          CONV   TEBC364,FEBC364                 4
          CONV   TEBC365,FEBC365                 5
          CONV   TEBC366,FEBC366     (CHAIR SH.) 6
          CONV   TEBC367,FEBC367                 7
          CONV   TEBC370,FEBC370                 8
          CONV   TEBC371,FEBC371                 9
          CONV   TEBC372,FEBC372     ((LVM))     VERT LINE (LVM)
          CONV   TEBC373,FEBC373
          CONV   TEBC374,FEBC374
          CONV   TEBC375,FEBC375
          CONV   TEBC376,FEBC376
          CONV   TEBC377,FEBC377     EO          (EO) 
* 
          CONV   ZBCH,ZBCH
          CONV   EORC,EORC
          CONV   EOFC,EOFC
          CONV   EOIC,EOIC
* 
          LOC    *O 
          QUAL   *
  
          BASE   *
          TITLE  PRESET.
 PRS      SPACE  4,15 
**        PRS - PRESET PROGRAM. 
* 
*         EXIT   (A0) = FWA CONVERSION TABLE. 
*                     = 0 IF NO CONVERSION NEEDED.
*                (B2) = CURRENT POSITION IN INPUT WORD. 
*                (B3) = CURRENT POSITION IN OUTPUT WORD.
*                (B4) = INPUT CHARACTER LENGTH. 
*                (B5) = OUTPUT CHARACTER LENGTH.
* 
*         CALLS  ARG, BLD, CLP, DXB, FBH, VLC.
* 
*         MACROS ABORT, FILINFO, MEMORY, MESSAGE, OPEN, SETFET. 
  
  
 PRS      SUBR               EXTRY/EXIT 
          SA1    ACTR        GET ARGUMENT COUNT 
          SB4    X1 
          R=     A4,ARGR     SET ADDRESS OF FIRST ARGUMENT
          SB5    TARG        SET ADDRESS OF ARGUMENT TABLE
          RJ     ARG         PROCESS ARGUMENTS
          ZR     X1,PRS2     IF NO ARGUMENT ERRORS
          SX3    PRSA        * ERROR IN FCOPY ARGUMENTS.* 
 PRS1     MESSAGE  X3,3 
          ABORT              ABORT
  
 PRS2     SA1    P           CHECK FILE NAMES FOR CONFLICT
          SA2    N
          BX6    X1-X2
          AX6    18 
          NZ     X6,PRS3     IF NO FILE NAME CONFLICT 
          SX3    PRSB        * FILE NAME CONFLICT.* 
          EQ     PRS1        ABORT
  
 PRS3     MX0    42          SET FILE NAME IN PARAMETER BLOCK 
          SA2    PRSE 
          BX1    X0*X1
          SX2    X2 
          BX6    X1+X2
          SA6    A2+
          FILINFO  PRSE      GET INPUT FILE INFORMATION 
          SA1    PRSE+1 
          LX1    59-24
          PL     X1,PRS6     IF INPUT FILE IS NOT A TAPE
          SA2    PRSE+5      CHECK FOR STRANGER TAPE
          AX2    6
          SX2    X2-/COMSMTX/TFS
          ZR     X2,PRS5     IF INPUT FILE IS AN S-FORMAT TAPE
          SX2    X2+/COMSMTX/TFS-/COMSMTX/TFL 
          NZ     X2,PRS6     IF INPUT FILE IS NOT AN L-FORMAT TAPE
 PRS5     SX7    B1+         SET STRANGER TAPE INPUT FILE FLAG
          SA7    STPI 
 PRS6     LX1    19 
          AX1    48 
          SX3    PRSD        * INPUT FILE NOT FOUND.* 
          ZR     X1,PRS1     IF FILE DOES NOT EXIST 
          SA1    N           SET OUTPUT FILE NAME IN PARAMETER BLOCK
          MX0    42 
          SA2    PRSE 
          BX1    X0*X1
          SX2    X2 
          BX6    X1+X2
          SA6    A2+
          FILINFO  PRSE      GET OUTPUT FILE INFORMATION
          SA1    PRSE+1 
          LX1    59-24
          PL     X1,PRS9     IF OUTPUT FILE IS NOT A TAPE 
          SA2    PRSE+5      CHECK FOR STRANGER TAPE
          AX2    6
          SX2    X2-/COMSMTX/TFS
          ZR     X2,PRS8     IF OUTPUT FILE IS AN S-FORMAT TAPE 
          SX2    X2+/COMSMTX/TFS-/COMSMTX/TFL 
          NZ     X2,PRS9     IF OUTPUT FILE IS NOT AN L-FORMAT TAPE 
 PRS8     SX7    B1+         SET STRANGER TAPE OUTPUT FILE FLAG 
          SA7    STPO 
 PRS9     SA1    CSMR        CHECK CHARACTER SET MODE 
          SB7    B1+         PRESET FOR CALL(S) TO *DXB*
          NG     X1,PRS10    IF IN 64 CHARACTER MODE
          SA2    ADTE        GET ALTERNATE TYPE TABLE ENTRIES 
          SA3    AATE 
          BX6    X2 
          BX7    X3 
          SA6    ADTP        SET ALTERNATE TYPE TABLE ENTRIES 
          SA7    AATP 
 PRS10    SA4    FL          CHECK *FL* AND *LB*
          SA5    LB 
          ZR     X4,PRS11    IF NO *FL* SPECIFIED 
          NZ     X5,PRS13    IF BOTH *FL* AND *LB* SPECIFIED
          BX5    X4          CALCULATE *LB* FROM *FL* 
          RJ     DXB         CONVERT TO DECIMAL 
          SA6    A4 
          SX5    MXCB        MAXIMUM CHARACTERS PER BLOCK 
          IX6    X5/X6
          SA6    A5 
          EQ     PRS14       CONTINUE 
  
 PRS11    ZR     X5,PRS12    IF NO *FL* OR *LB* SPECIFIED 
          RJ     DXB         SET *LB* 
          SA6    A5 
          SX6    80D         DEFAULT VALUE FOR *FL* 
          SA6    A4 
          EQ     PRS14       CONTINUE 
  
 PRS12    SX6    80D         SET DEFAULTS FOR *FL* AND *LB* 
          SX7    48D
          SA6    A4 
          SA7    A5 
          EQ     PRS14       CONTINUE 
  
 PRS13    RJ     DXB         TRANSLATE FROM DISPLAY 
          SA6    A5 
          SA5    A4 
          RJ     DXB
          SA6    FL 
 PRS14    SA1    PL          GET INPUT FILE LINE TERMINATOR 
          SA4    STPI        GET STRANGER TAPE INPUT FILE FLAG
          SA3    PC          GET INPUT FILE CHARACTER SET 
          RJ     CLP         CHECK LINE TERMINATOR PARAMETER
          NZ     X3,PRS1     IF ERROR 
          SA1    NL          GET OUTPUT FILE LINE TERMINATOR
          SA4    STPO        GET STRANGER TAPE OUTPUT FILE FLAG 
          SA3    NC          GET OUTPUT FILE CHARACTER SET
          RJ     CLP         CHECK LINE TERMINATOR PARAMETER
          NZ     X3,PRS1     IF ERROR 
          SA1    PC          CHECK FILE CHARACTERISTICS 
          SX3    PRSC        * UNRECOGNIZED CODE SET PARAMETER.*
          MX0    42 
          SA2    TCHT 
 PRS15    ZR     X2,PRS1     IF END OF *TCHT* TABLE 
          BX6    X1-X2
          BX6    X0*X6
          ZR     X6,PRS16    IF LEGAL *PC* VALUE
          SA2    A2+2 
          EQ     PRS15       READ NEXT TABLE ENTRY
  
 PRS16    SA2    A2+B1       GET FWA OF INPUT BASE TABLE
          SB6    X2 
          AX2    18 
          SX1    B1 
          BX1    X2*X1       GET STRANGER TAPE ALLOWED FLAG 
          AX2    30 
          SB4    X2+
          SA2    STPI 
          SX3    PRSF        * INCORRECT FILE TYPE FOR SPECIFIED ... *
          IX2    X1+X2
          ZR     X2,PRS17    IF INPUT FILE NOT STRANGER TAPE
          SX2    X2-2 
          NZ     X2,PRS1     IF INCORRECT FILE TYPE FOR CHARACTER SET 
          SA1    FL 
          SA2    LB 
          SB7    B4+
          RJ     FBH         FORM INPUT FILE BLOCK HEADER WORD
          SA6    IBHW 
          SA6    P+6         SAVE HEADER WORD IN FET+6
          MX5    -18
          BX5    -X5*X6 
          SX5    X5-PBUFL+2 
          NG     X5,PRS17    IF LESS THAN ALLOCATED SIZE
          MEMORY ,PRSG,R     GET CURRENT FIELD LENGTH 
          SA1    PRSG 
          AX1    30 
          IX6    X1+X5       NEW FIELD LENGTH 
          LX6    30 
          SA6    A1 
          MEMORY ,PRSG,R     SET NEW FIELD LENGTH 
          SETFET P,BUF=(PBUF,X5+PBUFL)  SET BUFFER POINTERS 
          SETFET N,BUF=(X5+NBUF,NBUFL)
 PRS17    SA1    NC 
          SA2    TCHT 
          SX3    PRSC        * UNRECOGNIZED CODE SET PARAMETER.*
 PRS18    ZR     X2,PRS1     IF END OF *TCHT* TABLE 
          BX6    X1-X2
          BX6    X0*X6
          ZR     X6,PRS19    IF LEGAL *NC* VALUE
          SA2    A2+2 
          EQ     PRS18       READ NEXT TABLE ENTRY
  
 PRS19    SA2    A2+1        GET FWA OF OUTPUT BASE TABLE 
          SB2    X2 
          AX2    18 
          SX1    B1+
          BX1    X2*X1       GET STRANGER TAPE ALLOWED FLAG 
          AX2    30 
          SB5    X2+
          SA2    STPO 
          SX3    PRSF        * INCORRECT FILE TYPE FOR SPECIFIED ... *
          IX2    X1+X2
          ZR     X2,PRS21    IF OUTPUT FILE NOT STRANGER TAPE 
          SX2    X2-2 
          NZ     X2,PRS1     IF INCORRECT FILE TYPE FOR CHARACTER SET 
          SA1    FL 
          SA2    LB 
          SB7    B5+
          RJ     FBH         FORM OUTPUT FILE BLOCK HEADER WORD 
          SA6    OBHW 
          SA6    N+6         SAVE HEADER WORD IN FET+6
          MX5    -18
          BX5    -X5*X6 
          SX5    X5-NBUFL+2 
          NG     X5,PRS20    IF LESS THAN ALLOCATED SIZE
          MEMORY ,PRSG,R     GET CURRENT FIELD LENGTH 
          SA1    PRSG 
          AX1    30 
          IX6    X1+X5       NEW FIELD LENGTH 
          LX6    30 
          SA6    A1 
          MEMORY ,PRSG,R     SET NEW FIELD LENGTH 
          SA1    N+1         FIRST
          SETFET N,BUF=(X1,X5+NBUFL)  SET BUFFER POINTERS 
 PRS20    SA1    LB          PRESET NUMBER OF LINES IN OUTPUT BLOCK 
          SA2    FL          PRESET NUMBER OF CHARACTERS IN OUTPUT LINE 
          BX6    X1 
          BX7    X2 
          SA6    OLCT 
          SA7    OLCC 
          SA3    N+2         PRESET POINTER TO SPACE FOR HEADER WORD
          BX6    X3 
          SA6    IPTR 
          SA1    SPAC        SET PROPER BLANK FOR FILLING SHORT LINES 
          SA2    X1+B2
          AX2    18 
          BX7    X2 
          SA7    A1+
 PRS21    SB7    B2+
          SA2    STPI 
          SA1    PL          OLD FILE LINE TERMINATOR 
          SX6    X1+
          NZ     X2,PRS22    IF INPUT FILE IS STRANGER TAPE 
          SB2    B4          CHARACTER LENGTH 
          SB3    B6          FWA OF CONVERSION TABLE
          RJ     VLC         VERIFY LINE TERMINATOR WITH CODE SET 
          NZ     X3,PRS1     IF AN ERROR
 PRS22    SA6    PL          SAVE CONVERTED LINE TERMINATOR 
          SA2    STPO 
          SA1    NL          NEW FILE LINE TERMINATOR 
          SX6    X1+
          NZ     X2,PRS23    IF OUTPUT FILE IS STRANGER TAPE
          SB2    B5          CHARACTER LENGTH 
          SB3    B7          FWA OF CONVERSION TABLE
          RJ     VLC         VERIFY LINE TERMINATOR WITH CODE SET 
          NZ     X3,PRS1     IF AN ERROR
 PRS23    SA6    NL          SAVE CONVERTED LINE TERMINATOR 
          OPEN   P,READNR,R  OPEN INPUT FILE
          OPEN   N,READNR,R  OPEN OUTPUT FILE 
          SA1    PL          INPUT FILE LINE TERMINATOR 
          SA2    NL          OUTPUT FILE LINE TERMINATOR
          SA3    STPI 
          BX6    X1-X2
          NZ     X6,PRS24    IF LINE TERMINATORS ARE DIFFERENT
          NE     B4,B5,PRS24 IF CHARACTER LENGTHS ARE DIFFERENT 
          NZ     X3,PRS24    IF STRANGER TAPE(S) INVOLVED 
          EQ     B6,B7,PRS25 IF JUST COPY, NO CONVERSION
 PRS24    RJ     BLD         BUILD CONVERSION TABLE 
          SB2    B0+         ZERO CURRENT POSITION IN INPUT WORD
          SB3    60D         RESET CURRENT POSITION IN OUTPUT WORD
          EQ     PRSX        RETURN 
  
 PRS25    SA0    B0+         SET FOR SIMPLE COPY
          EQ     PRSX        RETURN 
  
 PRSA     DATA   C* ERROR IN FCOPY ARGUMENTS.*
 PRSB     DATA   C* FILE NAME CONFLICT.*
 PRSC     DATA   C* UNRECOGNIZED CODE SET PARAMETER.* 
 PRSD     DATA   C* INPUT FILE NOT FOUND.*
 PRSF     DATA   C* INCORRECT FILE TYPE FOR SPECIFIED CHARACTER SET.* 
 PRSE     VFD    42/0,6/PRSEL,12/1  *FILINFO* PARAMETER BLOCK 
          BSS    FIPBL-1     *FILINFO* PARAMETER BLOCK LENGTH 
          VFD    54/0,6/FMTK
 PRSEL    EQU    *-PRSE 
 PRSG     BSSZ   1           MEMORY WORD
          SPACE  4,10 
*         PRESET COMMON DECKS.
  
  
*CALL     COMCARG 
*CALL     COMCDXB 
          SPACE  4,10 
**        TARG - ARGUMENT TABLE.
  
  
 TARG     BSS    0
 P        ARG    P,P         OLD FILE NAME
 N        ARG    N,N         NEW FILE NAME
 PC       ARG    PC,PC       OLD FILE INTERNAL CHARACTERISTIC 
 NC       ARG    NC,NC       NEW FILE INTERNAL CHARACTERISTIC 
 PL       ARG    PL,PL,400B  OLD LINE TERMINATOR
 NL       ARG    NL,NL,400B  NEW LINE TERMINATOR
 FL       ARG    FL,FL       FIXED LINE LENGTH (STRANGER TAPE ONLY) 
 LB       ARG    LB,LB       BLOCK LENGTH (STRANGER TAPE ONLY)
 R        ARG    -ASV,R      REWIND 
 A        ARG    -ASV,A      ABORT
          ARG 
          SPACE  4,10 
**        TCHT - CHARACTER TYPE TABLE.
* 
*T        42/CS, 18/0 
*T        12/CCL, 29/0, 1/STF, 18/CBTA
* 
*         CS = CHARACTER SET NAME.
*         CCL = CHARACTER CODE LENGTH.
*         STF = 1 IF CHARACTER SET ONLY USED WITH STRANGER TAPE.
*         CBTA = CONVERSION BASE TABLE FWA. 
  
  
 TCHT     BSS    0
          VFD    42/0LDIS,18/0
 ADTP     VFD    12/6,30/0,18/TD64
          VFD    42/0LDIS63,18/0
 ADTE     VFD    12/6,30/0,18/TD63
          VFD    42/0LDIS64,18/0
          VFD    12/6,30/0,18/TD64
          VFD    42/0LASCII,18/0
 AATP     VFD    12/6,30/0,18/TA64
          VFD    42/0LASCII63,18/0
 AATE     VFD    12/6,30/0,18/TA63
          VFD    42/0LASCII64,18/0
          VFD    12/6,30/0,18/TA64
          VFD    42/0LASCII8,18/0 
          VFD    12/12,30/0,18/TAS8 
 ASCI     VFD    42/0LASCII88,18/0
          VFD    12/8,30/0,18/TASC
          VFD    42/0LASCFL,18/0
          VFD    12/8,29/0,1/1,18/TASC
          VFD    42/0LEBCFL,18/0
          VFD    12/8,29/0,1/1,18/TEBC
          VFD    42/0LICS,18/0
          VFD    12/12,30/0,18/0
          CON    0
  
          SPACE  4,10 
**        TLNT - TABLE OF LINE TERMINATORS. 
* 
*T        42/TERMINATOR NAME,18/0 
*T        1/D, 1/C, 42/0, 16/TERMINATOR VALUE(S)
* 
*         D = DOUBLE LENGTH FLAG. 
*         C = CONVERTED TERMINATOR FLAG.
  
 TLNT     BSS    0
          VFD    42/0LZB,18/0 
 DTRM     VFD    1/0,1/1,42/0,16/ZBCH 
          VFD    42/0LCR,18/0 
          VFD    1/0,1/0,42/0,16/15B
          VFD    42/0LFF,18/0 
          VFD    1/0,1/0,42/0,16/14B
          VFD    42/0LLF,18/0 
          VFD    1/0,1/0,42/0,16/12B
          VFD    42/0LUS,18/0 
 ATRM     VFD    1/0,1/0,42/0,16/37B
          VFD    42/0LRS,18/0 
          VFD    1/0,1/0,42/0,16/36B
          VFD    42/0LCRLF,18/0 
          VFD    1/1,1/0,42/0,8/15B,8/12B 
          VFD    42/0LLFCR,18/0 
          VFD    1/1,1/0,42/0,8/12B,8/15B 
          CON    0
          SPACE  4,10 
**        BLD - BUILD TABLE.
* 
*         ENTRY  (B5) = OUTPUT CHARACTER LENGTH.
*                (B6) = FWA INPUT CONVERSION BASE TABLE.
*                (B7) = FWA OUTPUT CONVERSION BASE TABLE. 
* 
*         EXIT   (A0) = FWA CONVERSION TABLE. 
* 
*         USES   X - ALL. 
*                A - 0, 1, 2, 4, 5, 6, 7. 
*                B - 2, 3, 6, 7.
  
  
 BLD      SUBR               ENTRY/EXIT 
          SB2    TLEN        SET BASE TABLE LENGTH
          SA0    TCVT        SET ADDRESS OF CONVERSION TABLE
          MX0    5           FORM MASKS 
          MX2    -11
          MX5    -12
          SB3    B0          INITIALIZE TABLE OFFSET
 BLD1     SA1    B6+B3       GET NEXT TABLE ENTRY 
          NZ     B6,BLD2     IF INPUT CHARACTER IS NOT *ICS*
          SA1    B7+B3       GET NEXT TABLE ENTRY 
          AX1    18 
 BLD2     LX1    59-17       EXTRACT FLAGS
          BX6    X0*X1
          NZ     X6,BLD3     IF EITHER FLAG IS SET
          ZR     B6,BLD3     IF INPUT CHARACTER SET IS *ICS*
          ZR     B7,BLD3     IF OUTPUT CHARACTER SET IS *ICS* 
          LX1    -59+17 
          BX1    -X2*X1      GET *ICS* CHARACTER
          SA1    B7+X1       GET CONVERSION FOR CHARACTER 
          LX1    59-35       EXTRACT FLAGS
          BX6    X0*X1
 BLD3     LX1    59-30-59+35 FORM COUNT 
          SX4    B1 
          PL     X1,BLD4     IF DOUBLE LENGTH FLAG NOT SET
          SX4    2
 BLD4     LX1    59-17-59+30 EXTRACT CHARACTER FIELD
          BX1    -X5*X1 
          LX4    54          FORM FINAL TABLE WORD
          LX6    59-32-59+35
          BX4    X4+X1
          BX6    X4+X6
          SA6    A0+B3       SAVE TABLE WORD
          SB3    B3+B1       INCREMENT TABLE POINTER
          LE     B3,B2,BLD1  IF MORE TABLE ENTRIES TO BUILD 
  
*         ADD LINE TERMINATOR CONVERSIONS TO TABLE. 
  
          SA1    PL          GET OLD LINE TERMINATOR
          SA2    NL          GET NEW LINE TERMINATOR
          SX4    1           FORM NEW LINE TERMINATOR LENGTH
          PL     X2,BLD5     IF NEW TERMINATOR IS DOUBLE LENGTH 
          SX4    2
 BLD5     MX0    1           EXTRACT CHARACTERS 
          BX6    -X0*X2 
          LX4    59-5        FORM NEW LINE TERMINATOR WORD
          BX6    X4+X6
          NG     X1,BLD6     IF OLD TERMINATOR IS DOUBLE LENGTH 
          SB3    X1 
          SA6    A0+B3       SAVE LINE TERMINATOR WORD
          EQ     BLDX        RETURN 
  
 BLD6     SA6    BLDA        SAVE NEW LINE TERMINATOR WORD
          SB3    B4-B1       FORM MASK FOR OLD CHARACTERS 
          AX0    B3 
          LX0    B4 
          BX3    X0*X1       EXTRACT SECOND CHARACTER OF OLD TERMINATOR 
          AX1    B4          EXTRACT FIRST CHARACTER OF OLD TERMINATOR
          BX1    X0*X1
          SB7    6
          SX4    TLEN+1      PRESET OFFSET TO TERMINATOR CONVERSION 
          NE     B4,B7,BLD7  IF OLD CHARACTER SET IS NOT 6/12 
          SX5    X1-74B      CHECK FOR 74B ESCAPE CODE
          SX4    200B        SET OFFSET FOR 74B ESCAPE CODE 
          ZR     X5,BLD7     IF FIRST CHARACTER IS 74B ESCAPE CODE
          SX4    300B        SET OFFSET FOR 76B ESCAPE CODE 
 BLD7     MX7    1           FORM OFFSET WORD 
          BX7    X7+X4
          SB6    X4+         SET OFFSET TO TABLE EXTENSION
          SA7    BLDB        SAVE OFFSET WORD 
          EQ     B4,B7,BLD10 IF CHARACTER SET IS 6/12 
  
*         BUILD CONVERSION TABLE EXTENSION. 
  
          SB3    B0          INITIALIZE TABLE POINTER 
          SB7    X1+         (B7) = FIRST CHARACTER OF OLD TERMINATOR 
          SA4    A0+B7       TRANSLATE TERMINATOR CHARACTER 
          MX0    3           FORM MASK FOR CHARACTER COUNT
          LX0    60-3 
          BX7    X0*X4       EXTRACT CHARACTER COUNT
          MX2    -36
          SA7    BLDC 
          BX6    -X2*X4      EXTRACT CONVERTED TERMINATOR CHARACTERS
          BX2    X4          FORM ALTERATION WORD FOR DELETION ENTRY
 BLD8     SA5    A0+B3       GET NEXT TABLE ENTRY 
          BX7    X0*X5       EXTRACT TRANSLATION CHARACTER COUNT
          LX7    6
          SX4    B5 
          IX7    X7*X4       COMPUTE TOTAL BITS 
          SB2    X7 
          LX7    X6,B2       CONVERTED FIRST TERMINATOR CHARACTER 
          SA4    BLDC        CHARACTER COUNT
          BX7    X5+X7       CURRENT CONVERTED CHARACTER
          IX7    X4+X7       FINAL CONVERSION CHARACTER COUNT 
          LX5    1
          PL     X5,BLD9     IF NORMAL CONVERSION ENTRY 
          BX7    X2          USE ALTERATION WORD FOR DELETION ENTRY 
 BLD9     SB7    B6+B3       SAVE EXTENSION ENTRY 
          SA7    A0+B7
          SB3    B3+B1       INCREMENT TABLE POINTER
          LT     B3,B6,BLD8  IF TABLE EXTENSION NOT COMPLETE
          SX7    B7+         SET NEW TABLE LENGTH 
          SA7    TCVTL
 BLD10    SA4    BLDB        GET OFFSET-TO-TABLE-EXTENSION ENTRY
          SA5    BLDA        GET NEW TERMINATOR ENTRY 
          BX6    X4 
          SB2    X1 
          BX7    X5 
          SB6    B6+X3
          SA6    A0+B2       SAVE OFFSET ENTRY
          SA7    A0+B6       SAVE NEW TERMINATOR ENTRY
          EQ     BLDX        RETURN 
  
  
 BLDA     CON    0           TEMPORARY STORAGE
 BLDB     CON    0           TEMPORARY STORAGE
 BLDC     CON    0           TEMPORARY STORAGE
 CLP      SPACE  4,15 
**        CLP - CHECK LINE TERMINATOR PARAMETER.
* 
*         ENTRY  (X1) = LINE TERMINATOR PARAMETER VALUE.
*                (X3) = CHARACTER SET PARAMETER VALUE.
*                (X4) = STRANGER FORMAT TAPE FLAG.
* 
*         EXIT   (X3) = 0 IF NO ERROR, OTHERWISE ERROR MESSAGE ADDRESS. 
* 
*         USES   X - 0, 2, 3, 4, 5, 6.
*                A - 2, 4, 6. 
*                B - 7. 
* 
*         CALLS  DXB. 
  
  
 CLP4     SX3    CLPA        * UNRECOGNIZED LINE TERMINATOR PARAMETER.* 
  
 CLP      SUBR               ENTRY/EXIT 
          MX0    42 
          SA2    TLNT 
          NZ     X1,CLP0.1   IF LINE TERMINATOR WAS INPUT 
          SA4    ASCI        CHECK CHARACTER SET
          SA2    DTRM        SET DEFAULT TERMINATOR 
          MX0    42 
          BX4    X4-X3
          BX4    X0*X4
          NZ     X4,CLP3     IF CHARACTER SET NOT *ASCII88* 
          SA2    ATRM        SET DEFAULT TERMINATOR FOR *ASCII88* 
          EQ     CLP3        SAVE DEFAULT TERMINATOR
  
 CLP0.1   ZR     X4,CLP1     IF NOT STRANGER TAPE 
          SX3    CLPB        * LINE TERMINATORS NOT USED ... *
          EQ     CLPX        RETURN 
  
 CLP1     ZR     X2,CLP2     IF END OF *TLNT* TABLE 
          BX6    X1-X2
          BX6    X0*X6
          SA2    A2+1 
          ZR     X6,CLP3     IF LEGAL LINE TERMINATOR VALUE 
          SA2    A2+1 
          EQ     CLP1        READ NEXT TABLE ENTRY
  
 CLP2     SB7    B0          ASSUME OCTAL 
          BX5    X1*X0
          RJ     DXB         CONVERT FROM DISPLAY CODE
          NZ     X4,CLP4     IF ERROR IN CONVERSION 
          MX2    1
          LX2    -1 
          BX2    X6+X2       SET CONVERTED LINE TERMINATOR FLAG 
 CLP3     BX6    X2 
          SA6    A1          SAVE LINE TERMINATOR VALUE 
          BX3    X3-X3       SET NO ERROR 
          EQ     CLPX        RETURN 
  
  
 CLPA     DATA   C* UNRECOGNIZED LINE TERMINATOR PARAMETER.*
 CLPB     DATA   C* LINE TERMINATORS NOT USED ON A STRANGER TAPE.*
 VLC      SPACE  4,15 
**        VLC - VERIFY LINE TERMINATOR WITH CODE SET. 
* 
*         ENTRY  (B2) = CHARACTER LENGTH. 
*                (B3) = FWA OF CONVERSION TABLE.
*                (X1) = LINE TERMINATOR.
* 
*         EXIT   (X3) = 0 IF NO ERROR, OTHERWISE ERROR MESSAGE ADDRESS. 
*                (X6) = CONVERTED LINE TERMINATOR.
* 
*         USES   X - 1, 2, 3, 4, 5, 6.
*                A - 1, 2.
*                B - 2. 
  
 VLC6     SX3    VLCA        *CODE SET LINE TERMINATOR CONFLICT*
  
 VLC      SUBR               ENTRY/EXIT 
          SX3    B0+         PRESET TO NO ERROR 
          BX6    X1 
          LX6    59-58
          PL     X6,VLC4     IF TERMINATOR NEEDS TO BE CONVERTED
          SB2    B2-B1
          SX1    X1          REMOVE FLAGS 
          SX2    X1-ZBCH
          BX6    X1 
          NZ     X2,VLC1     IF TERMINATOR NOT ZERO BYTE
          SX2    B3-TASC
          ZR     X2,VLC6     IF CHARACTER SET IS *ASCII88*
          EQ     VLCX        RETURN 
  
 VLC1     MX6    1
          AX6    B2 
          SB2    B2+1 
          LX6    B2 
          BX5    -X6*X1 
          NZ     X5,VLC2     IF TERMINATOR LARGER THAN CHARACTER LENGTH 
          BX6    X1*X6
          EQ     VLCX        RETURN LINE TERMINATOR VALUE 
  
 VLC2     SX2    B3-TA64
          ZR     X2,VLC3     IF 6/12 CHARACTER SET
          SX2    B3-TA63
          NZ     X2,VLC3     IF NOT 6/12 CHARACTER SET
 VLC3     AX4    X1,B2       CHECK FIRST CHARACTER OF TERMINATOR
          SX2    X4-74B 
          ZR     X2,VLCX     IF FIRST CHARACTER IS 74B ESCAPE CODE
          SX2    X4-76B 
          ZR     X2,VLCX     IF FIRST CHARACTER IS 76B ESCAPE CODE
          EQ     VLC6        ERROR IN TERMINATOR
  
 VLC4     MX6    60-8 
          NG     X1,VLC5     IF DOUBLE LENGTH TERMINATOR
          BX1    -X6*X1 
          SA1    B3+X1       GET CHARACTER FROM TABLE 
          MX6    60-12
          AX1    18 
          BX6    -X6*X1      EXTRACT CHARACTER
          MX2    1
          LX1    59-12
          BX2    X1*X2
          BX6    X2+X6       MERGE DOUBLE LENGTH FLAG 
          MX2    60-5 
          BX1    -X2*X1      EXTRACT SPECIAL FLAGS
          NZ     X1,VLC6     IF SPECIAL FLAGS SET 
          EQ     VLCX        RETURN 
  
 VLC5     LX1    -8 
          BX2    -X6*X1 
          SA2    B3+X2       GET CHARACTER FROM TABLE 
          MX4    60-12
          AX2    18 
          BX5    -X4*X2      EXTRACT CHARACTER
          AX2    12 
          NZ     X2,VLC6     IF ANY FLAGS SET 
          LX5    X5,B2
          LX1    8
          BX2    -X6*X1 
          SA2    B3+X2
          AX2    18 
          BX6    -X4*X2      EXTRACT CHARACTER
          AX2    12 
          NZ     X2,VLC6     IF ANY FLAGS SET 
          BX6    X5+X6       MERGE CHARACTERS 
          MX1    1
          BX6    X6+X1       SET DOUBLE LENGTH FLAG 
          EQ     VLCX        RETURN 
  
  
 VLCA     DATA   C* CODE SET LINE TERMINATOR CONFLICT.* 
          SPACE  4,10 
          END    FCOPY
