PL/M-51 COMPILER PAGE 1 ISIS-II PL/M-51 V1.0 COMPILER INVOKED BY: PLM51 :F1:TSTR01.P51 $ROM(LARGE) $DEBUG NOSYMBOLS NOPAGING /*THIS PLM/51 PROGRAM IS THE CONTROL FOR THE VIKING ELECTRONICS UNIVERSAL PRODUCT TESTER. TEST SELECTION MODULE VERSION 1.0 19 MAY 1988 BY BILL HEIDEMAN */ 1 1 TEST_SEL: DO; $NOLIST /******************************************** * * * THESE ARE THE EXTERNAL PROCEDURES * * * ********************************************/ 44 2 WAITM: PROCEDURE (LENGTH) EXTERNAL; 45 2 DCL LENGTH BYTE; 46 1 END WAITM; 47 2 ACAII_TEST: PROCEDURE EXTERNAL; 48 1 END ACAII_TEST; /******************************************** * * * THESE ARE THE INTERNAL PROCEDURES * * * ********************************************/ 49 2 TONE_READ: PROCEDURE; 50 2 DCL J BYTE; 51 2 J=0; 52 3 DO WHILE((J<>10) AND (FAULT=0)); 53 3 EXP3_C=TTG_OUT(J); 54 3 CALL WAITM(80); 55 3 IF (EXP3_B AND 10H)=0 THEN FAULT=1; 57 4 IF J=0 THEN DO; 59 4 IF (EXP3_B AND 0FH)<>0AH THEN FAULT=1; 61 4 END; 62 4 ELSE DO; 63 4 IF (EXP3_B AND 0FH)<>J THEN FAULT=1; 65 4 END; 66 3 J=J+1; 67 3 ERROR_CODE=ERROR_CODE+1; 68 3 END; 69 1 END TONE_READ; 70 2 DIAGS: PROCEDURE; 71 2 DCL (I,MASK) BYTE; 72 2 ERROR_CODE=0; 73 2 FAULT=0; 74 2 EXP2_C=40H; /* TURN ON 5 VOLTS */ 75 3 DO I=0 TO 3; 76 3 CALL WAITM(250); 77 3 END; 78 2 EXP2_C=20H; /* TURN ON 12VAC */ 79 3 DO I=0 TO 3; 80 3 CALL WAITM(250); 81 3 END; 82 2 EXP2_C=0; 83 2 MASK=0FEH; 84 2 I=0; 85 3 DO WHILE((I<>8) AND (FAULT=0)); 86 3 EXP0_A=MASK; 87 3 IF EXP0_B<>MASK THEN FAULT=1; 89 3 IF EXP4_C<>MASK THEN FAULT=1; 91 3 I=I+1; 92 3 MASK=ROL(MASK,1); 93 3 ERROR_CODE=ERROR_CODE+1; 94 3 END; 95 2 MASK=0FEH; 96 2 I=0; 97 3 DO WHILE((I<>8) AND (FAULT=0)); 98 3 EXP0_C=MASK; 99 3 IF EXP1_A<>MASK THEN FAULT=1; 101 3 I=I+1; 102 3 MASK=ROL(MASK,1); 103 3 ERROR_CODE=ERROR_CODE+1; 104 3 END; 105 2 MASK=0FEH; 106 2 I=0; 107 3 DO WHILE((I<>8) AND (FAULT=0)); 108 3 EXP1_B=MASK; 109 3 IF EXP1_C<>MASK THEN FAULT=1; 111 3 I=I+1; 112 3 MASK=ROL(MASK,1); 113 3 ERROR_CODE=ERROR_CODE+1; 114 3 END; 115 2 MASK=0FEH; 116 2 I=0; 117 3 DO WHILE((I<>8) AND (FAULT=0)); 118 3 EXP2_A=MASK; 119 3 IF EXP2_B<>MASK THEN FAULT=1; 121 3 I=I+1; 122 3 MASK=ROL(MASK,1); 123 3 ERROR_CODE=ERROR_CODE+1; 124 3 END; 125 2 MASK=0FEH; /* OPTO CHECK */ 126 2 I=0; 127 3 DO WHILE((I<>3) AND (FAULT=0)); 128 3 EXP2_C=NOT(MASK); 129 3 CALL TIME(5); 130 3 IF (EXP4_B OR 0E3H)<>ROL(MASK,2) THEN FAULT=1; 132 3 I=I+1; 133 3 MASK=ROL(MASK,1); 134 3 ERROR_CODE=ERROR_CODE+1; 135 3 END; 136 3 IF FAULT=0 THEN DO; /* TTD CHECK */ 138 3 EXP4_A=3FH; 139 3 EXP2_C=10H; 140 3 EXP3_C=0; /* TURN OFF TONE AND RELAYS */ 141 3 CALL WAITM(80); 142 3 I=0; 143 4 DO WHILE((I<>6) AND (FAULT=0)); 144 4 EXP3_A=(I OR SHL(I,4)); 145 4 CALL WAITM(80); 146 4 IF (EXP3_B AND 10H)<>0 THEN FAULT=1; 148 4 I=I+1; 149 4 ERROR_CODE=ERROR_CODE+1; 150 4 END; 151 3 END; 152 3 IF FAULT=0 THEN DO; 154 3 EXP2_C=10H; 155 3 EXP4_A=2; /* TEST TONES */ 156 3 EXP3_A=1; /* OUT 1 IN 2 */ 157 3 CALL WAITM(50); 158 3 CALL TONE_READ; 159 3 END; 160 3 IF FAULT=0 THEN DO; 162 3 EXP2_C=10H; 163 3 EXP4_A=2; /* TEST LINES */ 164 3 EXP3_A=1; /* OUT 1 IN 2 */ 165 3 CALL WAITM(100); 166 3 CALL TONE_READ; 167 4 IF FAULT=0 THEN DO; 169 4 EXP4_A=1; 170 4 EXP3_A=10H; /* OUT 2 IN 1 */ 171 4 CALL WAITM(100); 172 4 CALL TONE_READ; 173 4 END; 174 3 END; 175 3 IF FAULT=0 THEN DO; 177 3 ERROR_CODE=99; 178 3 EXP2_C=0; /* DISABLE DRIVERS */ 179 3 EXP3_C=0; 180 3 EXP4_A=0; 181 3 END; 182 1 END DIAGS; /******************************************** * * * THESE ARE THE PUBLIC PROCEDURES * * * ********************************************/ 183 2 BOARD_TEST: PROCEDURE (SELECT) PUBLIC; 184 2 DCL SELECT BYTE; 185 2 IF SELECT>1 THEN SELECT=1; 187 3 DO CASE SELECT; 188 4 DO; /* CASE 0 */ 189 4 EXP0_COM=82H; 190 4 EXP1_COM=99H; 191 4 EXP2_COM=82H; 192 4 EXP3_COM=82H; 193 4 EXP4_COM=8BH; 194 4 CALL DIAGS; 195 4 END; 196 4 DO; /* CASE 1 */ 197 4 CALL ACAII_TEST; 198 4 END; 199 3 END; 200 1 END BOARD_TEST; 201 1 END TEST_SEL; MODULE INFORMATION: (STATIC+OVERLAYABLE) CODE SIZE = 02CDH 717D CONSTANT SIZE = 0000H 0D DIRECT VARIABLE SIZE = 00H+04H 0D+ 4D INDIRECT VARIABLE SIZE = 00H+00H 0D+ 0D BIT SIZE = 00H+00H 0D+ 0D BIT-ADDRESSABLE SIZE = 00H+00H 0D+ 0D AUXILIARY VARIABLE SIZE = 0000H 0D MAXIMUM STACK SIZE = 0006H 6D REGISTER-BANK(S) USED: 0 332 LINES READ 0 PROGRAM ERROR(S) END OF PL/M-51 COMPILATION