Google
 

Trailing-Edge - PDP-10 Archives - BB-H348C-RM_1982 - swskit-v21/listings/rsx11s/panic.list
There are no other files named panic.list in the archive.
PANIC	MACRO M1110  22-AUG-79 07:08  PAGE 3


      1						.TITLE PANIC
      2						.IDENT	/05.03/
      3
      4					;
      5					; COPYRIGHT (C) 1974,1976,1977
      6					; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
      7					;
      8					; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ON A
      9					; SINGLE COMPUTER SYSTEM AND MAY  BE  COPIED   ONLY  WITH  THE
     10					; INCLUSION OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE,  OR
     11					; ANY OTHER COPIES THEREOF, MAY NOT BE PROVIDED  OR  OTHERWISE
     12					; MADE AVAILABLE TO ANY OTHER PERSON   EXCEPT FOR  USE ON SUCH
     13					; SYSTEM AND TO ONE WHO AGREES TO THESE LICENSE  TERMS.  TITLE
     14					; TO AND OWNERSHIP OF THE SOFTWARE SHALL AT ALL  TIMES  REMAIN
     15					; IN DEC.
     16					;
     17					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
     18					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
     19					; EQUIPMENT CORPORATION.
     20					;
     21					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF
     22					; ITS SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
     23					;
     24					; VERSION 05.02
     25					;
     26					; D. N. CUTLER 4-AUG-73
     27					;
     28					; MODIFIED BY:
     29					;
     30					;	J. M. GILBERT 22-APR-74
     31					;
     32					;	D. N. CUTLER 11-MAY-75
     33					;
     34					;		DC062 -- REFERENCE PROCESSOR STATUS WORD VIA MFPS/MTPS
     35					;			INSTRUCTIONS FOR THE LSI-11.
     36					;
     37					;	K. E. KINNEAR 16-DEC-76
     38					;
     39					;		KK002 -- ADDITION OF SUPPORT FOR PROCESSORS
     40					;			WITH NO SWITCH REGISTERS.
     41					;
     42					;	P. J. BEZEREDI 18-AUG-77
     43					;
     44					;		PB031 -- ADDITION OF SUPPORT FOR NEW CRASH DUMP
     45					;			MODULE.
     46					;
     47					;
     48					; PANIC DUMP ROUTINE
     49					;
     50
     51
     52						.IF DF	P$$NIC							; PB031
     53														;**-1
     54					;
     55					; MACRO LIBRARY CALLS
     56					;
     57
PANIC	MACRO M1110  22-AUG-79 07:08  PAGE 3-1


     58						.MCALL	HWDDF$
     59						HWDDF$			;DEFINE HARDWARE REGISTERS
     60
     61					;
     62					; LOCAL DATA
     63					;
     64
     65														; PB031
     66						.IF NDF	C$$RSH							; PB031
     67														; PB031
     68					$CRPBF::.BLKW	18.		;PANIC'S REGISTER BUFFER AND STACK	; PB031
     69					$CRPST::			;TOP OF PANIC'S TEMPORARY STACK		; PB031
     70														; PB031
     71						.ENDC								; PB031
     72														; PB031
     73														;**-1
     74						.ENDC
     75
     76
     77					;+
     78					; **-$PANIC-PANIC DUMP
     79					;
     80					; THIS ROUTINE IS ENTERED WHEN THE SYSTEM CRASHES OR BY FORCING AN
     81					; ENTRY VIA THE CONSOLE SWITCHES. ON ENTRY THE PROCESSOR STATUS AND
     82					; REGISTERS ARE SAVED IN A TEMPORARY STORAGE AREA. PANIC THEN HALTS
     83					; AWAITING A SET OF DUMP LIMITS TO BE ENTERED IN THE SWITCH REGISTER.
     84					; THE FOLLOWING PROCEDURE IS USED TO OBTAIN A DUMP:
     85					;
     86					;	1-WITH THE PROCESSOR HALTED ENTER THE LOW DUMP LIMIT IN THE
     87					;		SWITCH REGISTER.
     88					;	2-DEPRESS CONTINUE. THE PROCESSOR WILL AGAIN HALT.
     89					;	3-WITH THE PROCESSOR HALTED ENTER THE HIGH DUMP LIMIT IN THE
     90					;		SWITCH REGISTER.
     91					;	4-DEPRESS CONTINUE. THE DUMP WILL BE OUTPUT ON THE DEVICE
     92					;		'P$$NIC'.						; PB031
     93					;									;**-1
     94					; THE FIRST LINE OF OUTPUT IS THE DUMP OF PS,R0,R1,R2,R3,R4,R5, AND SP.
     95					; SUCCEEDING LINES OF OUTPUT ARE THE ACTUAL DUMP. WHEN THE DUMP IS
     96					; FINISHED, PANIC AGAIN HALTS AWAITING A NEW SET OF DUMP LIMITS TO
     97					; BE INPUT.
     98					;-
     99
    100						.ENABL	LSB
    101	000000				$PANIC::			;PANIC DUMP ROUTINE			; PB031
    102														;**-1
    103
    104						.IF NDF	P$$NIC							; PB031
    105														; PB031
    106	000000	000167 	000000G			JMP	$BTSTP		;RE-BOOT SYSTEM IF NO PANIC DUMP	; PB031
    107														; PB031
    108						.IFF								; PB031
    109														; PB031
    110						HALT			;GET STARTING DUMP LIMIT		; PB031
    111														;**-1
    112
    113						.IF DF	M$$MGE
    114
PANIC	MACRO M1110  22-AUG-79 07:08  PAGE 3-2


    115						MOV	PS,$CRPBF	;SAVE PS WORD				; PB031
    116														;**-1
    117						.IFF
    118
    119						MFPS	$CRPBF		;SAVE PS WORD				; PB031
    120														;**-1
    121						.ENDC
    122
    123
    124						MTPS	#PR7		;LOCK OUT INTERRUPTS
    125						MOV	R0,$CRPBF+2	;;;SAVE RR0				; PB031
    126						MOV	#$CRPBF+4,R0	;;;POINT TO SAVE AREA			; PB031
    127						MOV	R1,(R0)+	;SAVE REGISTER R1 TO SP			;**-2
    128						MOV	R2,(R0)+	;
    129						MOV	R3,(R0)+	;
    130						MOV	R4,(R0)+	;
    131						MOV	R5,(R0)+	;
    132						MOV	SP,(R0)		;
    133					10$:	MOV	#$CRPST,SP	;SET NEW STACK POINTER			; PB031
    134														;**-7
    135
    136						.IF NDF	S$$WRG							; KK002
    137														;**-1
    138						MOV	@#0,-(SP)	;
    139
    140						.IFF
    141
    142						MOV	SWR,-(SP)	;
    143
    144						.IFTF
    145
    146						HALT			;GET ENDING DUMP LIMIT
    147						MOV	#$CRPBF,R0	;ALWAYS DUMP REGISTERS FIRST		; PB031
    148						MOV	#$CRPBF+16,R1	;					; PB031
    149						CALL	$PDMP		;DUMP REGISTERS				;**-2
    150
    151						.IFT
    152
    153						MOV	@#0,R1		;GET LAST WORD ADDRESS
    154
    155						.IFF
    156
    157						MOV	SWR,R1		;GET LAST WORD ADDRESS
    158
    159						.ENDC
    160
    161
    162						MOV	(SP)+,R0	;AND FIRST WORD ADDRESS
    163						BIC	#1,R0		;MAKE SURE START IS EVEN
    164						CALL	20$		;DUMP MEMORY
    165						BR	10$		;GO AGAIN
    166
    167					;
    168					; DUMP SELECTED BLOCK OF MEMORY
    169					;
    170
    171					$PDMP::	MOV	#P$$NIC,R5	;SET OUTPUT DEVICE CSR			; PB031
PANIC	MACRO M1110  22-AUG-79 07:08  PAGE 3-3


    172						MOV	#14,R2		;OUTPUT A FORM FEED			;**-1
    173						CALL	$OUT		;
    174					20$:	MOV	R0,-(SP)	;SAVE FOR RELATIVE ADDRESS
    175					30$:	MOV	R0,-(SP)	;SAVE START OF LINE ADDRESS
    176						MOV	R0,R2		;SAVE CURRENT LINE
    177					40$:	MOV	#8.,R4		;COUNT FOR 1 LINE
    178					50$:	CMP	(R0)+,@(SP)	;ARE WORDS EQUAL?
    179						BNE	60$		;IF NOT, PRINT LINE
    180						DEC	R4		;COUNT THROUGH LINE
    181						BGT	50$		;IF GT, NOT THROUGH YET
    182						MOV	R0,R2		;UPDATE LINE STARTING ADDRESS
    183						CMP	R0,R1		;AT END OF DUMP?
    184						BLOS	40$		;IF NOT, CHECK NEXT LINE
    185					60$:	CMP	R2,(SP)		;ANY LINES SUPPRESSED?
    186						BEQ	70$		;NO, IF STARTING ADDRESS SAME
    187						MOV	(SP),R3		;EDIT OUT OLD STARTING ADDRESS
    188						MOV	@(SP),R0	;GET MASTER WORD
    189						MOV	R2,(SP)		;NOW HAVE NEW STARTING ADDRESS
    190						CALL	$EDIT		;WORD EDIT
    191						MOV	#'-,R2		;SEPARATE ADDRESSES WITH MINUS
    192						CALL	$OUT		;OUTPUT MINUS
    193						CALL	$OUTB		;AND NOW A BLANK
    194						MOV	(SP),R3		;NOW OUTPUT LAST SUPPRESSED WORD ADDRESS
    195						TST	-(R3)		;2 LESS THAN NEW START OF LINE
    196						CALL	$EDIT		;OUTPUT LAST WORD OF IDENTICAL BLOCK
    197						CALL	$OUTB		;ISSUE ANOTHER BLANK
    198						MOV	R0,R3		;NOW GET REPEATED WORD
    199						CALL	$EDIT		;OUTPUT REPEATED WORD
    200						CALL	$CRLF		;ISSUE CARRIAGE RETURN/LINE FEED
    201						CALL	$OUT		;OUTPUT ANOTHER LINE FEED
    202						MOV	(SP)+,R0	;PUT START OF LINE IN R0
    203						CMP	R0,R1		;AT END OF DUMP?
    204						BHI	110$		;IF HI, AT END
    205						MOV	R0,-(SP)	;GET BACK IN SYNC WITH NEXT ROUTINE
    206					70$:	MOV	(SP),R0		;RECAPTURE NEW START OF LINE
    207						CALL	WORD		;EDIT WORDS
    208						MOV	(SP),R0		;RETRIEVE STARTING ADDRESS
    209						CALL	BYTE		;EDIT BYTES
    210						MOV	(SP)+,R0	;RETRIEVE STARTING ADDRESS
    211						MOV	#5,R4		;SET LOOP COUNT
    212					80$:	CALL	$OUTB		;OUTPUT A BLANK
    213						DEC	R4		;ANY MORE?
    214						BGT	80$		;IF GT YES
    215						MOV	#8.,R4		;SET REPEAT COUNT
    216					90$:	MOV	(R0)+,R3	;GET NEXT WORD
    217						CALL	120$		;OUTPUT LOW BYTE
    218						SWAB	R3		;SWAP BYTES
    219						CALL	120$		;OUTPUT HIGH BYTE
    220						DEC	R4		;ANY MORE THIS LINE?
    221						BGT	90$		;IF GT YES
    222					100$:	CALL	$CRLF		;OUTPUT A CR-LF
    223						CALL	$OUT		;OUTPUT ANOTHER LF
    224						CMP	R0,R1		;END OF EDIT YET?
    225						BLOS	30$		;IF NOT, GO AGAIN
    226					110$:	TST	(SP)+		;REMOVE START FOR RELATIVE ADDRESS
    227						CALL	$OUT		;OUTPUT 2 MORE LINE FEEDS
    228						BR	$OUT		;AND DON'T RETURN HERE
PANIC	MACRO M1110  22-AUG-79 07:08  PAGE 3-4


    229					120$:	CALL	$OUTB		;OUTPUT TWO BLANKS
    230						CALL	$OUTB		;
    231						BICB	#200,R3		;CLEAR PARITY BIT
    232						CMPB	R2,R3		;CONTROL CHARACTER?
    233						BLOS	130$		;IF LOS NO
    234						BISB	#100,R3		;CONVERT TO CHARACTER
    235						MOVB	#136,R2		;SET TO OUTPUT CARET
    236					130$:	CALL	$OUT		;OUTPUT BLANK OR CARET
    237						MOVB	R3,R2		;SET BYTE TO OUTPUT
    238						INCB	R3		;CHARACTER A RUBOUT?
    239						BMI	$OUTB		;IF MI YES OUTPUT A BLANK
    240						BR	$OUT		;OUTPUT CHARACTER
    241						.DSABL	LSB
    242
    243					;
    244					; WORD EDIT
    245					;
    246
    247					WORD:	MOV	R0,R3		;EDIT LINE ADDRESS
    248						MOV	#9.,R4		;SET LOOP COUNT
    249						BR	20$		;
    250					10$:	MOV	(R0)+,R3	;GET NEXT WORD
    251					20$:	CALL	$EDIT		;EDIT WORD
    252						CALL	$OUTB		;OUTPUT ANOTHER BLANK
    253						DEC	R4		;ANY MORE THIS LINE?
    254						BGT	10$		;IF GT YES
    255						BR	$CRLF		;
    256
    257					;
    258					; BYTE EDIT
    259					;
    260
    261					BYTE:	MOV	R0,R3		;COPY ADDRESS OF LINE
    262						SUB	4(SP),R3	;CALCULATE BLOCK OFFSET
    263						CALL	$EDIT		;EDIT OFFSET FROM START OF BLOCK
    264						MOV	#8.,R4		;SET LOOP COUNT
    265					10$:	MOV	(R0)+,R3	;GET NEXT WORD
    266						CALL	EBYT		;EDIT HIGH BYTE
    267						CALL	EBYT		;EDIT LOW BYTE
    268						DEC	R4		;ANY MORE THIS LINE?
    269						BGT	10$		;IF GT YES
    270
    271						.ENDC
    272
    273
    274						.IF DF	C$$TTY!P$$NIC						; PB031
    275														;**-1
    276
    277					;
    278					; SUBROUTINE TO OUTPUT CR-LF
    279					;
    280
    281					$CRLF::	MOVB	#15,R2		;OUTPUT CR
    282						CALL	$OUT		;
    283						MOVB	#12,R2		;OUTPUT A LF
    284						BR	$OUT		;
    285
PANIC	MACRO M1110  22-AUG-79 07:08  PAGE 3-5


    286					;
    287					; SUBROUTINE TO EDIT ONE BYTE
    288					;
    289
    290					EBYT:	CLR	R2		;CLEAR CHARACTER ACCUMULATOR
    291						MOV	#3,-(SP)	;SET CHARACTER COUNT
    292						BR	EDT2		;COLLECT HIGH ORDER 2 BITS
    293
    294					;
    295					; SUBROUTINE TO EDIT ONE WORD
    296					;
    297
    298					$EDIT::	CLR	R2		;CLEAR CHARACTER ACCUMULATOR
    299						MOV	#6,-(SP)	;SET CHARACTER COUNT
    300						BR	EDT3		;COLLECT HIGH ORDER BIT
    301					EDT1:	CLR	R2		;COLLECT NEXT 3 BITS
    302						ASL	R3		;
    303						ROL	R2		;
    304					EDT2:	ASL	R3		;
    305						ROL	R2		;
    306					EDT3:	ASL	R3		;
    307						ROL	R2		;
    308						ADD	#'0,R2		;ADD DIGIT BIAS
    309						CALL	$OUT		;OUTPUT CHARACTER
    310						DEC	(SP)		;ANY MORE?
    311						BGT	EDT1		;IF GT YES
    312						TST	(SP)+		;CLEAR STACK
    313
    314					;
    315					; OUTPUT SUBROUTINES
    316					;
    317
    318					$OUTB::	MOVB	#40,R2		;SET TO OUTPUT BLANK
    319														; PB031
    320						.ENDC								; PB031
    321														; PB031
    322														; PB031
    323						.IF DF	C$$RSH!P$$NIC						; PB031
    324														; PB031
    325					$OUT::	TSTB	(R5)		;DEVICE READY?
    326						BPL	$OUT		;IF PL NO
    327						MOVB	R2,2(R5)	;OUTPUT CHARACTER
    328						CMPB	#15,R2		;CARRIAGE RETURN?
    329						BNE	20$		;IF NE NO
    330						CMP	#177514,R5	;OUTPUT DEVICE LINE PRINTER?
    331						BEQ	20$		;IF EQ YES
    332						CLR	R2		;SET ZERO FILL CHARACTER
    333						MOV	#5,-(SP)	;SET FILL COUNT
    334					10$:	CALL	$OUT		;OUTPUT A FILL CHARACTER
    335						DEC	(SP)		;ANY MORE TO FILL?
    336						BGT	10$		;IF GT YES
    337						TST	(SP)+		;CLEAN STACK
    338					20$:	RETURN			;
    339
    340						.ENDC
    341
    342
PANIC	MACRO M1110  22-AUG-79 07:08  PAGE 3-6


    343		000001 				.END
PANIC	MACRO M1110  22-AUG-79 07:08  PAGE 3-7
SYMBOL TABLE

A$$CHK= 000000   	I$$RDN= 000000   	L$$DRV= 000000   	P$$TPT= 000000   	S$$YSZ= 001740
A$$CPS= 000000   	K$$CNT= 177546   	M$$CRB= 000124   	R$$DER= 000000   	V$$CTR= 001200
A$$TRP= 000000   	K$$CSR= 177546   	M$$MGE= 000000   	R$$EXV= 000000   	V$$RSN= 000031
C$$ORE= 002000   	K$$IEN= 000115   	M$$NET= 000000   	R$$SND= 000000   	X$$DBT= 000000
G$$TPP= 000000   	K$$LDC= 000001   	M$$NT2= 000000   	R$$11M= 000000   	$BTSTP= ****** GX
G$$TTK= 000000   	K$$TPS= 000074   	N$$LDV= 000001   	R$$11S= 000000   	$PANIC  000000RG
H$$RTZ= 000074   	L$$ASG= 000000   	P$$RTY= 000000

. ABS.	000000	   000
      	000004	   001
ERRORS DETECTED:  0

VIRTUAL MEMORY USED:  1150 WORDS  ( 5 PAGES)
DYNAMIC MEMORY:  2980 WORDS  ( 11 PAGES)
ELAPSED TIME:  00:00:13
[11,24]PANIC,SY0:[11,34]PANIC/-SP=[1,1]EXEMC/ML,[11,10]RSXMC/PA:1,PANIC