ASMB,R
* 
*     NAME:   ON..
*     SOURCE: 92070-18103 
*     RELOC:  92070-1X103 
*     PGMR:   C.H.W.,H.L.C. 
* 
*  **************************************************************** 
*  * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1979.  ALL RIGHTS      * 
*  * RESERVED.  NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED,       * 
*  * REPRODUCED OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITHOUT * 
*  * THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY.        * 
*  **************************************************************** 
* 
* 
      NAM ON..,7  92070-1X103  REV.1941  791004 
* 
* 
* 
*  ACTION SUBROUTINE TO EXECUTE THE "ON" OPERATOR COMMAND 
* 
*    COMMAND SYNTAX:
*        ON,NAME(,PASSED PARAMETERS)
* 
* 
      ENT ON..
* 
      EXT $LIBR,$LIBX,$CON,$WORK,$NAME
      EXT $TADD,$TMSC,$TIME,$ALCS,$RQP8,$RQP9 
      EXT $XQT,$SUSP,ECH,$TMP1,$SBLN
      EXT $LIST,$PVCN,$XEQ,C.BUF
* 
* 
ON..  NOP 
RETRY LDA ON..
      ADA .2        2ND PARAMETER IS THE PARSE BUFFER ADDR
      LDB 0,I       GET IT
      INB           POINT TO PARAMETERS 
      STB TMPAD 
      INA 
      LDA 0,I 
      STA ERRTN     SAVE ADDR OF ERROR PARAM
      LDA ON..,I
      STA RTN       SAVE RETURN ADDR
* 
      JSB $LIBR     GO PRIVILEGED 
      NOP 
      JSB $NAME     GET ID SEG ADDR 
TMPAD NOP 
      SZB,RSS       NAME FOUND? 
      JMP ER14       NO, ERROR
      SZA           DORMANT?
      JMP ER18       NO, ERROR
      ADB .10       ID SEG WORD 11
      STB TEMP0     SAVE ADDR OF B REG SAVE 
      ADB .7        ID SEG WORD 18
      STB TEMP1 
      ADB .11       ID SEG WORD 29
      STB TEMP2 
      LDA TEMP1,I 
      AND B160K     ISOLATE RESOLUTION CODE 
      SZA,RSS       SPECIFIED?
      JMP ER36       NO, ERROR
      ADB N27       POINT TO ID SEG WORD 2
      STB PRMPT 
      STB TEMP3 
      LDA DC.BF 
      STA $RQP8     STRING ADDR 
      LDA ECH 
      RAL           STRING BYTE LEN 
      STA $RQP9 
      LDB $WORK 
      JSB $ALCS 
      SZB 
      JMP SUSP      NOT ENOUGH SAM
      LDB PRMPT 
      STB TEMP0,I   B POINTS TO PRAMS 
      LDB TMPAD 
      LDA N5        SET TO MOVE 
      STA TEMP0      5 PARAMETERS 
NPRM  ADB .4
      LDA 1,I       GET PARSED PARAMETER
      STA PRMPT,I   MOVE INTO ID SEG
      ISZ PRMPT 
      ISZ TEMP0     MORE? 
      JMP NPRM       YES
* 
      LDA $CON,I
      AND B77       LOG LU OF FMGR
      LDB TMPAD 
      ADB .3
      LDB 1,I       ANY PRAMS?
      SZB,RSS 
      STA TEMP3,I    NO, GIVE HIM LOG LU
      LDB 0 
      LDA TEMP2,I 
      AND HIGH8 
      IOR 1 
      STA TEMP2,I 
      ISZ TEMP1 
      DLD *         CHECK TIME FOR NEG ZERO 
TEMP1 EQU *-1 
      XOR RS1 
      CPB RS2 
      SZA 
      JMP ZCHK
NOW   DLD $TIME     TIME=0, USE CURRENT 
      DST TEMP1,I 
      LDB $WORK 
      JSB $TADD     ADD TO TIME LIST
      LDB $WORK 
      JSB $TMSC     TIME SCHEDULE NOW 
EXIT  JSB $LIBX 
      DEF RTN 
* 
ZCHK  SZB,RSS 
      JMP NOW       POSITIVE ZERO 
      LDB $WORK     NON-ZERO START TIME 
      JSB $TADD     ADD TO TIME LIST
      JMP EXIT
* 
* 
ER14  LDA .14       REQUIRED ID SEG NOT FOUND 
      JMP EREX
* 
ER18  LDA .18       PROGRAM NOT DORMANT 
      JMP EREX
* 
ER36  LDA .36       NO TIME PARAMETERS SPECIFIED
* 
EREX  STA ERRTN,I   STORE ERROR CODE
      JMP EXIT
* 
* 
SUSP  LDA DRTRY 
      STA $SUSP,I   SUSPEND FOR RETRY 
      LDA $SBLN 
      STA $TMP1,I   SAVE AMOUNT OF SAM NEEDED 
      LDB $XQT
      JSB $LIST     SUSPEND CALLER
      OCT 61         FOR MEMORY 
      CLA 
      STA $PVCN     CLEAR PRIV COUNT
      JMP $XEQ
* 
* 
.2    DEC 2 
.3    DEC 3 
.4    DEC 4 
.7    DEC 7 
.10   DEC 10
.11   DEC 11
.14   DEC 14
.18   DEC 18
.36   DEC 36
N5    DEC -5
N27   DEC -27 
B77   OCT 77
HIGH8 OCT 177400
B160K OCT 160000
* 
RS1   OCT 25000 
RS2   OCT 177574
* 
DRTRY DEF RETRY 
DC.BF DEF C.BUF 
* 
TEMP0 NOP 
TEMP2 NOP 
TEMP3 NOP 
ERRTN NOP 
PRMPT NOP 
RTN   NOP 
* 
      END 
                        