         PCC      0                                                             
         SYSTEM   SIG5P                                                         
         SYSTEM   OPTIONS                                                       
         DO       #SYMB                                                         
*   ENTRY POINTS                                                                
         DEF      SYM2,SMGETF                                                   
         DEF      SMDEVERR,SMFEOD                                               
         DEF      SMXKEY,SMGETOF                                                
         DEF      SMCLOSF,SYMCUP,SMGETQF                                        
         DEF      SMWMSG                                                        
         DEF      SMWEOF                                                        
         DEF      SMPRECB                                                       
*   EXIT POINTS                                                                 
         DEF      SMGETFX                                                       
         DEF      SYM2X1                                                        
         DEF      SYM2X8                                                        
OLAYFLAG EQU      'SYM2'                                                        
         SYSTEM   CPRMON                                                        
         PAGE                                                                   
*                                                                               
*                                                                               
SYM2     RES      0                                                             
*                                                                               
*   EXITS                                                                       
*                                                                               
SYM2X1P  PULL     R5                RESTORE LINK                                
SYM2X1   B        1,R5                                                          
SYM2X8P  PULL     R5                RESTORE LINK                                
SYM2X8   B        0,R5                                                          
         TITLE    '** SYM2 - MISCELLANEOUS SYMBIONT PROCESSING **'              
***************                                                                 
*   SMGETOF   *                                                                 
***************                                                                 
*                                                                               
*   SUBROUTINE TO GET NEXT OUTPUT SYMBIONT FILE                                 
*                                                                               
*                                                                               
*   ROUTINE RETURNS +2 IF NO ERRORS                                             
*   ROUTINE RETURNS +1 IF NO MORE FILES OR IF AN ERROR OCCURRED WHILE           
*    TRYING TO FIND THE NEXT FILE.                                              
*                                                                               
*   AT ENTRY:   R1   DCT INDEX                                                  
*               R5   LINK                                                       
*               R7   CONTEXT POINTER                                            
*                                                                               
*                                                                               
SMGETOF  RES      0                                                             
         PUSH     R5                SAVE LINK                                   
         BAL,R5   SMGETQF           TRY FILE FOR DEV WITH Q KEYIN               
         B        SMGETOF8          +1...ERROR                                  
         B        SMGETOF1          +2...FILE FOUND                             
*                                   +3...NO FILE                                
         LI,R8    KOS                                                           
         BAL,R5   FMMASTX           GET OS AREA INDEX                           
         BAL,R0   SYMCRSH                                                       
         LD,R12   ZEROS             GET HIGHEST PRIORITY FILE                   
         BAL,R8   SMGETF            GET FILE NAME IN R12,R13                    
         B        SMGETOF4          +1..ERROR                                   
         B        SMGETOF2          +2..NO MORE FILES                           
         LW,R7    DCTSYM2,R1        R7= TSPACE POINTER                          
         LW,R7    SYMCNTX,R7        THEN ADDRESS OF CONTEXT BLOCK               
         STW,R12  TSRWFDCB+5,R7     STORE FILE NAME                             
         STW,R13  TSRWFDCB+6,R7                                                 
SMGETOF1 RES      0                                                             
         SLD,R12  8                                                             
         STW,R12  TSJOBN,R7         STORE JOB NUMBER (BITS 8-31)                
         B        SYM2X1P                                                       
         SPACE    5                                                             
*                                                                               
*   NO MORE FILES TO OUTPUT; CLEANUP THE LP DEVICE                              
*                                                                               
SMGETOF2 RES      0                                                             
         LI,R2    0                 NO MESSAGE                                  
         BAL,R5   SYMCUP            CLEANUP                                     
         B        SYM2X8P           TAKE +1 EXIT                                
*                                                                               
*   PROCESS ERRORS THAT OCCURRED WHILE TRYING TO GET NEXT FILE                  
*                                                                               
SMGETOF4 RES      0                                                             
         STB,R15  R10               SIMULATE ERROR RETURN FROM CAL              
SMGETOF8 RES      0                                                             
         LI,R2    SMSG3             ADDRESS OF 'ERROR MESSAGE                   
         BAL,R5   SYMCUP            CLEANUP FILES, ETC.                         
         B        SYM2X8P           TAKE +1 EXIT                                
         PAGE                                                                   
**************                                                                  
*   SMXKEY   *                                                                  
**************                                                                  
*                                                                               
*   SUBROUTINE TO PROCESS 'X' OPTION OF SYYNDD KEYIN                            
*                                                                               
*   ALWAYS RETURNS +1                                                           
*                                                                               
*   AT ENTRY:   R1   DCT INDEX                                                  
*               R5   LINK                                                       
*               R7   POINTER TO CONTEXT                                         
*                                                                               
*                                                                               
*                                                                               
SMXKEY   RES      0                                                             
         PUSH     R5                                                            
*   MAKE SURE THE SPECIFIED DEVICE IS NOT ATTACHED TO A                         
*   JOB THAT IS ACTIVE.                                                         
         LW,R12   TSRWFDCB+5,R7     GET FILE NAME IN R12,R13                    
         LW,R13   TSRWFDCB+6,R7                                                 
         SLD,R12  -24               JOB# IN R13, BITS 8-31                      
         LI,R4    3                 # OF CHARACTERS TO CONVERT                  
         BAL,R8   SMBCDHEX          CONVERT TO BINARY IN R14                    
         CW,R14   JOB#              IS IT THE CURRENT JOB                       
         BNE       SMXKEY3           NO, OK TO DELETE                           
         LW,R5    K:JCP1                                                        
         CI,R5    1                 IS THE JOB STILL RUNNING                    
         BAZ      SMXKEY3           NO, PROCESS KEYIN                           
         PUSH     7,R1                                                          
         LI,R2    SMSG7             "JOB STILL ACTIVE" MESSAGE                  
         BAL,R5   JOBMSG                                                        
         PULL     7,R1                                                          
         B        SMXKEY5                                                       
*                                                                               
SMXKEY3  RES      0                                                             
         BAL,R5   SMCLOSF           CLOSE THE FILE DCB                          
         NOP                                                                    
         BAL,R5   SMDELF            DELETE THE JOB'S FILES                      
         NOP                                                                    
         LI,R2    0                 SET FOR NO MESSAGE                          
         BAL,R5   SYMCUP            CLEANUP THE DEVICE                          
SMXKEY5  RES      0                                                             
         LB,R0    DCTSYM1,R1        GET SYMBIONT FLAGS                          
         AND,R0   XFD               SET X= 0                                    
         STB,R0   DCTSYM1,R1        STORE                                       
         B        SYM2X8P           RETURN TO EXEC LOOP                         
         TITLE    '** SYM2 - SYMBIONT ERROR/CLEANUP PROCESSING**'               
*                                                                               
****************                                                                
*   SMDEVERR   *                                                                
****************                                                                
*                                                                               
*                                                                               
*   ROUTINE PROCESSES UNRECOVERABLE DEVICE AND FILE I/O ERRORS                  
*                                                                               
*                                                                               
*   ROUTINE ALWAYS RETURNS +1                                                   
*                                                                               
*   AT ENTRY:   R5   LINK                                                       
*                                                                               
SMDEVERR RES      0                                                             
         PUSH     R5                SAVE LINK                                   
         PUSH     R10                                                           
         BAL,R5   SMCLOSF           CLOSE THE FILE DCB                          
         NOP                                                                    
         BAL,R5   SMDELF            DELETE THE JOB'S FILES                      
         NOP                                                                    
         PULL     R10                                                           
         LI,R2    SMSG3             MESSAGE= 'ERROR'                            
         BAL,R5   SYMCUP            COMPLETE THE CLEANUP                        
         B        SYM2X8P           RETURN TO CALLER                            
         TITLE    '** SYM2 - PROCESS EOD CONDITION FROM OS AREA **'             
**************                                                                  
*   SMFEOD   *                                                                  
**************                                                                  
*                                                                               
*   ROUTINE HANDLES AN EOD WHEN IT IS ENCOUNTERED WHILE READING                 
*   AN OUTPUT SYMBIONT FILE RECORD.                                             
*                                                                               
*   AT ENTRY:   R1  DCT INDEX                                                   
*               R5  LINK                                                        
*                                                                               
*   ROUTINE RETURNS +1 IF ERROR OR IF NO MORE FILES.                            
*   ROUTINE RETURNS +2 IF THE NEXT FILE HAS BEEN SELECTED.                      
*                                                                               
SMFEOD   RES      0                                                             
         PUSH     R5                SAVE LINK                                   
         BAL,R5   SMCLOSF           CLOSE THE FILE                              
         BAL,R0   SYMCRSH           ERROR, R10 BYTE 0= ERROR.                   
*   GET NEXT FILE TO READ                                                       
         LW,R0    TSRWFFPT,R7       R0= FILE DCB ADDRESS                        
         LI,R2    6                                                             
         LB,R6    *R0,R2            SET AREA'S INDEX                            
         LW,R12   TSRWFDCB+5,R7     FILE NAME TO CONTINUE WITH                  
         LW,R13   TSRWFDCB+6,R7                                                 
         BAL,R8   SMGETF            GET NEXT FILE                               
         B        SMFEOD6           +1..ERROR                                   
         B        SMFEOD4           +2..NO MORE FILES                           
         LW,R7    DCTSYM2,R1        R7= TSPACE POINTER                          
         LW,R7    SYMCNTX,R7        THEN ADDRESS OF CONTEXT BLOCK               
         LW,R10   TSRWFDCB+5,R7     GET PREVIOUS FILE NAME IN R10,R11           
         LW,R11   TSRWFDCB+6,R7                                                 
         SLD,R10  8                 JOB# IN BITS 8-31                           
         LD,R8    R12               R8,R9= NEW FILE NAME                        
         SLD,R8   8                 R8 HAS NEW JOB# IN BITS 8-31                
         CW,R8    R10               IS THE NEW FILE FOR THE SAME JOB            
         BE       SMFEOD2           YES, BRANCH                                 
*                                                                               
*   HERE WE ARE STARTING A NEW JOB.                                             
*                                                                               
         LB,R0    DCTSYM1,R1        GET SYMBIONT FLAGS                          
         CI,R0    DCTSYMT           IS THE T KEYIN IN EFFECT                    
         BAZ      SMFEOD01          NO, BRANCH                                  
         CI,R0    DCTSYMSM          IS DEVICE DED TO SYMBIONTS                  
         BANZ     SMFEOD01          YES, BRANCH                                 
         LW,R13   R10               R13= JOB NUMBER TO DELETE                   
         B        SMFEOD4A          CLEANUP                                     
*   DELETE THE JOB'S FILES IN THE OS AREA                                       
SMFEOD01 RES      0                                                             
         PUSH     2,R12             SAVE FILE NAME                              
         LW,R13   R10               R13= NUMBER OF JOB TO DELETE                
         BAL,R5   SMDFOS            DELETE FILES IN OS                          
         B        SMFEOD14          ERROR, R15= ERROR CODE                      
         PULL     2,R12                                                         
         BAL,R5   SMPP              POLL, POST BKGD                             
         BAL,R5   SMWEOF            WRITE WEOFS TO MAG TAPE                     
         NOP                        IGNORE ERRORS                               
         LW,R7    DCTSYM2,R1        R7= TSPACE POINTER                          
         LW,R7    SYMCNTX,R7        THEN ADDRESS OF CONTEXT BLOCK               
         LB,R0    DCTSYM1,R1        GET SYMBIONT FLAGS                          
         CI,R0    DCTSYML           IS THE DEVICE LOCKED                        
         BAZ      SMFEOD02          NO, CLOSE THE DEVICE DCB                    
         CI,R0    DCTSYMSM          YES, IS IT DED TO SYMBIONTS                 
         BAZ      SMFEOD04          NO, CAN'T RELEASE THE DEVICE                
*   CLOSE THE DEVICE DCB WHICH WILL MAKE IT AVAILABLE TO OTHER                  
*   JOBS.  THE DEVICE WILL BE REACQUIRED LATER.                                 
SMFEOD02 RES      0                                                             
         LW,R14   TSRWFPT,R7        R14= DEVICE DCB ADDRESS                     
         AND,R14  M17               MAASK                                       
         LI,R9    SMFEOD11          ERROR RETURN FOR CLOSE                      
         CAL1,1   FPTCLOS           CLOSE                                       
SMFEOD04 RES      0                                                             
         DO       #MEDIA                                                        
         DISABLE                                                                
         LB,R0    DCTRBM,R1         GET MEDIA/SYMB FLAGS                        
         CI,R0    DCTRBMMR          IS MEDIA REQUESTING THE DEVICE              
         BAZ      SMFEOD06          NO, BRANCH                                  
         AND,R0   XDF               YES, SET 'SYMB'                             
         STB,R0   DCTRBM,R1                                                     
         ENABLE                                                                 
         CAL1,7   FPTSTMED          START MEDIA TASK                            
         B        SYM2X8P           TAKE +1 RETURN                              
SMFEOD06 RES      0                                                             
         ENABLE                                                                 
         FIN      #MEDIA                                                        
         LB,R0    DCTSYM1,R1        GET SYMBIONT FLAGS                          
         CI,R0    DCTSYML+DCTSYMT   IS IT LOCKED                                
         BAZ      SMFEOD08          NO                                          
         AND,R0   X7F               DEVICE LOCKED SO RESET 'I'                  
         STB,R0   DCTSYM1,R1        STORE FLAGS BACK                            
         B        SYM2X8P           EXIT +1                                     
SMFEOD08 RES      0                                                             
*   CLEANUP IS COMPLETE.  TRY TO GET A FILE ASSOCIATED WITH                     
*   A DEVICE WHICH HAS SYYNDD,Q KEYIN IN EFFECT.                                
         BAL,R5   SMGETQF           cALL SUBR TO GET Q-DEV FILE                 
         B        SMFEOD8           +1...ERROR                                  
         B        SMFEOD0A          +2...FOUND A FILE                           
*                                   +3...NO FILE                                
         STW,R12  TSRWFDCB+5,R7     STORE NEW FILE NAME IN FILE DCB             
         STW,R13  TSRWFDCB+6,R7                                                 
SMFEOD0A RES      0                                                             
         SLD,R12  8                                                             
         STW,R12  TSJOBN,R7         STORE JOB# FOR THIS DEVICE                  
         B        SYM2X1P           EXIT +2                                     
*                                                                               
*   HERE THE NEXT FILE IS IN THE SAME JOB.  DELETE THE PREVIOUS                 
*   FILE ONLY IF DO KEYIN IS IN EFFECT.                                         
SMFEOD2  RES      0                                                             
         STW,R12  TSRWFDCB+5,R7     STORE NEW FILE NAME                         
         STW,R13  TSRWFDCB+6,R7                                                 
         LW,R0    SYMB                                                          
         CI,R0    SYMBOFLO          IS BKGD OUT OF SPACE                        
         BANZ     SMFEOD3           YES, DELETE FILES, ETC....                  
         CI,R0    SYMBDO            IS DELETE-ON-OUTPUT SET                     
         BAZ      SYM2X1P           NO, DONE SO TAKE NORMAL EXIT                
SMFEOD3  RES      0                                                             
         BAL,R5   SMBSYF            DELETE ALL FILES IN OS EXCEPT               
*                                    CURRENT (NEW) FILE.                        
         B        SMFEOD11          ERROR                                       
         B        SYM2X1P           RETURN +2                                   
*                                                                               
*   HERE THERE ARE NO MORE FILES TO READ.                                       
*                                                                               
SMFEOD4  RES      0                                                             
         LW,R7    DCTSYM2,R1        GET TSPACE POINTER                          
         LW,R7    SYMCNTX,R7        GET ADDR OF CONTEXT                         
         LW,R12   TSRWFDCB+5,R7     GET CURRENT FILE NAME IN R12,R13            
         LW,R13   TSRWFDCB+6,R7                                                 
         SLD,R12  -24               R13= JOB# IN BITS 8-31                      
SMFEOD4A RES      0                                                             
         BAL,R5   SMDFOS            DELETE OS AREA FILES                        
         B        SMFEOD10          ERROR                                       
         BAL,R5   SMPP              POLL AND POST BKGD                          
         BAL,R5   SMWEOF            WRITE EOF'S IF APPROPRIATE                  
         NOP                                                                    
         LI,R2    SMSG2             MESSAGE= 'IDLE'                             
         BAL,R5   SYMCUP            DO DEVICE CLEANUP                           
         B        SYM2X8P           RETURN +1                                   
*                                                                               
*                                                                               
*   PROCESS ERRORS                                                              
*                                                                               
SMFEOD6  RES      0                                                             
         STB,R15  R10               STORE ERROR CODE IN R10, BYTE 0             
SMFEOD8  RES      0                                                             
         BAL,R5   SMDEVERR          DELETE FILES, CLOSE DCBS, ETC.              
         B        SYM2X8P           EXIT +1                                     
*                                                                               
*                                                                               
SMFEOD10 RES      0                                                             
         STB,R15  R10                                                           
SMFEOD11 RES      0                                                             
         LI,R2    SMSG3             MSG= 'ERROR'                                
         BAL,R5   SYMCUP            CLEANUP                                     
         B        SYM2X8P           TAKE ERROR EXIT                             
*                                                                               
SMFEOD14 RES      0                                                             
         PULL     2,R12             CLEANUP STACK                               
         B        SMFEOD10          CLEANUP AND EXIT                            
         TITLE    '** SYM2 - SMPP SUBROUINE **'                                 
************                                                                    
*   SMPP   *                                                                    
************                                                                    
*                                                                               
*   SUBROUTINE POLLS BACKGROUND TASK IN CASE IT IS SIGNALLING                   
*   FOR MORE OS AREA SPACE.  IF A SIGNAL ECB IS POOLLED, IT                     
*   IS POSTED.                                                                  
*                                                                               
*   AT ENTRY:     R5   LINK                                                     
*                                                                               
*   ROUTINE ALWAYS RETURNS +1                                                   
*                                                                               
*                                                                               
SMPP     RES      0                                                             
         LI,R9    SMPP10            ERROR ADDRESS FOR POLL,POST                 
         CAL1,7   FPTPOLBK          POLL                                        
         LI,R15   K1FFFF                                                        
         LS,R14   FPTPOLBK          GET SIGNAL ECB ID                           
         STS,R14  FPTPSTBK          STORE IT IN THE POST FPT                    
         CAL1,7   FPTPSTBK          POST THE SIGNAL ECB                         
         B        SMPP              POLL AGAIN IN CASE BKGD HAS MORE            
*   THAN ONE SIGNAL ECB WAITING.  THIS COULD HAPPEN IF BKGD                     
*   RAN OUT OF OS AREA SPACE AND TERMINATED AT APPROXIMATELY                    
*   THE SAME TIME.                                                              
SMPP10   B        0,R5              EXIT                                        
         TITLE    '** SYM2 -  SMWEOF SUBROUTINE **'                             
**************                                                                  
*   SMWEOF   *                                                                  
**************                                                                  
*                                                                               
*   SUBROUTINE WRITES TWO END OF FILE MARKS AND BACKSPACES ONE                  
*   TO POSTITION BETWEEN THE TWO TAPE MARKS IF THE OUTPUT                       
*   DEVICE IS A 7T OR 9T MAGNETIC TAPE.                                         
*                                                                               
*   AT ENTRY:     R5   LINK                                                     
*                 R1   DCT INDEX                                                
*                                                                               
*   ROUTINE RETURNS +2 IF NO  ERRORS                                            
*                   +1 IF ERRORS WITH R8,R10 SET AS USUAL                       
*                                                                               
SMWEOF   RES      0                                                             
         PUSH     R5                SAVE LINK                                   
         LW,R7    DCTSYM2,R1        GET TSPACE ADDRESS                          
         LW,R7    SYMCNTX,R7        R7= ADDRESS OF CONTEXT BLOCK                
         LW,R14   TSRWFPT,R7                                                    
         AND,R14  M17               R14= DCB ADDRESS                            
         LI,R5    7                                                             
         LB,R5    *R14,R5           R5= DEVICE INDEX                            
         LD,R8    DCT16,R5          GET DEVICE NAME                             
         SLD,R8   8                                                             
         AND,R8   M16               MAASK                                       
         CI,R8    K9T               IS IT A 9T MAG TAPE                         
         BE       SMWEOF5           YES                                         
         CI,R8    K7T               IS IT A 7T MAG TAPE                         
         BNE      SMWEOF10          NOT A MAG TAPE                              
*   WRITE TWO END OF FILE MARKS                                                 
SMWEOF5  RES      0                                                             
         LI,R9    SMWEOF20          ERROR RETURN                                
         CAL1,1   FPTWEOF                                                       
         CAL1,1   FPTWEOF                                                       
         CAL1,1   FPTPFILB          SKIP BACK ONE FILE                          
SMWEOF10 RES      0                                                             
         B        SYM2X1P           RETURN AT OK EXIT                           
*                                                                               
*   ERROR PROCESSING                                                            
*                                                                               
SMWEOF20 RES      0                                                             
         B        SYM2X8P           RETURN AT ERROR EXIT                        
         TITLE    '** SYM2 - SMMEDIA SUBROUTINE **'                             
***************                                                                 
*   SMMEDIA   *                                                                 
***************                                                                 
*                                                                               
*   SUBROUTINE DETERMINES IF MEDIA IS REQUESTING THE SPECIFIED                  
*   DEVICE.  IF SO, THE DEVICE IS GIVEN TO MEDIA AND THE MEDIA                  
*   TASK IS STARTED.                                                            
*                                                                               
*   AT ENTRY:     R5   LINK                                                     
*                 R1   DCT INDEX                                                
*                                                                               
*   ROUTINE ALWAYS RETURNS +1                                                   
*                                                                               
         DO       #MEDIA                                                        
SMMEDIA  RES      0                                                             
         DISABLE                                                                
         LB,R0    DCTRBM,R1         GET MEDIA/SYMB FLAGS                        
         AND,R0   XDF               SET 'SYMB'= 0                               
         STB,R0   DCTRBM,R1                                                     
         ENABLE                                                                 
         CI,R0    DCTRBMMR          IS MEDIA REQUESTING THE DEVICE              
         BAZ      %+2               NO, BRANCH                                  
         CAL1,7   FPTSTMED          YES, START MEDIA TASK                       
         B        0,R5              EXIT                                        
         FIN      #MEDIA                                                        
         TITLE    '** SYM2 - SMDELF SUBROUTINE **'                              
************                                                                    
*  SMDELF  *                                                                    
************                                                                    
*                                                                               
*   SUBROUTINE TO DELETE ALL OF THE FILES THAT ARE ASSOCIATED                   
*   WITH THE SPECIFIED JOB NUMBER.                                              
*                                                                               
*   AT ENTRY:  R1   DEVICE INDEX                                                
*              R5   LINK                                                        
*                                                                               
*   ROUTINE RETURNS +2 IF NO ERRORS                                             
*   ROUTINE RETURNS +1 IF ERROR, WITH R15= ERROR                                
*                                                                               
SMDELF   RES      0                                                             
         LW,R7    DCTSYM2,R1        GET TSPACE POINTER                          
         BEZ      SMDELF10          NONE, EXIT                                  
         LW,R7    SYMCNTX,R7        THEN ADDRESS OF CONTEXT BLOCK               
         PUSH     R5                SAVE LINK                                   
         LW,R12   TSRWFDCB+5,R7     FILE NAME TO R12,R13                        
         LW,R13   TSRWFDCB+6,R7                                                 
         SLD,R12  -24               JOB# IN R13, RIGHT JUSTIFIED                
         LI,R4    3                 R4= # OF CHARS TO CONVERT                   
         BAL,R8   SMBCDHEX          CONVERT JOB # TO BINARY                     
         LW,R2    FPTJOBDL          MOVE JOB CALL TO TSPACE                     
         LW,R3    FPTJOBDL+1                                                    
         LI,R4    SMDELF20          ERROR RETURN (IGNORE)                       
         LW,R5    R14               R5= JOB #                                   
         AND,R5   M12               MASK                                        
         CAL1,7   R2                DELETE VIA M:JOB                            
         PULL     R5                                                            
SMDELF10 RES      0                                                             
         B        1,R5              TAKE NORMAL EXIT                            
*                                                                               
SMDELF20 RES      0                                                             
         PULL     R5                                                            
         LB,R15   R10               R15= ERROR CODE                             
         B        0,R5              RETURN +1                                   
         TITLE    '** SYM2 - SMCLOSEF SUBROUTINE **'                            
*************                                                                   
*  SMCLOSF  *                                                                   
*************                                                                   
*                                                                               
*   SUBROUTINE TO CLOSE A SYMBIONT FILE                                         
*                                                                               
*   AT ENTRY:  R1   DEVICE INDEX                                                
*              R5   LINK                                                        
*                                                                               
*   ROUTINE DESTROYS R2,R3,R4,R14.  IF ERRORS, CLOBBERS R8,R10                  
*                                                                               
*  ROUTINE RETURNS +2 IF NO ERRORS                                              
*  ROUTINE RETURNS +1 IF ERROR, R8,R10 STD ERR REGISTERS                        
*                                                                               
SMCLOSF  RES      0                                                             
         PUSH     R5                SAVE LINK                                   
         LW,R7    DCTSYM2,R1        GET TSPACE                                  
         BEZ      SYM2X1P           NONE, EXIT                                  
         LW,R7    SYMCNTX,R7        THEN ADDRESS OF CONTEXT BLOCK               
         LW,R14   TSRWFDCB,R7       GET FILE DCBWORD 0                          
         CW,R14   Y002              IS THE DCB OPEN                             
         BAZ      SYM2X1P           NO, BRANCH                                  
*   CLOSE THE FILE DCB                                                          
         LW,R14   TSRWFFPT,R7       R14= ADDR OF DCB TO CLOSE                   
         AND,R14  M17               MASK                                        
         LI,R9    SMCLF20           ERROR RETURN FOR CLOSE                      
         CAL1,1   FPTCLOS           CLOSE                                       
         B        SYM2X1P           TAKE NORMAL EXIT (+2)                       
*   ERROR RETURN FROM CLOSE HERE.                                               
SMCLF20  RES      0                                                             
         B        SYM2X8P           TAKE ERROR EXIT                             
         TITLE    '** SYM2 - SYMCUP SUBROUTINE **'                              
************                                                                    
*  SYMCUP  *                                                                    
************                                                                    
*   SUBROUTINE TO DO GENERAL CLEANUP FOR A SYMBIONT DEVICE.                     
*                                                                               
*   AT ENTRY:     R1   DCT INDEX                                                
*                 R2   ADDRESS OF SYMBIONT MESSAGE TO OUTPUT                    
*                      0 IF NO MESSAGE IS TO BE OUTPUT                          
*                 R5   LINK                                                     
*                 R8,R10 ERROR RETURN REGISTERS IF GENERAL ERROR                
*                        MESSAGE IS TO BE OUTPUT.                               
*   ROUTINE ALWAYS RETURNS +1                                                   
*                                                                               
*                                                                               
SYMCUP   RES      0                                                             
         PUSH     R5                SAVE LINK                                   
         PUSH     R2                SAVE MESSAGE ADDR.                          
         LW,R7    DCTSYM2,R1        GET TSPACE POINTER                          
         BEZ      SYMCUP3           NONE                                        
         LW,R7    SYMCNTX,R7        THEN ADDRESS OF CONTEXT BLOCK               
         LW,R14   TSRWDCB,R7        GET DEVICE DCB WORD 0                       
         CW,R14   Y002              IS IT OPEN                                  
         BAZ      SYMCUP2           NO, BRANCH                                  
*   CLOSE THE DEVCIE DCB                                                        
         PUSH     R10                                                           
         LW,R14   TSRWFPT,R7        R14= DCB ADDRESS                            
         AND,R14  M17                                                           
         LI,R9    SYMCUP1           ERROR RETURN FOR CLOSE                      
         CAL1,1   FPTCLOS           CLOSE                                       
SYMCUP1  RES      0                                                             
         PULL     R10                                                           
*   CLEANUP TSPACE                                                              
SYMCUP2  RES      0                                                             
         LI,R0    0                                                             
         LW,R6    TSBBCW,R7         GET BB CONTROL WORD                         
         BAL,R11  RELADBUF          RELEASE THE CONTEXT BLOCK                   
         LW,R7    DCTSYM2,R1        GET THE TEMP SPACE POINTER                  
         STW,R0   DCTSYM2,R1        ZERO TSPACE POINTER                         
         PUSH     R10                                                           
         BAL,R8   RELTEMP           RELEASE THE TSPACE                          
         PULL     R10                                                           
SYMCUP3  RES      0                                                             
*   MAKE THE DEVICE OFF-LINE (SET I=0)                                          
         DISABLE                                                                
         LB,R0    DCTSYM1,R1        GET SYMBIONT FLAGS                          
         AND,R0   X7F               SET I=0                                     
         CI,R0    DCTSYMSM          IS THIS A SYMBIONT DEDICATED DEVICE         
         BANZ     SYMCUP5           YES, LEAVE 'USE'=1                          
         CI,R0    DCTSYMT           IS THE 'T' KEYIN IN EFFECT                  
         BAZ      SYMCUP5           NO, LEAVE 'USE'=1                           
         AND,R0   XFB               YES, SET 'USE'=0                            
SYMCUP5  RES      0                                                             
         STB,R0   DCTSYM1,R1        STORE BACK                                  
         ENABLE                                                                 
*   OUTPUT MESSAGE                                                              
         PULL     R2                RESTORE MESSAGE ADDRESS                     
         CI,R2    0                 IS THERE TO BE A MESSAGE                    
         BE       %+2               NO                                          
         BAL,R5   SMWMSG            YES, TYPE THE MESSAGE                       
*   GIVE THE DEVICE TO MEDIA IF REQUESTED                                       
         DO       #MEDIA                                                        
         BAL,R5   SMMEDIA                                                       
         FIN      #MEDIA                                                        
         B        SYM2X8P           EXIT                                        
         TITLE    '** SYM2 - SMWMSG SUBROUTINE **'                              
************                                                                    
*  SMWMSG  *                                                                    
************                                                                    
*                                                                               
*   SUBROUTINE FORMATS AND OUTPUTS SYMBIONT ERROR MESSAGES TO OC.               
*                                                                               
*   AT ENTRY:     R1    DCT INDEX                                               
*                 R2    ADDRESS OF MESSAGE WHICH IS IN TEXTC FORMAT             
*                 R5    LINK                                                    
*                 R8    ADDRESS OF CAL+1                                        
*                 R10   ERROR CODE, DCB ADDRESS                                 
*                                                                               
*                                                                               
*   ROUTINE ALWAYS RETURNS +1                                                   
*                                                                               
SMWMSG   RES      0                                                             
         LD,R12   DCT16,R1          GET DEVICE NAME                             
         STW,R13  1,R2              STORE LAST FOUR CHARACTERS OF DEVICE NAME   
         LW,R13   XFF                                                           
         STS,R12  0,R2              STORE 1ST  CHAR OF DEVICE NAME              
         CI,R2    SMSG3             IS IT THE GENERAL ERROR MSG                 
         BNE      SMWMSG1           NO, BRANCH                                  
         LB,R13   R10               YES, GET ERROR CODE IN R13                  
         BAL,R8   SMHEXBCD          CONVERT TO EBCDIC                           
         LW,R12   R13               R12= ERROR CODE IN EBCDIC                   
         SLS,R12  8                                                             
         LW,R13   XFFFF00                                                       
         STS,R12  3,R2                                                          
SMWMSG1  RES      0                                                             
         PUSH     10,R1             SAVE REGISTERS                              
         BAL,R5   JOBMSG            OUTPUT MESSAGE                              
         PULL     10,R1                                                         
         B        SYM2X8            EXIT 0,R5                                   
         TITLE    '** SYM2 - SMGETF SUBROUTINE **'                              
*************                                                                   
*   SMGETF  *                                                                   
*************                                                                   
*                                                                               
*   GET THE NEXT 'IS' AREA FILE FOR THE INPUT COOPERATIVE; OR                   
*   THE NEXT 'OS' AREA FILE FOR THE OUTPUT SYMBIONT.                            
*                                                                               
*   A FILE IS SELECTED ACCORDING TO THE FOLLOWING PRIORITY SCHEME:              
*        1.   CONTINUATION FILE (IF CONTINUATION FILE REQUESTED)                
*        2.   HIGHEST PRIORITY; IF MORE THAN ONE, THE OLDEST.  NORMAL           
*             PRIORITY RANGE IS 1 TO 7.  0 MEANS HOLD, F MEANS                  
*             RUN NEXT AT ALL COST.                                             
*                                                                               
*   ENTRY REGISTERS:                                                            
*                 R6   AREA INDEX                                               
*                 R8   LINK                                                     
*                 R12,R13  CURRENT FILE NAME IF A CONTINUATION FILE             
*                          IS WANTED. THE NEXT FILE IN SEQUENCE WILL            
*                          WILL BE SELECTED.                                    
*                 R12,R13  ZERO IF THE NEXT NON-CONTINUED FILE                  
*                         IS WANTED.                                            
*                                                                               
*   ROUTINE EXITS:                                                              
*        +1   ERROR, R15= ERROR                                                 
*        +2   NO FILE                                                           
*        +3   R12,R13 CONTAIN NEXT FILE TO READ                                 
*                                                                               
*   REGISTERS R0 - R7 ARE PRESERVED; R9 - R15 ARE LOST.                         
*                                                                               
*                                                                               
SMGETF   RES      0         GET NEXT FILE                                       
         PUSH     9,R0              SAVE CALLING REGISTERS                      
         MTW,0    R13               IS AN EXTENSION FILE WANTED                 
         BEZ      SMGETF1           NO, BRANCH                                  
         LD,R10   R12               SAVE FILENAME                               
         LI,R4    3                 # OF CHARACTERS TO CONVERT                  
         BAL,R8   SMBCDHEX          CONVERT EXTENSION # TO BINARY               
         AI,R14   1                 INCREMENT EXTENSION #                       
         LI,R12   0                                                             
         LW,R13   R14               CONVERT NUMBER TO EBCDIC                    
         BAL,R8   SMHEXBCD                                                      
         LW,R4    R13                                                           
         LD,R12   R10               RESTORE INPUT FILE NAME                     
         LW,R5    M24                                                           
         STS,R4   R13               STORE EXTENSION # IN R13                    
*                                                                               
SMGETF1  RES      0         GET A BUFFER: SET UP INITIAL CONDITIONS             
         LI,R1    -1                PSEUDO FPT CODE FOR FINDBB                  
         BAL,R5   FINDBB            GET A BLOCKING BUFFER                       
         B        SMGETF17          ERROR, CANT GET ONE                         
*                                                                               
*                          SET INITIAL PRIORITY, JOB AND FILENAME               
         LI,R0    0                 PRIORITY FOR COMPARE                        
         LI,R1    X'FFF'            JOB NUMBER FOR COMPARE                      
         LD,R2    ZEROS             FILE NAME                                   
         LW,R10   R15               COPY BBCW ADDRESS                           
         LI,R14   0                 START SEARCH IN 1ST DIRE SECTOR             
*                                                                               
SMGETF3  RES      0         READ NEXT DIRECTORY SECTOR                          
         LI,R15   -1                SET NO REENTRANCE CHECKING                  
         BAL,R8   READDIR           READ A SECTOR                               
         B        SMGETF19            ERROR OF SOME SORT; TEST WHAT             
*                                                                               
         LI,R4    X'1FFFF'          GET START ADDRESS OF DIRE BUFFER            
         AND,R4   *R10                                                          
         LI,R11   X'1FFFF'          GET LENGTH OF INFO IN THE DIRE              
         AND,R11  DIREINFO,R4                                                   
         AW,R11   R4                POINT AT LAST+1 WORD IN BUFFER              
         AI,R4    DIRELHDR          POINT AT 1ST WORD OF INFO                   
*                                                                               
*   SEARCH THE DIRECTORY FOR THE NEXT FILE TO READ                              
SMGETF5  RES      0                                                             
         CW,R4    R11               AT END OF INFO IN THIS DIRE ?               
         BGE      SMGETF10            YES, TEST IF ANOTHER DIRE SECTOR          
*                                                                               
         LW,R8    DIRENAM1,R4       GET 1ST WORD OF FILE ENTRY                  
         BEZ      SMGETF9           B IF UNUSED                                 
         LW,R9    DIRENAM2,R4       GET 2ND WORD OF FILE ENTRY                  
         CD,R8    R12               IS THIS THE FILE WE'RE AFTER                
         BE       SMGETF13          YES, DONE                                   
         AND,R9   M24               R9 = EXTENSION NUMBER                       
         CW,R9    XF0F0F0           IS IT AN EXTENSION FILE                     
         BNE      SMGETF9           YES, CAN'T USE IT                           
         LW,R9    DIRENAM2,R4       GET 2ND HALF OF FILE NAME                   
         PUSH     5,R9              SAVE BOTH FILENAMES (AND R10&R11)           
         AND,R9   YFF               GET RID OF EXTENSION #                      
         AND,R13  YFF                                                           
         CD,R8    R12               SAME JOB                                    
         BNE      SMGETF6           NO, MAY USE THIS ONE                        
         PULL     5,R9                                                          
         B        SMGETF9           YES, IGNORE THIS ENTRY                      
SMGETF6  RES      0                                                             
         PULL     5,R9              RECOVER FILENAMES                           
*   MAKE SURE THE FILE HAS NOT ALREADY BEEN SELECTED BY ANOTHER                 
*    DEVICE.                                                                    
         LH,R7    DCT1              R7= # OF DCT ENTRIES                        
         SCD,R8   8                 JOB # IN BITS 8-31                          
SMGETF6A RES      0                                                             
         LW,R5    DCTSYM2,R7        GET TSPACE POINTER FOR THE DEVICE           
         BEZ      SMGETF6B          DOESN'T EXIST, BRANCH                       
         LW,R5    SYMCNTX,R5        THEN GET ADDRESS OF CONTEXT BLOCK           
         CW,R8    TSJOBN,R5         HAS ANOTHER DEVICE ALREADY                  
*                                     SELECTED THIS FILE.                       
         BNE      SMGETF6B          NO, BRANCH                                  
         B        SMGETF9           TRY ANOTHER FILE                            
SMGETF6B RES      0                                                             
         BDR,R7   SMGETF6A          TRY NEXT                                    
         SCD,R8   -8                FIX R10, R9                                 
*   GET NAME AND PRIORITY OF THIS FILE IN CASE THE                              
*   EXTENSION FILE WE WANT DOES NOT EXIST.                                      
         LI,R7    DIRPRI            HW OFFSET INTO DIRECTORY FOR PRIORITY       
         LH,R7    *R4,R7                                                        
         SLS,R7   -4                RIGHT JUSTIFY IT IN WORD                    
         AND,R7   M4                R7= PRIORITY                                
         BEZ      SMGETF9           B IF THIS IS THE HOLD PRIORITY (0)          
         CW,R7    R0                COMPARE TO PREVIOUS HIGH PRIORITY           
         BL       SMGETF9           DON'T USE THIS ONE                          
*   CONVERT JOB# FOR THIS ENTRY TO BINARY                                       
         PUSH     13,R8             SAVE BOTH FILE NAMES, PRIO, ETC.            
         SLD,R8   8                                                             
         LW,R13   R8                EBCDIC NUMBER TO CONVERT                    
         LI,R4    3                 R4= # OF CHARACTERS TO CONVERT              
         BAL,R8   SMBCDHEX                                                      
         LW,R5    R14               SAVE JOB# IN BINARY OVER PULL               
         PULL     13,R8             RECOVER FILENAMES, PRIO, ETC.               
         CW,R7    R0                                                            
         BG       SMGETF7                                                       
*   PRIORITIES ARE EQUAL; USE OLDEST FILE                                       
         CW,R5    R1                COMPARE JOB # TO PREVIOUS ONE               
         BG       SMGETF9           THIS ONE IS NEWER, USE PREVIOUS ONE         
*   REPLACE PREVIOUS FILE WITH THIS ONE                                         
SMGETF7  RES      0                                                             
         LW,R0    R7                R0= PRIORITY OF THIS ENTRY                  
         LD,R2    R8                R2,R3= NAME OF THIS ENTRY                   
         LW,R1    R5                R1= JOB# DERIVED FROM FILE NAME             
*   ADVANCE TO THE NEXT ENTRY                                                   
SMGETF9  RES      0                                                             
         LW,R8    DIRELEN,R4        GET LENGTH OF THIS ENTRY AND                
         AND,R8   M8                STEP POINTER BY IT TO GET TO                
         AW,R4    R8                THE NEXT ENTRY                              
         B        SMGETF5           TEST NEXT ENTRY IF THERE IS ONE             
*                                                                               
*                                                                               
*   HERE THE CURRENT SECTOR HAS BEEN COMPLETELY SEARCHED.  LOAD                 
*   THE NEXT ONE, IF THERE IS ONE, OTHERWISE WE ARE DONE.                       
SMGETF10 RES      0         TEST IF DIRE LINKED; AND GET LINK IF SO             
         LI,R4    X'1FFFF'          POINT AT START OF BUFFER AGAIN              
         AND,R4   *R10                                                          
         MTW,+00  0,R4              IS THIS SECTOR LINKED TO ANOTHER ?          
         BGEZ     SMGETF11            NO, NO MORE TO SEARCH: DONE               
*                                                                               
         LW,R14   DIRENEXT,R4       YES, GET ADDRESS OF NEXT DIRE SECTOR        
         B        SMGETF3           AND GO PROCESS IT                           
*                                                                               
SMGETF11 RES      0         END OF SEARCH: TEST WHAT WAS FOUND                  
         PULL     R8                                                            
         LD,R12   R2                DID WE FIND A FILE                          
         BNEZ     SMGETF14            YES, RETURN NEW FILENAME                  
         AI,R8    1                 NO, RETURN 'NO FILE FOUND'                  
         B        SMGETF15          EXIT                                        
*                                                                               
SMGETF13 RES      0         EXTENSION FILE FOUND: RETURN IT                     
         PULL     R8                RESTORE LINK                                
*                                                                               
SMGETF14 RES      0          RETURN 'FILE FOUND'                                
         AI,R8    2                                                             
*                                                                               
SMGETF15 RES      0         CLEAN UP DIRECTORY SECTOR AND EXIT                  
         LW,R6    R10               SET BBCW LOC AND                            
         BAL,R11  RELADBUF          RELEASE THE BLOCKING BUFFER                 
SMGETF16 RES      0         EXIT TO APPROPRIATE RETURN; LINK, LINK+1,..         
         PULL     8,R0              RECOVER REMAINING REGISTERS                 
SMGETFX  B        *R8               AND EXIT                                    
*                                                                               
*   ERROR EXITS                                                                 
*                                                                               
SMGETF17 RES      0         UNABLE TO GET A BLOCKING BUFFER                     
         PULL     R8                                                            
         LI,R15   K55                                                           
         B        SMGETF16          TAKE ERROR EXIT (+1)                        
*                                                                               
SMGETF19 RES      0         ERROR READING DIRECTORY SECTOR                      
         LW,R15   R9                MOVE ERROR TYC TO RETURN REGISTER           
         PULL     R8                                                            
         B        SMGETF15          TAKE ERROR EXIT                             
         TITLE    '** SYM2 - SMGETQF SUBROUTINE **'                             
***************                                                                 
*   SMGETQF   *                                                                 
***************                                                                 
*                                                                               
*   ROUTINE LOOKS FOR A FILE ASSOCIATED WITH A DEVICE WHICH                     
*   HAS THE SYYNDD,Q KEY-IN IN EFFECT.  IF ONE IS FOUND                         
*   THE FILE IS SWITCHED TO THE CALLER'S CONTEXT                                
*   AND THE Q-DEVICE IS CLEANED UP.                                             
*                                                                               
*   AT ENTRY:     R1   DCT INDEX                                                
*                 R5   LINK                                                     
*                 R7   CONTEXT POINTER                                          
*                                                                               
*   ROUTINE RETURNS  +1 IF ERROR, R8, R10 SET FOR STD ERROR RET                 
*                    +2 IF Q-DEVICE FILE WAS FOUND, R12,R13= FILE NAME          
*                    +3 IF NO Q-DEVICE FILE WAS FOUND                           
*                                                                               
*                                                                               
SMGETQF  RES      0                                                             
         PUSH     7,R1              SAVE R1-R7                                  
         LH,R6    DCT1              GET # OF DCT ENTRIES                        
SMGQF10  RES      0                                                             
         LB,R0    DCTSYM1,R6        GET FLAGS                                   
         CI,R0    DCTSYMQ           IS Q KEYIN IN EFFECT                        
         BAZ      SMGQF20           NO, TRY NEXT                                
         LB,R0    DCT3,R6           GET DEVICE FLAGS                            
         CI,R0    X'80'             IS THIS AN OUTPUT DEVICE                    
         BAZ      SMGQF20           NO                                          
         LW,R5    DCTSYM2,R6        YES, GET CONTEXT                            
         BEZ      SMGQF20           B IF NONE                                   
         LW,R5    SYMCNTX,R5        GET ADDR OF CONTEXT BLOCK                   
         LW,R0    TSRWFDCB+5,R5     R0,R1 = FILE CURRENTLY                      
         LW,R1    TSRWFDCB+6,R5     ATTACHED TO "Q ED" DEVICE                   
*   CHECK TO SEE IF FILE CURRENLY OPEN BY BACKGROUND                            
*   IF SO, ONE CANNOT SWITCH Q DEVICES YET                                      
         LH,R2    RFT#              GET # OF RFT ENTRIES                        
SMGQF13  RES      0                                                             
         CD,R0    RFT1,R2           COMPARE FILENAME                            
         BNE      SMGQF15           NO, TRY NEXT FILE                           
         MTB,0    RFT15,R2          YES, TEST IF OPEN BY BACKGD.                
         BEZ      SMGQF17           B IF NOT                                    
         B        SMGQF20           FILE OPEN IN BKGD,TRY NEXT Q DEVICE         
SMGQF15  BDR,R2   SMGQF13           TRY NEXT FILE                               
*   FILE IS NOT OPEN BY BKG, WE CAN SWITCH IT TO NEW DEVICE                     
SMGQF17  RES      0                                                             
         STW,R0   TSRWFDCB+5,R7     SWITCH FILE TO NEW DEVICE                   
         STW,R1   TSRWFDCB+6,R7     (I.E., FNAME TO CALLERS DCB)                
*   OPEN CALLER'S DCB BEFORE CLOSING OTHER DCB SO WE DON'T                      
*   LOSE FILE POSITION.                                                         
         LW,R14   TSRWFFPT,R7       R14= ADDRESS OF FILE DCB                    
         LI,R9    SMGQF40           ERROR RETURN FOR OPEN                       
         CAL1,1   FPTOPEN           OPEN THE DCB                                
         BAL,R5   SMPRECB           "BACKSPACE" CURRENT FILE 1 RECORD           
*   CLEANUP THE Q-DEVICE                                                        
         LW,R1    R6                R1= INDEX OF DEVICE TO CLEANUP              
         BAL,R5   SMCLOSF           CLOSE THE FILE DCB                          
         B        SMGQF40           ERROR, R8,R10 SET AS USUAL                  
         BAL,R5   SMWEOF            WRITE EOF'S IF MAG TAPE                     
         NOP                        IGNORE ERRORS                               
         LI,R2    0                 NO MESSAGE                                  
         BAL,R5   SYMCUP            CLEANUP THE DEVICE CONTEXT                  
         PULL     7,R1                                                          
         LW,R12   TSRWFDCB+5,R7     GET FILE NAME FOR CALLER                    
         LW,R13   TSRWFDCB+6,R7                                                 
         AI,R5    1                 INCR FOR +2 RETURN                          
         B        SYM2X8            EXIT +2 (FILE FOUND)                        
*                                                                               
SMGQF20  RES      0                                                             
         BDR,R6   SMGQF10           TRY NEXT DEVICE                             
         PULL     7,R1              DONE, NO Q-DEVICE                           
         AI,R5    2                 INCR FOR +3 RETURN                          
         B        SYM2X8            TAKE 'NO FILE' EXIT                         
*                                                                               
*   ERROR PROCESSING                                                            
*                                                                               
SMGQF40  RES      0                                                             
         BAL,R0   SYMCRSH           CRASH FOR NOW                               
         TITLE    '** SYM2 - SMPRECB SUBROUTINE **'                             
*************                                                                   
*  SMPRECB  *                                                                   
*************                                                                   
*                                                                               
*   SUBROUTINE TO POSITION THE CURRENT SYMBIONT FILE                            
*   BACK ONE RECORD AND FIX THE BUFFERS SO THAT THE NEXT                        
*   FILE RECORD WILL BE THE ONE WE JUST READ.  THE BUFFER                       
*   SWITCH IS NECESSARY BECAUSE OF THE READ AHEAD THAT IS                       
*   DONE FOR SYMBIONT FILES.                                                    
*                                                                               
*   AT ENTRY:     R5    LINK                                                    
*                 R7    CONTEXT POINTER                                         
*                                                                               
*   REGISTERS CLOBBERED:  R5,R9,R13,R14 (R8, R10 IF ERROR IN PREC)              
*                                                                               
*   ROUTINE ALWAYS RETURNS +1 (ERRORS IN PREC CAL IGNORED)                      
*                                                                               
*                                                                               
SMPRECB  RES      0                                                             
         LI,R13   TSWRITEP          DETERMINE BUFFER LAST USED                  
         AW,R13   R7                                                            
         CW,R13   TSCURBUF,R7       IS PRIMARY THE CURRENT BUFFER               
         BNE      %+3               NO, SET TO PRIMARY                          
         LI,R13   TSWRITEA          YES, CHANGE TO ALTERNATE                    
         AW,R13   R7                                                            
         STW,R13  TSCURBUF,R7       SET BUFFER TO THE ONE ITS NOT               
*   POSTITION BACK ONE RECORD                                                   
         LW,R14   TSRWFFPT,R7       R14=DCB ADDRESS                             
         LI,R9    %+2               IGNORE ERRORS                               
         CAL1,1   FPTPRECB          PREC FILE,BACK,1                            
         B        SYM2X8            EXIT 0,R5                                   
         OLAYEND                                                                
         FIN      #SYMB                                                         
         END                                                                    
