ASMB,R,Q,C * NAME: ERLOG * SOURCE: 92071-18147 * RELOC: 92071-16147 * PGMR: HLC * * * **************************************************************** * * (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 ERLOG,0 92071-16147 REV.2041 800730 ENT $SYMG,$ERMG,$STMG,$SMSG ENT $$ERL,$.ERL,$SY#,$XS3 * EXT $XEQ,$A,$B,$SUSP,$CON,.MWF EXT $RQRT,$XSIO,$IOFL,$LDRS,$LDAB EXT $TREM,$STAT,$XQT,CNUMD EXT CNUMO,$PNAM,.CBX,.MVW EXT $SEGS,$TIM1,$ZLST * A EQU 0 B EQU 1 SUP * * ABORT WITH ERROR MESSAGE * $ERMG NOP STA A. LDA $XQT SZA,RSS JMP HALT ABORTIVE ERROR -- NO USER PROGRAM EXECUTING LDA $STAT,I RAL CLE,SSA IF THE NO-ABORT BIT IS CLEAR CPB =A OR B IS BLANK JMP ABORT ABORT HIM * LDA A. DST $A,I CCA ADA $RQRT NO-ABORT, RETURN P+1 STA $SUSP,I JMP $ERMG,I * ABORT RAR IOR =B400 SET 'OF' BIT STA $STAT,I STB B. * LDA $SEGS,I AND =B377 STA SUSP CURRENT SEGMENT NO. JSB CNUMD CONVERT TO ASCII DEF *+3 DEF SUSP DEF SEG# * JSB CNUMO CONVERT POINT OF SUSPENSION TO ASCII DEF *+3 DEF $SUSP,I DEF SUSP LDA $CON,I AND =B377 STA ERMG SAVE TERMINAL LU LDB $XQT JSB $PNAM MOVE NAME TO BUFFER DEF ERMG+2 JSB $SYMG PRINT 'PROGA ABORTED SC05 37756' DEF ERMG LDB $XQT JSB $TREM REMOVE FROM TIME LIST * DLD A. DST $TIM1,I SAVE ERROR CODE TO PASS TO FATHER * LDB $XQT CPB $LDRS JMP LDAB CURRENTLY BEING LOADED OR SWAPPED LDA $STAT,I AND =B77 STATUS CPA =B2 RSS I/O SUSPENDED JSB $ZLST MOVE TO ABORT LIST FLUSH LDA $XQT JSB $IOFL FLUSH PENDING I/O REQUESTS JMP $ERMG,I * * LDAB JSB $LDAB ABORT THE TRANSFER JMP FLUSH * * ERMG DEC 1 LU DEC -30 LENGTH ASC 7,XXXXX ABORTED A. ASC 1,XX TWO CHARACTERS B. ASC 1,00 TWO DIGITS SUSP BSS 3 SEG# BSS 3 * HALT LDA A. HLT 3 HALT WITH ERROR CODE IN A AND B JMP HALT NO RECOVERY * * HED BUFFERED SYSTEM MESSAGE OUTPUT * $SYMG NOP LDA $SYMG,I ISZ $SYMG LDB $SY# IF BUFFER CPB BFCNT IS FILLED, JMP $SYMG,I REJECT EXIT. * LDB SYC JSB .MVW COPY MESSAGE TO CIRCULAR BUFFER DEF SIZE NOP LDA SYC CPB SBL IF LAST BUFFER HAS BEEN USED, LDB SBF WRAP AROUND TO FIRST BUFFER. STB SYC * LDB $SY# IF NO BUFFER CURRENTLY BEING OUTPUT, ISZ $SY# SZB,RSS JSB SYSCL INITIATE THIS BUFFER OUTPUT. CLA,CLE MESSAGE ACCEPTED JMP $SYMG,I * * $SMSG NOP LDA $SMSG,I ISZ $SMSG LDB $SY# IF BUFFER CPB BFCNT IS FILLED, JMP $SMSG,I REJECT EXIT. * LDB SIZE JSB .CBX LDB SYC JSB .MWF LDA SYC CPB SBL IF LAST BUFFER HAS BEEN USED, LDB SBF WRAP AROUND TO FIRST BUFFER. STB SYC * LDB $SY# IF NO BUFFER IS BEING OUTPUT, ISZ $SY# SZB,RSS JSB SYSCL INITIATE THIS BUFFER OUTPUT. CLA,CLE MESSAGE ACCEPTED JMP $SMSG,I * * * CALL <$XSIO> TO INITIATE OUTPUT * SYSCL NOP LDB A,I STB LU SAVE LU NUMBER INA LDB A,I GET THE MESSAGE LENGTH STB LNG SET IN THE CALL INA STEP TO BUFFER ADDRESS STA BUFF SET IN THE CALL JSB $XSIO DEF LU JMP SYSCL,I * * COMPLETION ROUTINE FROM I/O CALL * SYS8 CCA SUBTRACT 1 FROM ADA $SY# ENTRY COUNT FOR STA $SY# MESSAGE JUST OUTPUT. SZA,RSS IF NO MORE IN BUFFER, JMP $XEQ EXIT. * LDA BUFF SET ADA BFSIZ NEXT ENTRY CPA SBL ADDRESS * $STMG LDA SBF PRINT STARTING MESSAGE JSB SYSCL INITIATE OUTPUT JMP $XEQ -EXIT. * * * * ONLY 'MSGSZ' SHOULD BE CHANGED TO INCREASE THE BUFFER SIZE. * MSGSZ EQU 17 SIZE OF EACH MESSAGE * * TO INCREASE THE NUMBER OF BUFFERS, 'BFCNT' SHOULD BE CHANGED, * AND ADDITIONAL 'BSS MSGSZ' LINES SHOULD BE ADDED BEFORE 'SBL'. * * * $SY# DEC 1 6-WORD TABLE, DO NOT REARRANGE SYC DEF SBUF1 POINTER TO NEXT AVAILABLE BUFFER SBF DEF SBUF0 POINTER TO FIRST BUFFER BFCNT DEC 10 NUMBER OF BUFFERS SIZE ABS MSGSZ SIZE OF EACH MESSAGE BFSIZ ABS MSGSZ-2 SIZE OF TEXT PORTION * * I/O PARAMETER BUFFER * $XS3 EQU * LU DEC 1 DEF SYS8 - COMPLETION ROUTINE ADDRESS NOP LINKAGE DEC 2 ASCII WRITE - BUFF NOP MESSAGE ADDRESS LNG NOP MESSAGE LENGTH NOP NO 'Z' BUFFER NOP NO 'Z' BUFFER DEC 0 PRIORITY ZERO DEC 0 SYSTEM PARTITION NOP RETURNED STATUS NOP RETURNED TRANSMISSION LOG * * * SBUF0 DEC 1 DEC -30 OCT 6412 CARRIAGE RETURN, LINE FEED ASC 13,*RTE-L SYSTEM READY* OCT 3412 BELL, LINE FEED * ORG SBUF0+MSGSZ SBUF1 BSS MSGSZ SBUF2 BSS MSGSZ * SBUF3 BSS MSGSZ * SBUF4 BSS MSGSZ * SBUF5 BSS MSGSZ * SBUF6 BSS MSGSZ * SBUF7 BSS MSGSZ * SBUF8 BSS MSGSZ * SBUF9 BSS MSGSZ * SBL DEF * * $$ERL EQU * STANDARD MODULE $.ERL DEC 0 STANDARD MODULE END