ASMB,Q,C G1CUP UP OUTSPOOL EQT'S HED G1CUP UP OUTSPOOL EQT'S * NAME: G1CUP * SOURCE: 92067-18488 * RELOC: 92067-16425 * PGMR: S.K. * * *************************************************************** * * (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 G1CUP,8 92067-16425 REV.2013 800102 * ENT G1CUP * EXT .ENTR,$CVT3,G1OLK,MESSS,$SMLK,RNRQ EXT G0DCB,G0BUF,G0WD1,G0WD2,G0WD6,G0W10,G0W15 EXT G0SPF,G0JRN EXT READF,WRITF,POST EXT EXEC,XLUEX * A EQU 0 B EQU 1 XEQT EQU 1717B DRT EQU 1652B SUP * PBUF NOP PLEN NOP IERR NOP * G1CUP NOP JSB .ENTR FETCH PARAMETERS DEF PBUF LDA PBUF PARSE BUFFER ADDRESS ADA D4 POINT TO SECOND PARAMETER LDB A,I SZB,RSS NULL? JMP SETRS YES, THEN OK * CPB D2 ASCII? INA,RSS YES JMP ILLPM NO, THEN ILLEGAL PARM * LDB A,I GET THE FIRST TWO CHARS CPB RS IS IT RS? JMP SETRS YES * ILLPM LDA D56 ILLEGAL PARAMETER JMP EXIT * D2 DEC 2 D4 DEC 4 D6 DEC 6 D9 DEC 9 D56 DEC 56 RS ASC 1,RS RSFLG NOP AG0W6 DEF G0WD6+0 TO GET A DIRECT ADDRESS TEMP NOP MSIGN OCT 100000 * SETRS STB RSFLG 0 IF RS NOT SPECIFIED JSB G1OLK OPEN SPLCON FILE AND LOCK RN DEF G0SPF SPLCON FILE NAME JMP EXIT ERROR FOUND * CLA,INA READ THE FIRST SPLCON RECORD JSB RDREC LDA AG0W6 LIST OF OUTSPOOL LU'S - SOURCE ADDRESS LDB PBUF DESTINATION ADDRESS INB STB PLEN SAVE POINTER TO LIST OF OUTLU'S MVW G0WD2 # OF OUTSPOOL LU'S NOP LDA G0WD2 SAVE # OF OUTSPOOL LU'S CMA,INA,SZA,RSS 0? JMP EXIT YES, THEN RETURN * STA PBUF,I USE AS COUNTER LDA D9 START OF OUTSPOOL QUEUE RECORDS STA QREC SAVE UPLP LDA QREC READ THE RECORD OF FIRST QUEUE JSB RDREC LDA G0WD1 # OF ENTRIES IN QUEUE FOR THIS SZA,RSS OUTSPOOL LU JMP NXTLU NO QUEUE, CHECK NEXT OUTLU * LDA G0WD2 SPLCON REC# OF FIRST ENTRY IN QUEUE STA RNUM SAVE REC # JSB RDREC LDA G0W10 GET CURRENT STATUS OF SPOOL FILE STA OSTAT SAVE OLD STATUS CPA "A" ACTIVE? RSS YES CPA "AH" ACTIVE HOLD? RSS YES JMP NXTLU NO, GET NEXT OUTLU * LDA PLEN,I GET THE LU # IOR MSIGN SET SIGN BIT TO AVOID SST TRANSLATION STA TEMP JSB XLUEX GET STATUS OF OUTSPOOL LU DEF *+6 DEF D13 STATUS REQUEST DEF TEMP OUTSPOOL LU WITH SIGN BIT SET DEF ISTA1 EQT 5 WORD DEF ISTA2 EQT 4 WORD DEF ISTA3 STATUS OF LU LDA ISTA3 GET LU STATUS SSA,RSS DOWN? JMP NXTLU NO, THEN CHECK NEXT OUTLU * LDA DRT EQT IS DOWN, FIND EQT # ADA PLEN,I ADA M1 POINT TO DRT ENTRY FOR OUTLU LDA A,I AND B77 MASK EQT # CCE CONVERT TO ASCII DECIMAL JSB $CVT3 ADA D2 POINT TO LAST 2 DIGITS LDA A,I STA UPMSG+2 SET UP "UP, EQ" MESSAGE LDA XEQT GET THE ID SEGMENT ADDRESS OF THIS PROG ADA D32 POINT TO WORD 33 OF ID SEG LDA A,I SZA,RSS IN SESSION? JMP MESS NO, THEN NO OVERRIDES REQUIRED * ADA $SMLK OFFSET TO THE LINK WORD CMA,INA NEGATIVE SCB ADDRESS STA ISTA1 USED AS OVERRIDE FOR CAPABILITY CHECK JSB MESSS SEND UP,EQT# COMMAND TO THE OP SYSTEM DEF *+5 DEF UPMSG DEF D6 # OF CHARS DEF ZERO DEF ISTA1 -(SCB ADDRESS) JMP RELSE * MESS JSB MESSS OUTSIDE OF SESSION DEF *+3 SEND UP,EQT# COMMAND DEF UPMSG DEF D6 * RELSE LDB RSFLG RESTART SPECIFIED? SZB JMP DORS YES * DOCS LDA "A" JUST RELEASE THE SPOOL FILE CCB JMP STATS * DORS LDA G0W10 GET STATUS OF SPOOL FILE CPA "AH" ACTIVE HELD? JMP SETW YES THEN SET STATUS TO WAIT * LDA "AH" STATUS IS ACTIVE, SET TO ACTIVE HOLD STA G0W10 JSB WRULK WRITE SPLCON REC AND UNLOCK RN JSB EXEC SCHEDULE SMP TO SET HOLD DEF *+8 DEF S23 DEF ISMP DEF D14 DEF RNUM RECORD # DEF G0W15 OUTSPOOL LU DEF ZERO DEF OSTAT OLD STATUS OF SPOOL FILE * JMP NOSMP SMP CANNOT BE SCHEDULED * LDA "AH" NOW SET THE OLD STATUS TO ACTIVE HOLD STA OSTAT JSB RNRQ LOCK RN# DEF *+4 DEF D1 DEF G0JRN DEF ISTA1 LDA RNUM GET SPLCON REC # FOR SPOOL FILE JSB RDREC READ RECORD * SETW LDA "W" RESTART SO SET TO WAIT STATUS CLB STATS STA G0W10 SET NEW STATUS STB TEMP JSB WRULK WRITE REC AND UNLOCK SPLCON CLSMP JSB EXEC SCHEDULE SMP TO RELEASE A HOLD DEF *+8 DEF S23 =100027B -- NO ABORT DEF ISMP DEF D15 RELEASE A HOLD DEF RNUM SPLCON RECORD # DEF G0W15 OLD OUTSPOOL LU DEF TEMP DEF OSTAT OLD STATUS OF SPOOL FILE * JMP NOSMP SMP CANNOT BE SCHEDULED * JSB RNRQ LOCK RN FOR NEXT LU DEF *+4 DEF D1 DEF G0JRN DEF ISTA1 NXTLU LDA QREC GET QUEUE RECORD # ADA D8 POINT TO NEXT QUEUE STA QREC ISZ PLEN POINT TO NEXT OUTSPOOL LU ISZ PBUF,I INCREMENT NEGATIVE # OF OUTLU'S JMP UPLP * CLA,RSS * NOSMP LDA M48 SMP CANNOT BE SCHEDULED EXIT STA IERR,I SET ERROR RETURN JSB UNLOK UNLOCK RN AND POST DCB * JMP G1CUP,I RETURN * * QREC NOP RNUM NOP OSTAT NOP ISTA1 NOP ISTA2 NOP ISTA3 NOP D1 DEC 1 D8 DEC 8 D13 DEC 13 D14 DEC 14 D15 DEC 15 D32 DEC 32 S23 OCT 100027 M1 DEC -1 M48 DEC -48 B77 OCT 77 ZERO DEC 0 ISMP ASC 3,SMP "A" OCT 101 "AH" ASC 1,AH "W" OCT 127 UPMSG ASC 3,UP, XX * * SKP HED G1CUP (WRULK,RDREC SUBROUTINES) * * WRULK - ROUTINE TO WRITE A SPLCON RECORD AND UNLOCK * RN FOR SPLCON FILE * CALLING SEQUENCE: JSB WRULK * * WRULK NOP JSB WRITF WRITE UPDATED RECORD BACK DEF *+6 DEF G0DCB DEF IERR,I DEF G0BUF DEF D16 DEF RNUM SPLCON RECORD # SSA ERROR? JMP EXIT YES * JSB UNLOK POST DCB AND UNLOCK RN JMP WRULK,I RETURN * D16 DEC 16 * * * UNLOK - ROUTINE POSTS THE DCB AND UNLOCKS THE RN NUMBER * CALLING SEQUENCE: JSB UNLOK * * UNLOK NOP JSB POST POST THE DCB DEF *+2 DEF G0DCB * JSB RNRQ UNLOCK RN DEF *+4 DEF NABT4 =40004B DEF G0JRN DEF ISTA1 RN STATUS NOP *************************** JMP UNLOK,I RETURN * NABT4 OCT 40004 * * RDREC - ROUTINE TO READ A RECORD FROM SPLCON FILE * CALLING SEQUENCE: A REG = SPLCON RECORD # * JSB RDREC * * RDREC NOP STA ISTA2 JSB READF READ A RECORD FROM FILE CURRENTLY DEF *+7 OPEN DEF G0DCB DEF IERR,I DEF G0BUF DEF D16 DEF ISTA3 DEF ISTA2 RECORD # TO READ SSA ERROR? JMP EXIT YES * JMP RDREC,I RETURN * * END