IMD 1.16: 2/09/2008 13:53:52 84-93721-01 a200 f72101 scout battery backup hardware test program 17jan82    @0|)wwЀЀtQql)  " }gA `_8M@IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIOS4 MF181040616103004820115172937 820115172937JF72101 VOLSCOUT BATTERY BACK-UP HARDWARE TEST PROGRAM 84-93721-01 A200   IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII_8M@iGyy GGG`HZ@ b G`^Y e IQ BBp@;:9 :7P@ G:پN 8!0. * C'xC# b# }B @0DAJL w+™ЀЀΖQA1"   i ž} š} @EEFF)DEۄF8 џ} ԟ} ̟} * `jUBBI,v BI, # @ G9H@pܾrCHC C GTq` Lg"gEXC P+s=胾P+c fQN p $Rxnj  ޔniZ ތ⊞ } }HGž Ÿ@ALS)"$ C k20j.h( +$`%ꂜ\1 !M' y %'+os慾)sY ed|{ @8 o O m J K i gN )V% t%sLn`"E F. F„ D>) =`;nrgy w"G,{Kq1 A&}E*`(t@% ;c  765y342(.OS:: SYS"iwvc Bc A@6<# Ic B# gIjHc r TITL SCOUT NM4/04 BATTERY BACK-UP HARWARE TEST (84-93721-10) TITL PROGRAM IDENTIFICATION, NAM'S AND EXTR'S ********************************************************************** * * SCOUT NM4/04 HARWARE TEST PROGRAM * *  BATTERY BACK-UP BOARD * * * COPYRIGHT 1980, COMPUTER AUTOMATION * ********************************************************************** ********************************************************************** * * THIS IS THE TEST MONITOR FOR THE 54123 (BBU) BOARD. * IT IS LINKED WITH THE HFT:EXEC AND HFT LIBRARY MODULES * AND OTHER BOARD TEST MONITORS AS REQUIRED TO CREATE * A ROMMABLE DIAGNOSTIC SYSTEM. * ********************************************************************** ********************************************************************** ROM REL NAM HFT:BBU EXTR TSTCNFG,LSTCNFG EXTR O:MSG,FLUSH EXTR BLINKER,VERIFY,LVERIFY EXTR SIGNOFF,LSIGNOFF  EXTR YES:NO TITL TITL EQUATES AND COMMON STORAGE DEFINITIONS SPACE 1 ********************************************************************** * * EQUATES * ************************************************************* ********* SPACE 1 PICADDR EQU :40 PIC BOARD ADDRESS RLYADDR EQU :50 RLY BORAD ADDRESS  SPACE 4 ***************************************************************************** * * COMMON STORAGE AND TIMING COUNTS TO ALLOW CHANGING * ***************************************************************************** SPACE  1 ROMPC EQU $ ABS :32 COMMON EQU $ TTSTFLG RES 1 TECH-TEST FLAG SPWRFLAG RES 1  /SPWR CHECKING INDICATOR (HIGH OR LOW) ORG ROMPC MESSAGE REL BYTE :0D,:0A,' #54123 - BATTERY BACK-UP UNIT' BYTE ' (B2)' JUMPTABL REL WORD 23 WORD -1 WORD HFT:BBU TITL ********************************************************************** * DATA WORD 0 FROM PIC BOARD (USED FOR INPUT) ********************************************************************** * * ........NOT USED....... 7 6 5 4 3 2 1 0 * * LEGEND: * BIT 0 - /RST * BIT 1 - NOT USED * BIT 2 - /PFD *  BIT 3 - 5V * BIT 4 - 5VI * BIT 5 - ALARM * BIT 6 - NOT USED *  BIT 7 - NOT USED ********************************************************************** * DATA WORD 1 FROM PIC BOARD (USED FOR OUTPUT) ********************************************************************** * * ...NOT USED........ 8 ...NOT USED.. 2 1 0 * * LEGEND: * BIT 0 - BATTERY DISSABLE * BIT 1 - SWITCH RELAY TO LOGIC LVAC * BIT 2 - LOGIC LVAC * BITS 3..7 - NOT USED * BIT 8 - /RST * BITS 9..15 - NOT USED * ******************************************************************** * STATUS WORD FROM PIC (USED FOR INPUT) ********************************************************************* * *  BIT 7 - /SPWR THIS IS THE ONLY BIT READ FROM THE STATUS * TITL TITL MAIN LINE CODE ********************************************************************** * * THE MAIN LINE CODE CONTROLS THE EXECUTION OF EACH TEST AND *  SUPERVISES THE ERROR HANDLING * * IN ORDER TO CONFORM TO THE REST OF THE TEST MONITORS IN THE * MANUFACTURING DIAGNOSTICS SYSTEM,AN ASSUMPTION * WAS MADE THAT THERE COULD BE THE POSSIBILITY,IN THE FUTURE, * OF TESTING MULTIPLE BOARDS AND POSSIBLY (?) 'BURN-IN' MODE. * NO CLAIM OR EFFORT HAS BEEN MADE TO EXECUTE FOR MULTIPLE * BOARDS OR 'BURN-IN' MODE. ONLY THE 'HOOKS' WERE INCORPORATED. * * THE BBU BOARD HAS NO SELECTABLE DEVICE ADDRESS; ITS MAIN *  MAIN OBJECTIVE IS TO SUPPORT THE MEMORY ON A POWER FAIL * CONDITION. * ******** EVEN THOUGH SOME EXPENSIVE ALTERNATIVES CAN BE DEVISED ****** * TO TEST MORE THAN ONE BOARD AT A TIME AND FOR IT TO EXECUTE * IN BURN-IN MODE, THIS DIAGNOSTIC IS NOT EXPECTED TO DO SO. * * FIRST SECTION (I) * BRD:DEF HFT:BBU CRNTBUT RES 1 CURRENT BOARD UNDER TEST ERRADDR RES 1 POINTER TO ERROR MESSAGE ENDEF BBUCNFG BYTE :0C,' BATTERY BACK-U P UNIT - PROG REV ' BBUREV BYTE '(A2) ' BYTE ' TESTS BOARD REVS B1,B2' BYTE :0D,:0A,:0A,' FOLLOW TEST SPECIFICATION #58-54123-00' BYTE :0A LBBUCNFG WORD $-BBUCNFG*2 HFT:BBU ENTRY COPY MODEREG,Q GET MODE REGISTER AND CHECK IF AND =:FFF0,Q DISREGARD NO. OF BOARDS KEYED-IN ADD =1,Q FORCED NO. OF BOARDS TO ONE COPY Q,MODEREG UPDATE MODE REGISTER (ABS.LOC.:20) TBIT MODEFLAG,Q INTERACTIVE MODE? JF OV,SKIPOVER IF YES, SKIP OVER MESSAGE CALL O:MSG,=CO,LBBUCNFG,=BBUCNFG CALL O:MSG,=CO,LVERIFY,=VERIFY * * WAIT FOR CARRIAGE RETURN * CALL FLUSH,=:0D,=CI * * SECOND SECTION (II) * SKIPOVER EQU $ BEGIN1 EQU $ COPY =0,Q CLEAR # OF BOARDS TESTED ALREADY COPY Q,CRNTBUT(Y) BEGIN2 EQU $ COPY CRNTBUT(Y),X 1ST TIME AROUND IT WILL BE ZERO JEQ X,START AND BIT 15 OF STATUS WORD DO NOT COPY :20(X),A NEED RESETTING; OTHERWISE DO RBIT 15,A RESET BOARD-UNDER-TEST FLAG COPY A,:20(X) AND UPDATE STATUS WORD START EQU $ ADD =1,X ASSUME THERE IS ANOTHER BOARD TO COPY MODEREG,A BE TESTED; BUT CHECK AGAINST.. TBIT MODEFLAG,A  JF OV,$+2 COPY MODEREG,Q ( SAVE IF INTERACTIVE ) AND =:F,A ...# OF BOARDS TO BE TESTED. SUB X,A ...ALWAYS ONE BOARD IN BBU CASE... JGE A,$+2 JMP NEXT:BD WHEN THRU W/ALL BOARDS (ONE) SIGN-OFF. COPY X,CRNTBUT(Y) OTHERWISE (FAIRY TALE); COPY :20(X),A UPDATE APPROPIATE STATUS WORD SBIT 15,A BY SETTING FLAG INDICATING B-U-T COPY A,:20(X) COPY =11,A BYTES 0,1,3=1 ; BYTE 2=0 OUT A,PICADDR+1 WRITE MODE REGISTER COPY =0,A  ENABLE BATTERY THROUGH PIC WORD 1 OUT A,PICADDR+2 BIT 0 JEQ Q,SECOND SKIP TEST:1 IF NOT INTERACTIVE * * THIRD SECTION (III) * * REG.Q - MUST NOT BE ALTERED, CONTAINS INTERACTIVE FLAG. * CALL O:MSG,=CO,=MSG1:LEN,=TST1:MSG CALL O:MSG,=CO,=LOFFSW1,=OFFSW1 FIRST EQU $ COPY =0,A COPY A,TTSTFLG CLEAR TECH TEST FLAG CALL TEST:1 ** CALIBRATION PHASE SECOND EQU $ ..................................... JEQ Q,SECOND: SKIP MESSAGE CALL O:MSG,=CO,=MSG2:LEN,=TST2:MSG CALL O:MSG,=CO,=TLOOPL,=TLOOP SECOND: EQU $ CALL TEST:2 . EXTERNAL BATTERY ENABLE SWITCH TEST  JEQ A,THIRD . COPY =ERRORS,X . AS FOR THE FIRST BLOCK. XNX A COPY 0(X),X  COPY X,ERRADDR(Y) . CALL ERACTN,ERRADDR . COPY TTSTFLG,A . JNE A,SECOND:  . THIRD EQU $ COPY A,TTSTFLG JEQ Q,THIRD: SKIP MESSAGES IF NOT INTERACTIVE CALL  O:MSG,=CO,=MSG3:LEN,=TST3:MSG SPACE 1 CALL O:MSG,=CO,=LSW1MSG,=SW1MSG CALL O:MSG,=CO,=TLOOPL,= TLOOP THIRD: EQU $ CALL TEST:3 INTERNAL BATTERY BACK-UP TEST JEQ A,FOURTH .  COPY =ERRORS,X . XNX A COPY 0(X),X COPY X,ERRADDR(Y) . CALL ERACTN,ERRADDR . COPY TTSTFLG,A . JNE A,THIRD: . FOURTH EQU $ . COPY A,TTSTFLG JEQ Q,FOURTH: SKIP IF NOT INTERACTIVE CALL O:MSG,=CO,=MSG4:LEN,=TST4:MSG CALL O:MSG,=CO,=TLOOPL,=TLOOP FOURTH: EQU $ CALL TEST:4 . NOISE IMMUNITY TEST JEQ A,FIFTH .  COPY =ERRORS,X . XNX A COPY 0(X),X COPY X,ERRADDR(Y) . CALL ERACTN,ERRADDR . COPY TTSTFLG,A . JNE A,FOURTH: . FIFTH EQU $ . COPY A,TTSTFLG JEQ Q,FIFTH: SKIP IF NOT INTERACTIVE CALL O:MSG,=CO,=MSG5:LEN,=TST5:MSG CALL O:MSG,=CO,=TLOOPL,=TLOOP FIFTH: EQU $ CALL TEST:5 . AUTO RESTART TEST JEQ A,SIXTH  . COPY =ERRORS,X . XNX A COPY 0(X),X COPY X,ERRADDR(Y) . CALL ERACTN,ERRADDR . COPY TTSTFLG,A . JNE A,FIFTH: . SIXTH EQU $ .  COPY A,TTSTFLG JEQ Q,SIXTH: SKIP IF NOT INTERACTIVE CALL O:MSG,=CO,=MSG6:LEN,=TST6:MSG  CALL O:MSG,=CO,=TLOOPL,=TLOOP SIXTH: EQU $ CALL TEST:6 . BATTERY DISABLE TEST JNE A,$+2 JMP BEGIN2 COPY =ERRORS,X . XNX A COPY 0(X),X COPY X,ERRADDR(Y) . CALL ERACTN,ERRADDR . JNE A,SIXTH: . JMP BEGIN2 . DONE! TITL TITL * * WHEN THE PROGRAM JUMPS HERE IT MEANS THAT ALL THE TESTS * HAVE BEEN EXECUTED AND NONE ENCOUNTERED WITH ERRORS OR * IF SO TECH-TEST MODE WAS NOT SELECTED. * * FOURTH SECTION (IV) * NEXT:BD EQU $ JNE Q,$+2 SKIP DIALOG JMP BEGIN1 COPY =0,A TURN-OFF SYSTEM OUT A,RLYADDR+0 CALL O:MSG,=CO,LSIGNOFF,=SIGNOFF CALL O:MSG,=CO,=LOFFSW1,=OFFSW1 CALL O:MSG,=CO,=LCHANGE,=CHANGE CALL O:MSG,=CO,=LANOTHER,=ANOTHER YN:MSG EQU $ CALL YES:NO INQUIRE IF TO TEST ANOTHER BBU BRD. CLSN =1,A YES ? JMP BBU:END CLSN =2,A NO ? NOP  JMP BEGIN1 BBU:END EXIT LPOOL TITL TITL TITLE MESSAGE PRECCEDING EACH TEST TST1:MSG BYTE  :0D,:0A,:0A,'--- CALIBRATION TEST ---' MSG1:LEN EQU $-TST1:MSG*2 * TST2:MSG BYTE :0D,:0A,:0A,'--- EXT. BATTERY ENABLE SW1 TEST ---' MSG2:LEN EQU $-TST2:MSG*2 * TST3:MSG BYTE :0D,:0A,:0A,'--- INTERNAL BATTERY BACK-UP TEST ---' MSG3:LEN EQU $-TST3:MSG*2 * TST4:MSG BYTE :0D,:0A,:0A,'--- NOISE IMMUNITY TEST ---' MSG4:LEN EQU $-TST4:MSG*2 * TST5:MSG BYTE :0D,:0A,:0A,'--- AUTO RESTART TEST ---' MSG5:LEN EQU $-TST5:MSG*2 * TST6:MSG BYTE :0D,:0A,:0A,'--- BATTERY DISABLE TEST ---' MSG6:LEN  EQU $-TST6:MSG*2 * OFFSW1 BYTE :0D,:0A,:0A,'!!! DISABLE INTERNAL BATTERY (SW1=EXT) !!!' LOFFSW1 EQU $-OFFSW1*2 * C:R BYTE :0D,:0A,' TYPE A CARRIAGE RETURN TO CONTINUE>' LC:R EQU $-C:R*2 * ANOTHER BYTE :0D,:0A,' RETURN TO EXECUTIVE (Y N)?' LANOTHER EQU $-ANOTHER*2 * CHANGE BYTE :0D,:0A,:0A,'>>> EXCHANGE BBU BOARD IN TEST SYSTEM' LCHANGE EQU $-CHANGE*2 * SW1MSG BYTE :0D,:0A,:0A,'>>> ENABLE INTERNAL BATTERY (SW1=INT) ' BYTE :0D,:0A,' TYPE A CARRIAGE RETURN TO CONTINUE>' LSW1MSG EQU $-SW1MSG*2 TLOOP BYTE ' >>LOOP? (Y N)' TLOOPL EQU $-TLOOP*2 TITL  TITL ERROR MESSAGES ERRORS EQU $ WORD 0 DUMMY WORD FLAG1 /RST INSUFFICIENT HOLD OFF TIME WORD FLAG2 /SPECIAL POWER SIGNAL ERROR WORD FLAG3 NO POWER IN TEST SYSTEM WORD FLAG4 /RST RELEASED AFTER /PFD IS HIGH WORD FLAG5 /PFD RELEASED BEFORE /RST IS HIGH WORD FLAG6 RELAY CNTRL OF TEST SYS. UNSUCC. WORD FLAG7 COLD START UNSUCCESSFULL WORD FLAG8 /PFD > 3 MS TO GO LOW WORD FLAG9 /PFD < 2 MS TO GO LOW WORD FLAG10 /RST < 2 MS TO GO LOW WORD FLAG11 /RST > 3 MS TO GO LOW WORD FLAG12 MINIMUM POWER FAIL NOT DETECTED WORD FLAG13 POWER FAIL TRIGGERED BY NOISE WORD FLAG14 /PFD < 5.6 SEC TO GO LOW WORD FLAG15 ALARM OUTPUT FAILURE WORD FLAG16 /PFD > 8.4 SEC TO GO LOW * FLAG1 WORD LENGTH1 BYTE :0D,:0A,'*E* /RST INSUFFICIENT HOLD OFF TIME' LENGTH1 EQU $-FLAG1-1*2 * FLAG2  WORD LENGTH2 BYTE :0D,:0A,'*E* SWITCH OR SPEC.PWR SIGNAL ERROR' LENGTH2 EQU $-FLAG2-1*2 * FLAG3 WORD LENGTH3 BYTE :0D,:0A,'*E* NO POWER IN TEST SYSTEM' LENGTH3 EQU $-FLAG3-1*2 * FLAG4 WORD LENGTH4 BYTE  :0D,:0A,'*E* /RST RELEASED AFTER /PFD IS HIGH' LENGTH4 EQU $-FLAG4-1*2 * FLAG5 WORD LENGTH5 BYTE :0D,:0A,'*E* /PFD RELEASED BEFORE /RST IS HIGH' LENGTH5 EQU $-FLAG5-1*2 * FLAG6 WORD LENGTH6 BYTE :0D,:0A,'*E* CONTROL OF TEST SYS. POWER UNSUCCESSFULL' BYTE :0D,:0A,'>>> CHECK CONFIGURATION' LENGTH6 EQU $-FLAG6-1*2 * FLAG7 WORD LENGTH7 BYTE :0D,:0A,'*E* COLD START UNSUCCESSFULL' BYTE :0D,:0A,'>>> CHECK CONFIGURATION' LENGTH7 EQU $-FLAG7-1*2 * FLAG8 WORD LENGTH8 BYTE :0D,:0A,'*E* /PFD > 3 MS TO GO LOW' LENGTH8 EQU $-FLAG8-1*2 * FLAG9 WORD LENGTH9 BYTE :0D,:0A,'*E* /PFD < 2 MS TO GO LOW' LENGTH9 EQU $-FLAG9-1*2 * FLAG10 WORD LENGTH10  BYTE :0D,:0A,'*E* /RST < 2 MS TO GO LOW' LENGTH10 EQU $-FLAG10-1*2 * FLAG11 WORD LENGTH11 BYTE :0D,:0A,'*E* /RST > 3 MS TO GO LOW' LENGTH11 EQU $-FLAG11-1*2 * FLAG12 WORD LENGTH12 BYTE :0D,:0A,'*E* MINIMUM POWER FAIL NOT DETECTED' LENGTH12 EQU $-FLAG12-1*2 * FLAG13 WORD LENGTH13 BYTE :0D,:0A,'*E* POWER FAIL TRIGGERED BY NOISE' LENGTH13 EQU $-FLAG13-1*2 * FLAG14 WORD LENGTH14 BYTE :0D,:0A,'*E* /PFD < 6 SEC TO GO LOW' LENGTH14  EQU $-FLAG14-1*2 * FLAG15 WORD LENGTH15 BYTE :0D,:0A,'*E* ALARM OUTPUT FAILURE' LENGTH15 EQU $-FLAG15-1*2 * FLAG16 WORD LENGTH16 BYTE :0D,:0A,'*E* /PFD > 9 SEC TO GO LOW' LENGTH16 EQU $-FLAG16-1*2 TITL  TITL CALIBRATION TEST (TEST:1) ********************************************************************* * * TEST:1 - CALIBRATION PHASE * THE BROWN-OUT ADJUSTMENT AND TEST WILL BE DESCRIBED * IN THE DOCUMENT: 58-54123-00. THE INITIAL INSTRUCTION * TO PERFORM THIS TEST WILL BE GIVEN IN THIS ROUTINE * UPON COMPLETION OF THIS TEST, THE OPERATOR WILL * RESPOND WITH A CARRIAGE RETURN. THE BBU DIAGNOSTIC * PROGRAM VERIFIES NOTHING DURING THIS TEST, BUT * RETAINS CONTROL IN THE SWITCHING OF THE SYSTEM POWER. * DEFINE TEST:1 ENDEF TEST:1 ENTRY COPY =1,A SET BIT 0 OUT A,RLYADDR+0 TURN-ON TEST SYSTEM * CALL O:MSG,=CO,=LCALIB,=CALIB * CALL FLUSH,=:0D,=CI * COPY =0,A OUT A,RLYADDR+0 TURN-OFF TEST SYSTEM EXIT SPACE 3 CALIB BYTE :0D,:0A,:0A,'>>> PROCEED WITH CALIBRATION PHASE' BYTE :0D,:0A,' TYPE A CARRIAGE RETURN TO CONTINUE>' LCALIB EQU $-CALIB*2 TITL TITL EXTERNAL BATTERY ENABLE SWITCH TEST (TEST:2) ********************************************************************** * * TEST:2 - EXTERNAL BATTERY ENABLE SWITCH TEST * THIS TEST WILL VERIFY IF 'SW1' IS WORKING * PROPERLY BY POWER FAILING THE SYSTEM WITH THE * SWITCH IN THE 'OFF' POSITION AND EXPECTING A * COLD START. THE SWITCH IN THE 'EXT' POSITION * IMPLIES: 1) DISABLE INTERNAL BATTERY * 2) ENABLE EXTERNAL BATTERY * NO PROVISIONS WERE MADE TO TEST THIS BOARD WITH * AN EXTERNAL BATTERY,THEREFORE,THIS TEST WILL * EXPECT A SIMPLE COLD START WHEN THE EXTERNAL * BATTERY IS ENABLE. *  DEFINE TEST:2 MSG:TST2 RES 1 LOOP:CNT RES 1 LP2EVER RES 1 ENDEF LOOP2 WORD -5 LOOP COUNT TIME2 WORD -65535 359 MS TEST:2 ENTRY COPY =0,Q CLEAR FLAG THAT INDICATES TEST LOOP  COPY Q,LP2EVER(Y) COPY TTSTFLG,Q JNE Q,TST2 SKIP INQUIRY IF TECH TEST CALL YES:NO CLSN =1,A COPY A,LP2EVER(Y) SETUP FOR LOCAL INFINITE LOOP TST2 EQU $ COPY LOOP2,Q SET UP LOOP COUNT FOR THIS TEST COPY Q,LOOP:CNT(Y) LOOP:2 EQU $ COPY =0,Q IJNE Q,$ WAIT COPY =1,Q =1,WILL INDICATE INTENTION COPY Q,MSG:TST2(Y) (PASS INFO. TO 'TURN:ON') COPY Q,SPWRFLAG /SPWR MUST NOT BE ASSERTED (HIGH) SPACE 1 CALL TURN:ON,MSG:TST2  TO USE RELAY BOARD TO SPACE 1 JNE A,ERREXIT2 TURN-ON THE TEST SYSTEM SPACE 1 COPY =-2,Q FOR 2 SEC WAIT,DOUBLE LOOP COPY Q,MSG:TST2(Y) T2WAIT2S EQU $ COPY TIME2,Q  IJNE Q,$ WAIT FOR 2 SEC IMS MSG:TST2(Y) JMP T2WAIT2S COPY =1,Q COPY Q,MSG:TST2(Y) RESTORE VALUE OF 1 FOR PARAMETER SPACE 1 CALL TURN:OF,MSG:TST2 IF NO ERROR,TURN-OFF  SPACE 1 JNE A,ERREXIT2 COPY TIME2,Q SET UP TIME DELAY OF 100 MS IJNE Q,$  WAIT IN PICADDR+0,A READ DATA WORD 0 (PIC) TBIT 3,A CHECK IF 5 VOLTS PRESENT  JT OV,ERR:5V YES, THEN SOMETHING IS WRONG TBIT 4,A NO,CHECK IF 5 VOLTS INTERNAL (BATTERY)  JT OV,ERR:5VI YES,THEN SOMETHING IS WRONG IMS LOOP:CNT(Y) INCREMENT COUNT AND LOOP JMP LOOP:2 UNTIL DONE COPY LP2EVER(Y),A JNE A,TST2 JMP EXIT:2 SPACE 2 ERR:5V EQU $ COPY =6,A RELAY CNTRL OF TEST SYS.POWER UNSUCC. JMP ERREXIT2 ERR:5VI EQU $  COPY =7,A COLD START UNSUCCESSFULL JMP ERREXIT2 EXIT:2 EQU $ COPY =0,A  JMP EXIT:2A ERREXIT2 EQU $ COPY =0,Q OUT Q,RLYADDR+0 COPY TIME2,Q IJNE Q,$ EXIT:2A EQU $ COPY A,MSG:TST2(Y) PASS SUCCESS OR ERROR CODE BACK EXIT MSG:TST2 TITL  TITL INTERNAL BATTERY BACK-UP TEST (TEST:3) ********************************************************************* * *  TEST:3 - INTERNAL BATTERY BACK-UP TEST * THIS TEST WILL INSTRUCT THE OPERATOR TO ENABLE THE * BATTERY BACK-UP SWITCH (SW1) IN ORDER TO TEST A * WARM START (POWER UP CONDITION IN WHICH THE BATTERY *  HAD BEEN SUSTAINING THE MEMORY PREVIOUS TO THE POWER * COMING UP).THE ONLY WAY TO VERIFY THIS EVENT, IS TO * CHECK THE SPECIAL POWER LINE(/SPWR)TO BE ASSERTED (LOW) * AT POWER UP. * DEFINE TEST:3 MSG:TST3 RES 1 LOOP:CT RES 1 LP3EVER RES 1 ENDEF LOOP3 WORD -5 LOOP COUNT TIME3 WORD -5415 30 MS DELAY TIME3A WORD -65535 359 MS WAIT TEST:3 ENTRY COPY =0,Q TURN-OFF TEST SYSTEM AGAIN COPY Q,LP3EVER(Y) COPY TTSTFLG,Q JNE Q,TST3 CALL YES:NO  CLSN =1,A COPY A,LP3EVER(Y) TST3 EQU $ COPY =1,Q FIRST TIME: /SPWR SHOULD BE HIGH COPY Q,SPWRFLAG INITILAIZE SPEC.POWER FLAG=1 IJNE Q,$ WAIT OUT Q,RLYADDR+0 IN CASE TECH-TEST RUNNING IJNE Q,$ WAIT COPY LOOP3,Q AND THE LOOP COUNT FOR THIS TEST COPY Q,LOOP:CT(Y) SPACE 1 SKIPSW1 EQU $ LOOP:3 EQU $ COPY =1,Q REG-Q TO INDICATE RELAY BOARD COPY Q,MSG:TST3(Y) IJNE Q,$ WAIT SPACE 1 CALL TURN:ON,MSG:TST3 TURN-ON SYSTEM COPY =-2,Q DOUBLE LOOP FOR 2 SEC. WAIT COPY Q,MSG:TST3(Y) MUST MOVE 1 BACK IN LATER T3WAIT2S EQU $ COPY TIME3A,Q IJNE Q,$ WAIT 2 SEC IMS   MSG:TST3(Y) GO NEXT LOOP IF NOT=0 JMP T3WAIT2S JNE A,EXIT:3A NO NEED TO TURN-ON ; ERROR CODE IN REG.A COPY =1,Q COPY Q,MSG:TST3(Y) IMS LOOP:CT(Y) INCREMENT LOOP COUNT JMP  TST3GO COPY LP3EVER(Y),A JNE A,TST3GO IF NOT=0 THEN LOOP FOR EVER JMP EXIT:3A TST3GO EQU $ COPY =0,A COPY A,SPWRFLAG SET /SPWR TO ZERO IN WARM START SPACE 1 CALL TURN:OF,MSG:TST3 TURN-OFF SYSTEM JNE A,ERREXIT3 IJNE Q,$ JMP LOOP:3 LOOP BACK ERREXIT3 EQU $ COPY =1,Q LEAVE SYSTEM TURNED-ON OUT Q,RLYADDR+0 IJNE Q,$ WAIT EXIT:3A EQU $ COPY A,MSG:TST3(Y) EXIT MSG:TST3 TITL TITL NOISE IMMUNITY TEST (TEST:4) ********************************************************************** * * TEST:4 - NOISE IMMUNITY TEST * THIS TEST WILL POWER FAIL THE TEST SYSTEM FOR A * DEFINITE CONTROLLED TIME 'T', WHERE 'T' WILL VARY * ('T'= 1 MS...,1 SEC). THIS IS TO VERIFY THAT THE * POWER FAIL IS DETECTED AT THE EXPECTED TIME AND * THAT THE BATTERY BACK-UP WILL FUNCTION EVEN WHEN * THE POWER IS DOWN A FULL SECOND. * DEFINE TEST:4 MSG:TST4 RES 1 INIT:T RES 1 INCR:T RES 1 LOOP:T RES 1 LP4EVER RES 1  ENDEF LOOP4 WORD -5 LOOP COUNT TIME4 WORD -65535 359 MS WAIT TIME4:A WORD -60  1 MS INITIAL SYS. TURN OFF TIME4:B WORD -61 1 MS INCREMENT TIME FACTOR TIME4:D WORD 180 3 MS TIME4:F WORD -65000 1 SEC. TEST:4 ENTRY COPY =0,Q COPY Q,LP4EVER(Y) COPY TTSTFLG,Q  JNE Q,TST4 CALL YES:NO CLSN =1,A COPY A,LP4EVER(Y) TST4 EQU $ COPY  =0,Q INITIALIZE THE WORK AREA FOR; COPY Q,LOOP:T(Y) 1) LOOP COUNT IJNE Q,$ COPY =-1,Q SEND FLAG TO NOT CHECK /SPWR COPY Q,SPWRFLAG WHILE TESTING NOISE INMUNITY COPY TIME4:A,Q COPY Q,INIT:T(Y) 2) INITIAL CONTROLLED TIME COPY TIME4:B,Q COPY Q,INCR:T(Y)  3) INCREMENT TIME SPACE 1 * INITIAL SWITCHING TO THE LOGICAL LVAC CONTROL HAS A DELAY * OF 100 MS TO TAKE INTO ACCOUNT A POWER-DOWN/POWER-UP. SPACE 1 COPY TIME4,Q 359 MS MINUS OVERHEAD COPY  =6,A RELAY BIT(1), & LOGIC LVAC BIT(2) OUT A,PICADDR+2 WRITE DATA WORD 1 (PIC) IJNE Q,$ IN PICADDR+0,A READ DATA WORD 0 (PIC) TBIT 0,A VERIFY THAT /RST IS SET JT  OV,$+2 JMP NOTRDY TBIT 2,A VERFY THAT /PFD IS SET JT OV,PWR:OFF NOTRDY EQU  $ COPY =6,A CONTROL OF TEST SYS.POWER UNSUCC. JMP ERREXIT4 SPACE 1 PWR:OFF EQU $ COPY INIT:T(Y),Q POWER DOWN SYSTEM THROUGH TIME PERIOD COPY =2,A SPECIFIED IN 'INIT:T'   OUT A,PICADDR+2 NOP NOP NOP IJNE Q,$-3 WAIT SPECIFIED TIME COPY =6,Q SET REG-Q TO TURN-ON SYSTEM COPY Q,MSG:TST4(Y) PASS INFO. TO 'TURN:ON' SPACE 1  CALL TURN:ON,MSG:TST4 SPACE 1 JEQ A,OKIFMT2M OK IF MORE THAN 3 MS OKIFLT2M EQU $  COPY INIT:T(Y),A NEG A,A MAKE POSITIVE CSK A,TIME4:D CHECK IF TIME IS LESS THAN 3 MS JMP GETNEXT IF SO,THEN INCREMENT FOR NEXT NOP COPY =12,A MIN.POWER FAIL NOT DETECTED JMP ERREXIT4 SPACE 1 OKIFMT2M EQU $ COPY INIT:T(Y),A NO ERROR CODE RETURNED  NEG A,A MAKE POSITIVE CSK A,TIME4:D IS TIME GREATER THAN 3 MS JMP $+3  NOP JMP GETNEXT COPY =13,A POWER FAIL TRIGGERED BY NOISE JMP ERREXIT4  SPACE 1 GETNEXT EQU $ COPY LOOP:T(Y),Q THIS SECTION TAKES CARE OF INCREMENTING JNE Q,REPEAT  THE TIME THE SYSYTEM WILL BE HELD DOWN COPY INIT:T(Y),Q ADD INCR:T(Y),Q IF LOOP COUNT= 0 ,NOT YET 1 SECOND COPY Q,INIT:T(Y) NEG Q,Q MAKE POSITIVE CSK Q,TIME4:F CHECK AGAINST 1 SEC JMP PWR:OFF NOP COPY TIME4:D,Q INITIALIZE 'INIT:T(Y)' TO 2 MS TIME  NEG Q,Q MAKE 2.5 MS COUNT NEGATIVE COPY Q,INIT:T(Y) TO EXERCISE RANGE EVEN MORE COPY LOOP4,Q INITIALIZE LOOP COUNT ALSO COPY Q,LOOP:T(Y) ACCORDING TO DESIRED INTENSITY OF TEST  JMP PWR:OFF SPACE 1 REPEAT EQU $ IMS LOOP:T(Y) INCREMENT LOOP COUNT JMP PWR:OFF GO BACK IF NOT THRU JSK OFF:LVAC COPY LP4EVER(Y),Q JEQ Q,TST4OK JMP TST4 TST4OK EQU $ COPY =0,A NORMAL EXIT JMP EXIT:4 ERREXIT4 EQU $ JSK OFF:LVAC SWITCH LVAC BACK TO NORMAL JMP EXIT:4 ********************************************************************** * SUBROUTINE TO SWITCH LVAC BACK TO NORMAL * MUST SWITCH BACK TO NORMAL LVAC AND WAIT 1.1 SEC OFF:LVAC EQU $ SPACE 1 COPY =-3,Q COPY Q,MSG:TST4(Y) TST4LOOP EQU $ COPY TIME4,Q 359 MS TO TAKE INTO ACCOUNT COPY =0,X RELAY BIT(1) & LOGIC LVAC BIT(2),SET LOW OUT X,PICADDR+2 WRITE DATA WORD 1 (PIC) IJNE Q,$ IMS MSG:TST4(Y) 359 MS X 3 JMP TST4LOOP RSK ********************************************************************** SPACE 1 EXIT:4 EQU $ COPY A,MSG:TST4(Y) EXIT MSG:TST4 TITL TITL AUTO RESTART TEST (TEST:5) *********************************************************************** * * TEST:5 - AUTO RESTART TEST * THIS TEST IS ACCOMPLISHED BY PULLING /RST AND WAITING * FOR A WATCHDOG TIMER TIME-OUT. THIS BOARD DESTROYS * THE RUNNING ISOLITE DIAGNO  STIC IN THE CPU TEST SYSTEM * AND THEREFORE STOPS ANY INSTRUCTIONS FROM TURNING-OFF * THE CONSOLE AUTOLOAD SWITCH (OUT REG.,2). THE WATCHDOG * TIMER WILL ACTIVATE THE ALARM AFTER THE TIME OUT IS *  DETECTED AND INITIATE A COLD START OF THE SYSTEM,FOR * THIS TEST THE SPECIAL POWER (SPWR) LINE IS CHECKED * TO VERIFY THE EVENT IS IN FACT A COLD START. * DEFINE TEST:5 MSG:TST5 RES 1 LOOP:IN RES 1 LP5EVER RES 1 ENDEF TIME5 WORD -65535 TEST:5 ENTRY COPY =0,Q COPY Q,LP5EVER(Y) CLEAR LOOP FOR EVER FLAG COPY TTSTFLG,Q JNE Q,TST5 CALL YES:NO CLSN =1,A COPY  A,LP5EVER(Y) TST5 EQU $ COPY =0,Q IJNE Q,$ COPY =1,Q COPY Q,MSG:TST5(Y)  COPY Q,SPWRFLAG OUT Q,PICADDR+2 DISABLE BATTERY FOR COLD START CALL TURN:OF,MSG:TST5 JNE A,ERREXON5 CALL TURN:ON,MSG:TST5 COLD START JNE A,ERREXIT5 OUT A,PICADDR+2  ENABLE INTERNAL BATTERY COPY =0,Q WAIT 360 MS IJNE Q,$ LOOP:5 EQU $ COPY =3,A BYTES 0,1=1 ,BYTE 2,3=0 OUT A,PICADDR+1 WRITE MODE REGISTER (PIC) COPY =0,A SET /RST LOW OUT A,PICADDR+2 WRITE DATA WORD 1 (PIC) COPY =11,A BYTES 0,1,3=1 , BYTE 2=0  OUT A,PICADDR+1 WRITE MODE REGISTER (PIC) * RETURNING BYTE 3 (DATA WORD 1,PIC) *  TO AN OPEN COLLECTOR COPY =0,Q COPY Q,MSG:TST5(Y) THEN GO CHECK LINES  SPACE 1 CALL TURN:OF,MSG:TST5 SPACE 1 JNE A,ERREXON5 SPACE 1 CALL TURN:ON,MSG:TST5 SPACE 1 JNE A,ERREXIT5 COPY LP5EVER(Y),Q JEQ Q,TST5OK JMP TST5 TST5OK EQU $ COPY =0,A NO ERRORS JMP ERREXIT5 ERREXON5 EQU $ COPY =1,Q OUT Q,RLYADDR+0 COPY TIME5,Q IJNE Q,$ WAIT 359 MS ERREXIT5 EQU $  COPY A,MSG:TST5(Y) EXIT MSG:TST5 TITL TITL BATTERY DISABLE TEST (TEST:6) ********************************************************************* * * TEST:6 - BATTERY DISABLE TEST * THIS TEST WIL ALSO EXERCISE THE BOARD AS DESCRIBED * IN TEST:2, WITH THE EXCEPTION OF 'SW1' WHICH REMAINS * IN THE 'ON' POSITION (ENABLE INTERNAL BATTERY). * A COLD START IS EXPECTED. * DEFINE TEST:6 MSG:TST6 RES 1 LOOP:WD RES 1 LP6EVER RES 1 ENDEF LOOP6 WORD -5 LOOP COUNT TIME6 WORD -65535 TEST:6 ENTRY COPY =0,Q COPY Q,LP6EVER(Y) CLEAR LOOP FOR EVER FLAG COPY TTSTFLG,Q JNE Q,TST6 CALL YES:NO CLSN =1,A COPY A,LP6EVER(Y) TST6 EQU $ COPY =1,A INDICATE TO USE RELAY BOARD COPY A,SPWRFLAG EXPECT COLD START COPY A,MSG:TST6(Y) SAVE IT TO PASS IT  ON OUT A,PICADDR+2 WRITE DATA WORD 1 (PIC) * TO DISABLE INTERNAL BATTERY  COPY LOOP6,Q SET UP LOOP CONT COPY Q,LOOP:WD(Y) LOOP:6 EQU $ COPY =0,Q WAIT 360 MS IJNE Q,$ SPACE 1 CALL TURN:OF,MSG:TST6 SPACE 1 JNE A,ERREXON6  SPACE 1 CALL TURN:ON,MSG:TST6 SPACE 1 JNE A,ERREXIT6 IMS LOOP:WD(Y) INCREMENT LOOP COUNT JMP LOOP:6 AND JUMP BACK IF NOT ZERO COPY LP6EVER(Y),Q JNE Q,LOOP:6  COPY =0,A JMP ERREXIT6 ERREXON6 EQU $ COPY TIME6,Q IJNE Q,$ WAIT 359 MS ERREXIT6 EQU $ COPY =0,Q BEFORE LEAVING MUST OUT Q,PICADDR+2 ENABLE INTERNAL BATTERY COPY A,MSG:TST6(Y) EXIT MSG:TST6 TITL TITL SUBROUTINE TO POWER-UP THE TEST SYSTEM (TURN:ON) ********************************************************************** * * TURN:ON - * WILL TAKE CARE OF TURNING ON THE POWER IN THE * SYSTEM AND VERIFYING THE /PDF,/RST & /SPWR LINES CHANGE * WITHIN THE EXPECTED TIME FRAME. IT WILL ALSO CHECK IF THE * TEST SYSYEM IS TO BE 'TURNED-ON' WITH OR WITHOUT THE * REALAY BOARD OR IF THE SYSTEM WILL NOT BE TURNED-ON AT * ALL AND THERFORE THE ROUTINE ONLY USED TO CHECK THE LINES * MENTIONED ABOVE. * DEFINE TURN:ON,ONFLAG MSG:ON RES 1 HIBOUND RES 1 UPPER BOUND IN COMMON CODE ENDEF ONTIME1 WORD -3610 20 MS WAIT ONTIME2 WORD -3610 20 MS WAIT ONTIME3 WORD -27 148 US WAIT ONTIME4 WORD -3884 80 MS WAIT (UPPER BOUND) ONTIME5 WORD -65535 1.35 SEC ? TURN:ON ENTRY  JEQ A,DONT1 'ONFLAG' = REG.A (AUTO RESTART) CSK A,=6 IF REG.A = 0, DO NOT TURN-ON CSK A,=1 < HLT >6 & <1 NO WAY! JMP NORELAY1 = > =6 >1 *  = =1, USE RELAY BOARD RELAY1 EQU $ OUT A,RLYADDR+0 TURN-ON (THRU RELAY BOARD) COPY ONTIME1,Q WAIT FOR 20 MS BEFORE CHECKIN /RST IJNE Q,$ COPY ONTIME4,Q UPDATE COUNT FOR UPPER BOUND JMP CHKRST1N GO EXPECT SIGNAL IN UPPER BOUND * NORELAY1 EQU $ OUT A,PICADDR+2 WRITE DATA WORD 1 (PIC) COPY ONTIME2,Q MINIMUM TIME DELAY WITHOUT RELAY BOARD IJNE  Q,$ COPY ONTIME4,Q UPDTATE COUNT FOE UPPER BOUND JMP CHKRST2N * APPLICABLE ONLY TO AUTO RESTART TEST DONT1 EQU $ COPY ONTIME2,Q MINIMUM TIME DELAY IJNE Q,$  COPY ONTIME4,Q UPDATE COUNT FOR UPPER BOUND RSTLOW EQU $ IN PICADDR+0,A READ DATA WORD 0 (PIC)  TBIT 5,A VERIFY ALARM WAS ASSERTED JF OV,CHKRST2N YES, GOOD! JMP BADALARM  OTHERWISE, ERROR CHKRST1N EQU $ CHKRST2N EQU $ IN PICADDR+0,A TBIT 0,A CHECK /RS  T (20 MS WAIT) JT OV,TIMEOFF1 IF TRUE THEN < 20 MS ...ERROR CHKRST3N EQU $ IN PICADDR+0,A  READ DATA WORD 0 (PIC) TBIT 0,A CHECK IF /RST IS HIGH JT OV,WITHIN1 ALLRIGHT!  IJNE Q,CHKRST3N NO,KEEP WAITING TBIT 3,A ON TIME OUT,CHECK 5V LINE JT OV,$+3  COPY =3,A NO POWER IN SYSTEM TEST JMP ERREXITN COPY =4,A /RST EXCESSIVE HOLD OFF TIME JMP ERREXITN * TIMEOFF1 EQU $ COPY =1,A /RST INSUFFICIENT HOLD OFF TIME  JMP ERREXITN * WITHIN1 EQU $ COPY SPWRFLAG,A WHICH WAY TO CHECK /SPWR ? JLT A,SPWRON:A  IF LESS THAN ZERO,NOISE INMUNUITY TEST JEQ A,NOTSET IF FLAG = 0, /SPWR MUST BE LOW ON:SPWR EQU $  IN PICADDR+1,A READ STATUS WORD,FUNCTION 1 (PIC) TBIT 7,A /SPWR MUST BE HIGH JT  OV,SPWRON:A * BADSPWR EQU $ COPY =2,A SPECIAL POWER SIGNAL ERROR JMP ERREXITN * SPWRON:A EQU $ COPY ONTIME3,Q 148 US WAIT IJNE Q,$ FLUSH REMAINING TIME SPWRON:B EQU $  IN PICADDR+0,A READ DATA WORD 0 (PIC) TBIT 2,A VERIFY /PFD IS HIGH JT OV,ON:EXIT COPY =5,A /PFD RELEASED BEFORE /RST IS HIGH JMP ERREXITN * NOTSET EQU $ OFFSPWR EQU $ IN PICADDR+1,A READ STATUS WORD,FUNCTION 1 (PIC) TBIT 7,A VERIFY /SPWR IS LOW  JT OV,BADSPWR ERROR IF HIGH JMP SPWRON:A GO CHECK /PFD * BADALARM EQU $ COPY =15,A ALARM OUTPUT FAILURE JMP ERREXITN * ON:EXIT EQU $ COPY =0,A CLEAR TO INDICATE SUCCESS ERREXITN EQU $ COPY A,MSG:ON(Y) EXIT MSG:ON TITL TITL SUBROUTINE TO POWER-DOWN THE TEST SYSTEM (TURN:OF) ********************************************************************** * * TURN:OF - * WILL TAKE CARE OF TURNING OFF THE POWER IN THE SYSTEM * AND VERIFYING THE /PFD & /RST LINES CHANGE WITHIN THE EXPECTED * TIME FRAME. IT WILL ALSO CHECK IF THE SYSTEM IS TO BE TURNED-OFF * WITH OR WITHOUT THE RELAY BOARD. * DEFINE TURN:OF,OFFLAG MSG:OFF RES 1 AUTOCNT RES 1 ENDEF OFFTIME1 WORD -170 3.5 MS WAIT OFFTIME2 WORD -170 3.5 MS WAIT HLIMIT WORD 12 IN COMBINATION WITH 'TIMEFACT' TIMEFACT WORD -34000 GENERATES COUNT OF > OR < 8.4 SEC'S OFFTIME4 WORD -1200 24.72 MS WAIT OFFTIME5 WORD -95  2 MS WAIT OFFTIME6 WORD -55 1.13 MS WAIT TURN:OF ENTRY JEQ A,DONT2 'OFFLAG' = REG.A CSK A,=6 IF REG.A = 0,DO NOT TURN-OFF CSK A,=1 < HLT >6 & <1 NO WAY! JMP NORELAY2 = > =6, >1 * = =1,USE RELAY BOARD * RELAY2 EQU $ RBIT 0,A TURN-OFF TEST SYSTEM OUT A,RLYADDR+0 WRITE TO RELAY BOARD COPY   OFFTIME1,Q N.L.T. 3.5 MS DELAY JMP CHKPFD1F * NORELAY2 EQU $ RBIT 2,A PSEUDO TURN-OFF TEST SYSTEM OUT A,PICADDR+2 WRITE DATA WORD 1 (PIC) COPY OFFTIME2,Q N.L.T. 3 MS DELAY JMP CHKPFD1F * DONT2 EQU $ COPY HLIMIT,Q GET MAXIMUM TIME FACTOR ALLOWED NEG Q,Q NEGATE FOR DECREMENT COUNT (9 SEC) COPY Q,AUTOCNT(Y) SAVE FOR USE IN 'IMS' INTRUCTION' ATOWAIT2 EQU $ COPY TIMEFACT,Q GET INTERNAL LOOP COOUNT ATOWAIT1 EQU $ IN PICADDR+0,A *  (INTERNAL LOOP) TBIT 2,A * /PFD LOW ? (INTERNAL LOOP) JF OV,CHEKTIME *  (INTERNAL LOOP) IJNE Q,ATOWAIT1 * NO,KEEP WAITING(INTERNAL LOOP) IMS AUTOCNT(Y) --- OUTSIDE COUNTER --- (RE.Q=0) JMP ATOWAIT2 WAIT UNTIL /PFD IS LOW OR.... JMP TOOSLOW THE COUNTER TIMES OUT * CHEKTIME EQU $ COPY HLIMIT,A GET POSITIVE HIGH LIMIT COUNT ADD AUTOCNT(Y),A ADD REMAINING NEG. TO IT CSK A,=8 LOWER LIMIT > OR < 6 SEC JMP TOOFAST /PFD WENT LOW TO SOON JMP PFDLOW ALLRIGHT! TOOFAST EQU $ COPY =14,Q /PFD < 5.6 SEC TO GO LOW  JMP ERREXITF * TOOSLOW EQU $ COPY =16,Q /PFD > 8.4 SEC TO GO LOW JMP ERREXITF * CHKPFD1F EQU $ IN PICADDR+0,A READ DATA WORD 0 (PIC) TBIT 2,A CHECK IF /PFD IS LOW  JF OV,TIMEOFF2 SHOULDN'T BE YET IJNE Q,CHKPFD1F NO LESS THAN 2 MS COPY OFFTIME4,Q UPDATE COUNT FOR UPPER BOUND CHKPFD2F EQU $ IN PICADDR+0,A READ DATA WORD 0 (PIC) TBIT 2,A  CHECK IF /PFD IS LOW JF OV,WITHIN2 ALLLRIGHT ... IJNE Q,CHKPFD2F TIMEOFF4 EQU $ COPY =8,Q /PFD > 3 MS TO GO LOW JMP ERREXITF * WITHIN2 EQU $ PFDLOW EQU $ COPY OFFTIME5,Q UPDATE COUNT FOR /RST CHKRST1F EQU $ IN PICADDR+0,A READ DATA WORD 0 (PIC) TBIT 0,A CHECK IF /RST LOW JF OV,TIMEOFF3 SHOULDN'T BE YET IJNE Q,CHKRST1F NO LESS THAN 2 MS COPY OFFTIME6,Q UPDATE COUNT FOR UPPER BOUND CHKRST2F EQU $ IN PICADDR+0,A TBIT  0,A CHECK IF /RST LOW JF OV,OFF:EXIT VERY GOOD! IJNE Q,CHKRST2F IF NOT KEEP WAITING COPY =11,Q /RST > 3 MS TO GO LOW JMP ERREXITF * TIMEOFF2 EQU $ COPY =9,Q  /PFD < 2 MS TO GO LOW JMP ERREXITF * TIMEOFF3 EQU $ COPY =10,Q /RST < 2MS TO LOW  JMP ERREXITF * OFF:EXIT EQU $ COPY =0,Q ERREXITF EQU $ COPY Q,MSG:OFF(Y) EXIT MSG:OFF LPOOL TITL TITL ERROR HANDLING ROUTINE (ERACTN) ********************************************************************** * * ERACTN - EXAMINES THE MODE REGISTER AND TAKES * APPROPRIATE ACTION * *****************  ***************************************************** EXTR SYSERR EXTR O:MSG,O:IO EXTR TECHTST,LTECHTST NAM ERACTN DEFINE ERACTN,POINTER LMSG RES 1 MSGPTR RES 1 ENDEF ERACTN ENTRY COPY POINTER,MSGPTR(Y) * FIND THE BOARD NOW BEING TESTED COPY =:21,X FIRST STATUS REGISTER FINDBRD CLSN X,=:2F CHECKED ALL STATUS REGISTERS ? JMP FOUND . . . IF SO, USE :2F ANYWAY COPY 0(X),Q READ A STATUS REGISTER TBIT 15,Q TEST THE CURRENT-TEST-FLAG JT OV,FOUND IJNE X,FINDBRD KEEP TRYING! SPACE 1 FOUND IMS 0(X) INCREMENT FAILURE COUNT FOR THIS BOARD NOP IN CASE OF COUNT OVERFLOW SPACE 1 COPY MODEREG,Q TEST FLAGS FOR ACTION TO TAKE TBIT MODEFLAG,Q IS IT AN INTEREACTIVE TEST ? JF OV,FLG02 IF NOT THEN BYPASS MSG OUTPUT SPACE 1 TBIT ALRMFLAG,Q JF OV,FLG01 IF FLAG=0, THEN GO ON CALL O:IO,=CO,=:07 OTHERWISE RING BELL SPACE 1 FLG01 COPY MODEREG,Q  GET THE FLAG REGISTER BACK TBIT MSGFLAG,Q ARE MESSAGES WANTED ? JF OV,FLG02 SPACE 1 COPY MSGPTR(Y),X COPY 0(X),Q GET MESSAGE LENGTH FROM EXTERNAL BUFFER COPY Q,LMSG(Y) AND SAVE LOCALLLY IMS MSGPTR(Y) INCREMENT POINTER BEYOND LENGTH VALUE CALL O:MSG,=CO,LMSG,MSGPTR FLG02 COPY MODEREG,A TBIT ACTNFLG2,A HALT OR CONTINUE TESTING ? JF OV,FLG03 HLT I'VE BEEN TOLD TO STOP SPACE 1 FLG03 COPY MODEREG,A TBIT ACTNFLG1,A TECH TEST OR CONTINUE ? JF OV,FLG04 COPY A,TTSTFLG COPY MODEREG,A TEST FOR INTERACTIVE TEST AGAIN TBIT MODEFLAG,A JF OV,FLG03A IF NOT INTERACTIVE, THEN NO MSG SENT CALL O:MSG,=CO,LTECHTST,=TECHTST FLG03A EXIT =1 TELL CALLER TO START TECH-TEST LOOP SPACE 1 FLG04 EQU $ COPY =0,A NORMAL RETURN,GET OUT OF ERROR LOOP COPY A,TTSTFLG EXIT =0 END OP SPACE 1 FLG03 COPY MODEREG,A TBIT ACTNFLG1,A TECH TEST OR CONTINUE ? JF OV,FLG04 COPY A,TTSTFLG COPY MODEREG,A TEST FOR INTERACTIVE TEST AGAIN TBIT MODEFLAG,A JF OV,FLG03A IF NOT INTERACTIVE, THEN NO MSG SENT JERACTN: TURN:OF:TURN:ON:JTEST:6: TEST:5: TEST:4: JTEST:3: TEST:2: TEST:1: JERACTN HFT:BBU:HFT:BBU O0SEGMENTBLANK ROM OMESSAGE JUMPTABLBRDENTR OTESTENTRoG$KLTECHTSTTECHTST O:IO KSYSERR YES:NO LSIGNOFFKSIGNOFF LVERIFY VERIFY KFLUSH O:MSG im MACRO (F100) ii234ii #54123 - BATTE RY BACK-UP UNIT (B2) id9ig dIii BATTERY BACK-UP UNIT  - PROG REV (A2) TESTS BOARD REVS B1,B2 F OLLOW TEST SPECIFICATION #58-54123-00 pg  C @0( 0( o) Rp& P  m`P} ֔K @6P P`@ B[A@CO1Pt P P`@ BAn@t tt {P P`@ A @ CIIAA1C+ 6 #AA A BQpP P`@ B A5@t , AP P`@ B .A"@ 0 2P P`@ @ QdP P`@ B (A@ P P`@ B A@g  COP P`@ @t  S BP P`@ @n 22QrP P`@ B (AQ@ UP P`@ B TA?@= DP P`@ 0B  A.@5P P`@  @R: BP P`@ @~ @22QcP P`@ B A@CO P P`@ B Ap@g P P`@ @t  S BP P`@ @n 22QaP P`@ B A>@ UP P`@ BB  A,@FP P`@  @RK BP P`@ @f Q22QaP P`@ B A@CO P P`@ B  Ap@P P`@  @  BP P`@ @ zQ PP P` @ BA>@tt P P`@ B .A,@t  {P P`@ B (A@) jP P`@ B A @ YP P`@ @  8c P`@# t --- CALIBRATION TEST  --- --- EXT. BATTERY  ENABLE SW1 TEST --- - -- INTERNAL BATTERY BACK -UP TEST --- --- NOISE IMMUNITY TEST --- --- AUTO RESTART TEST ---  --- BATTERY DISABLE TES T --- !!! DISABLE INT ERNAL BATTERY (SW1=EXT)  !!! TYPE A CARRIAG E RETURN TO CONTINUE>  RETURN TO EXECUTIVE  (Y N)? >>> EXCHANGE BB U BOARD IN TEST SYSTEM  >>> ENABLE INTERNAL BAT TERY (SW1=INT) TY PE A CARRIAGE RETURN TO  CONTINUE> >>LOOP? (Y N) "1@O^r & *E* /RST INSUFFICIEN T HOLD OFF TIME & *E*  SWITCH OR SPEC.PWR SIGNA L ERROR  *E* NO POWER IN TEST SYSTEM & *E*  /RST RELEASED AFTER /PFD IS HIGH( *E* /PFD REL EASED BEFORE /RST IS HIG H H *E* CONTROL OF TES T SYS. POWER UNSUCCESSFU LL >>> CHECK CONFIGURAT ION 8 *E* COLD START U NSUCCESSFULL >>> CHECK  CONFIGURATION  *E* /P FD > 3 MS TO GO LOW   *E* /PFD < 2 MS TO GO LO W  *E* /RST < 2 MS TO GO LOW  *E* /RST > 3 MS TO GO LOW & *E* MI NIMUM POWER FAIL NOT DET ECTED $ *E* POWER FAIL TRIGGERED BY NOISE   *E* /PFD < 6 SEC TO GO L OW *E* ALARM OUTPUT F AILURE *E* /PFD > 9 SEC TO GO LOWig`P}dii C @0( 0( o) Rp& P PP P`@ B PA@1Pt COP P`@ A @t  CI Pc P`@# >>> PROCEED WITH CALIBRATIO N PHASE TYPE A CAR RIAGE RETURN TO CONTINUE> t ig`P}dii C @60( 0( o) Rp&-P IC2QP P `@ @ C^BI TIA3P P`@ @t HAITA|IAP P`@ @0 6T@?6GO6GBP C   IBP"TAc P`A@# ig`P}d~ii{ C @0( 0( o ) Rp&P IC2QP P`@ @1Pt ( CI3TBPTVBI ATP P`@ @ &HAFTA|IAB C 3P P`@  @*TSIBPTAc P`A@# i g`P}dii C @40(  0( o) Rp&+P IE2 QP P`@ @  EIDTH3WBVCR  BT@6A/6B B  BTIAP P`@ @tS GB0 B ) DQBCB@A  R@ABDKDI EQA0 HA)"B TAz# Ac P`A@# 0ig`P}dfiie C @0( 0( o) R p&P IC2QP P`@ @1Pt # CITIA3BBP  P`@ @P P`@ @ ?BIT A B A IAP P`@ @ fP P`@ @ CQA; IBPTAc P`A@# ig`P}dii C @$0( 0( o) Rp&P IC2QP P `@ @ C 3A BZBITP P`@ @t P P`@ @ BcCQ 8TIBBAc P`A@# ig`P}d0ii+ C @0( 0(  o) Rp&P N    PeTfBaTa] T]@_6@6J@6I T?6B   3L A6B @T@/6H  A64u  Ac P`A@# 1Ptig`P}dii VV {0PC @t0(  0( o) Rp&kP L   Pb-B_^ @AB\@/6TBySB II@/6TH @/6TIB@6T> @6TI I I IAc P`A@# i g`P}diig  C @"0( 0( o) Rp& P B)!,/@6A4܀ @6@6P P`@  A@CO @6ԠB ABP P`@ BAk@t 6 6ۄ2  6P P`@ BAP@t tt {c P` @# 2c P` @# i VV {0PC @t0(  0( o) Rp&kP L   Pb-B_^ @AB\@/6TBySB II@/6TH @/6TIB@6T> @6TI I I IAc P`A@# i g`P}diig  C @"0( 0( o) Rp& P B)!,/@6A4܀ @6@6P P`@  A@CO @6ԠB ABP P`@  TITL SCOUT HARDWARE FUNCTIONAL TEST SYSTEM TITL MACRO DEFINITIONS XMACRO BAR ************************************************************ ENDM BAR * * COPYRIGHT 1979, COMPUTER AUTOMATION, INC * ALL RIGHTS RESERVED * BAR BAR TITL BAR * * MACRO JLPOOL - GENERATE AN LPOOL WITH A JUMP AROUND IT * BAR XMACRO JLPOOL JMP !LPL: JUMP AROUND LPOOL LPOOL !LPL: EQU $ ENDM SPACE 4 BAR * * MACRO BRKPT - GENERATE A DEBUG DUMMY BREAKPOINT * BAR MACRO BRKPT JST *0 ENDM BAR * * MACROS DEFINE, RESERVE & ENDEF - * USED TO DEFINE THE Y-SCRATCHPAD AREA OF A SUBROUTINE * CALLING SYNTAX: *  DEFINE LABEL<,LABEL> . . . * OPERAND #1 - SUBROUTINE BEING DEFINED * OPERANDS #2 - #8 - OPTIONAL SUBROUTINE PARAMETERS * BAR MACRO DEFINE OPTIONS +:4 BRD:: SET FALSE IFT #(?)>1 #(2) EQU A ENDC LPOOL TESTENTR REL NAM #(1): #(1): JSK #1 COPY L,Y JMP $-2 ABS 0  RES 1 RESERVE A LOCATION FOR CALLER SCRATCH PTR DEF: SET #(?)-1 IFT DEF:>1 RESERVE  #3,#4,#5,#6,#7,#8,#9,#10 RESERVE SPACE FOR PASSED PARMAMETERS ENDC ENTRSIZ SET 4 ARGS: SET $-1 OPTIONS -:4  ENDM SPACE 4 MACRO RESERVE RES: SET $ #(RES:) RES 1 IFT $1 #(2) EQU A ENDC LPOOL BRDENTR REL NAM #(1): #(1): JMP *$+1 WORD  #(1)Z NOP NOP ABS 0 RES 1 RESERVE A LOCATION FOR THE CALLER SCRATCH PTR DEF: SET #(?)-1 IFT DEF:>1 RESERVE #3,#4,#5,#6,#7,#8,#9,#10 RESERVE SPACE FOR PASSED PARAMETERS ENDC ARGS: SET $-1 OPTIONS -:4 ENDM TITL BAR * * MACRO SYSDEF - SUBSTITUTE FOR THE DEFINE MACRO, * USED TO DEFINE THE SYSTEM ROUTINES * BAR MACRO SYSDEF OPTIONS +:4 BRD:: SET FALSE IFT #(?)>1 #(2) EQU A ENDC LPOOL ABS 0 RES 1 RESERVE A LOCATION FOR THH CALLER SCRATCH PTR DEF: SET  #(?)-1 IFT DEF:>1 RESERVE #3,#4,#5,#6,#7,#8,#9,#10 RESERVE SPACE FOR PASSED PARAMETERS ENDC ARGS: SET $-1 OPTIONS -:4 ENDM TITL BAR * * MACRO ENTRY - GENERATES CODE FOR A SUBROUTINE ENTRY * CALLING SYNTAX: *