ASMB,R,L,C HED QCLM 91740-16016 REV 1913 * (C) HEWLETT-PACKARD CO. 1979 NAM QCLM,19,28 91740-16016 REV 2001 791024 SPC 2 ****************************************************************** * * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1979. 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 **************************************************************** * * QCLM COMMUNICATION ERROR LOG * * NAME: QCLM * SOURCE: 91740-18016 * RELOC: 91740-16016 * PGMR: CHUCK WHELAN * * DATE WRITTEN DEC 1976 * * MODIFIED BY: LYLE WEIMAN, JAN. '78 *************************************************************** SPC 2 EXT EXEC,#QCLM EXT $TIME EXT CNUMO,CNUMD,KCVT,TMVAL SUP SPC 3 * QCLM EQU * LDA #QCLM GET QCLM CLASS NUMBER ALR,RAR AND REMOVE NO WAIT BIT STA QCLS QCLM2 JSB EXEC AWAIT WRITES TO QCLM CLASS DEF *+6 DEF K21 DEF QCLS CLASS WORD IN STORAGE DEF IBUF BUFFER ADDRESS DEF K9 DEF XEQT ADDRESS OF ID SEG OF CALLER * * * DETERMINE THE ERROR TYPE * LDA AREG CPA BREG A=B? RSS YES JMP REGLS NO, JUST GIVE REG CONTENTS CPA N4 A=B=-4? JMP MSGB YES, TCB NOT FOUND CPA N5 A=B=-5? JMP MSGC YES, COMM. READ ERROR CPA N6 JMP MSGD * REGLS LDB PREG P CONTENTS SZB,RSS ZERO? JMP MSGA YES, GIVE "REPLY FLUSHED" * * HERE FOR UNEXPECTED ERRORS (I.E., CATASTROPHIC) * LDA XEQT TRANSFER NAME OF PROGRAM WHICH ADA K12 SENT US THE MESSAGE RAL CONVERT TO BYTE ADDRESS LDB @ORGN MBT K5 * CONVERT REGISTER VALUES TO OCTAL JSB CNUMD DEF *+3 DEF SEQ# DEF .SEQ. JSB CNUMD DEF *+3 DEF STREM DEF .STR. LDA FLDAD GET THE ADDRESS OF THE 1ST WORD STA PNTR1 USE AS DESTINATION POINTER LDA @PREG GET ADDRESS WHERE P, A AND B REGISTER CONTENTS ARE STORED STA PNTR2 USE AS ORIGIN POINTER LDA N3 SET TO CONVERT 3 WORDS STA CNTR1 * OUTLP EQU * SET FOR OCTAL CONVERSION JSB CNUMO CONVERT TO OCTAL DEF *+3 PNTR2 NOP POINTER TO VALUE TO BE CONVERTED PNTR1 NOP STORE ASCII HERE. * LDA PNTR1 GET THE DESTINATION POINTER ADA K5 MOVE IT TO STA PNTR1 THE NEXT ENTRY. ISZ PNTR2 STEP TO NEXT QCB WORD ISZ CNTR1 ALL DONE ? JMP OUTLP NO, CONTINUE * JSB EXEC OUTPUT THE CATASTROPHIC ERROR MESSAGE DEF *+5 DEF K2 WRITE DEF K1 CRT DEF MSG MESSAGE ADDRESS DEF MSGL MESSAGE LENGTH * JMP QCLM2 GO, GET NEXT COMPLAINT SPC 3 * * HERE FOR "REPLY FLUSHED" ERROR. * * MSGA DLD AREG B&A HAVE ASCII ERROR CODE SWP REVERSE FOR PRINTING DST REGA JSB MSGX MOVE AND WRITE MESSAGE DEF MSA (RETURN MADE DIRECTLY TO 'QCLM2') * * HERE FOR "TCB NOT FOUND, POSSIBLE TIMEOUT" * MSGB JSB MSGX MOVE AND WRITE MESSAGE DEF MSB * * HERE FOR "COMMUNICATIONS READ ERROR" MSGC EQU * DLD $TIME GET CURRENT TIME-OF-DAY DST TOD SAVE FOR TIME CONVERSION JSB CVTIM CONVERT TIME-OF-DAY TO ASCII LDA EQTA CONVERT LINE EQT ADDRESS TO EQT # CMA,INA ADA STREM STA STREM CLB DIV K15 INA STA STREM JSB CNUMD CONVERT TO DECIMAL DEF *+3 DEF STREM DEF MSC. LDA SEQ# LOAD I/O STATUS AND =B377 MASK STATUS ALONE STA SEQ# JSB CNUMO CONVERT I/O STATUS TO OCTAL DEF *+3 DEF SEQ# DEF .STAT JSB EXEC DEF *+5 DEF K2 DEF K1 DEF MSC DEF MSCL JSB EXEC DEF *+5 DEF K2 DEF K1 DEF .TIME DEF TIMEL JMP QCLM2 BACK TO CLASS GET * * HERE FOR "MESSAGE LEVEL NOT CONVERTED" ERROR * MSGD EQU * JSB MSGX DEF MSD * MSGX NOP JSB CVTIM CONVERT TIME-OF-DAY TO ASCII JSB CNUMD CONVERT ORIGINATION NODE # DEF *+3 DEF SRC# DEF .ORGN JSB CNUMD CONVERT DESTINATION NODE # DEF *+3 DEF DESTN DEF .DEST LDA STREM GET STREAM TYPE RAL,ELA REPLY BIT TO (E) DLD REQST LOAD "RQST" SEZ,RSS REPLY? JMP ..1 NO, REQUEST DLD REPLY LOAD "RPLY" ..1 EQU * DST MSG4 STORE IN MESSAGE BUFFER LDA STREM GET STREAM WORD AGAIN LDB BLANK SSA 3000 MASTER? LDB "3K" YES. STB .3K LDA STREM CONVERT STREAM TYPE AND =B77 STA STREM JSB KCVT CONVERT TO ASCII DEF *+2 DEF STREM STA .STRM LDA MSGX,I FROM ADDR LDB MS2A TO ADDR MVW K16 MOVE MSG TO OUTPUT BUFFER * JSB EXEC OUTPUT ERROR MESSAGE DEF *+5 DEF K2 DEF K1 DEF MSG2 DEF M2LEN JSB EXEC PRINT MORE ABOUT IT DEF *+5 DEF K2 DEF K1 DEF MSG4 DEF MSG4L JMP QCLM2 GO BACK TO CLASS "GET" * SKP * * SUBROUTINE TO OBTAIN TIME-OF-DAY AND CONVERT IT TO * ASCII. RESULTS RETURNED IN BUFFER ".TIME" * CVTIM NOP JSB TMVAL CONVERT TIME-OF-DAY TO HOURS,MINUTES, SECONDS DEF *+3 DEF TOD DEF TMAR JSB KCVT CONVERT HOUR NUMBER TO ASCII DEF *+2 DEF TMAR+3 STA .HR JSB KCVT CONVERT MINUTES TO ASCII DEF *+2 DEF TMAR+2 STA .MIN JSB KCVT CONVERT SECONDS DEF *+2 DEF TMAR+1 STA .SEC JSB EXEC GET ACTUAL DAY NUMBER DEF *+3 DEF K11 DEF TMAR JSB CNUMD CONVERT DAY NUMBER DEF *+3 DEF TMAR+4 DEF .DAY JMP CVTIM,I RETURN SKP * * DATA AREA * * FORMAT OF BUFFER PASSED TO QCLM: * -------------------------------- * * **************************************** * 1 * STREAM WORD * NOTE: ON 'READ' ERRORS, WORD * *--------------------------------------* 1 IS LINE EQT ADDRESS, WORD * 2 * SEQUENCE NUMBER * 2 CONTAINS I O STATUS. * *--------------------------------------* * 3 * SOURCE (ORIGINATING) NODE NUMBER * * *--------------------------------------* * 4 * DESTINATION NODE NUMBER * * *--------------------------------------* * 5 * P-REGISTER WHEN ERROR DETECTED * * *--------------------------------------* NOTE: CERTAIN COMBINATIONS * 6 * A-REGISTER WHEN ERROR DETECTED * OF A- AND B-REGISTER VALUES * *--------------------------------------* ARE USED TO FLAG SUCH CONDI- * 7 * B-REGISTER WHEN ERROR DETECTED * TIONS AS "COMMUNICATIONS * *--------------------------------------* READ ERROR", "TCB NOT FOUND, * 8 * TIME OF DAY WHEN ERROR DETECTED * ETC. * 9 * (2 WORDS) * * **************************************** * * FIRST OPTIONAL PARAMETER = ID SEGMENT ADDRESS OF SENDER * (USUALLY 'GRPM'). * * **************************************** K1 DEC 1 K2 DEC 2 K5 DEC 5 K9 DEC 9 K11 DEC 11 K12 DEC 12 K14 DEC 14 K15 DEC 15 K16 DEC 16 K21 DEC 21 N3 DEC -3 N4 DEC -4 N5 DEC -5 N6 DEC -6 @MSC DEF MSC @ORGN DBL ORIGN @PREG DEF PREG XEQT NOP FLDAD DEF CVFLD CNTR1 NOP QCLS NOP MS2A DEF MSFL2 * IBUF BSS 9 * STREM EQU IBUF SEQ# EQU IBUF+1 SRC# EQU IBUF+2 DESTN EQU IBUF+3 PREG EQU IBUF+4 AREG EQU IBUF+5 BREG EQU IBUF+6 TOD EQU IBUF+7 MSG OCT 6412 ASC 08, DS ERROR: PROG= ORIGN ASC 3, ASC 2,STRM .STR. ASC 3, ASC 3, SEQ#= .SEQ. ASC 3, OCT 6412 CARRIAGE-RETURN/LINE-FEED ASC 2, P= CVFLD ASC 3, ASC 2, A= ASC 3, ASC 2, B= ASC 3, MSGL ABS *-MSG * MSA EQU * REGA ASC 2, STORAGE FOR "DSXX" ERROR CODE ASC 16, REPLY FLUSHED MSB ASC 16, TCB NOT FOUND, POSSIBLE TIMEOUT MSC ASC 13, COMM. READ ERROR, EQT # MSC. ASC 3, ASC 6,,I/O STATUS= .STAT ASC 3, MSCL ABS *-MSC MSD ASC 16, MESSAGE LEVEL NOT CONVERTED * MSG2 EQU * ASC 05, DS ERROR: MSFL2 ASC 16, M2LEN ABS *-MSG2 REQST ASC 2,RQST REPLY ASC 2,RPLY MSG4 ASC 5,RPLY STRM .STRM ASC 1, STREAM TYPE CONVERTED TO ASCII BLANK ASC 1, .3K NOP "3K" IF RQST IS FROM 3000 ASC 5, ORG NODE= .ORGN ASC 3, ORIGINATION NODE #, CONVERTED TO ASCII ASC 5, DEST NODE= .DEST ASC 3, DESTINATION NODE #, CONVERTED TO ASCII OCT 6412 CR/LF .TIME ASC 5, TIME: DAY .DAY ASC 3, DAY NUMBER, CONVERTED TO ASCII ASC 1, .HR NOP HOUR, CONVERTED TO ASCII ASC 1,: .MIN ASC 1, MINUTE, CONVERTED TO ASCII ASC 1,: .SEC ASC 1, SECOND, CONVERTED TO ASCII MSG4L ABS *-MSG4 TIMEL ABS *-.TIME-1 "3K" ASC 1,3K TMAR BSS 5 * SIZE BSS 0 * EQTA EQU 1650B ADDRESS OF 1ST EQUIPMENT TABLE ENTRY END QCLM