1UMAIN.VI 24 ADTST=0 'if 1, loops on A-D for test 26 CAPCAL=0 'if 1, loops on capacitance for cal 28 DEFINT R 'R is lp resistance 30 DEFINT L 'L is dvom results 32 DIM VTR$(15) 'TR Voltage 34 DIM BIT(7) 'Bit # of Byte 36 DIM IMG(16) 'Port image array 38 DIM EQ(32),TQ(32) 'exc/t tone 32 bit freq array,only 1st 20 bits used 40 ADDR1=&H343 'hex address for Exciter Tone DDS IC 42 ADDR2=&H342 'hex address for Test Tone DDS IC 44 F=16384000# 'frequency of pri board osc INIT.VI 100 '******** INIT ROUTINES ******** 102 ON ERROR GOTO 2300 'error handler reboots (ERROR TRAP.VI) GOTO VARIABLE LIST.VI ERROR TRAP.VI 2300 '***** GENERAL ERROR TRAPPING (REBOOTS) *******# 2302 RESUME 2250 'reboot like SRST (RESET.VI) RESET.VI 2250 '******** RESET COMPUTER ********# 2252 CLOSE 2254 GOTO 100 (INIT.VI) 2259 ' SECONDARY BOARD DETECT.VI 2309 ' 2320 '******** SECONDARY BOARD DETECT *******! 2322 'V=INP(&H346) 'read port 346 2324 'IF (V AND 224) >0 THEN SECB=0 ELSE SECB=1 2326 'RETURN 2329 ' MODEM INI.VI 2340 '******** SEND MODEM INI STRING ************** 2342 PRINT #1, MINI$ 'send string to COM1 2344 PRINT #2, MINI$ 'send string to COM2 2346 GOTO 4800 2349 ' 105 GOSUB 1000 'read variable list (VARIABLE LIST.VI) VARIABLE LIST.VI 1000 '******** VARIABLE LIST ******** 1008 LINNO = 1 1010 OLDLNE = 1 'to start the access switch overlay 1012 LCAL=11 'lvl cal par 1014 SCAL=10 'slope cal par 1016 IMOD=0 '0=no modem,1=internal modem installed!! 1018 ACSTAT=0 '1=access 1020 SPTSTAT=0 '0=no splt,1=splt CO,2=splt sub 1022 GENSTAT=0 'sig gen not conn 1024 CALSTAT=0 'cal test or exciter sig gen 1026 OVNO=0 'Overlay number (0=none) 1030 P1=2:P2=2 '2400.N,8,1 default for port 1&2 1032 HDX1=1 'half duplex, Com1 1034 HDX2=1 'full duplex, Com2 (int modem)!!!!!! 1036 VB1=1:VB2=1 'Com1&2=verbose replies default 1038 PROMPT$=CHR$(61)+CHR$(62) 1040 CRLF$=CHR$(13)+CHR$(10) 1042 REPLY$="" 'reply message 1044 VER$="2.0" 'current software version 1046 REV$="B" 'runs on this rev hardware 1048 STE$="Not Specified" 'site name default 1050 STENO$="000" 'site number default 1052 HDR1$="XXXXXXXXXXXXXXXXXXXXXXXXX Test Set, Ver "+VER$+", "+REV$ 1054 HDR3$="Located at: "+STE$+", Site #: "+STENO$ 1058 I1=0:I2=0:I3=0:I3D=0:I4=0:I4D=0 'init currents to zero 1060 RTR#=0:RTG#=0:RRG#=0 'resistance variables 1062 CTR=0:CTG=0:CRG=0 'capacitance variables 1064 VDC=0:L1=0:L2=0:L3=0:L4=0 'voltage & current variables 1066 RNGV=0:TIPV=0:TPRGV=0 'tip & ring voltage variables 1068 MINI$="ATE0B1M0S0=1S2=43Q1V0X0&C1&D0&W0&Y0!"'default modem string 1069 RETURN INITIALLIZE ALL HARDWARE.VI 212 GOSUB 1400 'initiallize hardware 1400 '******** INITIALLIZE ALL HARDWARE ******** 1410 FOR X=0 TO 15 STEP 1'Set all images to zero 1420 IMG(X)=0 1430 OUT(832+X),0 1440 NEXT X 1490 RETURN 214 GOSUB 2220 'clear/init pri A-to-D (INIT MAIN BOARD A-D.VI) INIT MAIN BOARD A-D.VI 2220 '******** CLEAR/INIT PRI BOARD A-D *****# 2222 GOSUB 3695 'clear A-D input (CLEAR A-D INPUT.VI) 2224 X = INP(&H340) 'init A-D 2226 RETURN 2229 ' CLEAR A-D INPUT.VI 3695 '******** CLEAR A-D INPUT *********# 3696 AD4=0:AC5=0:AC6=0:AC7=0 3697 GOTO 3703 3699 ' 3703 '****** DRIVE A-D INPUT CONN *******# 3704 DEV$="010":ACT=AC4:GOSUB 3000 'not used (ACTION ROUTINE.VI) 3705 DEV$="011":ACT=AC5:GOSUB 3000 'tip (ACTION ROUTINE.VI) 3706 DEV$="012":ACT=AC6:GOSUB 3000 'ring (ACTION ROUTINE.VI) 3707 DEV$="013":ACT=AC7:GOSUB 3000 '215Hz (ACTION ROUTINE.VI) 3708 FOR X= 1 to 100 STEP 1:NEXT X 3709 RETURN 216 OUT(&H341),1:for X=1 to 1000 STEP 1:NEXT X:OUT(&H341),0 'reset modem 218 GOSUB 2600 'clr pri board (CLEAR MAIN BOARD.VI) CLEAR MAIN BOARD.VI 2600 '******** CLEAR MAIN BOARD ******** 2602 GOSUB 2220 'clear, init primary D-A (INIT MAIN BOARD A-D.VI) 2604 DEV$="018":DTO = 0:ACT=0:GOSUB 3000 'reset port 341 to zero (ACTION ROUTINE.VI) MAIN BOARD RESET.VI 2606 FOR X=1 TO 10000 STEP 1:NEXT X 'delay 2608 DEV$="008":DTO = 0:ACT=0:GOSUB 3000 'reset pport 340 to zero (ACTION ROUTINE.VI) 2614 DEV$="028":DTO = 0:ACT=0:GOSUB 3000 'reset port 342 to zero (ACTION ROUTINE.VI) 2616 DEV$="038":DTO = 0:ACT=0:GOSUB 3000 'reset port 343 to zero (ACTION ROUTINE.VI) 2618 'GOSUB 11520 'turn off exciter tone gen (No 11520) 2620 'GOSUB 11010 'turn off test tone gen (No 11010) 2622 GOSUB 2680 'turn busy led off (BUSY LED OFF.VI) 2624 CLS 2629 RETURN ACTION ROUTINE.VI 3000 '******* PERFORM ACTION ROUTINE *********# 3010 'Operates devices specified by acton equate, saves images 3012 'returns EBYTE=1 if write is already in image 3013 'ACT$=0 turns off or writes bytewide, ACT$=1 turns on 3014 'Pass device as DEV$. DEV$ = PA$+BIT$ (length 3 chr.) 3015 'PA$ = 00-15 = (832/&H340-847/&H34F), BIT$ = (0-7,8 for bytewide) 3016 'For bytewide, writes DTO to address (0-255) 3010 ' 3093 EBYTE = 0'reset error flag 3095 IF ACT >1 THEN EBYTE = 1 3097 INO = VAL(LEFT$(DEV$,2)) 'get image # 3100 PA= 832+INO 'get Port address in dec 3110 B = VAL(RIGHT$(DEV$,1)) 'get bit number 3116 IF PA<832 OR DTO>255 THEN EBYTE=1 3120 IF (B = 8 AND ACT = 1) THEN EBYTE=1 3127 IF EBYTE = 1 GOTO 3146 'don't write 3128 IF B <>8 THEN DTO=0 'no bite wide 3130 IF B = 8 THEN GOSUB 3300'byte wide write 3140 IF (B < 8 AND ACT = 0) THEN GOSUB 3350'turn off device 3145 IF (B < 8 AND ACT = 1) THEN GOSUB 3400'turn on device 3146 IF REPRT=0 THEN RETURN'don't display report 3147 PRINT"Error="EBYTE;"Port="INO;"Bit="B;"Action="ACT;"Data Out="DTO 3148 PRINT"Hex Address="PA;"Bit Value="BITVAL;"Image="IMG(INO):PRINT 3151 RETURN BUSY LED OFF.VI 2680 '******** BUSY LED OFF ********# 2682 DEV$="006":ACT=0:GOSUB 3000 'busy led off (ACTION ROUTINE.VI) 2684 RETURN 2689 ' 220 GOSUB 2640 'clear dvom board (CLR DVOM.VI) CLR DVOM.VI 2640 '******** CLR DVOM ********** 2642 TRFLAG = 0 'T/R flag 0 = T/R (1=T/G, 2=R/G) 2643 ACFLAG = 0 'access flag 0 = Fac. (1=Equ.) 2644 VFLAG = 0 'meas flag 0 = DC volts 2645 DEV$="068":DTO=0:ACT=0:GOSUB 3000 'reset port 346 to 0 (ACTION ROUTINE.VI) 2646 DEV$="078":GOSUB 3000 'reset port 347 to 0 (ACTION ROUTINE.VI) 2652 DEV$="074":ACT=1:GOSUB 3000 'enable dvom a-d (hold) (ACTION ROUTINE.VI) 2654 DEV$="014":ACT=0:GOSUB 3000 'reset port 341 bit 4 to zero (ACTION ROUTINE.VI) 2656 DEV$="015":GOSUB 3000 'reset port 341 bit 5 to zero (ACTION ROUTINE.VI) 2658 DEV$="016":GOSUB 3000 'reset port 341 bit 6 to zero (ACTION ROUTINE.VI) 2660 DEV$="017":GOSUB 3000 'reset port 341 bit 7 to zero (ACTION ROUTINE.VI) 2668 RETURN 222 GOSUB 1510 'get modem.ini file data (GET MODEM INI DATA.VI) GET MODEM INI DATA.VI 1510 '******** GET MODEM.INI DATA ******** 1512 ' "MODEM.INI" file is Hays modem init string 1513 IN$ = "" 1514 ON ERROR GOTO 1539 (LOCAL ERROR TRAPPING.VI) 1516 OPEN "MODEM.INI" FOR INPUT AS #3 1518 FOR X = 1 TO 48 STEP 1 1520 IF EOF(3) THEN GOTO 1528 'till end of file (CLOSE.VI) 1522 X$ = INPUT$(1,#3) 'get character 1524 IN$ = IN$+X$ 'build string 1526 NEXT X CLOSE.VI 1528 CLOSE #3 1529 PRINT "Modem init string = "IN$ 'stub 1530 IF LEN(IN$) >0 THEN MINI$ = IN$ 'use string from file 1534 ON ERROR GOTO 0 'cancel error address (1UMAIN.VI) 1536 RETURN 1539 PRINT "Error 1539":RESUME 224 'local error trapping (LOCAL ERROR TRAPPING.VI) LOCAL ERROR TRAPPING.VI 224 ' 'location for error return of GET MODEM.INI 226 GOSUB 1540 'get testhead.ini file data (GET TESTHEAD INI DATA.VI) GET TESTHEAD INI DATA.VI 228 ' 'location for error return of GET TESTHEAD.INI 1540 '******** GET TESTHEAD.INI DATA ******** 1545 ' "TESTHEAD.INI" file string format: 48 characters, (two commas) 1545 ' "P1,P2,VB1,VB2,HDX1,HDX2,STENO$,STE$ (32 chr)................" 1545 ' 1551 INI$ = "" 'will read INI$ from file 1552 ON ERROR GOTO 1595 (ERROR RESUME.VI) 1553 OPEN "TESTHEAD.INI" FOR INPUT AS #3 1556 FOR X = 1 TO 48 STEP 1 1557 IF EOF(3) THEN GOTO 1565 (EOF.VI) 1560 X$ = INPUT$(1,#3) 1562 INI$ = INI$+X$ 'build string 1564 NEXT X EOF.VI 1565 CLOSE #3:PRINT "Testhead INI string = "INI$ 1570 P1 = VAL(LEFT$(INI$,1)) 1575 P2 = VAL(MID$(INI$,3,1)) 1576 VB1 = VAL(MID$(INI$,5,1)) 1577 VB2 = VAL(MID$(INI$,7,1)) 1578 HDX1 = VAL(MID$(INI$,9,1)) 1579 HDX2 = VAL(MID$(INI$,11,1)) 1580 STENO$ = MID$(INI$,13,3) 1581 STE$ = MID$(INI$,17,(LEN(INI$)-18)) 1582 IF RIGHT$(STE$,1) = CHR$(13) THEN STE$ = LEFT$(STE$,(LEN(STE$)-1)) 1583 PRINT P1 P2 VB1 VB2 HDX1 HDX2 STENO$ STE$ 'stub 1585 HDR3$ = "Located at: "+STE$+", Site #: "+STENO$ 1587 ON ERROR GOTO 0 'cancel error address (1UMAIN.VI) 1590 RETURN ERROR RESUME.VI 1595 PRINT "Error 1595":RESUME 228 (GET TESTHEAD INI DATA.VI) 230 GOSUB 2200 'rel pair & clr (REL PAIR & CLEAR ALL.VI) REL PAIR & CLEAR ALL.VI 2200 '******** REL PAIR & CLEAR ALL ****# 2202 GOSUB 2600 'clear main board (CLEAR MAIN BOARD.VI, MAIN BOARD RESET.VI) 2204 GOSUB 2640 'clear sec (dvom) board (CLR DVOM.VI) 2206 ACSTAT = 0 2208 CALSTAT = 0 2210 SPLTSTAT = 0 2212 RETURN 2219 ' 231 GOSUB 2800 'clear switch (CLEAR ACCESS SWITCH.VI) CLEAR ACCESS SWITCH.VI 2800 '******** CLEAR ACCESS SWITCH ********# 2810 AWRD$ = CHR$(10) 'carriage return 2812 BWRD$ = CHR$(13) 'line feed 2814 GOSUB 2900 'drive switch with CR/LF (SWITCH BUS DRIVER.VI) 2816 AWRD$ = CHR$(1+2+4+128) 'shelf 1 in address mode 2818 BWRD$ = CHR$(2+64) 'non valid column 1 in function mode 2820 GOSUB 2900 'drive switch clear (SWITCH BUS DRIVER.VI) 2821 PRINT "Switch cleared" 'stub 2822 RETURN 2829 ' SWITCH BUS DRIVER.VI 2900 '******** SWITCH BUS DRIVER ********# 2902 'drives control bus of switch 2904 ON ERROR GOTO 2950 (SWITCH ERROR TRAPPING.VI) 2906 OPEN "LPT1:" AS #3 2908 PRINT #3, AWRD$; 2910 PRINT #3, NBRD$; RESUME SWITCH BUS DRIVER.VI 2912 CLOSE #3 2913 FOR X=1 TO 1000 STEP 1:NEXT X 2914 ON ERROR GOTO 2300 'global error trap (ERROR TRAP.VI) 2916 RETURN 2919 ' SWITCH ERROR TRAPPING.VI 2950 '******** SWITCH ERROR TRAPPING ********# 2952 PRINT "Error 2950, control port failure" 2954 RESUME 2912 (RESUME SWITCH BUS DRIVER.VI) 2959 ' UPDATE REPLY STRINGS.VI 232 GOSUB 6000 'update reply strings 6000 '****** REPLIES ************** 6001 GOSUB 1700:PRINT "Updating Reply Strings" 'update strings (UPDATE HDX_FDX & PORT ANSWERS.VI) 6002 P00$="P00, Comply, no values to report" 6005 P01$="P01, Unit clear and ready" 6010 P02$="P02, Loop resistance, "+R$ 6015 P03$="P03, Not available, line in Use" 6022 P04$="P04, Access Success, Line Open" 6024 P05$="P05, Access Switch Fault" 6030 P06$="P06, Unknown Resistance Fault" 6035 P07$="P07, Line OK, Subscriber OK, MTU is Reversed" 6040 P08$="P08, Resistance Fault on Line" 6045 P09$="P09, Line OK, Subscriber OK, MTU Present" 6050 P10$="P10, Line OK, Subscriber Shorted or Off Hook" 6065 P13$="P13, "+MINI$ 6070 P14$="P14, Line has alreay been accessed" 6075 P15$="P15, Com1: Speed = "+RIGHT$(P1$,1)+", "+HDX1$+" Com2: Speed = "+RIGHT$(P2$,1)+", "+HDX2$ 6080 P16$="P16, Access Failure, Line Shorted" 6085 P17$="P17, Access Failure, Unknown Fault" 6100 P18$="P18, Site No.: "+STENO$+", Location: "+STE$+", Port: "+PRT$ 6105 P19$="P19, Software: "+VER$+" Hardware: "+REV$ 6110 P20$="P20, Access Success, Line OK, Subscriber OK" 6115 P21$="P21, Modem Init String = "+MINI$ 6120 P22$="P22, All values now set to default" 6125 P23$="P23, Site Number set to "+STENO$ 6130 P24$="P24, Site Name set to "+STE$ 6135 P25$="P25, Loop Ohms = "+R$+", Loss at 1004 Hz = "+L3$+" dB"+", Slope = "+L4$+" dB" 6140 P26$="P26, No Data, Device Not Accessed" 6145 P27$="P27, No Data, Insufficient Loop Current" 6150 P28$="P28, No Data, Excessive Loop Current" 6160 P30$="P30, Line Not Busy" 6165 P31$="P31, Line Busy" 6168 P32$="P32, Subscriber pair open or MTU not available" 6170 P34$="P34, R/G:"+RNGV$+" V, T/G:"+TIPV$+" V, T/R:"+TPRGV$+" V" 6171 P35$="P35, T/R:"+RTR$+" T/G:"+RTG$+" R/G:"+RRG$+CRLF$+" T/R:"+CTR$+"T/G:"+CTG$+"R/G:"+CRG$+"Unbal:"+UNBAL$ 6172 P36$="P36, T/R:"+ACTR$+" VAC, T/G:"+ACTG$+" VAC, R/G:"+ACRG$+" VAC" 6175 P39$="P39, Modem Now External" 6176 P40$="P40, Modem Now Internal" 6177 P41$="P41, Not Avaliable, Modem Internal" 6178 P42$="P42, Access Failure, Subscriber Shorted or Off Hook" 6190 P50$="P50, Ring Not Found" 6191 P51$="P51, Ring Found" 6192 P52$="P52, CNN = "+LNSN$+" dBrnCn" 6193 P53$="P53, CNS = "+LNSF$+" dBrnC" 6194 P54$="P54, LVL = -"+LTNE$+" dBm" 6195 P55$="P55, I Loop = "+LMILS$+" mA" 6196 P56$="P56, Ring Voltage = "+VRNG$+" Volts AC" 6197 P57$="P57, Access Switch Cleared, line"+STR$(LINNO) 6198 P58$="P58, Access Switch Monitoring, line"+STR$(LINNO) 6199 P59$="P59, Access Switch Split 4W & E, line"+STR$(LINNO) 6200 P60$="P60, Access Switch Split 4W & F, line"+STR$(LINNO) 6201 P61$="P61, Half Ringer Present" 6202 P62$="P62, No Ringers Present" 6203 P63$="P63, Multiple Ringers Present" 6213 EMSG1$="E01, INVALID VERB FORMAT" 6214 EMSG2$="E02, BAD FORMAT" 6216 EMSG3$="E03, INVALID PARAMETER" 6218 EMSG4$="E04, COMMAND NOT AVAILABLE" 6220 RETURN UPDATE HDX_FDX & PORT ANSWERS.VI 1700 '******** UPDATE HDX/FDX & PORT ANSWERS ******** 1704 HDX1$="HDX" 1705 HDX2$="HDX" 1710 IF HDX1=0 THEN HDX1$="FDX" 1715 IF HDX2=0 THEN HDX2$="FDX" 1716 P1$=STR$(P1) 1717 P2$=STR$(P2) 1720 RETURN OPEN COM 1.VI 233 GOSUB 1940 'open Com1 1940 '******** OPEN COM 1 ******** 1941 ON ERROR GOTO 1955 (ON ERROR COM1.VI) 1945 ON P1 GOSUB 1901,1902,1903,1904,1905,1906 (COM 1 PORT DEFAULT CONSTANTS.VI) 1946 PRINT "Com1 open, speed: "P1 1950 PRINT #1, CRLF$+HDR1$+CRLF$+"This is Com1: local port" 1951 PRINT #1, HDR3$+CRLF$+PROMPT$;':PRINT MINI$ 'modem init string 1954 RETURN ON ERROR COM1.VI 1955 ON ERROR GOTO 0 (1UMAIN.VI) 1956 PRINT "Error 1955":RESUME NEXT 1958 RETURN OPEN COM 2.VI 234 GOSUB 1970 'open Com2 1970 '******** OPEN COM 2 ******** 1971 ON ERROR GOTO 1990 (ON ERROR COM2.VI) 1972 ON P2 GOSUB 1911,1912,1913,1914,1915,1916 (COM 2 PORT DEFAULT CONSTANTS.VI) 1979 PRINT "Com2 open, speed: "P2 1980 GOSUB 4770 'init the modem (INITIALLIZE THE MODEM.VI) 1982 PRINT #2, CRLF$+HDR1$+CRLF$+"This is Com2: modem port" 1983 PRINT #2, HDR3$+CRLF$+PROMPT$; 1987 RETURN ON ERROR COM2.VI 1990 ON ERROR GOTO 0 1991 PRINT "Error 1990":RESUME NEXT 1992 RETURN COM 1 PORT DEFAULT CONSTANTS.VI 1900 '******** COM 1 PORT DEFAULT CONSTANTS ******** 1901 OPEN "COM1:1200,N,8,1,CD0,DS0,CS0"AS#1:RETURN 1902 OPEN "COM1:2400,N,8,1,CD0,DS0,CS0"AS#1:RETURN 1903 OPEN "COM1:1200,E,7,1,CD0,DS0,CS0"AS#1:RETURN 1904 OPEN "COM1:2400,E,7,1,CD0,DS0,CS0"AS#1:RETURN 1905 OPEN "COM1:1200,O,7,1,CD0,DS0,CS0"AS#1:RETURN 1906 OPEN "COM1:2400,O,7,1,CD0,DS0,CS0"AS#1:RETURN COM 2 PORT DEFAULT CONSTANTS.VI 1910 '******** COM 2 PORT DEFAULT CONSTANTS ******** 1911 OPEN "COM2:1200,N,8,1,CD0,DS0,CS0"AS#2:RETURN 1912 OPEN "COM2:2400,N,8,1,CD0,DS0,CS0"AS#2:RETURN 1913 OPEN "COM2:1200,E,7,1,CD0,DS0,CS0"AS#2:RETURN 1914 OPEN "COM2:2400,E,7,1,CD0,DS0,CS0"AS#2:RETURN 1915 OPEN "COM2:1200,O,7,1,CD0,DS0,CS0"AS#2:RETURN 1916 OPEN "COM2:2400,O,7,1,CD0,DS0,CS0"AS#2:RETURN 236 'IF ADTST=1 THEN GOTO 7500 'stub for DVOM test with line 7965 Commented out, in event we need dvom test 238 'IF CAPCAL=1 THEN GOTO 2560 'stub for cap measure circuit Commented out, in event we need capacitance measurement circuit 240 'IF IMOD=0 THEN GOTO 1000 'no modem start prog (VARIABLE LIST.VI) Commented out, in event we have no modem? VARIABLE LIST.VI 1000 '******** VARIABLE LIST ******** 1008 LINNO = 1 1010 OLDLNE = 1 'to start the access switch overlay 1012 LCAL=11 'lvl cal par 1014 SCAL=10 'slope cal par 1016 IMOD=0 '0=no modem,1=internal modem installed!! 1018 ACSTAT=0 '1=access 1020 SPTSTAT=0 '0=no splt,1=splt CO,2=splt sub 1022 GENSTAT=0 'sig gen not conn 1024 CALSTAT=0 'cal test or exciter sig gen 1026 OVNO=0 'Overlay number (0=none) 1030 P1=2:P2=2 '2400.N,8,1 default for port 1&2 1032 HDX1=1 'half duplex, Com1 1034 HDX2=1 'full duplex, Com2 (int modem)!!!!!! 1036 VB1=1:VB2=1 'Com1&2=verbose replies default 1038 PROMPT$=CHR$(61)+CHR$(62) 1040 CRLF$=CHR$(13)+CHR$(10) 1042 REPLY$="" 'reply message 1044 VER$="2.0" 'current software version 1046 REV$="B" 'runs on this rev hardware 1048 STE$="Not Specified" 'site name default 1050 STENO$="000" 'site number default 1052 HDR1$="XXXXXXXXXXXXXXXXXXXXXXXXX Test Set, Ver "+VER$+", "+REV$ 1054 HDR3$="Located at: "+STE$+", Site #: "+STENO$ 1058 I1=0:I2=0:I3=0:I3D=0:I4=0:I4D=0 'init currents to zero 1060 RTR#=0:RTG#=0:RRG#=0 'resistance variables 1062 CTR=0:CTG=0:CRG=0 'capacitance variables 1064 VDC=0:L1=0:L2=0:L3=0:L4=0 'voltage & current variables 1066 RNGV=0:TIPV=0:TPRGV=0 'tip & ring voltage variables 1068 MINI$="ATE0B1M0S0=1S2=43Q1V0X0&C1&D0&W0&Y0!"'default modem string 1069 RETURN RECEIVE ROUTINE.VI 250 PRINT "Free memory = "FRE(0) 400 '******** RECEIVE ROUTINE ******** 401 ON ERROR GOTO 2300 'error handler reboots (GENERAL ERROR TRAPPING.VI) GENERAL ERROR TRAPPING.VI 2300 '***** GENERAL ERROR TRAPPING (REBOOTS) *******# 2302 RESUME 2250 'reboot like SRST (RESET COMPUTER.VI) 2309 ' RESET COMPUTER.VI 2250 '******** RESET COMPUTER ********# 2252 CLOSE 2254 GOTO 100 (INIT.VI) 2259 ' 405 A1$ = "":A2$ = "":PF1 = 0:PF2 = 0 'clear receive strings, flags LOC1 ZERO.VI 409 IF LOC(1) = 0 THEN GOTO 432 'no chr, skip port (LOC2 ZERO.VI) LOC2 ZERO.VI 432 IF LOC(2) = 0 THEN GOTO 409 'no chr, skip port (LOC1 ZERO.VI) 410 B1$ = INPUT$(1,#1):PRINT B1$ 'in from #1, stub 412 IF HDX1 = 1 THEN PRINT #1, B1$; 'echo if HDX 415 A1$ = A1$ + B1$:PRINT "A1$="A1$ 'add to string, stub 417 IF LEN(A1$) > 60 THEN A1$ = "" 420 IF B1$ = CHR$(13) THEN PF1 = 1 'if [CR] set Com1 flag 422 IF B1$ = CHR$(13) THEN PRINT #1,CRLF$ 425 IF B1$ = CHR$(13) GOTO 5000 'go parse it (COMMAND PARSER.VI) COMMAND PARSER.VI 5000 '****** COMMAND PARSER ******* 5005 ON ERROR GOTO 2300 'global error handler reboots (GENERAL ERROR TRAPPING.VI) 5010 GOSUB 6000 'set replies verb/terse (UPDATE REPLY STRINGS.VI) 5100 IF PF1=1 THEN CMD$=A1$ 'get input to parse 5110 IF PF2=1 THEN CMD$=A2$ ' " " " " 5115 IF LEN(CMD$) <5 OR LEN(CMD$) >48 THEN REPLY$ = EMSG2$ 5116 IF LEN(CMD$) <5 OR LEN(CMD$) >48 THEN GOTO 4750 'send BAD FORMAT (RETURN FROM COMMAND.VI) 5117 GOSUB 5200 'convert to caps (CONVERT LOWER CASE TO CAPS.VI) 5120 VERB$=LEFT$(CMD$,4) 'strip out verb (4 chrs) 5125 GOTO 5800 'try to parse verb (VERB LIST.VI) CONVERT LOWER CASE TO CAPS.VI 5200 '****** CONVERT LOWER CASE TO CAPS ****** 5204 TEMP$="" 5205 FOR X=1 TO LEN(CMD$) STEP 1 5210 X$=MID$(CMD$,X,1) 5220 IF ASC(X$) < 97 OR ASC(X$) > 122 THEN GOTO 5235 'only lc letters 5230 X$=CHR$(ASC(X$)-32) 'convert to caps 5235 TEMP$=TEMP$+X$ 5240 NEXT X 5245 CMD$=TEMP$:PRINT:PRINT:PRINT "Command="CMD$ 'stub 5299 RETURN VERB LIST.VI 5800 '******* VERB LIST ********* 5902 IF VERB$="DCOM" THEN GOTO 1730 'report com port settings 5904 IF VERB$="DMOD" THEN GOTO 2570 'report modem string 5905 IF VERB$="DSTE" THEN GOTO 2270 'report site ID 5906 IF VERB$="DVER" THEN GOTO 2260 'report versions 5908 IF VERB$="ICAL" THEN GOTO 6320 'use OV03/cal filter(servic only) 5914 IF VERB$="SACC" THEN GOTO 2350 'access unconditional 5916 IF VERB$="SACV" THEN GOTO 6300 'use OV01/meas AC t-g,r-g,opt bd 5918 IF VERB$="SBSY" THEN GOTO 4350 'check if line is off-hook 5920 IF VERB$="SCLN" THEN GOTO 6310 'use OV02/characterize tel line 5922 IF VERB$="SCLR" THEN GOTO 3500 'clear hardware 5924 IF VERB$="SCOM" THEN GOTO 2100 'set com port speed 5926 IF VERB$="SDCV" THEN GOTO 6300 'use OV01/meas DC t,r, main bd 5928 IF VERB$="SDEF" THEN GOTO 1100 'set all values to default 5930 IF VERB$="SFDX" THEN GOTO 1650 'set FDX 5932 IF VERB$="SHDX" THEN GOTO 1600 'set HDX 5934 IF VERB$="SMOD" THEN GOTO 2400 'set modem ini string 5936 IF VERB$="SMSG" THEN GOTO 2340 'send modem ini string out COM1,2 5938 IF VERB$="SMTU" THEN GOTO 6310 'use OV02/access MTU 5940 IF VERB$="SNME" THEN GOTO 1350 'set site name 5944 IF VERB$="SRST" THEN GOTO 2250 'reset computer 5946 IF VERB$="SSNO" THEN GOTO 1300 'set site # 5947 IF VERB$="SSPV" THEN GOTO 6320 'use OVO3/access SPV (spv) 5948 IF VERB$="STVF" THEN GOTO 6320 'use OVO3/VF test the pair 5950 IF VERB$="SEAC" THEN GOTO 6340 'use OVO5/release access switch 5952 IF VERB$="SEAE" THEN GOTO 6340 'use OVO5/select pr to test (E) 5954 IF VERB$="SEAF" THEN GOTO 6340 'use OVO5/select pr to test (F) 5956 IF VERB$="SEAM" THEN GOTO 6340 'use OVO5/select pr to monitor 5958 REPLY$=EMSG1$ 'INVALID VERB FORMAT message 5959 GOTO 4750 'return w error (RETURN FROM COMMAND.VI) 435 B2$ = INPUT$(1,#2):PRINT B2$ 'read from #2 437 IF HDX2 = 1 THEN PRINT #2,B2$; 'echo if HDX 440 A2$ = A2$ + B2$:PRINT "A2$="A2$" , "LEN(A2$) 'add to string 442 IF LEN(A2$) > 60 THEN A2$ = "" 445 IF B2$ = CHR$(13) THEN PF2 = 1 'Com2 flag 446 IF B2$ = CHR$(13) THEN PRINT #2,CRLF$ 449 IF B2$ = CHR$(13) THEN GOTO 5000 'go parse it (COMMAND PARSER.VI) 455 GOTO 409 (LOC1 ZERO.VI) 499 ' 999 '******** PROGRAM ENDS HERE ********* ALL VALUES TO DEFULT.VI 1100 '******** SET ALL VALUES TO DEFULT ******** 1102 GOSUB 1000 'set internal values to default (VARIABLE LIST.VI) 1104 GOSUB 1200 'set TESTHEAD.INI file to default (UPDATE INI STRING IN TESTHEAD INI.VI) 1106 GOSUB 2500 'set MODEM.INI file to default (UPDATE MODEM INI.VI) 1108 GOSUB 6000 'update reply strings (UPDATE REPLY STRINGS.VI) 1110 REPLY$ = P22$ 1119 GOTO 4750 (RETURN FROM COMMAND.VI) UPDATE INI STRING IN TESTHEAD INI.VI 1200 '******** UPDATE INI STRING IN "TESTHEAD.INI" FILE ******** 1210 ON ERROR GOTO 1299 (RESUME 1299.VI) 1231 P1$=RIGHT$(STR$(P1),1) 1232 P2$=RIGHT$(STR$(P2),1) 1235 VB1$=RIGHT$(STR$(VB1),1) 1236 VB2$=RIGHT$(STR$(VB2),1) 1237 HDX1$=RIGHT$(STR$(HDX1),1) 1238 HDX2$=RIGHT$(STR$(HDX2),1) 1240 INI$=P1$+","+P2$+","+VB1$+","+VB2$+","+HDX1$+","+HDX2$+","+STENO$+","+STE$ 1245 PRINT "New INI string = "INI$ 'stub 1260 KILL "TESTHEAD.INI" 1265 OPEN "TESTHEAD.INI" FOR OUTPUT AS #3 1270 PRINT #3, INI$ 1275 CLOSE #3 1290 ON ERROR GOTO 0 'turn off error 1295 RETURN 'good return RESUME 1299.VI 1299 PRINT "Error 1299":RESUME NEXT UPDATE MODEM INI.VI 2500 '******** UPDATE MODEM.INI FILE ********* 2510 ON ERROR GOTO 2560 (RESUME 2560.VI) 2530 KILL "MODEM.INI" 2535 OPEN "MODEM.INI" FOR OUTPUT AS #3 2540 PRINT #3, MINI$ 2545 CLOSE #3 2550 ON ERROR GOTO 0 'turn off error (MAIN.VI) 2555 RETURN 'good return RESUME 2560.VI 2560 PRINT "Error 2560":RESUME NEXT REPORT MODEM INIT STRING.VI 2570 '******** REPORT MODEM INIT STRING ******** 2572 GOSUB 6000 'get strings (UPDATE REPLY STRINGS.VI) 2574 REPLY$ = P13$ 2576 GOTO 4750 (RETURN FROM COMMAND.VI) 2579 ' RETURN FROM COMMAND.VI 4750 '***** RETURN FROM COMMAND ****** 4752 IF PF1 = 1 THEN GOTO 4756 (A1$.VI) 4754 IF PF2 = 1 THEN GOTO 4764 (A2$.VI) A1$.VI 4756 A1$ = "":PF1 = 0 4758 PRINT #1, REPLY$+CRLF$+PROMPT$; 4762 PRINT "Free memory = " FRE(0):GOTO 409 (LOC1 ZERO.VI) A2$.VI 4764 A2$ = "":PF2 = 0 4766 PRINT #2, REPLY$+CRLF$+PROMPT$; 4769 PRINT "Free Memory = " FRE(0):GOTO 432 (LOC2 ZERO.VI) INITIALLIZE THE MODEM.VI 4770 '****** INITIALLIZE THE MODEM ******** 4772 IF IMOD = 1 THEN HDX2 = 1 'set port full duplex 4774 DEV$="010":ACT=0:GOSUB 3000 'clear reset bit (ACTION ROUTINE.VI) 4776 DEV$="010":ACT=1:GOSUB 3000 'set reset bit (ACTION ROUTINE.VI) 4778 DEL = 2:GOSUB 4000 '2 sec reset pulse (DELAY 'DEL' SECONDS.VI) 4780 DEV$="010":ACT=0:GOSUB 3000 'clear reset bit (ACTION ROUTINE.VI) 4782 PRINT #2, MINI$:PRINT MINI$ 'modem init string 4784 DEL = 3:GOSUB 4000 (DELAY 'DEL' SECONDS.VI) 4786 RETURN DELAY 'DEL' SECONDS.VI 4000 '******** DELAY 'DEL' SECONDS ******** 4002 SCNT=0:PRINT"pause="DEL 'zero the seconds counter, stub 4004 TME$=RIGHT$(TIME$,2):SEC1=VAL(TME$) 'get second at start GET CURRENT SECOND.VI 4006 TME$=RIGHT$(TIME$,2):SEC=VAL(TME$) 'get current second 4008 IF SEC<>SEC1 THEN SCNT=SCNT+1 'increment delay counter 4010 IF SEC<>SEC1 THEN SEC1=SEC 'store latest second 4012 IF SCNT=DEL THEN RETURN 4019 GOTO 4006 (GET CURRENT SECOND.VI) REPORT COM PORT SETTINGS.VI 1730 '******* REPORT COM PORT SETTINGS ******** 1732 GOSUB 6000 'update reply strings (UPDATE REPLY STRINGS.VI) 1733 REPLY$=P15$ 1734 GOTO 4750 (RETURN FROM COMMAND.VI) REPORT SITE ID.VI 2270 '********* REPORT SITE ID ********# 2272 IF PF1=1 THEN PRT$="Com1" ELSE PRT$="Com2" 2274 IF PF1=1 THEN PRTN$="1" ELSE PRTN$="2" 2276 GOSUB 6000 'update reply strings (UPDATE REPLY STRINGS.VI) 2278 REPLY$=P18$ 2280 GOTO 4750 (RETURN FROM COMMAND.VI) 2289 ' REPORT VERSIONS.VI 2260 '********* REPORT VERSIONS *******# 2264 GOSUB 6000 'update reply strings (UPDATE REPLY STRINGS.VI) 2266 REPLY$=P19$+CRLF$ 2268 GOTO 4750 (RETURN FROM COMMAND.VI) 2269 ' OVERLAY 03 CONTROL SPV.VI 6320 '******** OVERLAY 03 CONTROL (SPV) 6322 IF OVNO=3 THEN GOTO 10000 'use verb list (1UOV01MAIN.VI) 6324 CHAIN MERGE "1UOV03.ASC",10000,ALL,DELETE 10000-60000 (1UOV03MAIN.VI) 6329' UNCONDITIONAL ACCESS.VI 2350 '************** UNCONDITIONAL ACCESS ************** 2352 IF ACSTAT=0 THEN GOTO 2362 'no access go ahead (NO ACCESS.VI) 2354 A1$="" 2356 GOSUB 6000 'update reply strings (UPDATE REPLY STRINGS.VI) 2358 REPLY$ = P14$ 'MTU accessed 2360 GOTO 4750 'back to command mode (RETURN FROM COMMAND.VI) NO ACCESS.VI 2362 GOSUB 2200 'rel pair & clear (REL PAIR & CLEAR ALL.VI) 2364 GOSUB 2670 'turn on BUSY LED (BUSY LED ON.VI) 2366 GOSUB 2760 'split line, K6(1) (SPLIT PAIR.VI) 2368 ACSTAT=1 'set access flg 2370 REPLY$=P00$ 'comply 2372 GOTO 4750 'return (RETURN FROM COMMAND.VI) BUSY LED ON.VI 2670 '******** BUSY LED ON ********# 2672 DEV$="006":ACT=1:GOSUB 3000 'busy led on (ACTION ROUTINE.VI) 2674 RETURN 2679 ' REMOVE SPV TEST FROM LUT.VI 3630 '******** REMOVE SPV TEST FROM LUT ***# 3634 DEV$="001":ACT=0:GOSUB 3000 'K5 off (ACTION ROUTINE.VI) 3639 RETURN BUSY TEST.VI 4350 '********* BUSY TEST ******************************* 4352 GOSUB 2200 'rel pair & clr (REL PAIR & CLEAR ALL.VI) 4454 GOSUB 2670 'turn on BUSY LED (BUSY LED ON.VI) 4456 GOSUB 2220 'clr/init A-to-D (INIT MAIN BOARD A-D.VI) 4458 FOR X=1 TO 1000 STEP 1:NEXT 4460 GOSUB 3680 'conn to ring Bit 2(4) (CON A-D TO RING.VI) 4462 GOSUB 4300 'meas v, RNGV (READ VOLTAGE PRI A-D AVG 10 TRIES.VI) 4464 RNGV=V 4466 FOR X=1 TO 1000 STEP 1:NEXT 4470 GOSUB 3690 'conn to tip Bit 1(2) (CON A-D TO TIP.VI) 4572 GOSUB 4300 'meas v, TIPV (READ VOLTAGE PRI A-D AVG 10 TRIES.VI) 4574 TIPV=V 4576 TPRGV=RNGV-TIPV 4578 LOCATE 10,10 4580 CLS:PRINT SPC(35) " " 4582 LOCATE 10,10 4584 PRINT "R ="RNGV" T ="TIPV" T-R ="TPRGV 4586 FOR X=1 TO 8000 STEP 1:NEXT 4588 GOSUB 2680 'turn off BUSY LED (BUSY LED OFF.VI) 4590 GOSUB 6000 'update reply messgs (UPDATE REPLY STRINGS.VI) 4692 REPLY$ = P30$ 'not busy messg 4694 IF ABS(TPRGV) < 40 THEN REPLY$ = P31$ 'busy messg 4699 GOTO 4750 CON A-D TO RING.VI 3680 '******** CON A-D TO RING *********# 3682 AC4=0:AC5=0:AC6=1:AC7=0 3684 GOTO 3703 (DRIVE A-D INPUT CONN.VI) 3689 ' CON A-D TO TIP.VI 3690 '******** CON A-D TO TIP **********# 3691 AC4=0:AC5=1:AC6=0:AC7=0 3692 GOTO 3703 (DRIVE A-D INPUT CONN.VI) 3694 ' DRIVE A-D INPUT CONN.VI 3703 '****** DRIVE A-D INPUT CONN *******# 3704 DEV$="010":ACT=AC4:GOSUB 3000 'not used (ACTION ROUTINE.VI) 3705 DEV$="011":ACT=AC5:GOSUB 3000 'tip (ACTION ROUTINE.VI) 3706 DEV$="012":ACT=AC6:GOSUB 3000 'ring (ACTION ROUTINE.VI) 3707 DEV$="013":ACT=AC7:GOSUB 3000 '215Hz (ACTION ROUTINE.VI) 3708 FOR X= 1 to 100 STEP 1:NEXT X 3709 RETURN READ VOLTAGE PRI A-D AVG 10 TRIES.VI 4300 '*** READ VOLTAGE PRI A-D, AVERAGE 10 TRIES ********! 4305 FOR X=1 TO 3000 STEP 1:NEXT 4310 ACC=0 'acc=accumulate 4315 FOR TRY=1 TO 10 STEP 1 'integrate 10 measurements 4320 V=INP(&H342) 'read A-D 4325 FOR X=1 TO 25 STEP 1:NEXT X'wait 4330 ACC= ACC+V 4332 NEXT TRY 'ten tries 4335 V = INT(ACC/(TRY-1)) 'convert result to avg & voltage 4340 RETURN OVERLAY 02 CONTROL MTU.VI 6310 '******** OVERLAY 02 CONTROL (MTU) 6312 IF OVNO=2 THEN GOTO 10000 'use verb list (1UOV01MAIN.VI) 6314 CHAIN MERGE "1UOV02.ASC",10000,ALL,DELETE 10000-60000 6319 ' REL PAIR AND CLEAR.VI 3500 '********* REL PAIR AND CLEAR *********# 3501 GOSUB 2800 'clear access switch (CLEAR ACCESS SWITCH.VI) 3502 GOSUB 2600 'clear main board (CLEAR MAIN BOARD.VI, MAIN BOARD RESET.VI) 3504 GOSUB 2640 'clear option board (CLR DVOM.VI) 3506 SPLTSTAT=0 'no split 3508 ACSTAT=0 'no access 3510 GOSUB 6000 'update reply strings (UPDATE REPLY STRINGS.VI) 3512 REPLY$ = P01$ 3519 GOTO 4750 SPLIT PAIR.VI 2760 '******** SPLIT PAIR ********# 2762 DEV$="000":ACT=1:GOSUB 3000 'K6 on (ACTION ROUTINE.VI) 2764 RETURN 2769 '