ASMB,R,Q,C G1CSD SHUT DOWN/START UP HED G1CDS * NAME: G1CSD,G1CSU * SOURCE: 92067-18438 * RELOC: 92067-16425 * PGMR: G.A.A. * * *************************************************************** * * (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 G1CSD,8 92067-16425 REV.2013 800102 * ENT G1CSD,G1CSU * EXT G0SDN,G0JDN,G0RTN,.ENTR EXT G0DCB,G0BUF,G0WD2,G0WD9 EXT G0W15,G0CAP EXT G1OPN,READF,WRITF,POST,RNRQ,G1CAP,G1CHK EXT EXEC * A EQU 0 B EQU 1 SUP * PBUF3 NOP PLEN3 NOP IERR3 NOP * G1CSD NOP JSB .ENTR FETCH PARAMETERS DEF PBUF3 CLA CLEAR ERROR RETURN PARM STA IERR3,I LDB PBUF3 INCRE TO PARAM 2 ADB D4 SINCE PARAM 1 IS "SD" LDA B,I STA PBUF3 SAVE PARAMETER 2 INDICATOR INB LDB B,I GET SECOND PARAMETER STB SFLAG SAVE THE SHUT DOWN FLAG JSB G1CAP GET USER AND PRIV CAP DEF *+2 DEF IERR3,I SEZ ERROR? JMP EXIT4 YES * LDA PBUF3 SZA,RSS IF NO PARAM 2 JMP BOTH THEN SHUT DOWN SPOOL AND JOBS * CPA D2 JMP SDASC SDBPR LDA D56 BAD PARAMETER JMP EXIT3 * BOTH STA SFLAG SET PARAM 2 TO 0 JMP SDSP IF NOT SPECIFIED * SDASC LDA SFLAG GET PARAM 2 CPA "S" SHUT DOWN SPOOLS? JMP SDSP YES CPA "B" SHUT DOWN BATCH JOBS? JMP SDBA YES JMP SDBPR ELSE BAD PARAM * SDSP JSB OPLOK TO SHUT DOWN SPOOLS DEF SPCON OPEN SPLCON AND LOCK RN * JSB CAP? ENOUGH CAPABITILITY? * LDA D3 READ RECORD 3 JSB RD TO MEM * LDA "D" OK SET "D" INTO 1ST WORD CLB CPA G0BUF WAS IT ALREADY SHUT DOWN? LDB D4 YES, THEN SET FLAG FOR ACCTS PROG STB SPFLG USED FOR RETURN PARM FOR ACCTS PROG STA G0BUF OF REC 3 FOR SHUT DOWN STA G0SDN SET FLAG FOR TERM JSB WR WRITE THE RECORD BACK * JSB ULOKP NOW UNLOCK RN AND POST FILE NOP JSB EXEC CALL SMP TO DO ACTUAL DEF *+4 SHUTDOWN PROCEDURE DEF S23 =100027B -- NO ABORT DEF SMP DEF D16 * JMP NOSMP SMP CANNOT BE SCHEDULED * LDA SFLAG SZA SHUTDOWN BOTH? JMP EXIT4 NO, DONE. * SDBA JSB OPLOK OPEN JOBFIL AND LOCK RN DEF JOBFI * LDA D17 READ JOB RECORD JSB RD 17 * JSB CAP? DOES HE HAVE IT?? * CLB LDA "D" YES SET "D" INTO 15TH WORD CPA G0W15 WAS IT ALREADY SHUT DOWN? LDB D3 YES, THEN SET FLAG FOR ACCTS PROG STB BAFLG STA G0W15 AS FLAG FOR BM STA G0JDN SET FLAG FOR TERM JSB WR WRITE THE RECORD BACK RSS * EXIT3 STA IERR3,I EXIT4 JSB ULOKP NOW UNLOCK RN, POST FILE NOP CLB,INB SET UP RETURN FLAG FOR ACCTS LDA SPFLG GET SPOOL DOWN FLAG ADA BAFLG ADD TO IT BATCH DOWN FLAG SZA EITHER BOTH OR SPOOL OR BATCH WAS DOWN? LDB A YES, SET RETURN PARAMETER CPB D7 IF BOTH WERE DOWN THEN SEND LDB D2 BACK 2 AS RETURN PARM STB G0RTN 1=NONE DOWN,2=BOTH,3=BA,4=SP LDA IERR3,I JMP G1CSD,I RETURN * NOSMP LDA M48 SMP CANNOT BE SCHEDULED JMP EXIT3 * * RD NOP COMMON READ ROUTINE A= RECORD # STA REC SAVE THE RECORD # JSB READF DO THE READ DEF *+7 DEF G0DCB USE STD. DCB DEF IERR3,I PASS ERRORS TO CALLERS CALLER DEF G0BUF READ TO COMMON BUFFER DEF D16 DEF RUBSH DON'T NEED RETURN LENGTH DEF REC RECORD NUMBER SSA IF THERE IS AN ERROR JMP EXIT3 EXIT ERROR IS IN IERR3 * JMP RD,I ELSE RETURN * * WR NOP SAME TYPE OF THING FOR JSB WRITF USE SAME RECORD NUMBER AS LAST READ DEF *+6 DEF G0DCB COMMON DCB DEF IERR3,I DEF G0BUF DEF D16 16 WORD RECORDS DEF REC RECORD NUMBER SSA TEST ERROR FLAG JMP EXIT3 ERROR EXIT * JMP WR,I ELSE RETURN READ OK * * CAP? NOP ROUTINE TO TEST CAPABILITY OF USER JSB G1CHK AGAINST THE PRIVILEGED CAP DEF *+2 DEF IERR3,I SEZ ERROR? JMP EXIT4 YES, NOT ENOUGH CAPABILITY * JMP CAP?,I RETURN * D7 DEC 7 M48 DEC -48 SFLAG NOP SPFLG NOP BAFLG NOP REC NOP RUBSH NOP HED G1CSU START UP SPOOL AND/OR BATCH SYSTEM PBUF4 NOP PLEN4 NOP IERR4 NOP * G1CSU NOP JSB .ENTR FETCH PARAMETERS DEF PBUF4 DLD IERR4 SET UP TO EXIT DST IERR3 THROUGH SHUT DOWN CLA CLEAR ERROR RETURN STA IERR3,I STA SPFLG STA BAFLG JSB G1CAP GET USER AND PRIV CAPABILITY DEF *+2 DEF IERR3,I SEZ ERROR? JMP EXIT4 YES * JSB EXEC TELL JOB TO CLEAN UP DEF *+4 IN ANY CASE DEF D9 IF BUSY DON'T WAIT DEF JOB DEF MD1 -1 CLEAN UP ONLY LDB PBUF4 INCRE TO PARAM 2 ADB D4 SINCE PARAM 1 IS "SU" LDA B,I STA PBUF4 SAVE FOR NOW INB LDB B,I GET S OR B FLAG STB SFLAG SAVE IT JSB G1CAP GET USER AND PRIV CAP DEF *+2 DEF IERR3,I SEZ IF ERROR JMP EXIT4 RETURN * LDA PBUF4 GET THE 2ND PARM SZA,RSS IF NO PARAM 2 JMP BOTHU THEN START UP SPOOL AND JOBS CPA D2 JMP SUASC * SUBPR LDA D56 JMP EXIT3 * BOTHU STA SFLAG SET PARAM 2 TO 0 JMP SUSP IF NOT SPECIFIED * SUASC LDA SFLAG GET PARAM 2 CPA "S" START UP SPOOLS? JMP SUSP YES CPA "B" START UP BATCH JOBS? JMP SUBA YES JMP SUBPR ELSE BAD PARAM * SUSP JSB OPLOK TO START UP SPOOLS DEF SPCON OPEN SPLCON AND LOCK RN * LDA D3 THEN READ REC 3 JSB RD * LDB G0BUF IF SHUT DOWN THENHEN CPB "D" JSB CAP? CHECK THIS DUDE OUT. * CLA OK HE IS CLEAN SO CLEAR 1ST WORD STA G0BUF OF REC 3 FOR START UP STA G0SDN SET GLOBAL FLAG TOO TO LET SMP KNOW. JSB WR WRITE REC BACK TO SPLCON FILE * JSB ULOKP NOW UNLOCK RN AND POST FILE NOP JSB EXEC CALL SMP TO DO ACTUAL DEF *+4 START UP PROCEDURE DEF S23 =100027B -- NO ABORT RETURN DEF SMP DEF D17 * JMP NOSMP SMP CANNOT BE SCHEDULED * LDA SFLAG SZA START UP BOTH? JMP EXIT4 NO, DONE. * SUBA JSB OPLOK OPEN JOBFIL AND LOCK RN DEF JOBFI * LDA D17 READ REC # 17 JSB RD LDB G0W15 GET CURRENT STATUS CPB "D" IF DOWN NOW THEN JSB CAP? TEST IF THIS DUDE IS OK * CLA YES HE IS CLEAN SO CLEAR 15TH WORD STA G0W15 AS FLAG FOR BM STA G0JDN SET LOCAL GLOBAL TOO JSB WR WRITE RECORD BACK * JSB EXEC SCHEDULE FMGR DEF *+4 TO UPDATE JOBS DEF D10 DEF FMGR DEF MD1 -1 MEANS JOB UPDATE ONLY * SUDN JMP EXIT4 USE COMMON EXIT CODE * * HED COMMON ROUTINES AND CONSTANTS TO DS,CS,SD,SU * * JSB OPLOK * DEF FILENAME * * OPLOK NOP OPEN FILE AND LOCK RN LDA OPLOK,I GET ADDR OF FILE NAME STA FNAME ISZ OPLOK JSB G1OPN OPEN FILE DEF *+4 USING GLOBAL DCB DEF G0DCB DEF ULOKP FNAME DEF * * CLA,INA READ THE JSB RD FIRST RECORD LDA G0BUF GET FIRST WORD OF RECORD STA RNWD WHICH SHOULD BE RN LOCK WORD JSB POST MAKE SURE READS DEF *+2 ARE CLEAN. DEF G0DCB * JSB RNRQ LOCAL LOCK RN TO US DEF *+4 DEF RNLOK DEF RNWD DEF RNSTT * JMP OPLOK,I RETURN * * * * * JSB ULOKP * * * ULOKP NOP UNLOCK RN, POST FILE DCB LDA RNSTT MAKE SURE RN IS NOT CPA D1 ALREADY UNLOCKED. JMP ULOK1 IF SO - DON'T TRY IT. JSB POST POST FILE BUFFER DEF *+2 DEF G0DCB JSB RNRQ UNLOCK RN DEF *+4 DEF RNULK DEF RNWD DEF RNSTT ULOK1 ISZ ULOKP JMP ULOKP,I RETURN * * D1 DEC 1 D2 DEC 2 D3 DEC 3 D4 DEC 4 D9 DEC 9 D16 DEC 16 D17 DEC 17 D10 DEC 10 D56 DEC 56 S23 OCT 100027 MD1 DEC -1 * RNSTT DEC 1 RNWD NOP TEMP NOP RNLOK OCT 1 RNULK OCT 4 "B" ASC 1,B "B " "D" OCT 104 "S" ASC 1,S "S " SMP ASC 3,SMP FMGR ASC 3,FMGR JOBFI ASC 3,JOBFIL JOB ASC 3,JOB SPCON ASC 3,SPLCON * BSS 0 SIZE END