ASMB,R,L,C * NAME: DSNAP * SOURCE: 92070-18118 * RELOC: 92070-16118 * PGMR: D.J.W. * * *************************************************************** * * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1976. 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 DSNAP,7 92070-1X118 REV.1941 800325 * * * THIS ROUTINE FORMATS AND OUTPUTS THE CONTENTS OF THE SNAPSHOT * FILE TO THE LIST DEVICE. * * THE DISPLAY IS DIVIDED INTO FOUR SECTIONS, THE BOUNDRY VALUES, * SYSTEM ENTRY POINTS, THE LIBRARY FILE NAMRS, AND THE SYSTEM BASE * PAGE VALUES. * * CALLING SEQUENCE: JSB DSNAP * * ON RETURN: P+1: ERROR EXIT, MESSAGE OUTPUT * P+2: NO ERROR * * CHANGE 3/25/80 * BASE PAGE LINKS WERE BEING DISPLAYED OFF BY 1. THAT IS THE * LAST SYSTEM BASE PAGE LINK WAS NEVER SEEN. ALSO A SECOND * CALL TO DSNAP GAVE SOME GARBAGE VALUES IN THE FIRST LINE OF * BASE PAGE VALUES. THIS BUFFER WAS NOT BEING ZEROED BEFORE * THE FIRST FILL AND WRITE. * * * ENT DSNAP EXT .MVW,#SENT,#SLIB, BCOM, BGBP, BGFW EXT CNUMD,CNUMO,DRKEY,FMPER,FWAVB,FWSYB EXT I.ERR,IFBRK, LCOM,PL.ST,POSNT,READF EXT ROM, RTBP, RTFW, SDCB,SNAMR,SNPDF EXT SPACE, SYBP * A EQU 0 B EQU 1 * * * DSNAP NOP LDA SNAMR+3 HAS SNAPSHOT BEEN DEFINED ? SSA JMP DSNAI YES, PROCEED WITH DISPLAY * JSB SNPDF NO, USE DEFAULT SNAP NAMR JMP DSNAP,I FMP ERROR RETURN * DSNAI LDA PL.ST ARE WE LISTING ? SZA JMP DSNA0 YES, PROCEED ISZ DSNAP NO, TAKE GOOD RETURN JMP DSNAP,I * DSNA0 JSB SPACE OUTPUT LEADING BLANK LINE LDA ASNAM MOVE SNAP FILE NAME INTO HEADER LDB ANAMS ADDRESS IN MESSAGE BUFFER JSB .MVW DEF P3 LENGTH OF NAME IN WORDS NOP LDA MESSH GET ADDRESS OF HEADER MESSAGE LDB P16 AND LENGTH IN CHARACTERS JSB DRKEY OUPUT TO LIST DEVICE VIA DRKEY * JSB SPACE SPACE UP ONE LINE ON LIST JMP BNDRY OUTPUT SYSTEM BOUNDRY VALUES * ASBUF DEF *+1 SBUF BSS 11 MESSH DEF *+1 HMES ASC 8,SNAPSHOT ANAMS DEF HMES+5 ASNAM DEF SNAMR+0 P16 DEC 16 HED SYSTEM BOUNDRY VALUES * * * OUTPUT SYSTEM BOUNDRY VALUES * * * BNDRY JSB CNUMO CONVERT TO ASCII OCTAL DEF *+3 DEF RTFW+0 FIRST WORD REAL TIME AREA DEF RMES+5 TO LOCATION IN MESSAGE BUFFER * JSB CNUMO CONVER TO ASCII OCTAL DEF *+3 DEF RTBP+0 FIRST WORD REAL TIME BASE PAGE DEF RMES+8 TO LOCATION IN MESSAGE BUFFER * LDA MESSR GET MESSAGE ADDRESS LDB P22 AND LENGTH IN CHARACTERS JSB DRKEY OUTPUT TO COMMAND/LIST DEVICE * JSB CNUMO CONTERT TO ASCII OCTAL DEF *+3 DEF BGFW+0 FIRST WORD BACKGROUND AREA DEF BMES+5 TO LOCATION IN MESSAGE BUFFER * JSB CNUMO CONVERT TO ASCII OCTAL DEF *+3 DEF BGBP+0 BACKGROUND BASE PAGE DEF BMES+8 TO LOCATION IN MESSAGE BUFFER * LDA MESSB GET MESSAGE ADDRESS LDB P22 AND LENGTH IN CHARACTERS JSB DRKEY OUTPUT TO COMMAND-LIST DEVICE * LDA ROM LAST WORD BACKGROUND + 1 ADA N1 LAST WORD BACKGROUND STA TEMP1 SAVE IN A TEMPORARY FOR CNUMO LDA SYBP LAST WORD BACKGROUND BASE PAGE + 1 ADA N1 LAST WORD BACKGROUND BASE PAGE STA TEMP2 SAVE IN A TEMPORARY JSB CNUMO CONVERT TO ASCII OCTAL DEF *+3 DEF TEMP1 LAST WORD BACKGROUND AREA DEF TMES+5 ADDRESS IN MESSAGE BUFFER JSB CNUMO CONVERT TO ASCII OCTAL DEF *+3 DEF TEMP2 LAST WORD BACKGROUND BASE PAGE DEF TMES+8 ADDRESS IN MESSAGE BUFFER * LDA MESST GET MESSAGE ADDRESS LDB P22 AND LENGTH IN CHARACTERS JSB DRKEY OUTPUT TO COMMAND-LIST DEVICE * LDA BCOM ADDRESS BLANK SYSTEM COMMON ADA LCOM AND LENGTH STA TEMP3 SET IN A TEMPORARY JSB CNUMO CONVERT TO ASCII OCTAL DEF *+3 DEF BCOM+0 ADDRESS BLANK SYSTEM COMMON DEF CMES+5 ADDRESS IN MESSAGE BUFFER LDA MESSC GET MESSAGE ADDRESS LDB P16 AND LENGTH IN CHARACTERS JSB DRKEY OUTPUT TO COMMAND-LIST DEVICE * JSB CNUMO CONVERT TO ASCII OCTAL DEF *+3 DEF TEMP3 UPPER BOUND ON BLANK COMMON DEF XMES+5 ADDRESS IN MESSAGE BUFFER LDA MESSX GET MESSAGE ADDRES LDB P16 AND LENGTH IN CHARACTERS JSB DRKEY OUTPUT TO COMMAND-LIST DEVICE JSB SPACE SPACE ON BLANK LINE JMP DSNA1 * * MESSR DEF *+1 RMES ASC 11,REAL-TIME MESSB DEF *+1 BMES ASC 11,BACKGROUND TEMP1 NOP TEMP2 NOP MESST DEF *+1 TMES ASC 11, MESSC DEF *+1 CMES ASC 8,COMMON TEMP3 NOP MESSX DEF *+1 XMES ASC 8, P14 DEC 14 P22 DEC 22 N1 DEC -1 H1 DEF *+1 ASC 7,SYSTEM ENTRIES SKP * * * OUTPUT SYSTEM ENTRY, TYPE, AND VALUE * P2 DEC 2 P11 DEC 11 * DSNA1 LDA H1 HEADER FOR SYSTEM ENTRIES PHASE LDB P14 CHARACTER LENGTH OF HEADER MESSAGE JSB DRKEY OUTPUT TO LIST DEVICE * JSB SPACE SPACE UP ONE LINE * LDA #SENT GET NUMBER SYSTEM RESIDENT ENTRIES CMA,INA NEGATE AND SAVE AS A COUNT VARIABLE STA COUNT * LDB N2 STB LNCNT SET LINE COUNT, TWO SYMBOLS PER LINE * JSB POSNT FIRST POSITION TO SYSTEM ENTRIES DEF *+5 DEF SDCB DEF I.ERR+0 DEF P2 DEF P2 SSA JMP SNPER * NXSYM JSB READF READ AN ENTRY FROM SNAPSHOT FILE DEF *+5 DEF SDCB SNAPSHOT DCB DEF I.ERR+0 ERROR PARAMETER DEF SBUF SNAP BUFFER DEF P11 READ 11 WORDS MAX (VARIABLE LENGTH NAMES) * SSA FMP ERROR ? JMP SNPER YES * LDA ASBF1 ADDRESS OF SYMBOL NAME LDB MESSE ADDRESS IN MESSAGE BUFFER JSB .MVW MOVE NAME INTO BUFFER DEF SBUF LENGTH TO BE OUTPUT NOP * LDB SBUF GET SYMBOL LENGTH IN WORDS ADB ASBF1 ADDRESS OF TYPE WORD LDA B,I TYPE WORD RANGE 0 - 4 ADA ATYPE ADDRESS OF TYPE MNEMONICS LDA A,I RETRIEVE CORRESPONDING MNEUMONIC STA EMES+7 SET IN MESSAGE BUFFER INB POINTER TO SYMBOL VALUE STB TEMP1 SAVE FOR CNUMO JSB CNUMO DEF *+3 DEF TEMP1,I DEF EMES+9 * LDB SBUF MUST WE BLANK ANY CHARACTERS ? CPB LCHAR SYMBOL LENGTH EQUAL TO LAST ENTRY ? JMP EXIT EQUAL, GO OUTPUT THE MESSAGE * LDA LCHAR WAS THE LAST SYMBOL LONGER ? CMA,INA ADA B SSA,RSS JMP EXIT NO, SHORTER, NO BLANKING REQUIRED STA TEMP2 LONGER, SAVE NUMBER TO BE BLANKED LDB SBUF GET NEW SYMBOL LENGTH ADB MESSE ADDRESS AT WHICH TO BLANK LDA BLANK GET BLANK CHARS BLAK STA B,I SET BLANKS IN MESSAGE BUFFER INB INCREMENT POINTER ISZ TEMP2 HAVE WE BLANKED ALL ? JMP BLAK NO, LOOP BACK * EXIT LDA MESSE GET MESSAGE ADDRESS JSB OUTLN OUPUT MESSAGE TO COMMAND LIST DEVICE * ISZ COUNT HAVE WE LISTED ALL ENTRIES ? JMP NXSYM NOPE, LOOP BACK JSB FINLN FINISH OFF THE LINE JMP DSNA2 * * SNPER JSB FMPER DEF SNAMR+0 JMP DSNAP,I * RHALF OCT 377 MESSE DEF *+1 EMES ASC 18, ASBF1 DEF SBUF+1 ATYPE DEF *+1 TYPES OF SNAP ENTRIES ASC 1,MR MEMORY RESIDENT ASC 1,UN UNDEFINED ASC 1,CO COMMON ASC 1,AB ABSOLUTE ASC 1,RP REPLACEMENT COUNT NOP LCHAR NOP N2 DEC -2 H2 DEF *+1 ASC 8,SYSTEM LIBRARIES SKP * P18 DEC 18 P72 DEC 72 * OUTLN NOP FORMAT A LINE, TWO ENTRIES PER LINE STA ABUF SAVE MESSAGE ADDRESS LDA LNCNT GET CURRENT LINE COUNT MPY P18 CALCULATE ADDRESS IN OUTPUT BUFFER ADA ADDRS STA B SET AS DESTINATION ADDRESS LDA ABUF GET SOURCE ADDRESS JSB .MVW MOVE INTO OUTPUT BUFFER DEF P18 LENGTH 18 WORDS NOP * ISZ LNCNT DO WE OUTPUT THE LINE HERE ? JMP OUTLN,I NO, RETURN TO CALLER * LDA MESS GET THE MESSAGE ADDRESS LDB P72 AND LINE LENGTH JSB DRKEY OUTPUT TO COMMAND-LIST DEVICE LDA N2 SET NEW LINE COUNT STA LNCNT JSB CKBRK BREAK FLAG SET ? JMP OUTLN,I NO, CONTINUE WITH OUTPUT * * CKBRK NOP JSB IFBRK CHECK FOR BREAK FLAG DEF *+1 SSA,RSS JMP CKBRK,I NO BREAK, RETURN TO CALLER ISZ DSNAP RETURN NO ERROR JMP DSNAP,I BREAK FLAG SET, RETURN TO CALLER OF DSNAP * FINLN NOP FINISH OFF THE LINE ISZ LNCNT HAVE WE LEFT ANYTHING IN THE OUTPUT JMP FINLN,I NO, RETURN TO CALLER LDA MESS YES, FINISH IT OFF LDB P36 GET LENGTH IN CHARS JSB DRKEY JMP FINLN,I * P36 DEC 36 ABUF NOP TEMPORARY ADDRESS OF MESSAGE MESS DEF *+1 OUTPUT BUFFER ASC 20, ASC 16, ADDRS DEF * END OF BUFFER ADDRESS SKP * * * OUTPUT SYSTEM LIBRARY FILE NAMRS * DSNA2 LDA #SLIB GET NUMBER OF SYSTEM LIBRARY NAMRS AND RHALF SZA,RSS ARE THERE ANY ??? JMP DSNA8 NO, SKIP THIS SECTION * CMA,INA YES, NEGATE AND SAVE AS COUNT VARIABLE STA COUNT * LDB N2 STB LNCNT * JSB SPACE SPACE UP A BLANK LINE LDA H2 OUTPUT HEADER MESSAGE LDB P16 JSB DRKEY TO COMMAND LIST DEVICE JSB SPACE * * * DSNA3 JSB READF READ ENTRY FROM SNAPSHOT DEF *+5 DEF SDCB SNAPSHOT DCB DEF I.ERR+0 ERROR PARAMETER DEF SBUF SNAP BUFFER DEF P11 MAX 11 WORDS TO READ * SSA FMP ERROR ? JMP SNPER YES, REPORT MESSAGE AND RETURN * LDA ASBUF ADDRESS OF LIBRARY NAME LDB MESSL DESTINATION ADDRESS IN THE BUFFER JSB .MVW MOVE LIBRARY NAME INTO MESSAGE BUFFER DEF P3 LENGTH THREE WORDS NOP * LDA SBUF+3 GET TYPE WORD FOR NAMR PARMS ARS,ARS ROTATE OUT NAME TYPE SLA,RSS NULL OR UNDEFINED ? JMP DSNA4 YES, SKIP OUTPUT OF SECURITY CODE AND P3 CPA P3 IS IT ASCII ? JMP DSNA5 YES, MOVE INTO OUTPUT MESSAGE * JSB CNUMD INTEGER PARAMETER, CONVERT TO ASCII DEF *+3 DEF SBUF+4 DEF LMES+6 DESTINATION IN MESSAGE BUFFER JMP DSNA5 GO OUTPUT THE MESSAGE * DSNA4 LDA BLANK BLANK OUT THE TWO PREVIOUS WORDS STA LMES+4 STA LMES+5 LDA SBUF+4 GET THE ASCII CODE STA LMES+6 SET IN MESSAGE BUFFER * DSNA5 LDA SBUF+3 LOOK AT TYPE WORD FOR NEXT PARAMETER RAR,RAR RAR,RAR SLA,RSS NULL OR UNDEFINED ? JMP DSNA7 NULL AND P3 CPA P3 IS IT ASCII ? JMP DSNA6 YES * JSB CNUMD NO, INTEGER, CONVERT TO ASCII DEF *+3 DEF SBUF+5 CARTRIDGE REFERENCE NUMBER DEF LMES+8 ADDRESS IN MESSAGE BUFFER JMP DSNA7 GO OUTPUT THE MESSAGE * DSNA6 LDA BLANK BLANK PREVIOUS TWO WORDS STA LMES+8 STA LMES+9 LDA SBUF+5 GET CARTRIDGE VALUE STA LMES+10 SET IN MESSAGE BUFFER * DSNA7 LDA MESSL ADDRESS OF MESSAGE JSB OUTLN ISZ COUNT JMP DSNA3 JSB FINLN JMP DSNA8 * MESSL DEF *+1 LMES ASC 18, P3 DEC 3 SKP * * OUTPUT SYSTEM BASE PAGE AREA * H3 DEF *+1 ASC 8,LOCATION VALUE M7770 OCT 177770 * DSNA8 JSB SPACE LDA H3 GET HEADER MESSAGE ADDRESS LDB P16 AND LENGTH IN CHARACTERS JSB DRKEY OUTPUT TO COMMAND-LIST DEVICE JSB SPACE * * * LDB FWSYB FIRST WORD SYSTEM BASE PAGE STB CUREN SAVE AS CURRENT VALUE POINTER * LDA SYBP FIRST WORD SYSTEM BASE PAGE AREA AND M7770 ELIMINATE LAST THREE BITS STA TEMP1 AND SAVE AS STARTING LOCATION XOR SYBP DETERMINE INITIAL OFFSET INTO FIRST LINE ADA N8 STA LNCNT SAVE AS LINE COUNT LDA SYBP GET SYSTEM BASE PAGE WORD ARS,ARS ARS SHIFT OUT BOTTOM THREE BITS AND P7 ISOLATE NEW BOTTOM THREE BITS ADA N8 NEGATE STA BLCNT AND SET AS INITIAL BLOCK COUNT * LDA AINIT SOURCE LDB DEST DESTINATION JSB .MVW CLEAR OUT THE BUFFER DEF P33 NOP * NXLIN JSB CNUMO CONVERT TO OCTAL ASCII DEF *+3 DEF TEMP1 BASE PAGE ADDRESS DEF BPMES ADDRESS IN MESSAGE BUFFER * NXVAL JSB GETBP GET A BASE PAGE VALUE JMP PREOL PROCESS END OF THE LIST LDA LNCNT LINE COUNT MPY P4 DETERMINE ADDRESS IN MESSAGE BUFFER ADA AEOL ADDRESS OF END OF THE LINE STA TEMP2 SAVE FOR CNUMO JSB CNUMO CONVERT VALUE TO ASCII DEF *+3 DEF VALUE VALUE RETURNED FROM GETBP DEF TEMP2,I ADDRESS IN MESSAGE BUFFER * ISZ LNCNT END OF THE LINE ? JMP NXVAL NO, GET NEXT VALUE * LDA MESBP MESSAGE ADDRESS LDB P74 LENGTH IN CHARACTERS JSB DRKEY OUTPUT TO COMMAND-LIST DEVICE JSB CKBRK CHECK FOR BREAK FLAG LDA TEMP1 ADA O10 STA TEMP1 LDA N8 SET NEW LINE COUNT TO -8 STA LNCNT * ISZ BLCNT END OF THE BLOCK ? JMP NXLIN NO, GET NEXT LINE JSB SPACE YES, SPACE UP A LINE LDA N8 SET NEW BLOCK COUNT STA BLCNT JMP NXLIN GET NEXT BLOCK * * PREOL LDA LNCNT DO END OF LINE CALCULATIONS CPA N8 IS THIS AN EMPTY LINE ? JMP OUT YES, SO DON'T PRINT ANYTHING MPY P8 NO, DETERMINE THE LAST GOOD VALUE STA B ADB P74 THAT IS, THE LAST WORD TO BE OUTPUT LDA MESBP JSB DRKEY * OUT JSB SPACE * ISZ DSNAP SET GOOD RETURN JMP DSNAP,I RETURN TO CALLER * * P4 DEC 4 * GETBP NOP LDB FWAVB LAST WORD SYSTEM BASE PAGE CPB CUREN EQUAL TO LAST WORD ? JMP GETBP,I YES, END OF THE LINE LDA CUREN,I NO, GET BASE PAGE VALUE STA VALUE ISZ CUREN INCREMENT CURRENT VALUE POINTER ISZ GETBP RETURN P+2 JMP GETBP,I * * * MESBP DEF *+1 BPMES ASC 4, : VALUS ASC 16, ASC 17, AEOL DEF *-1 P7 DEC 7 P8 DEC 8 P74 DEC 74 CUREN NOP SYSTEM BASE PAGE POINTER N8 DEC -8 O10 OCT 10 LNCNT NOP LINE COUNT BLCNT NOP BLOCK COUNT BLANK ASC 1, VALUE NOP DEST DEF VALUS P33 DEC 33 AINIT DEF *+1 ASC 20, ASC 13, END