File: BE.TK of Disk: Disks/MyPDP/m8-blue-rka1-rkb1
(Source file text) 

/BE.TK 3-MAR-80
/
/BACKGROUND ERROR PRINTER. IS CALLED BY EITHER THE INPUT READER
/OR THE CONTROL-B MODULE. WILL DISPLAY THE STATUS OF THE 
/INDICATED BG-MACHINE. ON ENTRY THE AC CONTAINS A POINTER TO
/THE BG-DATA AREA. BE WILL DISPLAY A LINE LIKE:
/
/PC=15436 AC=13045 DF=1 MQ=0007 GT=0 SW=1234
/BG=3 FLDS=07032000 TRAPPED 7402 (HALT)
/
/THE OUTPUT OF THIS MODULE GOES VIA FILLQ INTO
/THE BG-OUTPUT BUFFER.
BEBASE,	"B^100+"E&3777	/NAME= "BE"
	400		/TWO PAGES, NO CONNECTS
BEPNT,	BETABL
XBTYPE,	BETYPE
BECNT,	0

BE,	DCA BEBASE
	CDTOIF
	JMS BESTRNG	/PRINT "PC=", GET FIELDS WORD
	   UFLDS
	CLL RTR
	RAR
	JMS BEDGT	/TYPE INSTRUCTION FIELD
	JMS BEGET
	   UPC
	JMS BEOCT	/TYPE PC
	JMS BESTRNG	/TYPE "AC=", GET FIELDS WORD
	   UFLDS
	SPA CLA
	 AC0001
	JMS BEDGT	/TYPE LINK
	JMS BEGET
	   UAC
	JMS BEOCT	/TYPE ACCUMULATOR
	JMS BESTRNG	/PRINT "DF=", GET FIELDS WORD
	   UFLDS
	JMS BEDGT	/TYPE A DIGIT
	JMS BESTRNG	/TYPE " MQ=", GET UMQ
C1,	   UMQ
	JMS BEOCT	/TYPE MQ
	JMS BESTRNG	/PRINT "GT=", GET UFLDS
	   UFLDS
	RAL
	SPA CLA
	 AC0001
	JMS BEDGT	/TYPE A DIGIT
	JMS BESTRNG	/TYPE " SW=", GET VIRTUAL SWITCH REG.
	   USW
	JMS BEOCT
	JMS BESTRNG	/PRINT "<CR><LF>BG=", GET UNUMB
	   UNUMB
	CLL RTR
	RAR
	JMS BEDGT	/TYPE A DIGIT REPRESENTING BG NUMBER
	JMS BESTRNG	/PRINT " FLDS="
MHALT,	-HLT		/IGNORE BEGET PART
	CLA
FLDSLP,	JMS BEGET	/GET A REAL FIELD
	   UFLD0
	CLL RTR
	RAR
	JMS BEDGT	/PRINT IT (1 DIGIT, 0=NOT-RESIDENT)
	ISZ FLDSLP+1	/ONCE ONLY CODE
	ISZ FLDCNT	/MORE FIELDS?
	JMP FLDSLP	/YES
	JMS BESTRNG	/PRINT " TRAPPED "
	   UINST
	JMS BEOCT
	JMS BEGET	/GET UINST
	   UINST
	AND (7403
	TAD MHALT	/WAS IT SOME HALT?
	SNA CLA
	 JMP BEHALT	/YES
	JMS BESKIP	/NO, SKIP 'HALT'
	JMS BEGET
	   0		/GET STATUS
	AND C3		/(BGERR+SWPERR
	SNA
	 JMP BEEND	/NONE OF THESE
	AND C1
	SNA CLA
	 JMS BESKIP	/SKIP PAST 'SWAP ERROR'
BEHALT,	JMS BESTRNG	/TYPE (SWAP ERROR) OR (EMULATION ERROR)
FLDCNT,	-BGCORE		/OR (HALT) (IGNORE THE BEGET PART)
BEEND,	AC0001		/STAY IN ^B MODE
	JMS MONITOR
	   EXIT SWPOUT	/I HOPE YOU DON'T NEED IT OFTEN

BEAC,
BESTRNG,0		/ROUTINE TO PRINT A NUMBER OF STRINGS
BESTR0,	TAD I BEPNT	/FETCH NEXT CHARACTER
	ISZ BEPNT	/NOT RESTARTABLE !
	SPA		/NEGATIVE CHARACTER IS LAST ONE
	 JMP BESTR1
	JMS I XBTYPE
	JMP BESTR0
BESTR1,	JMS I XBTYPE	/PRINT LAST CHAR
	TAD BESTRNG
	DCA BEGET
	JMP BEGET+1	/CHAIN TO BEGET
BESKIP,	0
	CDTOIF
	TAD I BEPNT
	ISZ BEPNT
	SMA CLA
	 JMP .-3
	JMP I BESKIP

BEOCT,	0		/ROUTINE TO PRINT AC IN OCTAL
	DCA BEAC
	TAD M4
	DCA BECNT
BEOCT1,	TAD BEAC
	RTL
	RAL
	DCA BEAC
	TAD BEAC
	RAL
	JMS BEDGT	/TYPE A DIGIT
	ISZ BECNT
	 JMP BEOCT1
	TAD C240
	JMS I XBTYPE
	JMP I BEOCT

BEDGT,	0
	AND C7
	TAD C260
	JMS I XBTYPE
	JMP I BEDGT

BEGET,	0		/ROUTINE TO FETCH A WORD FROM BG-DATA
	TAD BEBASE
	CDTOIF
	TAD I BEGET
	CDF 10
	ISZ BEGET
	JMS DEFER
	CDTOIF
	JMP I BEGET

PAGE
YBBASE,	BEBASE
YBEGET,	BEGET
BETEMP,	0

BETYPE,	0		/ROUTINE TO PUT ONE CHAR. IN OUTPUT BUFFER
	DCA BETEMP
BETYP1,	TAD I YBBASE
	DCA BASE
	TAD BETEMP
	CDTOIF
	CIF 10
	JMS I (FILLQ	/USES BASE !
	   UBUFOUT
	 SNA CLA	/BUFFER FULL
	 JMP I BETYPE	/OK, RETURN
	JMS I YBEGET
	   UWRTR
	DCA .+3
	JMS MONITOR	/RUN OUTPUT WRITER
	   RUN
	   0
	 NOP
	JMP BETYP1	/RETRY
BETABL,	215;212;207;"P;"C;"=+4000
	"A;"C;"=+4000
	"D;"F;"=+4000
	" ;"M;"Q;"=+4000
	"G;"T;"=+4000
	" ;"S;"W;"=+4000
IFZERO GERMAN <
	215;212;"P;"A;"R;"T;"I;"T;"I;"O;"N;" ;"#+4000
	" ;"F;"I;"E;"L;"D;"S;":+4000
	" ;"T;"R;"A;"P;":+4000
	"(;"H;"A;"L;"T;")+4000
	"(;"S;"W;"A;"P;" ;"E;"R;"R;"R;"O;"R;")+4000
	"(;"E;"M;"U;"L;"A;"T;"I;"O;"N;" ;"E;"R;"R;"O;"R;")+4000
	>
IFNZRO GERMAN <
	215;212;"B;"E;"R;"E;"I;"C;"H;" ;"#+4000
	" ;"F;"E;"L;"D;"E;"R;":+4000
	" ;"F;"A;"L;"L;"E;":+4000
	"(;"H;"A;"L;"T;")+4000
	"(;"S;"W;"A;"P;"-;"F;"E;"H;"L;"E;"R;")+4000
	"(;"E;"M;"U;"L;"A;"T;"I;"O;"N;"S;"-;"F;"E;"H;"L;"E;"R;")+4000
	>
	$