          IDENT  DSADCAL
          SST
          SYSCOM B1
          LIST   F
          TITLE  DSA$DEADSTART OS INTERFACE (DSADCAL)
          SPACE 4,10
**        ENTRY POINTS.
*
          ENTRY  DISPLAY
          ENTRY  KDISPB
          ENTRY  KTITLE
          ENTRY  GETMAB
          ENTRY  JCRGET
          ENTRY  JCRSET
          ENTRY  GTDTTM
          ENTRY  UPKDIS
          ENTRY  ENDPRGR
          ENTRY  KINPB
          ENTRY  GETTIME
          SPACE  4,10
**        EXTERNAL DEFINITIONS.
*


          EXT    ZSMRENT
          EXT    ZSMRRET
          EXT    JCR
          EXT    EXITCD
          EXT    CONFIGU
          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
 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
*         GETMAB - GET MACHINE ATTRIBUTE BLOCK.
*
*         ENTRY  - FROM CYBIL PROCEDURE.
*                  PARM0 = ENTRY BLOCK.
*
*         EXIT   - ZSMRRET ROUTINE IS USED TO RESTORE CYBIL ENV.
 GETMAB   BSS    0
          RJ     ZSMRENT     SAVE ISWL ENVIRONMENT
          SX6    B1
          LX6    40D
          SA6    X1          LENGTH 20B
          CESAB  X1,1
          JP     ZSMRRET

 NOSSYS   IF     -DEF,RA.ORG
 OPL      XTEXT  COMCCVL
 NOSSYS   ENDIF

          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
          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
 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
 UPKDIS   SPACE  3,15
*         UPKDIS - UPDATE K DISPLAY IN NOS TRAP HANDLER.
*
*         ENTRY  FROM CYBIL PROCEDURE.
*
*         EXIT   TO OKEXIT  TO RESTORE ENVIRONMENT.
*
 UPKDIS   BSS    0
          RJ     ZSMRENT     SAVE ENVIRONMENT
          SA3    KDISPBC     CLEAR THE ALTERNATE SPACING BIT
          MX4    1
          LX4    47-59
          BX6    -X4*X3
          SA6    A3
          BX2    X1
          SX1    KINPB
          RT     X1,X2,CVSKDIS K-DISPLAY REQUEST TO OSANTH
          JP     OKEXIT      RETURN
 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
