ASMB,R,L,C HED @PTPQ-SLAVE PTOPC MAILBOX SUBR. *(C) HEWLETT-PACKARD CO. 1976* NAM @PTPQ,6 91705-16104 REV A 760106 SPC 1 ****************************************************************** * * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1976. 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. * ****************************************************************** SPC 1 * * @PTPQ * SOURCE: 91705-18104 REV.A * BINARY: 91705-16104 REV.A * JIM HARTSELL * JULY 30, 1974 * MODIFIED BY: CHW (01-06-76) [DERIVED FROM 91705-18004 REV.C] * * PRIVILEDGED SUBROUTINE FOR RTE-C SATELLITE RESIDENT * LIBRARY. @PTPQ SUPPLIES A MAILBOX FOR A PTOPC PARMB * ARRIVING FROM THE CENTRAL STATION. * @PTPQ ALSO PROVIDES A HOLDING BUFFER FOR PARMB'S * TO BE PASSED FROM @INTR TO @RQPR, PLUS VARIOUS * "SYSTEM COMMON" STORAGE. * * CALLING SEQUENCE: (CALLED BY @INTR) * * (A) = ADDR OF PTOPC PARMB (35 WORDS MOVED) * JSB @PTPQ * ERROR RETURN: MAILBOX FLAG ALREADY UP. * NORMAL RETURN * ENT @PTPQ,%MBOX,%MFLG,%RQUE,%CSID,%CSNM ENT %DLER,DLERR ENT %LIST,%TMOT * EXT $LIBR,$LIBX * B EQU 1 * * CHECK MAILBOX FLAG. * @PTPQ NOP JSB $LIBR DISABLE INTERRUPT SYSTEM. NOP (IN CASE @INTR PRIORITY REDUCED) * STA TEMP SAVE PTOPC PARMB ADDR. * LDA %MFLG SZA JMP EXIT FLAG SET: ERROR EXIT. * * PLACE PTOPC PARMB IN MAILBOX. * LDA DFBOX STA TEMP1 LDB MD35 * LOOP LDA TEMP,I STA TEMP1,I ISZ TEMP ISZ TEMP1 INB,SZB JMP LOOP * LDA %MBOX+2 POPEN CALL? AND B7 CPA B1 RSS JMP STFLG NO. * LDA %MBOX+5 STORE PROG NAME. STA %CSNM+1 LDA %MBOX+6 STA %CSNM+2 LDA %MBOX+7 STA %CSNM+3 * * SEARCH ALL ID SEGMENTS FOR THE SLAVE PROG * NAME AND SET %CSID TO ID SEG ADDR. * LDA KEYWD,I FWA KEYWORD BLOCK. STA TEMP * LOOP1 LDB TEMP,I NEXT ID SEG ADDR. STB %CSID SAVE IT SZB,RSS JMP EXIT QUIT IF DONE, ADB D12 * LDA B,I 1ST 2 CHAR FROM IDSEG. CPA %CSNM+1 INB,RSS MATCH. JMP NEXT MISMATCH. LDA B,I 2ND 2 CHAR FROM IDSEG. CPA %CSNM+2 INB,RSS MATCH. JMP NEXT MISMATCH. LDA B,I 3RD 2 CHAR FROM IDSEG. AND LHALF STA TEMP1 SAVE LEFT HALF. LDA %CSNM+3 AND LHALF CPA TEMP1 JMP STFLG MATCH. * NEXT ISZ TEMP BUMP KEYWORD ADDR. JMP LOOP1 CHECK NEXT ID SEG. * * SET MAILBOX FLAG AND RETURN (NORMAL EXIT). * STFLG CLA,INA STA %MFLG ISZ @PTPQ EXIT JSB $LIBX ENABLE INTERRUPT SYSTEM. DEF @PTPQ SPC 3 * * SUBROUTINE TO RETURN APLDR ERROR NUMBERS. * DLERR NOP JSB $LIBR NOP ISZ DLERR LDA %DLER,I LDB DLERR,I STA B,I ISZ DLERR JSB $LIBX DEF DLERR SPC 3 * * CONSTANTS AND WORKING STORAGE. * B1 OCT 1 B7 OCT 7 KEYWD OCT 1657 LHALF OCT 177400 TEMP NOP TEMP1 NOP D12 DEC 12 MD35 DEC -35 %TMOT DEC -1500 15 SEC. DEFAULT TIME-OUT. %CSID NOP CURRENT SLAVE ID SEG ADDR. %CSNM DEF *+1 BSS 3 CURRENT SLAVE PROG NAME. %MFLG OCT 0 DFBOX DEF %MBOX %MBOX BSS 35 SLAVE PTOPC MAILBOX. %RQUE DEF *+1 BSS 35 HOLDING BUFFER FOR @RQPR. %DLER DEF *+1 BSS 1 APLDR ERROR NUMBER SLOT. BSS 3 PROG/FILE NAME SLOT. * * * WAIT-LIST FOR PROGRAMS PLACED IN THE OPERATOR SUSPEND * LIST BY @REFA. FIVE-WORD ENTRY PER PROGRAM: * WORD 1 = NEG VALUE INCR BY @CLCK * WORD 2-4 = PROGRAM NAME * WORD 5 = ID SEGMENT ADDRESS. * %LIST DEF *+1 DEC -20 NEG. # ENTRIES. * BSS 100 ALL ZEROES UNL REP 100 OCT 0 LST * SIZE EQU * * END