          IDENT  DSADCAL
          SST
          SYSCOM B1
          LIST   F
          TITLE  DSA$DEADSTART OS INTERFACE (DSADCAL)
          SPACE 4,10
**        ENTRY POINTS.
*
          ENTRY  JCR
          ENTRY  EXITCD
          ENTRY  KINPB
          ENTRY  KDISPB
          ENTRY  KTITLE
          ENTRY  DISPLAY
          ENTRY  CALLSDA
          ENTRY  CALLVER
          ENTRY  JCRGET
          ENTRY  JCRSET
          ENTRY  WAKEUP
          ENTRY  GTDTTM
          ENTRY  GETVEST
          ENTRY  DSTCPU
          ENTRY  MINILNK
          ENTRY  SETEIAD
          ENTRY  GETEIAD
          ENTRY  ENDPRGR
          ENTRY  GETTIME
          SPACE  4,10
**        EXTERNAL DEFINITIONS.
*


          EXT    ZSMRENT
          EXT    ZSMRRET
          QUAL   VE
 OPL      XTEXT  COMSDST
          QUAL   *
          EJECT
*         DISPLAY - CALL K DISPLAY.
*
*         REQUEST DSD TO CALL K DISPLAY FOR DSC JOB. K DISPLAY
*         IS USED FOR COMMUNICATING WITH NOS/VE ENVIRONMENT FROM
*         NOS. THE DISPLAY AND INPUT BUFFER ARE UPDATED AND READ
*         RESPECTIVLY BY DSIR ROUTINES CALLED BY DSC.
*
*         ENTRY  - FROM ISWL PROCEDURE, USES ZSMRENT AND ZSMRRET
*                  ROUTINES TO SAVE AND RESTORE THE ISWL ENVIRONMENT.
*
*         EXIT   - K DISPLAY IS REQUESTED AS PER REQUEST DESCRIPTOR
*                  DSCKDSPL.
*
*         NOS/BE USES THE L DISPLAY INSTEAD OF THE K DISPLAY
*
*
*         MSG TEXT DURING DSTRT
*
 DSCKDSPL VFD    24/KINPB,18/0,18/KDISPBC
 NOSSYS1  IF     DEF,RA.ORG
*
*         CALL L DISPLAY FOR NOS/BE
 CALLL    VFD    12/KINPB,48/8RLDISPLAY
 LDISPL   DIS    ,*$ASSIGN L-DISPLAY*
*
*         CONSTANTS FOR NOS/BE L DISPLAY
*
 NLINE    EQU    23          NUMBER OF ACTIVE LINES IN BUFFER
 WCOUNT   EQU    7           WORD COUNT PER LINE
 CHSIZE   EQU    1           CHARACTER SIZE
 XCOORD   EQU    6000B       X-COORDINATE
 YSTART   EQU    7460B       Y-COORDINATE BEFORE FIRST LINE TO DISPLAY
 YDIST    EQU    10B         Y-DISTANCE PER LINE
 NOSSYS1  ENDIF
*
 DISPLAY  BSS    0
          RJ     ZSMRENT     SAVE ISWL ENVIRONMENT
 NOSSYS   IF     -DEF,RA.ORG
          CONSOLE DSCKDSPL
 NOSSYS   ELSE
*
*
*         SETUP CONTROL INFORMATION FOR NOS/BE L-DISPLAY OUTPUT BUFFER
*
          SB2    B0          LINE COUNT
          SB7    B0          WORD COUNT IN BUFFER
          SB3    NLINE       NUMBER OF LINES IN BUFFER
          SX2    WCOUNT      WORD COUNT IN LINE
          SB4    X2          NUMBER OF WORDS PER LINE
          R=     X5,CHSIZE   CHARACTER SIZE
          LX2    54
          LX5    48
          BX4    X2+X5
          MX0    36
          SX5    XCOORD      X-COORDINATE
          LX5    36
          BX4    X4+X5
          SX5    YSTART      Y-COORDINATE BEFORE FIRST LINE TO DISPLAY
          SX3    YDIST
 NBEDISP  IX7    X5-X3       CURRENT Y-COORDINATE
          BX5    X7
          LX7    24
          BX7    X4+X7       CONTROL INFO FOR CURRENT DISPLAY LINE
          SA2    KDISPB+B7   EXCHANGE INFO IN CURRENT LINE
          BX2    -X0*X2
          BX7    X2+X7
          SA7    A2
          SB2    B2+B1       UPDATE COUNTERS
          SB7    B7+B4
          LT     B2,B3,NBEDISP
          BX6    X6-X6
          SA6    KDISPBC
          SA1    CALLL       ACTIVATE L DISPLAY
          BX6    X1
          SA6    RA.CCD
          MESSAGE LDISPL,LOCAL,R
 NOSSYS   ENDIF
          JP     ZSMRRET     RESTORE ISWL ENVIRONMENT AND RETURN
*
*         K DISPLAY INPUT BUFFER.
*
 KINPB    BSS    0
          DATA   60H
          DATA   4C
*
*         DISPLAY BUFFER(S).
*
KDISPBC   VFD    18/140B,18/KTITLE,24/0 CONTROLWORD 64 CHARS/LINE CODED
KDISPB    BSS    0
LINES23   DUP    23
          VFD    24/4R    ,12/6000B,24/4R
          DATA   56C
LINES23   ENDD
          BSSZ   21*7
          CON    0
KTITLE    BSS    0
          DATA   16C
          EJECT
*         CALLSDA - CALL SYSTEM DEADSTART ASSIST.
*
*         ENTRY  - FROM ISWLCC PROCEDURE.
*                  HELPERPP - DSC JOB COMMUNICATION TABLE IS AT PPHELPT.
*
*         EXIT   - ZSMRRET ROUTINE IS USED TO RESTORE ISWLCC ENV.
*
 CALLSDA  BSS    0
          RJ     ZSMRENT     SAVE ISWLCC ENVIRONMENT
          BX5    X1
          SA3    X2          CLEAR COMPLETION BIT
          MX6    -12
          BX6    X6*X3
          SA6    A3
          LX5    6
          SYSTEM SDA,R,A3,X5
          JP     ZSMRRET     RESTORE ISWL ENVIRONMENT AND RETURN

 CSDAP    VFD    12/0,24/0,24/0
          SPACE  3,15
*         CALLVER - MAKE REQUEST TO VER.
*
*         ENTRY  - FROM CYBIL PROCEDURE.
*                  PARAM1 = REQUEST BLOCK.
*                  PARAM2 = REQUEST CODE.
*                  PARAM3 = WAIT FOR COMPLETION FLAG.
*
*         EXIT   - ZSMRRET ROUTINE USED TO RESTORE ENVIRONMENT.
*
CALLVER   BSS    0
          RJ     ZSMRENT     SAVE ISWL ENVIRONMENT
          SX5    3RVER
          LX2    18+6
          BX6    X1+X2
          ZR     X3,CALLVR1
          PX5
CALLVR1   LX5    42D
          BX6    X6+X5
          RJ     =XSYS=
          JP     ZSMRRET
          SPACE  3,15
*         JCRGET - GET JOB CONTROL REGISTERS INTO JCR WORD.
*
*         ENTRY  - FROM ISWLCC PROCEDURE.
*
*         EXIT   - R1,R2,R3 AND ERROR REGISTERS ARE SET INTO JCR.
*
 JCRGET   BSS    0
          RJ     ZSMRENT     SAVE ISWL ENVIRONMENT
          SA1    JCR
          MX6    59D
          BX6    X6*X1
          SA6    A1
          GETJCI JCR
          JP     ZSMRRET     RESTORE ISWL ENVIRONMENT AND RETURN

 JCR      BSSZ   2           RESERVE SPACE FOR THE JCR BLOCK
          SPACE  3,15
*         JCRSET - SET JOB CONTROL REGISTERS FROM JCR WORD.
*
*         ENTRY  - FROM ISLCC PROCEDURE.
*
*         EXIT   - R1,R2,R3 AND ERROR REGISTERS ARE SET FROM JCR.
*
 JCRSET   BSS    0
          RJ     ZSMRENT     SAVE ISWL ENVIRONMENT
          SA1    JCR
          MX6    59D
          BX6    X6*X1
          SA6    A1
          SETJCI JCR
          JP     ZSMRRET     RESTORE ISWL ENVIRONMENT AND RETURN
          SPACE  3,15
*         CYCLE  - PLACE JOB INTO PERIODIC RECALL.
*
*         REQUEST MONITOR TO PLACE JOB INTO PERIODIC
*         RECALL. USED TO CYCLE DSC.
*
*         ENTRY  - FROM ISWLCC PROCEDURE.
*
*         EXIT   - ZSMRRET ROUTINE IS USED TO RESTORE ISWLCC ENV.
*
WAKEUP    BSS    0
          RJ     ZSMRENT     SAVE ISWL ENVIRONMENT
          RECALL
          JP     ZSMRRET     RESTORE ISWL ENVIRONMENT
          SPACE  3,15
*         GTDTTM - GET DATE AND TIME FROM OS.
*
*         ENTRY  FROM CYBIL PROCEDURE.
*                PARAM1 = VARIABLE ADDRESS OF DATE.
*                PARAM2 = VARIABLE ADDRESS OF TIME.
*
*         EXIT   - ZSMRRET ROUTINE USED TO RESTORE ENVIRONMENT.
*
 GTDTTM   BSS    0
          RJ     ZSMRENT
          DATE   X1
          CLOCK  X2
          EQ     ZSMRRET
 OKEXIT   SPACE  3,15
*         OKEXIT - EXIT TO ZSMRRET AFTER SETTING EXITCD.
*
 OKEXIT   SX6    B1          ASSUME OK
          ZR     X0,OKE1     IF NO ERROR
          SX6    B0
 OKE1     SA6    EXITCD
          JP     ZSMRRET     RETURN TO CYBIL

 EXITCD   CON    1           SET EXIT CONDITION
 RT       SPACE  3,15
*         RT - DEFINE THE RT INSTRUCTION.
*
 RTX,X,Q  OPDEF  P1,P2,K
+         VFD    9/017B,3/P1,3/P2,15/K,30/0
          ENDM
 COMSCVS  SPACE  3,15
*copyc COMSCVS
 GETVEST  SPACE  3,15
*         GETVEST- GET THE STATUS OF NVE.
*
*         ENTRY  FROM CYBIL PROCEDURE.
*
*         EXIT   TO OKEXIT  TO RESTORE ENVIRONMENT.
*
 GETVEST  BSS    0
          RJ     ZSMRENT     SAVE ENVIRONMENT
          RT     X6,X0,2002B STATUS NVE
          SA6    X1          SAVE STATUS
          JP     OKEXIT      RETURN
 DSTCPU   SPACE  3,15
*         DSTCPU - DEADSTART CPU.
*
*         ENTRY  FROM CYBIL PROCEDURE.
*                PARAM1 = TYPE OF DEADSTART.
*
*         EXIT   TO OKEXIT  TO RESTORE ENVIRONMENT.
*
 DSTCPU   BSS    0
          RJ     ZSMRENT     SAVE ENVIRONMENT
          NZ     X1,DST1
          RT     X0,X0,CVSSCPU DEADSTART TO DUAL STATE
          JP     OKEXIT

 DST1     RT     X0,X0,CVSRVT  DEADSTART TO STANDALONE
          JP     OKEXIT
          SPACE  3,15
**        MINILNK - PROCESS CALLS TO THE MINILINK.
*
*         ENTRY  FROM CYBIL PROCEDURE.
*                PARAM1 = ADDRESS OF HEADER BLOCK.
*                PARAM2 = ADDRESS OF DATA BLOCK.
*
*         EXIT   CALL TO EI/TRAP HANDLER MADE.

 MINILNK  BSS    0
          RJ     ZSMRENT     SAVE ENVIRONMENT
          RT     X1,X2,CVSCPCM MAKE MINILINK REQUEST
          JP     OKEXIT      RETURN
 SETEIAD  SPACE  3,15
*         SETEIAD - SET EI PVA.
*
*         ENTRY  FROM CYBIL PROCEDURE.
*                PARAM1 = TYPE OF PVA TO SET IN EI.
*                PARAM2 = WORD ADDRESS TO SET IT TOO.
*
*         EXIT   TO OKEXIT  TO RETURN.
*
 SETEIAD  BSS    0
          RJ     ZSMRENT
          RT     X1,X2,CVSCPVA HAVE EI INITIALIZE PVA
          JP     OKEXIT
 GETEIAD  SPACE  3,15
**        GETEIAD - GET EI PVA VALUE.
*
*         ENTRY  FROM CYBIL PROCEDURE.
*                PARM1 = TYPE OF PVA TO GET FROM EI.
*                PARM2 = ADDRESS OF VARIABLE TO STORE.
*
*         EXIT   TO OKEXIT TO RETURN.

 GETEIAD  BSS    0
          RJ     ZSMRENT
          RT     X1,X6,CVSFPVA GET PVA VALUE FROM EI
          SA6    X2          SAVE PVA VALUE
          JP     OKEXIT
          SPACE  4
**        GETTIME - GET SECONDS SINCE DEADSTART
*
*         ENTRY  FROM CYBIL PROCEDURE.
*                PARM1 = ADDRESS TO STORE SECONDS SINCE DEADSTART.
*
*         EXIT   TO OKEXIT TO RETURN.

 GETTIME  BSS    0
          RJ     ZSMRENT     SAVE ENVIRONMENT
          SX4    X1
          RTIME  X4          GET SECONDS SINCE DEADSTART
          SA1    X4
 NOS      IF     -DEF,RA.ORG
          BX6    X1          ISOLATE SECONDS
          AX6    36
 NOS      ELSE
          MX2    -35
          BX6    -X2*X1      ISOLATE SECONDS*4096
          AX6    12
 NOS      ENDIF
          SA6    A1          RETURN SECONDS
          JP     ZSMRRET
          SPACE  3,15
*         ENDPRGR - TERMINATE CURRENT PROGRAM.
*
*         ENTRY - FROM CYBIL PROCEDURE, ITS ENVIRONMENT IS NOT SAVED.
*
*         EXIT  - TO MONITOR.
*
 ENDPRGR  BSS    0
          IF     DEF,RA.ORG,4
 OPL      XTEXT  SSYS
          SFCALL EXIT,R
          MX6    0
          SA6    RA.SSID
          ENDRUN
          IF     DEF,RA.ORG,2
 EXIT     CON    SF.EXIT
          CON    0
          END
