h AT : Only U V W X Y Z will be realsr U,W~ : NBASE , : "Testing Binary board."&STOPON  : ()  : () :Set up F4 trap' , :( "COMBINED SEC-PC DIAGNOSTIC AND EXERCISER Rev A 8/20/85"l2  : INSTALL MACHINE LANGUAGE SUBROUTINE<  : SETUP SCREEN, SOME CONSTANTSFPASS PERRORS  : RATERS Z () ( : () : Trap and terminate on F8 key.4d SPSL,0 : "FORWARD" : ( channels together )Hn T  LASTT^x COORD  l z COORD T SPSL,0 : "REVERSE" : ( CHANNELS IN SEQUENCE ) COORD    T LASTT     T COORD),PASS PASS 76 SPSL,M@ "######";PASSWJ d]jEROR x SPSL,1 "## ";T; (("X")COORD); T ,,,,&,0,:,D,N,X  T b,l,v,,,,,,,@ T ,,,,,,, ,, ] T *,,,H : Catch unimplemented ones * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * NUMBERED TESTS, LINE NUMBER IS T * 10 + 500 * *d * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *TTYPE$ " RESET " : DST  : U  : T1: reset counters  : BTTYPE$ "PI & PO " : DST : U  : W  :T2: try PO to PI  PO, : \TTYPE$ "PI & PO " : DST  : U  : W  :T3: try PO to PIi PO, PGST (PO) EROR DST GST LTTYPE$ " SWITCH " : DST  : U  : T4: push switch    PO, : PO, : PO, : B3"JUNK (PCOM) : DST  : B}&TTYPE$ " SWITCH " : DST  : U  : T5: push switch, reset flag( * PO, : PO, : PO,,JUNK (PCOM) : B0TTYPE$ "COUNTING" : DST  : U  : 7:U  :  : T7: TTYPE$ and DST valid from T6 or T8fDU  :  : T8: one down then one upF PO,S() : PO,S() : .NU  :  : T9: one up then one downP PO,S() : PO,S() : .XU  : bU  : lU  : %vU  : ?U  : YU  : sU  : U  : U  : U @ : U @7 : U  : U R : >U  : B S() : ( : T23: Unusual starting POM PO,S()W .U  : B S() : ( : T24 PO,S() .TTYPE$ "COUNTING" : U 90 : DST  : TTYPE$ "MULTICNT" : U  : DST  : MCNT  : FTTYPE$ "MULTICNT" :  : B S() : PO,BpMCNT  : U  : DST  :  TTYPE$ "LED > PI" : U  : W  :T28DST ` : DST ( PCOM,( DST x)GST (PO) xEROR DST GST : L@ TTYPE$ "LED > PI" : U  : W  :T30U"DST `: *TTYPE$ "RATE ERR" : U  : DST  : :T31: Try for rate error,B S() : (. PO,S() : .4B S() : (6 PO,S() : . >B S() : (#@ PO,S() : .VHTTYPE$ "RATE ERR" : U  : DST  : :T34lJB S() : (L PO,S() : . * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * SHARED CODE FOR THE MOST COMMON COUNTING TEST * *j * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *  : Do normal reset U | G S() : H S() : Set upcount patternCOUNT U : $(G S() : H S() : Set downcount pattern@COUNT U[$ SUB!(B,G,H,COUNT,PO)e. xB * * END OF EACH PASS * *L EROR  V * * TEST HAD AN ERROR * *[ ();\ ();` SERL,1 j "## ";T; t (("X")COORD);9 ~ SERL,0 : TTYPE$l  SERL,/ : "########";U;:" data sent";  SERL,/ : "########";W;:" data recvd.";  SERL,0 : (DST);"::";(GST);" " ERRORS ERRORS  ! SERL, : "######";ERRORS=! T  T "  :Not rate error!RATERS RATERS  :Count rate errors separately just in case! SERL, : "######";RATERS! STOPON , : !" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *`" * * SUBROUTINE, RESET COUNTERS AND SWITCH FLAG * *"  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *"B S() : Normal starting value, all low#( PO,B : Put it out to PO port!#2 PSC, : Reset countersK#<JUNK (PCOM) : Clear switch flagQ#F#Z * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *#d * * SUBROUTINE, READ A COUNTER AND CHECK RESULTS * *5$n * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *B$x PCOM,r$GST (PSC)@ : The status what we got$ PSC, :Make a copy of the counters$ PCOM,COORD%W (((((PD)NBASE(PD))NBASE(PD))NBASE(PD))NBASE(PD))NBASE(PD)@% SCDL,COORD : Find appropriate place on screenV% "########";W;u% U W EROR EROR % GST DST EROR EROR %% * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *6& * * THE MULTI-COUNT LOOP FOR T26 AND T27 * *& * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *& &G S() : H S()&COUNT (MCNT)& MULTI  &" SUB!(B,G,H,COUNT,PO)', U U MCNT.'6 U  U U P'@ U  U U \'J xh'T MULTIr'^ B' * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ( * * SUBROUTINE, INSTALL MACHINE LANGUAGE SUBROUINE & USER FN * *V( * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *( FILL MACHINE LANGUAGE SUBROUTINE INTO STRING S$(S$(2,?)(P!(S$)(P!(P!)(P!)(SUB!P!(  4( D : D  p )  P!,D : P!P!)* A)4 85,139,236,139,118,6,139,20,139,118,8k)> 139,12,139,118,10,138,60,139,118,12)H 138,28,139,118,14,139,4,50,195,134,223)R 238,226,249,137,4,93,202,10,0,-1)\ SEE FILE MACH.LST FOR HEX LISTING OF ABOVE*f Last inst fixed to far jump 8/13/85 *ka*p S(D) D(COORD) : ** The one user fn employed ***u THE '+1' REPRESENTS THE SWITCH NO CONTACT OPEN*y*z * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *4+ * * SUBROUTINE, SETUP OF SCREEN, CONSTANTS, ETC. * *+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *+SPSL  : SCREEN LINE OF PASS AND SECTION COUNTS+ SPSL, : (,);( , );(,), SPSL, : "PASSES";(, );"SECTION"G,SCDL  : SCREEN LINE OF COUNTER DISPLAYSW, SCDL,, "X CNTR";(, );"Y CNTR";(, );"Z CNTR", SCDL, : (,);, SCDL,% : (,);, SCDL,: : (,);-SERL  : SCREEN LINE OF ERROR COUNTER.- SERL, : "ERRORS";N- SERL,/ : "LAST ERR";k- SERL, : (,);- SERL,/ : (,)- LASTT " : The number of tests-$ PSC 0 : PD PSC : I/O Port set by switches on SEC-PC!.. PO PSC  : PROM PSC  : PCOM PSC '.V s. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *. * * SUBROUTINE, F4 TRAPS HERE TO STOP ON ERROR * * / * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ STOPON  / l/ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ * * SUBROUTINE, F8 TRAPS HERE TO TERMINATE (NO RETURN) * *0 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *0( ,02