COMPTMA 
COMMON
          CTEXT  COMPTMA - TWO-PORT MULTIPLEXER ACCESS. 
          SPACE  4,10 
QUAL$     IF     -DEF,QUAL$ 
          QUAL   COMPTMA
QUAL$     ENDIF 
          BASE   M
*         COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 TMA      SPACE  4,10 
***       COMPTMA - TWO-PORT MULTIPLEXER ACCESS.
* 
*         B. R. HANSON
*         G. A. KERSTEN      83/08/19.
          SPACE  4,10 
***              *COMPTMA* DEFINES ROUTINES TO TALK WITH A TERMINAL 
*         ON THE TWO-PORT MULTIPLEXER.  THESE ROUTINES OBSERVE THE
*         PROTOCOL FOR ACCESSING A PORT ON THE MULTIPLEXER AND FOR
*         TALKING WITH THAT PORT.  THIS PROTOCOL PROVIDES FOR SHARING 
*         THE PORT AND THE MULTIPLEXER BETWEEN PP PROGRAMS AND
*         OPERATING SYSTEMS.
* 
*         THE PROTOCOL FOR ACCESSING A TERMINAL ON THE TWO-PORT MUX 
*         IS AS FOLLOWS.
* 
*         THE IOU TEST-MODE REGISTER (A0) CONTAINS SIX BITS RESERVED
*         FOR SOFTWARE USE - BITS 58-63.  THEY ARE DEFINED AS 
*                58 - PORT 1 RE-REQUESTED.
*                59 - PORT 0 RE-REQUESTED.
*                60 - PORT 1 REQUESTED. 
*                61 - PORT 0 REQUESTED. 
*                62 - PORT 1 RESERVED.
*                63 - PORT 0 RESERVED.
* 
*         WHEN A PP PROGRAM WANTS TO USE A PORT ON THE TWO-PORT MUX,
*         IT MUST SET THE *RESERVED* BIT IN THE TEST-MODE REGISTER.  IF 
*         THAT BIT IS ALREADY SET, IT MAY SET THE *REQUESTED* BIT IN
*         THE REGISTER AND WAIT FOR THE OTHER PP TO RELEASE THE PORT
*         BY CLEARING THE *RESERVED* BIT. 
* 
*         WHEN A PP HAS RESERVED A PORT AND THEN RELINQUISHES 
*         THAT RESERVATION, EITHER BY ITS OWN ACTION OR TO HONOR
*         THE REQUEST OF ANOTHER PP, IT SHOULD FOLLOW THE PROTOCAL
*         IN THE PRECEEDING PARAGRAPH EXCEPT IF THE *RESERVED* BIT
*         IS SET IT SHOULD SET THE *RE-REQUESTED* BIT FOR THE 
*         APPROPRIATE PORT. 
* 
*         IT IS EXPECTED THAT THE PP PROGRAM WHICH HAS THE PORT 
*         RESERVED WILL PERIODICALLY MONITOR THE REQUESTED BIT
*         AND TERMINAL INPUT FOR THE CHARACTER SEQUENCE CORRESPONDING 
*         TO THE *F7* KEY ON A CDC 721 TERMINAL.  IF EITHER THE 
*         REQUESTED BIT IS SET, OR *F7* IS PRESSED AT THE TERMINAL, 
*         THEN THE PP PROGRAM SHOULD GIVE UP ACCESS TO THE PORT 
*         TEMPORARILY IN ORDER TO ALLOW THE REQUESTING PP PROGRAM 
*         TO GAIN ACCESS TO THE PORT.  THE MINIMAL DELAY BEFORE 
*         ATTEMPTING TO REGAIN ACCESS TO THE PORT IS 1 SECOND.
* 
*         THE SHARING OF THE TWO-PORT MULTIPLEXER BETWEEN TWO PP-S
*         TALKING TO SEPARATE PORTS ON THE MULTIPLEXER IS THROUGH 
*         THE CHANNEL 15 AND 17 FLAGS.  SINCE THE *SCF* INSTRUCTION 
*         FOR CHANNEL 15 DOES NOT GUARANTEE EXCLUSIVE ACCESS TO THE 
*         CHANNEL, THE CHANNEL FLAG FOR CHANNEL 17 MUST BE USED TO
*         ENSURE THIS CONDITION.  THE SEQUENCE OF ACCESS TO CHANNEL 
*         15 SHOULD BE -
* 
*         ACQUIRE MUX ACCESS
*           SCF 17           INTERLOCK CHANNEL 17 
*           SCF 15           INTERLOCK CHANNEL 15 
*           CCF 17           CLEAR INTERLOCK ON 17
*           SELECT PORT 
* 
*         STATUS PORT 
*         PERFORM I/O OPERATION 
* 
*         RELEASE MUX ACCESS
*           DESELECT PORT 
*           CCF 15           CLEAR INTERLOCK ON 15
* 
*         THIS PROTOCOL IS NOT USED FOR CYBER 170-865/875 MAINFRAMES
*         SINCE THEY DO NOT HAVE A MAINTENANCE CHANNEL OR SUPPORT 
*         THE CHANNEL FLAG INSTRUCTIONS.
* 
*         THE FUNCTIONS PROVIDED BY *COMPTMA* ARE - 
* 
*         PRESET MULTIPLEXER ACCESS.
*           *PMA* - MODIFIES CODE TO DISABLE CHANNEL INTERLOCKING 
*                   AND PORT RESERVATION IF A CYBER 170-865/875 
*                   MAINFRAME.  THE CALLING PP PROGRAM MUST RETURN
*                   JUMP TO *PMA* BEFORE CALLING ANY OTHER MUX ACCESS 
*                   ROUTINES.  EXECUTION OF *PMA* DESTROYS DIRECT 
*                   CELLS CM - CM+4.
* 
*         IF *PMA$* IS DEFINED, REMOTE CODE FOR SUBROUTINE *PMA*
*         WILL BE DEFINED TO INITIALIZE THE MUX ACCESS ROUTINES.
*         A *PMA* LABELED *HERE* INSTRUCTION MUST BE SPECIFIED TO 
*         CAUSE ASSEMBLY OF THE *PMA* SUBROUTINE AT THE APPROPRIATE 
*         PLACE WITHIN THE CALLING PP PROGRAM (PRESET RECOMMENDED). 
*         IF *QUAL$* IS DEFINED IN THE CALLING PROGRAM, THE SAME
*         QUALIFIER MUST BE IN EFFECT FOR *COMPTMA* AND FOR *PMA* 
*         REMOTE CODE.
* 
*         IF *PMA$* IS NOT DEFINED, SUBROUTINE *PMA* WILL BE
*         ASSEMBLED IN-LINE.
* 
*         MULTIPLEXER ACCESS ROUTINES.
*           *AMA* - ACQUIRES MUX ACCESS.
*           *RMA* - RELEASES MUX ACCESS.
* 
*         IF *APA$* IS DEFINED, PORT ACCESS ROUTINES WILL BE
*         ASSEMBLED IN ADDITION TO THE MUX ACCESS ROUTINES. 
*         THE CALLER MUST DEFINE THE FOLLOWING ERROR EXIT ADDRESSES.
* 
*           *MRER* - ERROR PROCESSOR FOR MAINTENANCE REGISTER ACCESS
*                    ERRORS ON PORT RESERVATION OR RELEASE. 
* 
*         PORT ACCESS ROUTINES. 
*           *CAR* - PERIODICALLY CHECKS FOR A REQUEST FOR PORT
*                   USAGE BY ANOTHER PP, RELEASES THE PORT AND
*                   DELAYS. 
*           *CLR* - CLEARS THE REQUESTED OR RE-REQUESTED FLAG 
*                   FOR THE PORT IF ON THE LAST ATTEMPT TO GAIN 
*                   ACCESS TO THE PORT IT WAS NOT GRANTED.
*           *CRR* - CHECKS REQUESTED AND RE-REQUESTED BITS. 
*           *CTM* - CLEARS TERMINAL.
*           *IFN* - ISSUES A CHANNEL FUNCTION TO THE TWO-PORT MUX 
*                   HARDWARE. 
*           *RTD* - RELEASES MULTIPLEXER AND DELAYS.
*           *RTM* - RELEASES TERMINAL (PORT ACCESS) ON THE MUX. 
*           *SPA* - STARTS PORT ACCESS BY CALLING *AMA* TO ACQUIRE
*                   MUX ACCESS AND READING THE PORT STATUS. 
*           *SPN* - SETS PORT NUMBER FOR PORT ACCESS. 
*           *STM* - SELECTS TERMINAL ON THE MUX.  *STM* GAINS ACCESS
*                   TO A SPECIFIC PORT ON THE MULTIPLEXER.
* 
*         ACCESS SECURITY.
* 
*         WHEN *COMPTMA* PORT ACCESS ROUTINES ARE USED TO ACCESS
*         THE TWO PORT MULTIPLEXER, IT IS EXPECTED THAT THE 
*         FOLLOWING PROCEDURAL MECHANISM WILL BE AVAILABLE TO 
*         MAINTAIN ACCESS SECURITY -
* 
*         - OPERATOR COMMANDS ARE REQUIRED TO INITIATE THE UTILITY. 
*         - LOCAL ACCESS TO THE UTILITY THROUGH THE TWO-PORT
*           MULTIPLEXER CAN BE GAINED BY DIRECT CABLING OF THE
*           TERMINAL TO THE MULTIPLEXER.  THE SITE IS EXPECTED
*           TO CONTROL ACCESS TO SUCH TERMINALS.
*         - REMOTE ACCESS SHOULD ONLY BE ENABLED BY THE 
*           OPERATOR AFTER VOICE CONTACT IS MADE WITH THE SUPPORT 
*           PERSON.  AFTER THE SUPPORT PERSON HAS BEEN PROPERLY 
*           IDENTIFIED, THEN THE LINE IS TO BE PHYSICALLY CONNECTED 
*           THROUGH AN ACOUSTIC COUPLER TO THE TWO-PORT MULTIPLEXER.
*           THIS METHOD OF PROVIDING ACCESS SECURITY IS NOT 
*           APPLICABLE IF THE UTILITY IS INITIATED FOR USE ON A 
*           PORT WHICH IS CONFUGURED WITH A DIRECTLY COUPLED MODEM. 
          SPACE  4,10 
****      GLOBAL DATA FOR MULTIPLEXER ACCESS ROUTINES.
  
  
 SFMX     CON    0           PORT SELECT FUNCTION 
****
 AMA      SPACE  4,10 
**        AMA - ACQUIRE MULTIPLEXER ACCESS. 
* 
*         ENTRY  (SFMX) = FUNCTION CODE TO SELECT PORT. 
*                       = 0 IF PORT RESERVATION RELEASED. 
* 
*         EXIT   MULTIPLEXER ACCESS OBTAINED. 
* 
*         CALLS  IFN. 
* 
*         XREF   COMSIOU. 
  
  
 AMA      SUBR               ENTRY/EXIT 
  
 AMA1     LDM    SFMX        FETCH PORT SELECT FUNCTION 
          ZJN    AMAX        IF NO PORT RESERVATION 
 AMAA     SCF    *,MR        GET ACCESS TO MAINTENANCE CHANNEL
*         UJN    AMA2        (CYBER 170-865/875 MAINFRAME)
          SCF    AMA3,MX     GET ACCESS TO TWO-PORT MULTIPLEXER 
          CCF    *,MR 
 AMA2     FAN    MX          SELECT PORT
          AJM    *,MX        IF CHANNEL ACTIVE
          UJN    AMAX        RETURN 
  
 AMA3     CCF    *,MR        CLEAR MAINTENANCE CHANNEL INTERLOCK
          LDN    7           BRIEF DELAY
          SBN    1
          PJN    *-1         IF DELAY NOT COMPLETE
          UJN    AMA1        TRY TO RESERVE PORT AGAIN
 RMA      SPACE  4,10 
**        RMA - RELEASE MULTIPLEXER ACCESS. 
* 
*         ENTRY  TWO-PORT MUX IS RESERVED BY THIS PP. 
* 
*         EXIT   TWO-PORT MUX IS DESELECTED AND CHANNEL IS RELEASED.
* 
*         CALLS  IFN. 
* 
*         XREF   COMSIOU. 
  
  
 RMA      SUBR               ENTRY/EXIT 
 APA$     IF     DEF,APA$ 
          LDC    MXDM        DESELECT MULTIPLEXER 
          RJM    IFN
 APA$     ELSE
          FNC    MXDM,MX     DESELECT MULTIPLEXER 
 APA$     ENDIF 
 RMAA     CCF    *,MX        RELEASE CHANNEL INTERLOCK
*         UJN    RMAX        (CYBER 170-865/875 MAINFRAME)
          UJN    RMAX        RETURN 
          SPACE  4,10 
 APA$     IF     DEF,APA$ 
          SPACE  4,10 
****      GLOBAL DATA FOR PORT ACCESS ROUTINES. 
  
  
 ELIO     CON    IOUC        IOU CONNECT CODE 
 FNTIO    EQU    1500000D/128D  FUNCTION TIME-OUT (*DELAY* CYCLES)
 NCPR     EQU    77          NUMBER OF *CAR* CALLS PER PORT CHECK 
 RBUF     BSSZ   10          MAINTENANCE REGISTER BUFFER
 RPTIO    EQU    2000D/100D  MINIMUM WAIT BEFORE REGAINING PORT 
 SSMX     CON    0           LAST TERMINAL STATUS 
****
 CAR      SPACE  4,10 
**        CAR - CHECK FOR PORT REQUEST AND RELEASE. 
* 
*         EXIT   (A) = 0, IF PORT RELEASED. 
*                      1, IF PORT NOT RELEASED. 
* 
*         CALLS  CRR, RTD.
  
  
 CAR1     LDN    1           PORT NOT RELEASED
  
 CAR      SUBR               ENTRY/EXIT 
          LDM    SFMX 
 CARA     ZJN    CAR1        IF PORT NOT ATTACHED 
*         UJN    CARX        (CYBER 170-865/875 MAINFRAME)
          SOM    CARB 
          NJN    CAR1        IF NOT TIME TO CHECK YET 
          LDK    NCPR        RESET COUNTER
          STM    CARB 
          RJM    CRR         CHECK IF PORT IS REQUESTED 
          LPN    4
          ZJN    CAR1        IF NOT REQUESTED 
          RJM    RTD         RELEASE PORT ACCESS AND DELAY
          UJN    CARX        RETURN 
  
  
 CARB     CON    NCPR        TEST COUNTER 
 CLR      SPACE  4,10 
**        CLR - CLEAR LAST REQUEST. 
* 
*         USES   T1.
* 
*         CALLS  RSB, USB.
* 
*         XREF   COMPMRA, COMPMRM.
  
  
 CLR      SUBR               ENTRY/EXIT 
          LDC    **          GET REQUEST/RE-REQUEST FLAG
 CLRA     EQU    *-1
          ZJN    CLRX        IF REQUEST/RE-REQUEST NOT LEFT SET 
          LPN    77 
          STD    T1 
          LOCKMR SET
          RJM    RSB         READ STATUS BITS 
          LDD    T1 
          SHN    21-5        MASK IS LAST BIT SET 
          RJM    USB         UPDATE STATUS BITS 
          LOCKMR CLEAR
          UJN    CLRX        RETURN 
 CRR      SPACE  4,10 
**        CRR - CHECK REQUESTED AND RE-REQUESTED BIT. 
* 
*         EXIT   (A) = 13/0,1/RE-REQUESTED BIT,1/0,1/REQUESTED BIT,2/0. 
* 
*         CALLS  RSB. 
  
  
 CRR      SUBR               ENTRY/EXIT 
 CRRA     RJM    RSB
*         LDN    0           (CYBER 170-865/875 MAINFRAME)
*         UJN    CRRX        (CYBER 170-865/875 MAINFRAME)
          LPN    24 
          UJN    CRRX        RETURN 
 IFN      SPACE  4,20 
**        IFN - ISSUE FUNCTION. 
* 
*         ISSUE CHANNEL FUNCTION TO FUNCTION TWO-PORT MUX HARDWARE. 
* 
*         ENTRY  (A) = FUNCTION TO BE ISSUED. 
*                PORT SELECTED. 
* 
*         EXIT   FUNCTION ISSUED. 
* 
*         XREF   COMSIOU. 
  
  
 IFN      SUBR               ENTRY/EXIT 
          DCN    MX+40       INSURE CHANNEL DISCONNECT
          FAN    MX          ISSUE FUNCTION CODE
          AJM    *,MX        IF CHANNEL ACTIVE
          UJN    IFNX        RETURN 
 CTM      SPACE  4,10 
**        CTM - CLEAR TERMINAL. 
* 
*         ENTRY  PORT SELECTED. 
* 
*         EXIT   PORT SELECTED. 
* 
*         CALLS  IFN. 
* 
*         XREF   COMSIOU. 
  
  
 CTM      SUBR               ENTRY/EXIT 
          LDC    MXWT 
          RJM    IFN
          ACN    MX 
          LDN    CTMAL
          OAM    CTMA,MX
          DCN    MX+40
          UJN    CTMX        RETURN 
  
  
*         COMMAND SEQUENCE TO INITIALIZE THE TERMINAL.
  
 CTMA     CON    0#0D,0#0D   TERMINATE ANY POSSIBLE FUNCTION
          CON    0#1E,0#33   DISABLE HOST LOADED CODE 
          CON    0#0C        CLEAR SCREEN 
 CTMAL    EQU    *-CTMA      LENGTH OF SEQUENCE 
 RSB      SPACE  4,15 
**        RSB - READ STATUS BITS. 
* 
*         ENTRY  (RSBA) = SET BASED ON PORT BEING USED. 
* 
*         EXIT   (A) = 1/RE-REQUESTED,1/0,1/REQUESTED,1/0,1/RESERVED. 
* 
*         USES   (RBUF - RBUF+7). 
* 
*         XREF   COMPMRA, COMPMRM, COMSIOU. 
* 
*         MACROS READMR.
  
  
 RSB      SUBR               ENTRY/EXIT 
          READMR RBUF,ELIO,ITMR 
          LDM    RBUF+7      FETCH BITS 59-63 
 RSBA     SHN    0           (IF PORT 0 BEING USED) 
*         SHN    -1          (IF PORT 1 BEING USED) 
          LPN    25 
          UJN    RSBX        RETURN 
 RTD      SPACE  4,10 
**        RTD - RELEASE MULTIPLEXER AND DELAY.
* 
*         ENTRY  THIS TERMINAL HAS ACCESS TO THE PORT.
* 
*         EXIT   THE FLAGS IN THE TEST MODE REGISTER RESET. 
*                (A) = 0. 
* 
*         USES   T0, T1.
* 
*         CALLS  CTE, RTM.
* 
*         MACROS DELAY. 
  
  
 RTD      SUBR               ENTRY/EXIT 
          RJM    RTM         RELEASE TERMINAL ON MUX
          LDK    RPTIO       DELAY TO ALLOW ALTERNATE ACCESS
          STD    T1 
          IAN    14          PRESET TIMEOUT CLOCK 
          STM    CTEA 
 RTD1     LDN    100D/4 
          STD    T0 
 RTD2     DELAY 
          RJM    CTE         CHECK TIMEOUT EXPIRED
          PJN    RTD2        IF 100 MILLISECONDS NOT EXPIRED
          SOD    T1 
          NJN    RTD1        IF INITIAL DELAY NOT COMPLETE
          UJN    RTDX        RETURN 
 RTM      SPACE  4,15 
**        RTM - RELEASE TERMINAL ON MULTIPLEXER.
* 
*         ENTRY  THIS TERMINAL HAS ACCESS TO THE PORT.
* 
*         EXIT   THE FLAGS IN THE TEST MODE REGISTER RESET. 
* 
*         USES   SFMX.
* 
*         CALLS  RSB, USB.
* 
*         XREF   COMPMRA, COMPMRM.
* 
*         MACROS EXITMR, LOCKMR.
  
  
 RTM      SUBR               ENTRY/EXIT 
          LDM    SFMX 
          ZJN    RTMX        IF PORT IS NOT ATTACHED
 RTMA     LOCKMR SET,*
*         UJN    RTM1        (CYBER 180-865/875 MAINFRAME)
          RJM    RSB         READ STATUS BITS 
          LDC    5S12+0 
          RJM    USB         CLEAR STATUS BITS
          LOCKMR CLEAR
          EXITMR MRER        RESET EXIT ADDRESS 
 RTM1     LDN    0
          STM    SFMX        CLEAR ACCESS CODE
          UJN    RTMX        RETURN 
 SPA      SPACE  4,10 
**        SPA - START PORT ACCESS.
* 
*         ENTRY  (SFMX) = FUNCTION CODE TO SELECT PORT. 
* 
*         EXIT   MULTIPLEXER ACCESS OBTAINED. 
*                (A) = (SSMX) = PORT STATUS.
* 
*         CALLS  AMA, IFN.
* 
*         XREF   COMSIOU. 
  
  
 SPA      SUBR               ENTRY/EXIT 
          RJM    AMA         ACQUIRE MULTIPLEXER ACCESS 
          LDC    MXSS        FETCH PORT STATUS
          RJM    IFN
          ACN    MX 
          IAN    MX 
          DCN    MX+40
          STM    SSMX        SAVE TERMINAL STATUS 
          UJN    SPAX        RETURN 
 SPN      SPACE  4,15 
**        SPN - SET PORT NUMBER FOR PORT ACCESS.
* 
*         INITIALIZES THE ROUTINES *RSB*, *STM* AND *USB* TO
*         WORK WITH A SPECIFIC PORT.
* 
*         ENTRY  (A) = PORT (TERMINAL). 
* 
*         EXIT   ROUTINES PRESET. 
* 
*         USES   RSBA, STMA, USBA.
* 
*         XREF   COMSPIM. 
  
  
 SPN      SUBR               ENTRY/EXIT 
          ADC    MXPT 
          STM    STMA 
          LMC    SHNI&MXPT   FORM SHIFT INSTRUCTION 
          STM    USBA 
          LMN    77          COMPLEMENT SHIFT COUNT 
          STM    RSBA 
          UJN    SPNX        RETURN 
 STM      SPACE  4,20 
**        STM - SELECT TERMINAL ON MULTIPLEXER. 
* 
*         GAINS ACCESS TO THE CHOSEN PORT ON THE MULTIPLEXER. 
*         IF THE PORT IS BUSY, *STM* WILL RETURN. 
* 
*         ENTRY  (MXPT) = PORT SELECT FUNCTION. 
*                (STMC) = 0, IF PORT HAS NOT BEEN RESERVED ONCE.
*                         2, IF RESERVED ONCE.
*                         NORMALLY THIS PARAMETER IS CONTROLLED BY
*                         *STM* EXCEPT ON A PP RECALL.
* 
*         EXIT   (A) = 0, IF ACCESS FAILED. 
* 
*         CALLS  RSB, SPA, USB. 
* 
*         XREF   COMPMRA, COMPMRM, COMSIOU. 
* 
*         MACROS LOCKMR.
  
  
 STM3     LDC    25S12+1
          RJM    USB         SET PORT RESERVED, PORT NOT REQUESTED
          LOCKMR CLEAR
*         LDN    0
          STM    CLRA        NEITHER REQUESTED NOR RE-REQUEST LEFT SET
          LDN    2           SET REQUESTED ONCE FLAG
          STM    STMC 
 STM4     RJM    SPA         START PORT ACCESS
          LDN    1
  
 STM      SUBR               ENTRY/EXIT 
          LDC    ** 
 STMA     EQU    *-1
          STM    SFMX 
 STMB     LOCKMR SET
*         UJN    STM4        (CYBER 170-865/875 MAINFRAME)
          RJM    RSB         READ STATUS BITS 
          LPN    1           EXTRACT RESERVED STATUS
          ZJN    STM3        IF PORT IS NOT RESERVED
          LDC    0
 STMC     EQU    *-1
          ZJN    STM1        IF PORT WAS NOT ACQUIRED BEFORE
          LDC    20S12+20    SET PORT RE-REQUESTED BIT
          UJN    STM2        SET BIT
  
 STM1     LDC    4S12+4      SET PORT REQUESTED BIT 
 STM2     STM    CLRA        SAVE LAST FLAG SET 
          RJM    USB
          LOCKMR CLEAR
*         LDN    0
          STM    SFMX        CLEAR PORT SELECT FUNCTION 
          UJN    STMX        RETURN 
 USB      SPACE  4,15 
**        USB - UPDATE STATUS BITS. 
* 
*         ENTRY  (A) = 5/MASK,7/0,5/VALUE 
*                (RBUF - RBUF+7) = CURRENT TEST MODE REGISTER CONTENTS. 
* 
*         EXIT   TEST MODE REGISTER REWRITTEN.
* 
*         USES   T1.
* 
*         XREF   COMPMRA, COMPMRM, COMSIOU, COMSPIM.
* 
*         MACROS WRITMR.
  
  
 USB      SUBR               ENTRY/EXIT 
 USBA     SHN    0           (IF PORT 0)
*         SHN    1           (IF PORT 1)
          STD    T1 
          SHN    -14
          ADC    SCNI        FORM MASK
          STM    USBB 
          LDM    RBUF+7 
 USBB     SCN    0
          LMD    T1 
          STM    RBUF+7 
          WRITMR RBUF,ELIO,ITMR 
          UJN    USBX        RETURN 
 APA$     ENDIF 
  
  
 PMA$     IF     DEF,PMA$ 
 PMA      RMT 
 QUAL$    IF     -DEF,QUAL$ 
          QUAL   COMPTMA
 QUAL$    ENDIF 
 PMA$     ENDIF 
          SPACE  4,15 
**        PMA - PRESET MULTIPLEXER ACCESS.
* 
*         EXIT   INSTRUCTIONS INSERTED AS APPROPRIATE TO
*                DISABLE CHANNEL INTERLOCKING AND MUX PORT
*                RESERVATION FOR CYBER 170-865/875 MAINFRAMES.
* 
*         USES   CM - CM+4. 
* 
*         XREF   COMPMAC. 
* 
*         MACROS ISTORE.
  
  
 PMA      SUBR               ENTRY/EXIT 
          LDC    MABL        CHECK MAINFRAME TYPE 
          CRD    CM 
          LDD    CM+1 
          LPC    4100 
          NJN    PMAX        IF NOT CYBER 170-865/875 
          ISTORE AMAA,(UJN AMA2)
          ISTORE RMAA,(UJN RMAX)
 APA$     IF     DEF,APA$ 
          ISTORE CARA,(UJN CARX)
          ISTORE CRRA,(LDN 0) 
          ISTORE CRRA+1,(UJN CRRX)
          ISTORE RTMA,(UJN RTM1)
          ISTORE STMB,(UJN STM4)
 APA$     ENDIF 
          UJP    PMAX        RETURN 
  
  
 PMA$     IF     DEF,PMA$ 
 QUAL$    IF     -DEF,QUAL$ 
          QUAL   *
 PMA      EQU    /COMPTMA/PMA 
 QUAL$    ENDIF 
 PMA      RMT 
 PMA$     ENDIF 
          SPACE  4,10 
          BASE   *
 QUAL$    IF     -DEF,QUAL$ 
          QUAL   *
 APA$     IF     DEF,APA$ 
 IFN      EQU    /COMPTMA/IFN 
 RTM      EQU    /COMPTMA/RTM 
 SSMX     EQU    /COMPTMA/SSMX
 SPA      EQU    /COMPTMA/SPA 
 STM      EQU    /COMPTMA/STM 
 APA$     ENDIF 
 AMA      EQU    /COMPTMA/AMA 
 RMA      EQU    /COMPTMA/RMA 
 SFMX     EQU    /COMPTMA/SFMX
 PMA$     IF     -DEF,PMA$
 PMA      EQU    /COMPTMA/PMA 
 PMA$     ENDIF 
 QUAL$    ENDIF 
          ENDX
