/******* MULTI8 ERROR PRINTER ******* /LAST EDIT: 5-SEP-75, JV /LAST EDIT: 25-AUG-75, ELC /LAST EDIT: 21-JULY-75, JV /LAST EDIT: 4-JULY-75, ELC /LAST EDIT: 10-DECEMBER-74, ELC / /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: / /MD=6001 DF=1 PC=14357 AC=07777 ST=4400 / /THE OUTPUT OF THIS MODULE GOES VIA FILLQ INTO THE BG-OUTPUT BUFFER. / /NOTE: MD IS THE LAST TRAPPED INSTRUCTION AND THUS NOT ALWAYS / THE INSTRUCTION POINTED TO BY THE PC ! /ST IS THE BACKGROUND STATUS WITH THE FOLLOWING BIT ASSIGNMENTS: / /BIT 0: BG IS INACTIVE IF SET /BIT 1: BG IS CURRENTLY BEING EMULATED IF SET /BIT 2: BG MUST BE IN CORE FOR SOME EMULATOR OPERATION; / THE EMULATOR IS WAITING AT USLUT FOR AN ACKNOLAGE / FROM THE BACKGROUND SCHEDULER (BS) /BIT 3: THE BACKGROUND IS SWAPPED OUT TO DISK OR BEING TRANSFERRED /BIT 4: THE BACKGROUND IS IN LONG COMPUTATION; NOT INTERACTIVE /BIT 5: THE BACKGROUND IS IN ^B MODE /BIT 6: - /BIT 7: - /BIT 8: THE BACKGROUND HAS BEEN BLOCKED BY SOME TASK THAT NEEDS / ABSOLUTE PRIORITY NOW. /BIT 9: THE EMULATOR HAS ENCOUNTERRED AN ILLEGAL INSTRUCTION / OR ANOTHER FATAL ERROR /BIT 10:THE BG USER HAS LOGGED OUT AND SHOULD LOG IN BEFORE / THIS BACKGROUND CAN PROCEED. /BIT 11:THERE HAS BEEN AN HARD DISK ERROR DURING A SWAP / TRANSFER OF THIS BG. THE CORE IMMAGE MAY BE DAMMAGED ! *200 BEBASE, "B^100+"E&3777 /NAME= "BE" BETEMP, 200 /ONE PAGE, NO CONNECTS BECNT, 0 BE, DCA BEBASE JMS BESTRNG /PRINT CR-LF-"MD=", GET INSTR. UINST JMS BEOCT /TYPE CURRENT INSTRUCTION JMS BESTRNG /PRINT " DF=", GET FIELDS WORD UFLDS TAD (-BGFLD%10 JMS BEDGT /TYPE A DIGIT JMS BESTRNG /PRINT " PC=", GET FIELDS WORD UFLDS RTR RAR TAD (-BGFLD%10 JMS BEDGT /TYPE INSTRUCTION FIELD JMS BEGET UPC JMS BEOCT /TYPE LOW ORDER 12 BITS OF 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 /TYPE " ST=", GET STATUS WORD 0 JMS BEOCT /TYPE BG STATUS 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 TAD BETABLE /FETCH NEXT CHARRACTER ISZ .-1 /NOT RESTARTABLE ! SPA /NEGATIVE CHARACTER IS LAST ONE JMP BESTR1 JMS BETYPE JMP BESTRNG+1 BESTR1, JMS BETYPE /PRINT LAST CHAR TAD ("= JMS BETYPE TAD BESTRNG DCA BEGET JMP BEGET+1 /CHAIN TO BEGET BETYPE, 0 /ROUTINE TO PUT ONE CHAR. IN OUTPUT BUFFER DCA BETEMP BETYP1, TAD BEBASE DCA BASE TAD BETEMP CDTOIF CIF MONFLD JMS I (FILLQ /USES BASE ! UBUFOUT SNA CLA /BUFFER FULL JMP I BETYPE /OK, RETURN JMS BEGET UWRTR DCA .+3 JMS MONITOR /RUN OUTPUT WRITER RUN 0 CLA TAD .-2 DCA .+3 JMS MONITOR RESTRT 0 NOP JMS MONITOR /WAIT ONE SECOND STALL DGNTICK CLA CLL JMP BETYP1 /RETRY 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 BETYPE JMP I BEOCT BEDGT, 0 AND C7 TAD C260 JMS BETYPE JMP I BEDGT BEGET, 0 /ROUTINE TO FETCH A WORD FROM BG-DATA TAD BEBASE CDTOIF TAD I BEGET CDF MONFLD ISZ BEGET JMS DEFER JMP I BEGET BETABL, 215;212;207;"M;"D+4000 "D;"F+4000 " ;"P;"C+4000 "A;"C+4000 "S;"T+4000 $