Google
 

Trailing-Edge - PDP-10 Archives - BB-P363B-SM_1985 - mcb/mcbda/mdawnd.bli
There is 1 other file named mdawnd.bli in the archive. Click here to see a list.
MODULE WINDOW (					!
		IDENT = '003010',
		LANGUAGE (BLISS16, BLISS36)
		) =
BEGIN
!
!                    COPYRIGHT (c) 1980, 1981, 1982
!                    DIGITAL EQUIPMENT CORPORATION
!                        Maynard, Massachusetts
!
!     This software is furnished under a license and may  be  used
!     and copied only in accordance with the terms of such license
!     and with the inclusion of the above copyright notice.   This
!     software  or any other copies thereof may not be provided or
!     otherwise made available to any other person.  No  title  to
!     and ownership of the software is hereby transferred.
!
!     The information  in  this  software  is  subject  to  change
!     without  notice  and should not be construed as a commitment
!     by DIGITAL EQUIPMENT CORPORATION.
!
!     DIGITAL assumes no responsibility for the use or reliability
!     of  its  software  on  equipment  which  is  not supplied by
!     DIGITAL.
!

!++
! FACILITY: MCBDA - MCB Crash Dump Analyzer
!
! ABSTRACT:
!
!
! ENVIRONMENT: ANY
!
! AUTHOR: ALAN D. PECKHAM	, CREATION DATE:
!
! MODIFIED BY:
!
! 	Alan D. Peckham, 10-Jul-80: VERSION 3
! 01	- Update RSX symbol references.
!--

!
! TABLE OF CONTENTS:
!

FORWARD ROUTINE
    PUTWND;					!

!
! INCLUDE FILES:
!

LIBRARY 'MDACOM';				!MDA common definitions.

LIBRARY 'RSXLIB';				!RSX definitions.

!
! MACROS:
!
!
! EQUATED SYMBOLS:
!
!	None
!
! OWN STORAGE:
!
!
! EXTERNAL REFERENCES:
!

EXTERNAL ROUTINE
    GETWRD,					!Get a word from the dump image.
    GETBYT,					!Get a byte from the dump image.
    SKIP : NOVALUE;				!Insert blank lines on listing.
GLOBAL ROUTINE PUTWND (BLANK_LINES, HEADER_ADDRESS) =

!++
! FUNCTIONAL DESCRIPTION:
!
!
! FORMAL PARAMETERS:
!
!	NONE
!
! IMPLICIT INPUTS:
!
!	NONE
!
! IMPLICIT OUTPUTS:
!
!	NONE
!
! ROUTINE VALUE:
!
!	NONE
!
! SIDE EFFECTS:
!
!	NONE
!
!--

    BEGIN

    LOCAL
	ADR,
	LAST_PDR,
	NAME_0,
	NAME_1,
	NUM_PDRS,
	NUM_WINDOWS,
	PDR_ADDRESS,
	WINDOW_ADDRESS;

    IF (WINDOW_ADDRESS = GETWRD (.HEADER_ADDRESS + FL$OFFSET (H_WND))) NEQ 0
    THEN

	IF (NUM_WINDOWS = GETWRD (.WINDOW_ADDRESS)) NEQ 0
	THEN
	    BEGIN

	    IF (.NUM_WINDOWS GTR RSX_MAX_WND)
	    THEN
		BEGIN
		PUTLN (1, CH$ASCIZ (WARNING, 'TOO MANY WINDOWS (%M.)'), .NUM_WINDOWS);
		NUM_WINDOWS = RSX_MAX_WND
		END;

	    PUTLN (.BLANK_LINES, CH$ASCIZ ('%4SWINDOW BLOCKS:'));
	    PUTLN (1, CH$ASCIZ ('%5SPAR     VIRT LIMITS   ATT DESC  WND SIZE  OFFSET   PDR    CONTENTS'));
	    PUTLN (0, CH$ASCIZ ('%5S---     -----------   --------  --------  ------  ------  --------'));
	    WINDOW_ADDRESS = .WINDOW_ADDRESS + 2;

	    WHILE (NUM_WINDOWS = .NUM_WINDOWS - 1) GEQ 0 DO
		BEGIN
		NAME_0 = (NAME_1 = 0);

		IF (ADR = GETWRD (.WINDOW_ADDRESS + FL$OFFSET (W_BPCB))) NEQ 0
		THEN
		    BEGIN
		    NAME_0 = GETWRD (.ADR + FL$OFFSET (P_NAM) + 0);
		    NAME_1 = GETWRD (.ADR + FL$OFFSET (P_NAM) + 2)
		    END;

		PDR_ADDRESS = (GETBYT (.WINDOW_ADDRESS + FL$OFFSET (W_BFPD)) + %O'177400');
		NUM_PDRS = GETBYT (.WINDOW_ADDRESS + FL$OFFSET (W_BNPD));
		LAST_PDR = GETWRD (.WINDOW_ADDRESS + FL$OFFSET (W_BLPD));
		PUTLN (0, CH$ASCIZ ('%4S%2R  %P %P   %P    %P   %P  %P   %P'), .NAME_0, .NAME_1,
		    GETWRD (.WINDOW_ADDRESS + FL$OFFSET (W_BLVR)),
		    GETWRD (.WINDOW_ADDRESS + FL$OFFSET (W_BHVR)),
		    GETWRD (.WINDOW_ADDRESS + FL$OFFSET (W_BATT)),
		    GETWRD (.WINDOW_ADDRESS + FL$OFFSET (W_BSIZ)),
		    GETWRD (.WINDOW_ADDRESS + FL$OFFSET (W_BOFF)), .PDR_ADDRESS,
		    (IF .NUM_PDRS GTR 1 THEN (.LAST_PDR<0, 8> + %O'77400') ELSE .LAST_PDR));

		WHILE (NUM_PDRS = .NUM_PDRS - 1) GTR 0 DO
		    PUTLN (0, CH$ASCIZ ('%56T%P   %P'), (PDR_ADDRESS = .PDR_ADDRESS + 2),
			(IF .NUM_PDRS GTR 1 THEN (.LAST_PDR<0, 8> + %O'77400') ELSE .LAST_PDR));

		WINDOW_ADDRESS = .WINDOW_ADDRESS + W_BLGH^1
		END

	    END;

    TRUE
    END;					!End of PUTWND

END						!End of module

ELUDOM