ASMB,Q,C HED 3000 $STDLIST MONITOR * (C) HEWLETT-PACKARD CO. NAM CNSLM,19,30 91750-16048 REV.2013 800117 MEF SPC 1 ****************************************************************** * * (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 THE HEWLETT-PACKARD COMPANY. * ****************************************************************** SPC 2 EXT EXEC,XLUEX,DTACH,#QXCL,#RSAX,#GET,$OPSY SPC 3 UNL NEXT 5 LINES ARE FOR PRODUCTION ENGINEERING * NAME: CNSLM *SOURCE: 91750-18048 * RELOC: 91750-16048 * PGMR: DMT LST *************************** CNSLM ****************************** * * * SOURCE: 91750-18048 * * * * BINARY: 91750-16048 * * * * PROGRAMMR: JIM HARTSELL * * * * DATE: FEBRUARY 10, 1976 * * * *----------------------------------------------------------------* * * * MODIFIED BY DMT BEGINNING NOVEMBER 3, 1978 * * * ****************************************************************** SPC 3 * CNSLM IS THE DS/1000 MONITOR WHICH RECEIVES "UNEXPECTED" * $STDLIST REQUESTS INITIATED BY AN HP 3000. THESE ARE USUALLY * "TELL" MESSAGES OR THE LOGOFF FROM A "KILLED" SESSION. SPC 2 A EQU 0 B EQU 1 SUP SKP * ****************************************************************** * * * G L O B A L B L O C K REV XXXX 790531 * * * * GLOBAL OFFSETS INTO DS/1000 MESSAGE BUFFERS, USED BY: * * * * REMAT, RFMST, DEXEC, DMESS, FLOAD, POPEN, #MAST * * GET, #SLAV, RQCNV, RPCNV, GRPM, LSTEN, PTOPM * * EXECM, EXECW, OPERM, RFAM1, RFAM2, DLIST, DLIS3 * * * ****************************************************************** * ***!!!!! THE FIRST 7 WORDS (#STR THRU #ENO) MUST BE FIXED !!!!!*** #STR EQU 0 STREAM WORD. #SEQ EQU #STR+1 SEQUENCE NUMBER. #SRC EQU #SEQ+1 SOURCE NODE #. #DST EQU #SRC+1 DEST. NODE #. #EC1 EQU #DST+1 REPLY ECOD1. #EC2 EQU #EC1+1 REPLY ECOD2. #ENO EQU #EC2+1 NUMBER OF NODE REPORTING ERROR. * #ECQ EQU #ENO+1 ERROR CODE QUALIFIER (BITS 4 TO 7) #LVL EQU #ECQ MESSAGE FORMAT LEVEL (BITS 0 TO 3) #MAS EQU #LVL+1 MA "SEND" SEQ. # #MAR EQU #MAS+1 MA "RECV" SEQ. # #MAC EQU #MAR+1 MA "CANCEL" FLAGS #HCT EQU #MAC+1 HOP COUNT #SID EQU #HCT+1 SESSION ID WORD * #EHD EQU #SID LAST ITEM OF HEADER #MHD EQU #EHD+1 MINIMUM HEADER SIZE #REQ EQU #MHD START OF REQUEST SPECIFIC AREA #REP EQU #MHD START OF REPLY SPECIFIC AREA * #MXR EQU #MHD+24 <<< MAXIMUM DS REQ/REPLY BUFFER SIZE >>> #LSZ EQU 2 <<< SIZE OF LOCAL APPENDAGE AREA >>> * ****************************************************************** * SKP CNSLM LDA $OPSY CHECK FOR OPERATING RAR SYSTEM TYPE. SLA,RSS JMP LDABI XLA B,I DMS LOAD. RSS LDABI LDA B,I NON-DMS LOAD. STA CLSN SAVE CLASS NUMBER. * JSB DTACH DETACH FROM POSSIBLE SESSION. DEF *+1 * GET JSB #GET DO A CLASS GET AND WAIT FOR REQUEST DEF *+6 DEF CLSN CLASS # DEF DS1KH DS/1000 HEADER DEF MINLN DEF RQBUF REQUEST BUFFER DEF D80 MAX LENGTH = 80 WORDS. JMP GET ERROR RETURN. * LDA RQBUF GET LENGTH/CLASS WORD. AND B77 ISOLATE CLASS. CPA D5 IS IT 5? RSS JMP GET NO. IGNORE. * LDA RQBUF+2 GET STREAM TYPE WORD. AND B77 ISOLATE STREAM TYPE. CPA B23 STREAM 23 IS CONTROL. JMP REPLY (JUST REPLY.) CPA B20 RSS STREAM 20 IS $STDLIST. JMP REJCT REJECT ALL OTHERS. * LDA RQBUF+4 AND B377 STA TONUM STORE "TO" NUMBER (LU # OR 0) * LDA RQBUF+7 GET BYTE LENGTH. ADA MD4 OMIT CONTROL WORDS FROM COUNT. CMA,INA NEGATE MESSAGE BYTE LENGTH. STA BUFL SAVE NEGATIVE LENGTH. * LDA TONUM IF DIRECTED TO USER, SZA JSB OTPUT DISPLAY ON THAT LOG LU. CLA,INA IF USER CONSOLE CPA TONUM IS NOT 1, RSS DISPLAY ON JSB OTPUT SYSTEM CONSOLE. * * BUILD A REPLY FOR THE $STDLIST REQUEST. * REPLY LDA RQBUF STORE COUNT WORD. AND B377 IOR LB9 STA RQBUF LDA RQBUF+2 SET REPLY BIT. AND B77 IOR BIT15 STA RQBUF+2 SET APPENDAGE LDA D2 SET APPENDAGE STA RQBUF+7 LENGTH (2 BYTES). LDA CCE STORE STATUS WORD. STA RQBUF+8 * * SEND THE REPLY OR REJECT * SEND LDA RQBUF+4 REVERSE PROCESS NUMBERS. ALF,ALF STA RQBUF+4 AND B377 IF NO REPLY TO BE SENT, SZA,RSS JMP CNSL1 GO RELEASE SLAVE TCB. * LDA RQBUF+7 GET BYTE COUNTER. INA CLE,ERA ADA D8 STA RQLEN LENGTH OF REPLY. * LDA #QXCL IS 3000 LINK DOWN? SSA JMP CNSL1 YES. IGNORE REPLY. * JSB EXEC WRITE REPLY TO QUEX. DEF *+8 DEF CLS20 DEF D0 DEF RQBUF DEF RQLEN DEF RQLEN DEF D0 DEF #QXCL NOP IGNORE ERROR RETURN. * CNSL1 JSB #RSAX DELETE SLAVE TCB. DEF *+4 DEF D7 CODE FOR "CLEAR". DEF DS1KH+#SEQ LOCAL SEQUENCE #. DEF D2 CNSLM STREAM TYPE. * JMP GET GO WAIT FOR ANOTHER REQUEST. SKP * SUBROUTINE TO PERFORM $STDLIST ON LU IN A-REGISTER * OTPUT NOP ENTRY POINT STA LU STORE LU NUMBER * JSB XLUEX DISPLAY MESSAGE DEF *+5 DEF SD2 DEF LU DEF RQBUF+10 DEF BUFL NOP IGNORE ERRORS * LDA RQBUF+8 IF DOUBLE CPA B60 SPACE WAS RSS SPECIFIED, JMP OTPUT,I * JSB XLUEX PRINT A DEF *+5 BLANK DEF SD2 LINE. DEF LU DEF BLANK DEF D1 NOP JMP OTPUT,I RETURN. * B60 OCT 60 BLANK ASC 1, * * DO NOT CHANGE THE ORDER OF THE FOLLOWING TWO STATEMENTS. LU BSS 1 LU NUMBER OCT 200 CONTROL BIT TO PRINT COL 1 SPC 5 * * SEND "REJECT" REPLY FOR ILLEGAL REQUESTS. * REJCT LDA RQBUF TOTAL AND B377 LENGTH IOR LB8 IS 8. STA RQBUF LDA RQBUF+2 SET REJECT BIT. IOR BIT14 STA RQBUF+2 CLA DATA LENGTH = 0. STA RQBUF+7 JMP SEND SEND REJECT TO QUEX. SPC 5 * * CONSTANTS AND WORKING STORAGE. * D0 OCT 0 D1 DEC 1 D2 DEC 2 D5 DEC 5 D7 DEC 7 D8 DEC 8 D80 DEC 80 B20 OCT 20 B23 OCT 23 B77 OCT 77 B377 OCT 377 CLS20 DEF 20,I MD4 DEC -4 SD2 DEF 2,I LB8 BYT 10,0 DECIMAL 8, LEFT BYTE. LB9 BYT 11,0 DECIMAL 9, LEFT BYTE. BIT14 OCT 40000 REJECT BIT BIT15 OCT 100000 REPLY BIT CLSN NOP RQLEN NOP CCE OCT 1000 BUFL NOP TONUM NOP MINLN ABS #MHD DS1KH BSS #MHD+#LSZ DS/1000 HEADER RQBUF BSS 80 DS/3000 MESSAGE * BSS 0 SIZE OF CNSLM * END CNSLM