*DECK  SYMIO
         IDENT SYMIO
          TITLE  SYMIO - I/O INTERFACE ROUTINES 
          COMMENT  SYMIO - I/O INTERFACE ROUTINES 
          SST 
          LIST   F
          SPACE  4
 FTNVERS  SET    4      TO USE V3.0 *I SY40016.1 WITH A SET=3 
          SPACE  4
 PRINT    ENTRY. ** 
 PRINT$   EQENT  PRINT
 IF1      IFEQ   FTNVERS,3
       SB2       =XOUTPUT#
 IF1      ELSE
          SX6    =XOUTPUT#
 IF1      ENDIF 
         SA5   PRINT              GET RETURN ADDRESS
         BX7   X5                   AND SAVE
         SA7   PRINTFL              IN PRINTFL ENTRY
         EQ    PROC               SKIP AROUND GET FILE ADDRESS
          SPACE  4
 PRINTFL  ENTRY. ** 
         SA3   A1+1               GET SECOND PARM -- FILE FET 
 IF2      IFEQ   FTNVERS,3
         SB2   X3            PUT IN B2 ADDRESS OF FET 
 IF2      ELSE
          BX6    X3 
 IF2      ENDIF 
PROC     BSS   0
         SA2   X1-1                GET WORD BEFORE FORMAT 
         BX7   X2 
 IF3      IFEQ   FTNVERS,4
          SA6    APLIST 
 IF3      ENDIF 
         SA7   SAVEWD              SAVE WORD BEFORE FORMAT
         SA3   LEADER              GET WORD TO PUT BEFORE FORMAT
         BX6   X3 
         SA6   A2                  STORE TEMP WORD BEFORE FORMAT
         SX7   A2                  GET ADDRESS OF WORD BEFORE FORMAT
         SA7   SAVEAD              SAVE ADDRESS OF WORD BEFORE FORMAT 
 IF4      IFEQ   FTNVERS,3
         SB3   A2             SET B3 WORD BEFORE FORMAT 
         RJ    =XOPUTCI.
 IF4      ELSE
          MX6    60 
          SA7    APLIST+1 
          SA6    APLIST+2 
          SA1    APLIST 
          SA7    CALLFLG     .MARK PRINT CALLED                          L414 
+         RJ     =XOUTCI. 
 IF4      ENDIF 
-        VFD   12/0B,18/TRACE.
         SA2   SAVEWD              RESTORE
         SA1   SAVEAD          WORD 
         BX7   X2                    BEFORE 
         SA7   X1                     FORMAT
         EQ    PRINTFL
          SPACE  4
SAVEWD   BSSZ  1                   SAVED WORD BEFORE FORMAT 
SAVEAD   BSSZ  1                   SAVED ADDRESS OF WORD BEFORE FORMAT
LEADER   VFD   60/6C 00            PLACED IN WORD BEFORE FORMAT 
TRACE.   VFD   60/7LPRINT          TRACE INFO 
 IF5      IFEQ   FTNVERS,4
 APLIST   BSS    3
 IF5      ENDIF 
         EJECT
 LIST     ENTRY. ** 
 LIST$    EQENT  LIST 
         SB6   1              KODER ASSUMES B6=1
 IF6      IFEQ   FTNVERS,3
         SB1   X1             SET B1 TO ADDRESS OF VARIABLE 
         SB2   1B             SET B2 TO 1 
         RJ    =XOUTPTC.
 IF6      ELSE
          SA2    CALLFLG                                                 L414 
          ZR     X2,BADSEQ                                               L414 
          BX6    X1 
          MX7    60 
          SA6    APLIST+1 
          SA7    APLIST+2 
          SA1     APLIST+1
          RJ     =XOUTCR. 
 IF6      ENDIF 
         EQ    LIST 
         EJECT
 ENDL     ENTRY. ** 
 ENDL$    EQENT  ENDL 
         SB6   1              KODER ASSUMES B6=1
 IF7      IFEQ   FTNVERS,3
         SB1   -1B            SET B1 TO -1
         RJ    =XOUTPTC.
 IF7      ELSE
          MX6    0
          SA6    APLIST+1 
          SA1     APLIST+1
          SA6    CALLFLG     .MARK ENDL CALLED                           L414 
          RJ     =XOUTCR. 
 IF7      ENDIF 
         EQ    ENDL 
          SPACE  4
 CALLFLG  DATA   0                                                       L414 
 X        CON    7LSYMIO                                                 L414 
*                                                                        L414 
*         HERE WE PROCESS LIST CALL NOT PRECEEDED BY PRINT               L414 
*                                                                        L414 
 BADSEQ   SA1    SYSLIST                                                 L414 
+         RJ     =XSYSTEM                                                L414 
-         VFD    30/X                                                    L414 
*                                                                        L414 
 SYSLIST  VFD    60/Y                                                    L414 
          VFD    60/MSSSH                                                L414 
          BSSZ   1                                                       L414 
 MSSSH    DATA   50H SYMPL OBJECT ERROR, PRINT DOES NOT PRECEED LIST     L414 
          BSSZ   1                                                       L414 
 Y        DATA   52                                                      L414 
         END
