ASMB,R,L,C * NAME: PRMAP * SOURCE: 92070-18112 * RELOC: 92070-16112 * 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 PRMAP,7 92070-1X112 REV.1941 800308 * * * PRMAP SETS THE CURRENT MEMORY BOUNDS INTO THE MEMORY MAP * AND PRINTS THE MAP IF THIS OPTION WAS SELECTED. A CHECK IS * MADE FOR LOCAL COMMON ALLOCATION AND ON THE FIRST ALLOCATION * THE MODULE 'COM' AND ITS BOUNDS ARE PRINTED. * THE MEMORY MAP CONTAINS THE MODULE NAME, ITS LOW MAIN ADDRESS, * HIGH MAIN ADDRESS, LOW BASE PAGE ADDRESS, AND THE COMMENT FROM * THE NAM RECORD. AT THE END OF THE MAIN OR SEGMENT PLUS ALL THE * DESIRED SUBROUTINES THE NEW LOW MAIN AND LOW BASE PAGE IS PRINTED. * THIS THEN SHOWS WHERE THE MODULES RESIDE, THE BASE PAGE REQUIRED * FOR EACH MODULE, AND THE CURRENT PAGE LINK AREAS. * * FOR EXAMPLE: * * * * TES00 51510 51520 377 XXXXX-XXXXX 790312 * 51521 377 * * * CALLING SEQUENCE: JSB PRMAP * * ON RETURN: A AND B REGS DESTROYED * * * CHANGE 3/8/80 * IT WAS NOTED THAT THE HIGH BOUND ON LOCAL COMMON WAS * ACTUALLY BEING PRINTED WITH THE HIGH + 1 VALUE. SO * THE HIGH ON COMMON EQUALLED THE LOW BOUND ON THE * FOLLOWING MODULE. THIS TENDED TO WORRY A FEW PEOPLE * WHEN THEY SAW IT AND SO WAS CHANGED TO PRINT INSTEAD * THE ACTUAL HIGH COMMON VALUE. * * ENT PRMAP,SUMAP EXT .MVW,.DFER,AB.RT,BPR.L,CAD.L,CBP.L EXT CPL.L,COM.L,CNUMO,DRKEY,FMPER,L.BUF EXT LNAMR,NM2.L,NM3.L,PGL.L,PL.ST,TH1.L EXT TH2.L * A EQU 0 B EQU 1 * N1 DEC -1 PRMAP NOP LDA PL.ST GET LIST/NO LIST FLAG SLA,RSS IF NO LISTING JMP PRMAP,I THEN RETURN * * CHECK FOR A LOCAL COMMON ALLOCATION * LDA COM.L SIZE OF LOCAL COMMON SZA,RSS JMP NOCOM NO COMMON ALLOCATED ISZ COMIN YES COMMON, FIRST ALLOCATION ? JMP NOCOM NO JSB .DFER YES, FIRST AND LOCAL DEF L.BUF MOVE COMMON NAME INTO MEMORY MAP DEF COM JSB CNUMO SET LOWER BOUND ON COMMON DEF *+3 DEF CAD.L RELOCATION BASE ADDRESS DEF L.BUF+3 LDA CAD.L ADA COM.L ADA N1 THIS IS THE 3/8/80 FIX STA VALUE HIGH ADDRESS ON COMMON JSB CNUMO SET UPPER BOUND INTO MESSAGE DEF *+3 DEF VALUE DEF L.BUF+7 LDA BLANK STA L.BUF+6 ALSO SET WORD INBETWEEN TO BLANKS LDA ALBUF AND OUTPUT THE MESSAGE LDB P20 JSB DRKEY TO THE LIST DEVICE * NOCOM LDA NM2.L MOVE NAME INTO MEMORY MAP INA LDB ALBUF JSB .MVW DEF P3 NOP LDA L.BUF+2 BLANK OUT THE SIXTH CHARACTER AND M7400 IOR BLNK2 STA L.BUF+2 LDA NM3.L MOVE NAMR COMMENT INTO MEMORY MAP INA LDB ALB14 JSB .MVW DEF NM3.L,I LENGTH OF COMMENT FIELD NOP JSB CNUMO CONVERT LOW MAIN ADDRESS DEF *+3 DEF TH1.L+0 PROGRAM LOWER BOUND DEF L.BUF+3 JSB CNUMO CONVERT LOW BASE PAGE ADDRESS DEF *+3 DEF BPR.L+0 BASE PAGE LOWER BOUND DEF L.BUF+10 LDA CPL.L DETERMINE HIGH MAIN VALUE SZA,RSS IS CURRENT PAGE LINKING ALLOWED ? JMP NCPL NO CCB ADB PGL.L GET PROGRAM LENGTH FROM NAM RECORD SSB JMP NCPL NO CURRENT PAGE LINKS OR PGL.L NO GOOD ADB TH1.L AND PROGRAM LENGTH TO LOWER BOUND STB VALUE SET HIGH MAIN VALUE JMP OUTPT OUTPUT THE LINE NCPL CCA NO CURRENT LINKS OR PGL.L NO GOOD ADA TH2.L HIGH MAIN IS TH2.L - 1 STA VALUE SET NEW HIGH MAIN OUTPT JSB CNUMO CONVERT TO OCTAL IN MAP DEF *+3 DEF VALUE DEF L.BUF+7 LDA BLANK BLANK THE UNSET WORD STA L.BUF+13 STA L.BUF+6 LDB NM3.L,I GET LENGTH OF COMMENT ADB P14 PLUS LENGTH OF MODULE NAME BLS CONVER TO NUMBER OF CHARACTERS LDA ALBUF MESS2 = ADDR MEMORY MAP JSB DRKEY PRINT: MODULE PROG BOUND BP BOUND SSA,RSS FMP ERROR ? JMP PRMAP,I RETURN JSB FMPER YES, FMP ERROR DEF LNAMR+0 OUTPUT MESSAGE JMP AB.RT AND GOT TO ABORT * ALB14 DEF L.BUF+14 BLNK2 OCT 40 M7400 OCT 77400 P3 DEC 3 VALUE BSS 1 P14 DEC 14 P26 DEC 26 BLANK ASC 3, COMIN DEC -1 COM ASC 3,COM P20 DEC 20 * * PRINT UPPER BOUNDS ON PROGRAM, BASE PAGE * * SUMAP NOP LDA PL.ST ARE WE LISTING ? SLA,RSS JMP SUMAP,I NO LIST SO GET OUT OF HERE JSB CNUMO CONVERT TO OCTAL DEF *+3 DEF CBP.L THE HIGH BASE PAGE + 1 DEF L.BUF+10 JSB .DFER BLANK OUT PROGRAM NAME ALBUF DEF L.BUF+0 DEF BLANK JSB .DFER AND BLANK OUT HIGH MAIN DEF L.BUF+6 DEF BLANK LDA BLANK STA B,I SET FINAL BLANK JSB CNUMO CONVERT NEW LOW MAIN DEF *+3 DEF TH2.L+0 DEF L.BUF+3 LDA ALBUF MESSAGE ADDRESS LDB P26 AND LENGTH JSB DRKEY OUTPUT TO USER JMP SUMAP,I AND RETURN END