ASMB,R,Q,C * * NAME: ON.. * SOURCE: 92071-18103 * RELOC: 92071-1X103 * PGMR: C.H.W.,H.L.C.,D.J.N. * * **************************************************************** * * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1980. 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 92071-1X103 REV.2041 800808 * * * * ACTION SUBROUTINE TO EXECUTE THE "ON" OPERATOR COMMAND * * COMMAND SYNTAX: * ON,NAME(,PASSED PARAMETERS) * * ENT ON.. * EXT $LIBR,$LIBX,$CON,$WORK,$NAMX EXT $TADD,$TMSC,$TIME,$ALCS,$RQP8,$RQ.9 EXT $XQT,$SUSP,ECH,$TMP1,$SBLN EXT $LIST,$PVCN,$XEQ,C.BUF EXT .XSA,.XSB,.XLA,.XLB,$SJS0,$SJS1,$SJP * * 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 $SJS1 GET ID SEG ADDR DEF $NAMX 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 JSB .XLA DEF 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 JSB .XSA STRING ADDR DEF $RQP8 LDA ECH RAL STRING BYTE LEN JSB .XSA DEF $RQ.9 JSB .XLB DEF $WORK JSB $SJS0 DEF $ALCS SZB JMP SUSP NOT ENOUGH SAM LDB PRMPT JSB .XSB B POINTS TO PRAMS DEF TEMP0,I LDB TMPAD LDA N5 SET TO MOVE STA TEMP0 5 PARAMETERS NPRM ADB .4 LDA 1,I GET PASSED PARAMETER JSB .XSA MOVE INTO ID SEG DEF PRMPT,I ISZ PRMPT ISZ TEMP0 MORE? JMP NPRM YES * JSB .XLA DEF $CON JSB .XLA DEF 0,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 JSB .XLA DEF TEMP2,I AND HIGH8 IOR 1 JSB .XSA DEF TEMP2,I ISZ TEMP1 LDB TEMP1 JSB .XLA CHECK TIME FOR NEG ZERO DEF 1,I INB JSB .XLB DEF 1,I XOR RS1 CPB RS2 SZA JMP ZCHK NOW JSB .XLA TIME=0, USE CURRENT DEF $TIME JSB .XLB DEF $TIME+1 JSB .XSA DEF TEMP1,I LDA TEMP1 INA JSB .XSB DEF 0,I JSB .XLB DEF $WORK JSB $SJS0 ADD TO TIME LIST DEF $TADD JSB .XLB DEF $WORK JSB $SJS0 TIME SCHEDULE NOW DEF $TMSC EXIT JSB $LIBX DEF RTN * ZCHK SZB,RSS JMP NOW POSITIVE ZERO JSB .XLB NON-ZERO START TIME DEF $WORK JSB $SJS0 ADD TO TIME LIST DEF $TADD 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 JSB .XLB SUSPEND FOR RETRY DEF $SUSP JSB .XSA DEF 1,I JSB .XLA DEF $SBLN JSB .XLB SAVE AMOUNT OF SAM NEEDED DEF $TMP1 JSB .XSA DEF 1,I JSB .XLB DEF $XQT JSB $SJS1 SUSPEND CALLER DEF $LIST OCT 61 FOR MEMORY CLA JSB .XSA CLEAR PRIV COUNT DEF $PVCN JSB $SJP DEF $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 TEMP1 NOP TEMP2 NOP TEMP3 NOP ERRTN NOP PRMPT NOP RTN NOP * END