OCT 074025 +0.388012009141E-24 OCT 075200 OCT 021537 * OCT 042534 +0.211678009126E-02 OCT 153241 OCT 162361 * OCT 067314 +0.183302937676E-21 OCT 140567 OCT 137561 * * OCT 064401 +0.336015800197E+04 OCT 041626 OCT 104430 * OCT 070140 +0.911697334097E+04 OCT 014152 OCT 032742 * OCT 073632 +0.368560691832E-30 OCT 151411 OCT 020467 * * OCT 045430 +0.216450126987E+20 OCT 121027 OCT 121202 * OCT 131634 -0.111161366901E-08 OCT 044430 OCT 027707 * OCT 101052 -0.194717043359E+29 OCT 142161 OCT 132274 * * OCT 104244 -0.880691123011E+22 OCT 161600 OCT 047222 * OCT 041315 +0.334011980776E+02 OCT 064725 OCT 116414 * OCT 106646 -0.263670518933E+21 OCT 130440 OCT 020610 * * OCT 065170 +0.665431209112E+01 OCT 007764 OCT 106006 * OCT 102772 -0.346801235431E-11 OCT 165764 OCT 175665 * OCT 110120 -0.191876827741E+13 OCT 017746 OCT 013522 * * OCT 040240 +0.200012067011E+29 OCT 116103 OCT 161676 * OCT 136726 -0.999803245095E+25 OCT 126231 OCT 031650 * OCT 101367 -0.200051428111E+04 OCT 142601 OCT 025426 * * OCT 120520 -0.666301256707E+16 OCT 014773 OCT 034552 * OCT 055365 +0.200019760222E+15 OCT 056540 OCT 144140 * OCT 136540 -0.333117715953E+02 OCT 057571 OCT 032414 * * OCT 060543 +0.345990123677E-12 OCT 033503 OCT 072657 * OCT 121570 -0.110302660799E-04 OCT 127430 OCT 003341 * OCT 136243 -0.313673415647E-07 OCT 117441 OCT 137321 * * OCT 131643 -0.555610345980E-09 OCT 031347 OCT 160305 * OCT 045777 +0.996110388604E+07 OCT 043761 OCT 065060 * OCT 137661 -0.557779893008E-16 OCT 037111 OCT 013627 * * OCT 116412 -0.900016501999E-10 OCT 144640 OCT 106677 * OCT 074541 +0.333650123667E+14 OCT 113327 OCT 013132 * OCT 113645 -0.269748589362E-23 OCT 062306 OCT 111545 * * * ******************************************************************** * * HED FFP DIAGNOSTIC - TEST TABLE ORG 4000B * TSTD EQU * DEF TST00 .GOTO TEST DEF TST01 .ENTR TEST DEF TST02 .ENTP TEST DEF TST03 .SETP TEST DEF TST04 ..MAP DEF TST05 SNGLE TEST DEF TST06 DBLE TEST DEF TST07 .XADD TEST DEF TST08 .XSUB TEST DEF TST09 .XMPY TEST DEF TST10 .XDIV TEST DEF TST11 .DFER TEST DEF TST12 .XFER TEST DEC -1 * HED FFP DIAGNOSTIC - TEST 1 * ********* * .GOTO * ********* TST00 EQU * XGOTO NOP JSB MSGC,I OUTPUT MESSAGE. DEF MMS01 CLA RESET INDICATOR. STA INDIC * * CHECK 16 INDIRECTS (CHECKS SUBR. "GETQ1") * LDA M16 FILL LOCATIONS 1-16 OF STA TEMP LDB PTTB1 TEST TABLE WITH LDA PTTB2 STA TEMP+1 "DEF NEXT LOCATION,I". XGOT3 EQU * LDA TEMP+1 IOR BIT15 STA B,I INB ISZ TEMP+1 ISZ TEMP JMP XGOT3 LDA JNGOT STORE "JMP RETURN" IN LOC. 17 STA TTB17 CLA,INA SET SELECTION NR. STA J JMP XGOT1 GO TO MICRO-CODE. * * ******************************************************************** XGOT1 EQU * RAM .GOTO CALLING SEQUENCE FOR DEF *+18 ".GOTO" FIRMWARE. DEF J PTTB1 DEF TTB1 PTTB2 DEF TTB2 PTTB3 DEF TTB3 PTTB4 DEF TTB4 PTTB5 DEF TTB5 PTTB6 DEF TTB6 PTTB7 DEF TTB7 PTTB8 DEF TTB8 PTTB9 DEF TTB9 PTB10 DEF TTB10 PTB11 DEF TTB11 PTB12 DEF TTB12 PTB13 DEF TTB13 PTB14 DEF TTB14 PTB15 DEF TTB15 PTB16 DEF TTB16 ******************************************************************** ******************************************************************** PTB17 DEF TTB17 PTB18 DEF TTB18 TTB18 EQU * * * AFTER COMPLETION OF A SUBTEST, CONTROL WILL COME HERE TO * DETERMINE WHICH SUBTEST HRS TO BE EXECUTED NEXT. * NGOT EQU * LDA INDIC ADA DNGOT LDA A,I JMP A,I * DNGOT DEF *+1 DEF NGOT1 DEF NGOT2 DEF NGOT3 DEF NGOT4 DEF NGOT5 * * NGOT1 EQU * TEST FOR 16 INDIRECTS IS OK. CLA,INA SET INDIC=1. STA INDIC * * NOW CHECK FOR J=0 * LDA JRGOT FILL LDB M16 STB TEMP LOCATIONS OF LDB PTTB1 NGT11 EQU * TEST TABLE WITH STA B,I INB "JMP TO ERROR". ISZ TEMP JMP NGT11 * LDA JNGOT STORE "JMP TO RETURN" STA TTB1 IN LOC. 1. CLA SET SEL. NR AND STA J GO TO MIRCO-CODE. JMP XGOT1 * NGOT2 EQU * TEST FOR J=0 IS O.K. LDA .+2 SET INDIC=2. STA INDIC * * NOW CHECK FOR J<0 * CCA SET SEL. NR. AND STA J GO TO MICRO-CODE. JMP XGOT1 * NGOT3 EQU * TEST FOR J<0 IS O.K. LDA .+3 SET INDIC=3. STA INDIC * * NOW CHECK FOR J>16 * LDA JRGOT STORE "JMP ERROR" IN LOC. 1. STA TTB1 LDA JNGOT STORE "JMP RETURN" IN LOC. 16. STA TTB16 LDA P40 SET LOC. OF SEL. NR. AND STA J GO TO MIRCO-PROGRAM. JMP XGOT1 * NGOT4 EQU * TEST FOR J>16 IS OK. LDA .+4 SET INDIC=4. STA INDIC * * NOW CHECK FOR J=8 * LDA JRGOT STORE "JMP ERROR" IN LOC. 16. STA TTB16 LDA JNGOT STORE "JMP RETURN" IN LOC. 8 STA TTB8 LDA P8 GET SEL. NR. AND STA J GO TO MICRO. JMP XGOT1 * * NGOT5 EQU * JMP XGOTO,I RETURN. * * * * UPON DETECTING AN ERROR(IF FIRMWARE RETURNS TO * A TEST TABLE LOCATION!!!), CONTROL WILL COME HERE * TO DETERMINE WHICH ERROR MESSAGE HAS TO BE PRINTED. * RGOT EQU * LDA INDIC ADA DRGOT LDA A,I JMP A,I * DRGOT DEF *+1 DEF RGOT1 DEF RGOT2 DEF RGOT3 DEF RGOT4 DEF RGOT5 * RGOT1 EQU * * * TEST FAILED FOR 16 INDIRECTS * JSB ERMS,I PRINT ERROR MESSAGE. DEF RMS01 JMP NGOT1 GO DO NEXT SUBTEST. * RGOT2 EQU * * * TEST FAILED FOR J=0 * JSB ERMS,I PRINT ERROR MESSAGE. DEF RMS02 JMP NGOT2 DO NEXT SUBTEST. * RGOT3 EQU * * * TEST FAILED FOR J<0 * JSB ERMS,I PRINT ERROR MESSAGE. DEF RMS03 JMP NGOT3 DO NEXT SUBTEST. * RGOT4 EQU * * * TEST FAILED FOR J>16 * JSB ERMS,I PRINT ERROR MESSAGE. DEF RMS04 JMP NGOT4 DO NEXT SUBTEST. * RGOT5 EQU * * * TEST FAILED FOR J=8 * JSB ERMS,I PRINT ERROR MESSAGE. DEF RMS05 JMP XGOTO,I TEST.DONE. EXIT. * JRGOT JMP RGOT USED TO JUMP TO "ERROR ROUTINE" JNGOT JMP NGOT USED TO JUMP AFTER NON-ERROR EXIT * * * ****************** *** TEST TABLE *** ****************** * TTB1 BSS 1 TTB2 BSS 1 TTB3 BSS 1 TTB4 BSS 1 TTB5 BSS 1 TTB6 BSS 1 TTB7 BSS 1 TTB8 BSS 1 TTB9 BSS 1 TTB10 BSS 1 TTB11 BSS 1 TTB12 BSS 1 TTB13 BSS 1 TTB14 BSS 1 TTB15 BSS 1 TTB16 BSS 1 TTB17 BSS 1 * ******************************************************************** ****************** ****************** ENTRY NOP THE TEST TABLE + THE FOLLOWING * 4 LOCATIONS FORM THE CALLING * SEQUENCE FOR .ENTR AND .ENTP RNTY1 BSS 1 "RAM .ENTR" INSERTED BSS 1 "DEF TTB1" INSERTED FOR .ENTR * NOP'S FOR .ENTP BSS 1 "RSS" FOR .ENTR * "RAM .ENTP" INSERTED BSS 1 "DEF TTB1" INSERTED FOR .ENTP * ******************************************************************** ******************************************************************** ******************************************************************** STA TEMP+2 SAVE (A). STB TEMP+3 SAVE (B). LDA MPTES MEM. PROTECT TEST? SZA JMP NNTR4 YES. LDA ENTRY GET CONTENTS OF "ENTRY". CPA PNTRP CORRECT RETURN ADDRESS? JMP ENTRY,I YES. GO ON. JSB ERMS,I NO. OUTPUT ERROR MESSAGE. DEF RMS17 JMP PNTRP,I EXIT TO CORRECT RETURN ADDRESS * * HED SUBROUTINES USED BY .ENTR AND .ENTP TESTS * * THIS SUBROUTINE IS USED BY .ENTR & .ENTP TESTS * ENTRP NOP LDA RENTR SAVE RETURN ADDRESS. STA PNTRP JSB ENTRY RENTR DEF *+17 PPTB1 DEF PTTB1 DEF PTTB2 DEF PTTB3 DEF PTTB4 DEF PTTB5 DEF PTTB6 DEF PTTB7 DEF PTTB8 DEF PTTB9 DEF PTB10 DEF PTB11 DEF PTB12 DEF PTB13 DEF PTB14 DEF PTB15 DEF PTB16 JMP ENTRP,I * * ENTF1 NOP LDA RNTF1 SAVE RETURN ADDRESS. STA PNTRP JSB ENTRY RNTF1 DEF *+18 PPB1 DEF PTTB1 DEF PTTB2 DEF PTTB3 DEF PTTB4 DEF PTTB5 DEF PTTB6 DEF PTTB7 DEF PTTB8 DEF PTTB9 DEF PTB10 DEF PTB11 DEF PTB12 DEF PTB13 DEF PTB14 DEF PTB15 DEF PTB16 DEF PTB17 JMP ENTF1,I * * ENTF2 NOP LDA RNTF2 SAVE RETURN ADDRESS. STA PNTRP JSB ENTRY RNTF2 DEF *+19 PPPT1 DEF PTTB1 DEF PTTB2 DEF PTTB3 DEF PTTB4 DEF PTTB5 DEF PTTB6 DEF PTTB7 DEF PTTB8 DEF PTTB9 DEF PTB10 DEF PTB11 DEF PTB12 DEF PTB13 DEF PTB14 DEF PTB15 DEF PTB16 DEF PTB17 DEF PTB18 JMP ENTF2,I * * HED FFP DIAGNOSTIC - TEST 2 * ********* * .ENTR * ********* TST01 EQU * XENTR NOP JSB MSGC,I OUTPUT MESSAGE. DEF MMS02 * CLA RESET INDICATORS. STA MPTES STA INDIC * LDA .-3 SET UP CALLING SEQUENCE. LDB PINTR JSB SETUP * * TEST FOR ACTUAL NR. OF PARAMETERS < ALLOWED NR. * OF PARAMETERS. * TEST ALSO IF RETURN ADDRESS IS PROPERLY STORED * IN CORRECT LOCATION. MICRO PROGRAM SHOULD PROPERLY * PROCESS B-REG. ON ENTRY. * CLB RESET ENTRY LOCATION. STB TTB17 RESET LPST LOCATION OF TEST TABL STB ENTRY GO TO MICRO CODE WITH (B)=0. JSB ENTRP EXECUTE TEST. LDB PTB17 CHECK REGISTERS. JSB NTRCK LDA M16 LDB PPTB1 JSB ERPCK CHECK RESULTS. JMP RNTR1 ERROR. * LDB TTB17 NO ERROR. SZB,RSS LAST LOCATION CHANGED? JMP NNTR1 NO. RNTR1 EQU * JSB ERMS,I YES. ERROR. DEF RMS06 * * TEST FOR ACTUAL NR. OF PARAMETERS = ALLOWED NR. * OF PARAMETERS. * NNTR1 EQU * JSB ENTF1 EXECUTE TEST. LDB PNTRY CHECK REGISTERS. JSB NTRCK LDA M17 LDB PPB1 JSB ERPCK CHECK RESULTS. RSS JMP NNTR2 NO ERROR. JSB ERMS,I ERROR. DEF RMS07 * * TEST FOR ACTUAL NR. OF PARAMETERS > ALLOWED NR. * OF PARAMETERS. * NNTR2 EQU * JSB ENTF2 EXECUTE TEST. LDB PNTRY CHECK REGISTERS. JSB NTRCK LDA M17 LDB PPPT1 JSB ERPCK CHECK RESULT. RSS JMP NNTR3 NO ERROR. JSB ERMS,I ERROR. DEF RMS08 * * TEST WITH MEMORY PROTECT VIOLATION. * SET FENCE ADDRESS ABOVE "ENTRY". NNTR3 EQU * LDB PRNTY SET UP FOR MEMORY PROTECT TEST, JSB PMEMT,I CLA,INA SAY THAT WE ARE DOING MEM. PROT. STA INDIC TEST #1. JSB ENTRP EXECUTE TEST. * * * RETURN CODE FROM MEMORY PROTECT TESTS. * NNTR4 EQU * LDA MPIND SZA DID MEM. PROT. INTERRUPT OCCUR? JMP NNTR5 YES. JSB MTNOF NO. TURN OFF MEM. PROTECT. LDB PR053 PRINT ERROR MESSAGE. JSB PRNMP JMP NNTR6 EXIT TEST. * * NNTR5 EQU * LDA INDIC SLA,RSS WHICH TEST? JMP NNTR6 TEST #2. EXIT TEST. * * TEST #1 JUST DONE. NOW DO TEST #2. * SET FENCE ADDRESS ABOVE TTB1. * LDB PTTB2 SET UP MEM. PROTECT. JSB PMEMT,I LDA .+2 SAY THAT WE'RE DOING TEST #2. STA INDIC JSB ENTRP EXECUTE TEST. * * NNTR6 EQU * JMP XENTR,I EXIT. * * * * * SUBROUTINE TO CHECK CONTENTS OF A- AND B-REGISTERS * ON EXIT FROM MICRO. * ENTER WITH (B)=EXPECTED CONTENTS. * NTRCK NOP STB TEMP+4 SAVE EXPECTED CONTENTS OF B. LDA TEMP+2 GET ORIGINAL CONTENTS OF A. CPA PNTRP =RETURN ADDRESS? JMP NTCK1 YES. JSB ERMS,I NO. OUTPUT ERROR MESSAGE. DEF RMS20 NTCK1 EQU * LDB TEMP+3 GET ORIGINAL CONTENTS OF B. CPB TEMP+4 CORRECT? JMP NTRCK,I YES. EXIT. JSB ERMS,I NO. OUTPUT ERROR MESSAGE. DEF RMS21 JMP NTRCK,I EXIT. * * * * * SUBROUTINE TO CHECK RESULTS OF EXECUTION * OF .ENTR & .ENTP TESTS. * ENTER WITH (A)=-NR. OF LOCATIONS TO BE CHECKED. * (B)=ADDRESS OF PTTB1 * ERPCK NOP STA TEMP SET COUNTER. LDA PTTB1 (A) POINTS TO TTB1. ERPK1 EQU * CPB A,I EQUAL? RSS JMP ERPCK,I NO. ERROR. INB YES. BUMP ADDRESS. INA BUMP POINTER. ISZ TEMP DONE? JMP ERPK1 NO. ISZ ERPCK YES. BUMP RETURN ADDRESS AND JMP ERPCK,I EXIT. * * * * * SUBROUTINE TO SET UP CALLING SEQUENCE FOR * .ENTR & .ENTP TEST * * ENTER WITH (A)=-NR. OF WORDS TO BE INSERTED * AND (B)=STARTING ADDRESS OF INSERTIONS. * SETUP NOP STA TEMP SET COUNTER. LDA PRNTY SET DESTINATION POINTER. STA TEMP+1 STUP1 EQU * LDA B,I STORE FROM SOURCE INTO STA TEMP+1,I DESTINATION. INB BUMP POINTERS. ISZ TEMP+1 ISZ TEMP DONE? JMP STUP1 NO. JMP SETUP,I YES. * * * HED FFP DIAGNOSTIC - TEST 3 * ********* * .ENTP * ********* TST02 EQU * XENTP NOP JSB MSGC,I OUTPUT MESSAGE. DEF MMS03 CLA CLEAR INDICATOR STA MPTES * * * * .ENTP SUBROUTINE IS THE SAME SUBROUTINE AS .ENTR * BUT WITH A DIFFERENT ENTRY POINT. * SO DO JUST ONE TEST. * TEST FOR ACTUAL NR. OF PARAMETERS < ALLOWED NR. * OF PARAMETERS. * LDA .-4 SET UP CALLING SEQUENCE. LDB PINTP JSB SETUP CLB RESET RETURN ADDRESS LOCATION. STB TTB17 RESET LAST TEST TABLE LOCATION. STB ENTRY GO TO MICRO WITH (B)=0 JSB ENTRP EXECUTE TEST. * LDA M16 LDB PPTB1 JSB ERPCK CHECK RESULTS. JMP RNTP1 ERROR. * LDB TTB17 NO ERROR. SZB,RSS LAST LOCATION CHANGED? JMP RNTP2 NO. O.K. GO TO EXIT. RNTP1 EQU * JSB ERMS,I YES. OUTPUT ERROR MESSAGE. DEF RMS10 RNTP2 EQU * JMP XENTP,I EXIT. * * HED FFP DIAGNOSTIC - TEST 4 * * TST03 EQU * ********* * .SETP * ********* XSETP NOP JSB MSGC,I OUTPUT MESSAGE. DEF MMS04 * * DO REGULAR TEST * JSB STPPR PREPARE TEST TABLE. JSB STPGO GO TO MICRO. JSB STPCK CHECK RESULTS. * * DO MEMORY PROTECT TEST. * LDB PTTB2 SET FENCE ADDRESS ABOVE "TTB1". JSB PMEMT,I JSB STPGO GO TO MICRO. * * RETURN FROM MICRO. * LDA MPIND SZA DID MEM. PROT. INTERRUPT OCCUR? JMP XSTP3 YES. EXIT. JSB MTNOF NO. TURN OFF MEM. PROTECT. LDB PR104 PRINT ERROR MESSAGE. JSB PRNMP * XSTP3 EQU * JMP XSETP,I EXIT. * *