-2,2 .IDENT /5.21W/ ; MRS01 -107 .NLIST .MACRO COMSTK X,Y .IF EQ Y .WORD 0 ;PROGRAM STATUS ; MRS01 .ENDC .IF EQ Y-1 .WORD 0 ;STACK POINTER ; MRS01 .ENDC .IF EQ Y-2 .WORD 0 ;PC BEFORE CRASH ; MRS01 .ENDC .IF EQ Y-3 .WORD 0 ;PS BEFORE CRASH ; MRS01 .ENDC .IF EQ Y-4 .WORD 0 ;USER STACK ; MRS01 .ENDC .IF GT Y-4 .IF LT Y-13 $B=Y-5 COMREG \$B .ENDC .ENDC .IF EQ Y-13 .WORD 0 ;SR0 ; MRS01 .ENDC .IF EQ Y-14 .WORD 0 ;SR1 ; MRS01 .ENDC .IF EQ Y-15 .WORD 0 ;SR2 ; MRS01 .ENDC .IF EQ Y-16 .WORD 0 ;SR3 ; MRS01 .ENDC .IF GT Y-16 $Z=Y-17 .IF GE $Z .IF LT $Z-8. UIPDR \$Z .ENDC .ENDC .IF GE $Z-8. .IF LT $Z-16. $B=$Z-8. UDPDR \$B .ENDC .ENDC .IF GE $Z-16. .IF LT $Z-24. $B=$Z-16. UIPAR \$B .ENDC .ENDC .IF GE $Z-24. .IF LT $Z-32. $B=$Z-24. UDPAR \$B .ENDC .ENDC .IF GE $Z-32. .IF LT $Z-40. $B=$Z-32. SIPDR \$B .ENDC .ENDC .IF GE $Z-40. .IF LT $Z-48. $B=$Z-40. SDPDR \$B .ENDC .ENDC .IF GE $Z-48. .IF LT $Z-56. $B=$Z-48. SIPAR \$B .ENDC .ENDC .IF GE $Z-56. .IF LT $Z-64. $B=$Z-56. SDPAR \$B .ENDC .ENDC .IF GE $Z-64. .IF LT $Z-72. $B=$Z-64. KIPDR \$B .ENDC .ENDC .IF GE $Z-72. .IF LT $Z-80. $B=$Z-72. KDPDR \$B .ENDC .ENDC .IF GE $Z-80. .IF LT $Z-88. $B=$Z-80. KIPAR \$B .ENDC .ENDC .IF GE $Z-88. .IF LT $Z-96. $B=$Z-88. KDPAR \$B .ENDC .ENDC .IF GE $Z-96. .WORD 0 ;STACK'X ; MRS01 .ENDC .ENDC ;Y>16 ; MRS01 .ENDM COMSTK .MACRO COMREG X .WORD 0 ;R'X ;MRS01 .ENDM COMREG .MACRO COMUMR X .WORD 0 ;UMR'X ; MRS01 .ENDM COMUMR .MACRO COMMMR X .WORD 0 ;MM'X ;MRS01 .ENDM COMMMR .MACRO COMEAE X .WORD 0 ;EAE'X ; MRS01 .ENDM COMEAE .MACRO COMFPP X .WORD 0 ;FPP'X ; MRS01 .ENDM COMFPP .MACRO UIPDR X .WORD 0 ; UISDR'X ; MRS01 .ENDM UIPDR .MACRO UDPDR X .WORD 0 ; UDSDR'X ; MRS01 .ENDM UDPDR .MACRO UIPAR X .WORD 0 ; UISAR'X ; MRS01 .ENDM UIPAR .MACRO UDPAR X .WORD 0 ; UDSAR'X ; MRS01 .ENDM UDPAR .MACRO SIPDR X .WORD 0 ; SISDR'X ; MRS01 .ENDM SIPDR .MACRO SDPDR X .WORD 0 ; SDSDR'X ; MRS01 .ENDM SDPDR .MACRO SIPAR X .WORD 0 ; SISAR'X ; MRS01 .ENDM SIPAR .MACRO SDPAR X .WORD 0 ; SDSAR'X ; MRS01 .ENDM SDPAR .MACRO KIPDR X .WORD 0 ; KISDR'X ; MRS01 .ENDM KIPDR .MACRO KDPDR X .WORD 0 ; KDSDR'X ; MRS01 .ENDM KDPDR .MACRO KIPAR X .IIF IDN ,<5> $RKAR5==. .WORD 0 ; KISAR'X ; MRS01 .ENDM KIPAR .MACRO KDPAR X .WORD 0 ; KDSAR'X ; MRS01 .ENDM KDPAR .LIST ; ; DEFINE BLOCK NUMBERS UP FRONT ; MRS01 ; .IF EQ C$$CDA-1 PBNH=0 PBNL=1 .ENDC .IF EQ C$$CDA-2 PBNH=0 PBNL=1 .ENDC .IF EQ C$$CDA-3 PBNH=0 PBNL=0 .ENDC .IF EQ C$$CDA-4 PBNH=0 PBNL=0 .ENDC .IF EQ C$$CDA-5 PBNH=0 PBNL=1 .ENDC .IF EQ C$$CDA-6 PBNH=0 PBNL=1 .ENDC .IF EQ C$$CDA-7 PBNH=0 PBNL=2 .ENDC .IF EQ C$$CDA-10 PBNH=0 PBNL=1 .ENDC .IF EQ C$$CDA-11 PBNH=0 PBNL=1 .ENDC .IF EQ C$$CDA-12 PBNH=0 PBNL=0 .ENDC .IF EQ C$$CDA-13 PBNH=0 PBNL=1 .ENDC .IF EQ C$$CDA-14 PBNH=0 PBNL=1 .ENDC -113 $MRS:: .WORD 0 ; SAVE KERNAL APR5 HERE ; MRS01 -117,185 -195,195 B=158. .REPT 159. ;... MAPPED STACK IS THIS LARGE ; MRS01 COMSTK \B,B B=B-1 .ENDR ; MRS01 -213,213 B=5 .REPT 7 ;R0 THRU R5 AND SP ; MRS01 COMREG \B B=B-1 .IF LT B ; MRS01 B=6 ; MRS01 .ENDC .ENDR ; MRS01 -217,217 .WORD 0 ;SAVED BPT/T-BIT VECTOR CONTENTS ; MRS01 -225,225 B=<31.-5.>*2-1 ;START HERE .REPT <31.-5.>*2 ;UNIBUS MAPPING REGISTERS ; MRS01 COMUMR \B B=B-1 .ENDR ; MRS01 -229,229 B=24. .REPT 25. ;MEMORY MANAGEMENT REGISTERS ; MRS01 COMMMR \B B=B-1 .ENDR ; MRS01 -235,235 B=2 .REPT 3 ;EAE REGISTERS ; MRS01 COMEAE \B ; MRS01 B=B-1 .ENDR ; MRS01 -243,243 B=26. .REPT 27. ;FLOATING POINT REGISTERS ; MRS01 COMFPP \B ; MRS01 B=B-1 .ENDR ; MRS01 -266,266 -329 MOV KISAR5,$MRS ; Save for later ; MRS01 MOV $XCOM2,KISAR5 ; MAP TO WHATEVER ; MRS01 JMP $CRASX ; JOIN COMMON JUNK ; MRS01 .ENDC ; C$$RSH ; MRS01 .END /