! Instrument Driver for the Wavetek 1362-Digit Multimeter -- Native Language ! Rev. A.01.00 ! Copyright (C) Hewlett-Packard Co. 1994. All rights reserved. ! REVISION 2.0; ! INITIALIZE START_UP; RECALL COMPONENT DETECT_RECALL; ERROR COMPONENT ERROR; SYNC COMPONENT SYNC; ! COMPONENT DETECT_RECALL NOTSAVED NOGEN NOERRCHECK; TYPE INTEGER; SET ACTIONS; CLEAR; GOSUB NO_SHOW; FETCH 0; DUP; DUP; STORE EXECUTE; STORE MEAS_READY; STORE Start_Measure; IF OPC_MODE THEN; INVALIDATE OPC_MODE; END IF; END ACTIONS; PANEL SET ACTIONS; GOSUB MENU; END ACTIONS; END COMPONENT; ! COMPONENT LFREQ; TYPE DISCRETE; VALUES FIFTY,SIXTY,FOUR_HUNDRED; INITIAL SIXTY; SET ACTIONS; OUTPUT LFREQ TABLE "LINE 50","LINE 60","LINE 400"; GOSUB OPC; IF DETECT_RECALL THEN; ELSE; GOSUB NO_SHOW; END IF; END ACTIONS; GET ACTIONS; GOSUB NO_SHOW; FETCH LFREQ; OUTPUT STRING "LINE?"; ENTER STACK FORMAT "K"; SELECT STACK; CASE 0; FETCH LFREQ; CASE RANGE 1,55; FETCH 0; CASE RANGE 55,65; FETCH 1; CASE ELSE; FETCH 2; END SELECT; STORE LFREQ; END ACTIONS; END COMPONENT; component Save_Line_Freq NOTSAVED; type integer; set actions; OUTPUT STRING "LINE?"; ENTER STACK FORMAT "#,K"; ENTER STACK FORMAT "K"; NE; if stack then; output string "STLN?"; enter stack format "K"; if stack then; notify "Error, Save not successful"; end if; end if; end actions; end component; ! COMPONENT Choices NOTSAVED NOGEN NOERRCHECK; TYPE DISCRETE; VALUES SET_UP,CALIBRATION,OTHER,STATUS_INST,ABOUT_ID; INITIAL SET_UP; PANEL SET ACTIONS MENU; END COMPONENT; ! COMPONENT STRING_STACK NOTSAVED NOGEN NOERRCHECK; TYPE STRING 255; END COMPONENT; ! COMPONENT DISPLAY_WIDTH NOTSAVED NOGEN NOERRCHECK; TYPE CONTINUOUS; INITIAL 205; END COMPONENT; ! COMPONENT DISPLAY_START NOTSAVED NOGEN NOERRCHECK; TYPE CONTINUOUS; INITIAL 0.95; END COMPONENT; ! COMPONENT G_GRID NOTSAVED NOGEN NOERRCHECK; TYPE DISCRETE; VALUES NONE,AXES,GRID,FRAME; INITIAL AXES; END COMPONENT; ! COMPONENT X_MAJOR NOTSAVED NOERRCHECK; TYPE INTEGER; INITIAL 2; END COMPONENT; ! COMPONENT X_TIC NOTSAVED NOERRCHECK; TYPE CONTINUOUS; INITIAL 10; END COMPONENT; ! COMPONENT Serial_Poll NOTSAVED NOERRCHECK; TYPE INTEGER; INITIAL INVALID; GET ACTIONS; SPOLL; STORE Serial_Poll; END ACTIONS; END COMPONENT; ! COMPONENT Self_Test NOTSAVED; TYPE INTEGER; INITIAL INVALID; GET ACTIONS; OUTPUT STRING "*TST?"; FLUSH; POKEINITIAL; FETCH (Choices)OTHER; STORE Choices; IF LIVEMODE THEN; FETCH 30; loop; dup; fetch 0; le; SPOLL; FETCH 4; BIT; or; EXIT IF STACK; fetch 1; sub; WAIT TIME 1; end loop; drop; ELSE; WAIT TIME 1; END IF; ENTER Self_Test FORMAT 'K'; VALIDATE Self_Test; END ACTIONS; END COMPONENT; ! COMPONENT Status_Byte NOTSAVED; TYPE INTEGER; INITIAL INVALID; GET ACTIONS; OUTPUT STRING "*STB?"; ENTER Status_Byte FORMAT 'K'; END ACTIONS; END COMPONENT; ! COMPONENT Clear_Status NOTSAVED; TYPE INTEGER; COUPLED Serial_Poll, Status_Byte,standard_Event, ERR_STRING, ERROR; SET ACTIONS; OUTPUT STRING "*CLS"; GOSUB OPC; END ACTIONS; END COMPONENT; ! COMPONENT Status_Enable; TYPE INTEGER; VALUES RANGE 0, 255; INITIAL INVALID; SET ACTIONS; OUTPUT Status_Enable FORMAT '"*SRE ",K'; GOSUB OPC; END ACTIONS; PANEL SET ACTIONS; INVALIDATE Serial_Poll; INVALIDATE Status_Byte; END ACTIONS; GET ACTIONS; OUTPUT STRING "*SRE?"; ENTER Status_Enable FORMAT 'K'; END ACTIONS; END COMPONENT; ! COMPONENT Standard_Event NOTSAVED; TYPE INTEGER; INITIAL INVALID; GET ACTIONS; OUTPUT STRING "*ESR?"; ENTER Standard_Event FORMAT 'K'; END ACTIONS; END COMPONENT; ! COMPONENT Event_Enable; TYPE INTEGER; VALUES RANGE 0, 255; INITIAL INVALID; SET ACTIONS; OUTPUT Event_Enable FORMAT '"*ESE ",K'; GOSUB OPC; END ACTIONS; PANEL SET ACTIONS; INVALIDATE Serial_Poll; INVALIDATE Status_Byte; INVALIDATE Standard_Event; END ACTIONS; GET ACTIONS; OUTPUT STRING "*ESE?"; ENTER Event_Enable FORMAT 'K'; END ACTIONS; END COMPONENT; ! COMPONENT SHOW_DATA NOTSAVED; TYPE INTEGER; INITIAL 0; END COMPONENT; COMPONENT SKIP_CHECK CLONE SHOW_DATA; ! COMPONENT CONNECT_DATA NOTSAVED NOGEN NOERRCHECK; TYPE DISCRETE; VALUES OFF,ON; INITIAL ON; END COMPONENT; ! COMPONENT ERR_STRING NOTSAVED NOERRCHECK; TYPE STRING 40; INITIAL "",INVALID; GET ACTIONS; END ACTIONS; END COMPONENT; ! COMPONENT ERROR NOTSAVED NOERRCHECK; TYPE INTEGER; INITIAL 0,INVALID; GET ACTIONS; GET Standard_Event; FETCH Standard_Event; FETCH 52; BINAND; DUP; IF STACK THEN; DUP; FETCH -1; MUL; STORE ERROR; SELECT STACK; CASE 4; FETCH STRING "Query"; CASE 16; FETCH STRING "Execution"; CASE 32; FETCH STRING "Command"; CASE 20; FETCH STRING "Query and Execution"; CASE 36; FETCH STRING "Query and Command"; CASE 48; FETCH STRING "Execution and Command"; CASE ELSE; FETCH STRING "Query, Execution and Command"; END SELECT; FETCH STRING " Error"; CATSTR; STORE ERR_STRING; ELSE; DROP; OUTPUT STRING "DDQ?"; ENTER ERROR FORMAT 'K'; IF LIVEMODE THEN; SELECT ERROR; CASE 0; FETCH STRING "No error"; CASE 100; FETCH STRING "A/D transfer; bad data"; CASE 101; FETCH STRING "Internal calculation error"; CASE 102; FETCH STRING "System queue overflow"; CASE RANGE 150,153; FETCH STRING "Calibration Error--see manuals"; CASE 160; FETCH STRING "Illegal test number"; CASE 170; FETCH STRING "Corrupt Default Line Frequency"; CASE RANGE 500,559; FETCH STRING "Selftest Error--see manuals"; CASE ELSE; FETCH STRING ""; END SELECT; ELSE; FETCH 0; STORE ERROR; FETCH STRING "No error (Not Live Mode)"; END IF; STORE ERR_STRING; END IF; END ACTIONS; END COMPONENT; ! COMPONENT EXECUTE NOTSAVED NOGEN NOERRCHECK; TYPE INTEGER; INITIAL 0; PANEL SET ACTIONS; FETCH 1; STORE EXECUTE; GOSUB MENU; END ACTIONS; END COMPONENT; ! COMPONENT READ_MIN NOTSAVED NOGEN NOERRCHECK; TYPE INTEGER; PANEL SET ACTIONS; FETCH READING; FETCH MAX_VIEW; LT; FETCH SHOW_DATA; AND; IF STACK THEN; FETCH READING; STORE MIN_VIEW; SET MIN_VIEW; END IF; END ACTIONS; END COMPONENT; ! COMPONENT READ_MAX NOTSAVED NOGEN NOERRCHECK; TYPE INTEGER; PANEL SET ACTIONS; FETCH READING; FETCH MIN_VIEW; GT; FETCH SHOW_DATA; AND; IF STACK THEN; FETCH READING; STORE MAX_VIEW; SET MAX_VIEW; END IF; END ACTIONS; END COMPONENT; ! COMPONENT DMARK NOTSAVED NOERRCHECK; TYPE INTEGER; INITIAL 20; END COMPONENT; ! COMPONENT VIEW_TRIG NOTSAVED NOGEN NOERRCHECK; TYPE INTEGER; VALUES RANGE 1,TRIG_COUNT; INITIAL 1; PANEL SET ACTIONS EXTRACT; END COMPONENT; ! COMPONENT UNITS NOTSAVED NOGEN NOERRCHECK; TYPE STRING 8; INITIAL "Volts DC"; END COMPONENT; ! COMPONENT MAX_MAX_VIEW NOTSAVED NOGEN NOERRCHECK; TYPE CONTINUOUS; INITIAL 300; END COMPONENT; ! COMPONENT MAX_VIEW NOTSAVED NOGEN NOERRCHECK; TYPE CONTINUOUS; VALUES RANGE MIN_VIEW, MAX_MAX_VIEW; INITIAL 300; PANEL SET ACTIONS; FETCH MIN_VIEW; GOSUB MAX_DELTA; ADD; DUP; FETCH MAX_VIEW; GT; IF STACK THEN; STORE MAX_VIEW; ELSE; DROP; END IF; GOSUB TICKER; END ACTIONS; END COMPONENT; ! COMPONENT MIN_MIN_VIEW NOTSAVED NOGEN NOERRCHECK; TYPE CONTINUOUS; INITIAL -300; END COMPONENT; ! COMPONENT MIN_VIEW NOTSAVED NOGEN NOERRCHECK; TYPE CONTINUOUS; VALUES RANGE MIN_MIN_VIEW, MAX_VIEW; INITIAL -300; PANEL SET ACTIONS; FETCH MAX_VIEW; GOSUB MAX_DELTA; SUB; DUP; FETCH MIN_VIEW; LT; IF STACK THEN; STORE MIN_VIEW; ELSE; DROP; END IF; GOSUB TICKER; END ACTIONS; END COMPONENT; ! ACTIONS MAX_DELTA; FETCH FUNCTION; SELECT STACK; CASE RANGE 0,6; FETCH 0.00000010; CASE ELSE; FETCH 0.00010; END SELECT; DUP; FETCH MAX_VIEW; FETCH MIN_VIEW; ADD; FETCH 1000; DIV; ABS; LT; IF STACK THEN; DROP; FETCH MAX_VIEW; FETCH MIN_VIEW; ADD; FETCH 1000; DIV; ABS; END IF; END ACTIONS; ! COMPONENT MAX_DATA NOTSAVED NOERRCHECK; TYPE CONTINUOUS; INITIAL 322.5; END COMPONENT; ! COMPONENT MID_DATA NOTSAVED NOERRCHECK; TYPE CONTINUOUS; INITIAL 0; END COMPONENT; ! COMPONENT MIN_DATA NOTSAVED NOERRCHECK; TYPE CONTINUOUS; INITIAL -322.5; END COMPONENT; ! COMPONENT Y_TIC NOTSAVED NOERRCHECK; TYPE CONTINUOUS; INITIAL 75; END COMPONENT; ! COMPONENT Input_Port; TYPE DISCRETE; VALUES OFF,CH_A,CH_B,ADIVB,ASUBB,DEVTN; INITIAL OFF; SET ACTIONS; GOSUB NO_SHOW; OUTPUT STRING "INPUT "; OUTPUT Input_Port TABLE "OFF","CH_A","CH_B","ADIVB","ASUBB","DEVTN"; GOSUB OPC; END ACTIONS; PANEL SET ACTIONS MENU; GET ACTIONS; IF SYNC THEN; ELSE; OUTPUT STRING "*LRN?"; ENTER STRING_STACK FORMAT "K"; END IF; IF LIVEMODE THEN; FETCH STRING_STACK; FETCH STRING "INPUT "; POS; DUP; IF STACK THEN; FETCH STRING_STACK; SWAP; FETCH 6; ADD; FETCH 4; SUBSTR; TRIMSTR; STORE STRING_STACK; SELECT STRING_STACK; CASE ""; FETCH DEFAULT; CASE "CH_A"; FETCH 1; CASE "CH_B"; FETCH 2; CASE "ADIV"; FETCH 3; CASE "ASUB"; FETCH 4; CASE "DEVT"; FETCH 5; CASE ELSE; FETCH 0; END SELECT; STORE DEFAULT; END IF; END IF; END ACTIONS; END COMPONENT; ! COMPONENT FUNCTION; TYPE DISCRETE; VALUES DCV,ACV,DCI,ACI,FRES,RES; INITIAL DCV; SET ACTIONS; GOSUB Set_Function; GET FUNCTION; END ACTIONS; GET ACTIONS Get_Function; PANEL GET ACTIONS; GOSUB MENU; GOSUB VIEW_HEIGHT; GOSUB Find_Units; END ACTIONS; END COMPONENT; ! COMPONENT DONE_POP_UP NOTSAVED NOGEN NOERRCHECK; TYPE INTEGER; PANEL SET ACTIONS; FETCH 0; STORE EXECUTE; GOSUB MENU; END ACTIONS; END COMPONENT; ! COMPONENT TRIG_COUNT NOERRCHECK; TYPE INTEGER; VALUES RANGE 1,1000; INITIAL 1; SET ACTIONS NO_SHOW; PANEL SET ACTIONS; FETCH Trig_Count; FETCH 0.02; MUL; DUP; FETCH 0.495; GT; IF STACK THEN; DROP; FETCH 0.495; END IF; DUP; FETCH Trig_Count; ADD; STORE DISPLAY_WIDTH; FETCH 1; SWAP; SUB; STORE DISPLAY_START; GOSUB MENU; END ACTIONS; END COMPONENT; ! COMPONENT TRIG; TYPE DISCRETE; VALUES SYS,EXT; INITIAL SYS; SET ACTIONS; GOSUB NO_SHOW; OUTPUT TRIG TABLE "TSRCE SYS","TSRCE EXT"; GOSUB OPC; END ACTIONS; GET ACTIONS; GOSUB NO_SHOW; OUTPUT STRING "*LRN?"; ENTER STRING_STACK FORMAT "K"; IF LIVEMODE THEN; FETCH STRING_STACK; FETCH STRING "TSRCE SYS"; POS; NOT; STORE TRIG; END IF; END ACTIONS; END COMPONENT; ! COMPONENT DCV_RESL; TYPE DISCRETE; VALUES D4,D5,D6; INITIAL D6; SET ACTIONS; SELECT Function; CASE DCV; GOSUB Set_Function; CASE ELSE; END SELECT; END ACTIONS; GET ACTIONS; SELECT Function; CASE DCV; GOSUB Get_Function; CASE ELSE; END SELECT; END ACTIONS; END COMPONENT; ! COMPONENT OHM_RESL; TYPE DISCRETE; VALUES D4,D5,D6; INITIAL D6; SET ACTIONS; GOSUB FUNCTION_OHM; IF STACK THEN; GOSUB Set_Function; END IF; END ACTIONS; GET ACTIONS; GOSUB FUNCTION_OHM; IF STACK THEN; GOSUB Get_Function; END IF; END ACTIONS; END COMPONENT; ! COMPONENT DCI_RESL; TYPE DISCRETE; VALUES D4,D5,D6; INITIAL D6; SET ACTIONS; SELECT Function; CASE DCI; GOSUB Set_Function; CASE ELSE; END SELECT; END ACTIONS; GET ACTIONS; SELECT Function; CASE DCI; GOSUB Get_Function; CASE ELSE; END SELECT; END ACTIONS; END COMPONENT; ! COMPONENT ACI_RESL; TYPE DISCRETE; VALUES D4,D5; INITIAL D5; SET ACTIONS; SELECT Function; CASE ACI; GOSUB Set_Function; CASE ELSE; END SELECT; END ACTIONS; GET ACTIONS; SELECT Function; CASE ACI; GOSUB Get_Function; CASE ELSE; END SELECT; END ACTIONS; END COMPONENT; ! COMPONENT ACV_RESL; TYPE DISCRETE; VALUES D4,D5; INITIAL D5; SET ACTIONS; SELECT Function; CASE ACV; GOSUB Set_Function; CASE ELSE; END SELECT; END ACTIONS; GET ACTIONS; SELECT Function; CASE ACV; GOSUB Get_Function; CASE ELSE; END SELECT; END ACTIONS; END COMPONENT; ! ACTIONS FUNCTION_OHM; SELECT FUNCTION; CASE FRES; FETCH 1; CASE RES; FETCH 1; CASE ELSE; FETCH 0; END SELECT; END ACTIONS; ! COMPONENT DCV_AUTO; TYPE DISCRETE; VALUES OFF,ON; INITIAL OFF; SET ACTIONS; SELECT Function; CASE DCV; GOSUB Set_Function; CASE ELSE; END SELECT; END ACTIONS; PANEL SET ACTIONS; SELECT FUNCTION; CASE DCV; GOSUB VIEW_HEIGHT; CASE ELSE; END SELECT; END ACTIONS; GET ACTIONS; SELECT Function; CASE DCV; GOSUB Get_Function; CASE ELSE; END SELECT; END ACTIONS; PANEL GET ACTIONS; SELECT FUNCTION; CASE DCV; GOSUB VIEW_HEIGHT; CASE ELSE; END SELECT; END ACTIONS; END COMPONENT; ! COMPONENT ACV_AUTO; TYPE DISCRETE; VALUES OFF,ON; INITIAL OFF; SET ACTIONS; SELECT Function; CASE ACV; GOSUB Set_Function; CASE ELSE; END SELECT; END ACTIONS; PANEL SET ACTIONS; SELECT FUNCTION; CASE ACV; GOSUB VIEW_HEIGHT; CASE ELSE; END SELECT; END ACTIONS; GET ACTIONS; SELECT Function; CASE ACV; GOSUB Get_Function; CASE ELSE; END SELECT; END ACTIONS; PANEL GET ACTIONS; SELECT FUNCTION; CASE ACV; GOSUB VIEW_HEIGHT; CASE ELSE; END SELECT; END ACTIONS; END COMPONENT; ! COMPONENT OHM_AUTO; TYPE DISCRETE; VALUES OFF,ON; INITIAL OFF; SET ACTIONS; GOSUB FUNCTION_OHM; IF STACK THEN; GOSUB Set_Function; END IF; END ACTIONS; PANEL SET ACTIONS; GOSUB FUNCTION_OHM; IF STACK THEN; GOSUB VIEW_HEIGHT; END IF; END ACTIONS; GET ACTIONS; GOSUB FUNCTION_OHM; IF STACK THEN; GOSUB Get_Function; END IF; END ACTIONS; PANEL GET ACTIONS; GOSUB FUNCTION_OHM; IF STACK THEN; GOSUB VIEW_HEIGHT; END IF; END ACTIONS; END COMPONENT; ! ACTIONS VOLT_RANGES; SELECT STACK; CASE RANGE 0, .199; FETCH 0.10; CASE RANGE .2, 1.99; FETCH 1; CASE RANGE 2.0, 19.99; FETCH 10; CASE RANGE 20.0, 199.99; FETCH 100; CASE ELSE; FETCH 300; END SELECT; END ACTIONS; ! COMPONENT DCV_RANGE; TYPE CONTINUOUS; VALUES RANGE 0.10,300; INITIAL 300; SET ACTIONS; GOSUB NO_SHOW; IF DETECT_RECALL THEN; ELSE; FETCH 0; STORE DCV_AUTO; FETCH DCV_RANGE; GOSUB VOLT_RANGES; STORE DCV_RANGE; END IF; IF DCV_AUTO THEN; INVALIDATE DCV_RANGE; ELSE; SELECT FUNCTION; CASE DCV; GOSUB Set_Function; CASE ELSE; END SELECT; END IF; END ACTIONS; PANEL SET ACTIONS; SELECT FUNCTION; CASE DCV; GOSUB VIEW_HEIGHT; CASE ELSE; END SELECT; END ACTIONS; GET ACTIONS; SELECT FUNCTION; CASE DCV; GOSUB Get_Function; GOSUB VIEW_HEIGHT; CASE ELSE; END SELECT; END ACTIONS; END COMPONENT; ! COMPONENT ACV_RANGE; TYPE CONTINUOUS; VALUES RANGE 0.10,300; INITIAL 300; SET ACTIONS; GOSUB NO_SHOW; IF DETECT_RECALL THEN; ELSE; FETCH 0; STORE ACV_AUTO; FETCH ACV_RANGE; GOSUB VOLT_RANGES; STORE ACV_RANGE; END IF; IF ACV_AUTO THEN; INVALIDATE ACV_RANGE; ELSE; SELECT FUNCTION; CASE ACV; GOSUB Set_Function; CASE ELSE; END SELECT; END IF; END ACTIONS; PANEL SET ACTIONS; SELECT FUNCTION; CASE ACV; GOSUB VIEW_HEIGHT; CASE ELSE; END SELECT; END ACTIONS; GET ACTIONS; SELECT FUNCTION; CASE ACV; GOSUB Get_Function; GOSUB VIEW_HEIGHT; CASE ELSE; END SELECT; END ACTIONS; END COMPONENT; ! COMPONENT OHM_RANGE; TYPE CONTINUOUS; VALUES RANGE 100, 10000000, LOG 1,1; INITIAL 10000000; SET ACTIONS; GOSUB NO_SHOW; IF DETECT_RECALL THEN; ELSE; FETCH 0; STORE OHM_AUTO; SELECT OHM_RANGE; CASE RANGE 0, 199.99; FETCH 100; CASE RANGE 200, 1999.99; FETCH 1000; CASE RANGE 2000, 19999.99; FETCH 10000; CASE RANGE 20000, 199999.99; FETCH 100000; CASE RANGE 200000, 1999999.99; FETCH 1000000; CASE ELSE; FETCH 10000000; END SELECT; STORE OHM_RANGE; END IF; IF OHM_AUTO THEN; INVALIDATE OHM_RANGE; ELSE; GOSUB FUNCTION_OHM; IF STACK THEN; GOSUB Set_Function; END IF; END IF; END ACTIONS; PANEL SET ACTIONS; GOSUB FUNCTION_OHM; IF STACK THEN; GOSUB VIEW_HEIGHT; END IF; END ACTIONS; GET ACTIONS; GOSUB FUNCTION_OHM; IF STACK THEN; GOSUB Get_Function; GOSUB VIEW_HEIGHT; END IF; END ACTIONS; END COMPONENT; ! COMPONENT FILTER; TYPE DISCRETE; VALUES OFF,ON; INITIAL OFF; SET ACTIONS Set_Function; GET ACTIONS Get_Function; END COMPONENT; ! COMPONENT ACDC_COUP; TYPE DISCRETE; VALUES AC,DC; INITIAL AC; SET ACTIONS Set_Function; GET ACTIONS Get_Function; END COMPONENT; ! ACTIONS Set_Function; !!============= GOSUB NO_SHOW; OUTPUT FUNCTION TABLE "DCV ","ACV ","DCI ","ACI ","OHMS WIRE4,","OHMS WIRE2,"; SELECT FUNCTION; CASE DCV; IF DCV_AUTO THEN; OUTPUT STRING "AUTO,"; INVALIDATE DCV_RANGE; ELSE; OUTPUT DCV_RANGE FORMAT 'K,","'; END IF; FETCH DCV_RESL; CASE DCI; FETCH DCI_RESL; CASE ACI; OUTPUT ACDC_COUP TABLE "ACCP,","DCCP,"; FETCH ACI_RESL; CASE ACV; IF ACV_AUTO THEN; OUTPUT STRING "AUTO,"; INVALIDATE ACV_RANGE; ELSE; OUTPUT ACV_RANGE FORMAT 'K,","'; END IF; OUTPUT ACDC_COUP TABLE "ACCP,","DCCP,"; FETCH ACV_RESL; CASE ELSE; IF OHM_AUTO THEN; OUTPUT STRING "AUTO,"; INVALIDATE OHM_RANGE; ELSE; OUTPUT OHM_RANGE FORMAT 'K,","'; END IF; FETCH OHM_RESL; END SELECT; OUTPUT STACK TABLE "RESL4,","RESL5,","RESL6,"; OUTPUT FILTER TABLE "FILT0","FILT1"; GOSUB OPC; END ACTIONS; ACTIONS Get_Function; OUTPUT STRING "*LRN?"; ENTER STRING_STACK FORMAT "#,AAA"; IF LIVEMODE THEN; FETCH STRING "DCVACVDCIACIOHMS"; FETCH STRING_STACK; POS; FETCH 3; IDIV; DUP; STORE FUNCTION; FETCH 4; EQ; IF STACK THEN; ENTER STRING_STACK FORMAT "#,A"; END IF; END IF; FETCH STRING_STACK; FETCH STRING "FILT0"; POS; NOT; STORE FILTER; FETCH STRING ""; LOOP; ENTER STRING_STACK FORMAT "#,A"; FETCH STRING_STACK; FETCH STRING ","; EQ; FETCH LIVEMODE; NOT; OR; EXIT IF STACK; FETCH STRING_STACK; CATSTR; END LOOP; TRIMSTR; STORE STRING_STACK; SELECT FUNCTION; CASE DCV; SELECT STRING_STACK; CASE "AUTO"; FETCH 1; INVALIDATE DCV_RANGE; CASE ELSE; FETCH 0; FETCH STRING_STACK; VAL; DUP; FETCH 300; GE; IF STACK THEN; DROP; FETCH 300; END IF; STORE DCV_RANGE; END SELECT; STORE DCV_AUTO; CASE DCI; CASE ACI; CASE ACV; SELECT STRING_STACK; CASE "AUTO"; FETCH 1; INVALIDATE ACV_RANGE; CASE ELSE; FETCH 0; FETCH STRING_STACK; VAL; DUP; FETCH 300; GE; IF STACK THEN; DROP; FETCH 300; END IF; STORE ACV_RANGE; END SELECT; STORE ACV_AUTO; CASE ELSE; SELECT STRING_STACK; CASE "AUTO"; FETCH 1; INVALIDATE OHM_RANGE; CASE ELSE; FETCH 0; FETCH STRING_STACK; VAL; STORE OHM_RANGE; END SELECT; STORE OHM_AUTO; END SELECT; ENTER STRING_STACK FORMAT "K"; IF LIVEMODE THEN; FETCH FUNCTION; FETCH 4; EQ; IF STACK THEN; FETCH STRING_STACK; FETCH STRING "WIRE2"; POS; IF STACK THEN; FETCH 5; STORE FUNCTION; END IF; END IF; FETCH STRING_STACK; FETCH STRING "RESL5"; POS; IF STACK THEN; FETCH 1; ELSE; FETCH STRING_STACK; FETCH STRING "RESL4"; POS; IF STACK THEN; FETCH 0; ELSE; FETCH 2; END IF; END IF; SELECT FUNCTION; CASE DCV; STORE DCV_RESL; CASE ACV; STORE ACV_RESL; FETCH STRING_STACK; FETCH STRING "ACCP"; POS; NOT; STORE ACDC_COUP; CASE DCI; STORE DCI_RESL; CASE ACI; STORE ACI_RESL; FETCH STRING_STACK; FETCH STRING "ACCP"; POS; NOT; STORE ACDC_COUP; CASE ELSE; STORE OHM_RESL; END SELECT; FETCH STRING_STACK; FETCH STRING "FILT0"; POS; NOT; STORE FILTER; END IF; END ACTIONS; !!!================ ! COMPONENT DELAY_AUTO; TYPE DISCRETE; VALUES OFF,ON; INITIAL ON; SET ACTIONS; GOSUB NO_SHOW; IF DELAY_AUTO THEN; OUTPUT STRING "DELAY DFLT"; INVALIDATE DELAY; GOSUB OPC; ELSE; SET DELAY; END IF; END ACTIONS; GET ACTIONS; GET DELAY; END ACTIONS; END COMPONENT; ! COMPONENT DELAY; TYPE CONTINUOUS; VALUES RANGE 0,10; INITIAL 0, INVALID; SET ACTIONS; GOSUB NO_SHOW; IF DETECT_RECALL THEN; IF DELAY_AUTO THEN; INVALIDATE DELAY; ELSE; OUTPUT DELAY FORMAT '"DELAY ",K'; GOSUB OPC; END IF; ELSE; FETCH 0; STORE DELAY_AUTO; OUTPUT DELAY FORMAT '"DELAY ",K'; GOSUB OPC; END IF; END ACTIONS; GET ACTIONS; IF SYNC THEN; ELSE; OUTPUT STRING "*LRN?"; ENTER STRING_STACK FORMAT "K"; END IF; IF LIVEMODE THEN; FETCH STRING_STACK; FETCH STRING "DELAY DFLT"; POS; IF STACK THEN; FETCH 1; STORE DELAY_AUTO; INVALIDATE DELAY; ELSE; FETCH 0; STORE DELAY_AUTO; FETCH STRING_STACK; DUP; FETCH STRING "DELAY"; POS; DUP; IF STACK THEN; FETCH 5; ADD; DUP; FETCH STRING_STACK; LENGTH; SWAP; SUB; SUBSTR; VAL; STORE DELAY; ELSE; DROP; DROP; END IF; END IF; END IF; END ACTIONS; END COMPONENT; ! COMPONENT UP_SCAN NOTSAVED NOGEN NOERRCHECK; TYPE INTEGER; PANEL SET ACTIONS AUP_SCAN; END COMPONENT; COMPONENT DN_SCAN NOTSAVED NOGEN NOERRCHECK; TYPE INTEGER; PANEL SET ACTIONS ADN_SCAN; END COMPONENT; ! COMPONENT IDENTIFY NOTSAVED; TYPE STRING 80; INITIAL INVALID; GET ACTIONS; OUTPUT STRING "*IDN?"; ENTER IDENTIFY FORMAT "K"; END ACTIONS; END COMPONENT; ! COMPONENT CAL_SC NOTSAVED; TYPE DISCRETE; VALUES OFF,ON; INITIAL OFF; SET ACTIONS; IF CAL_SC THEN; GET Standard_Event; END IF; ! Clear it GOSUB NO_SHOW; OUTPUT STRING "CAL "; OUTPUT CAL_SC TABLE "OFF","ON"; GOSUB OPC; IF CAL_SC THEN; GET Standard_Event; FETCH Standard_Event; FETCH 4; BIT; IF STACK THEN; FETCH 0; STORE CAL_SC; NOTIFY "Set External Cal Switch to Enabled position (Up)"; END IF; END IF; END ACTIONS; PANEL SET ACTIONS; IF DEFAULT THEN; SHOW CALIBRATION,CAL; ELSE; HIDE CALIBRATION,CAL; END IF; END ACTIONS; GET ACTIONS; IF SYNC THEN; ELSE; OUTPUT STRING "*LRN?"; ENTER STRING_STACK FORMAT "K"; END IF; IF LIVEMODE THEN; FETCH STRING_STACK; FETCH STRING "CAL OFF"; POS; NOT; STORE DEFAULT; END IF; END ACTIONS; PANEL GET ACTIONS; IF DEFAULT THEN; SHOW CALIBRATION,CAL; ELSE; HIDE CALIBRATION,CAL; END IF; END ACTIONS; END COMPONENT; ! COMPONENT CAL_HI NOTSAVED; TYPE INTEGER; INITIAL 0; GET ACTIONS; IF CAL_SC THEN; OUTPUT STRING "CALH?"; FLUSH; ENTER CAL_HI FORMAT "K"; ELSE; FETCH -1; STORE DEFAULT; END IF; END ACTIONS; END COMPONENT; ! COMPONENT CAL_LO NOTSAVED; TYPE INTEGER; INITIAL 0; GET ACTIONS; IF CAL_SC THEN; OUTPUT STRING "CALL?"; FLUSH; ENTER CAL_LO FORMAT "K"; ELSE; FETCH -1; STORE DEFAULT; END IF; END ACTIONS; END COMPONENT; ! COMPONENT Cal_Constants NOTSAVED; TYPE STRING 44; INITIAL "",INVALID; GET ACTIONS; OUTPUT STRING "STOR?"; ENTER DEFAULT FORMAT "K"; END ACTIONS; END COMPONENT; ! COMPONENT ATOD_Constants NOTSAVED; TYPE STRING 44; INITIAL "",INVALID; GET ACTIONS; OUTPUT STRING "ATOD?"; ENTER DEFAULT FORMAT "K"; END ACTIONS; END COMPONENT; ! COMPONENT CVAL NOTSAVED; TYPE STRING 127; INITIAL "",INVALID; GET ACTIONS; OUTPUT STRING "CVAL?"; ENTER DEFAULT FORMAT "K"; END ACTIONS; END COMPONENT; ! COMPONENT GUARD; TYPE DISCRETE; VALUES LCL,REM; INITIAL LCL; SET ACTIONS; GOSUB NO_SHOW; OUTPUT STRING "GUARD "; OUTPUT GUARD TABLE "LCL","REM"; GOSUB OPC; END ACTIONS; GET ACTIONS; IF SYNC THEN; ELSE; OUTPUT STRING "*LRN?"; ENTER STRING_STACK FORMAT "K"; END IF; IF LIVEMODE THEN; FETCH STRING_STACK; FETCH STRING "LCL"; POS; NOT; STORE GUARD; END IF; END ACTIONS; END COMPONENT; ! ! COMPONENT INP_ZERO NOTSAVED; TYPE INTEGER; SET ACTIONS; if Input_Port then; GOSUB NO_SHOW; OUTPUT STRING "ZERO?"; FLUSH; IF LIVEMODE THEN; WAIT TIME .1; END IF; ENTER STACK FORMAT "K"; if stack then; notify "Zero Operation Failed";end if; else; NOTIFY "Select an input first"; end if; END ACTIONS; END COMPONENT; COMPONENT OPC_MODE; TYPE DISCRETE; VALUES OFF,ON,ONCE; INITIAL ON; SET ACTIONS; SELECT OPC_MODE; CASE ONCE; OUTPUT STRING "*OPC?"; ENTER STACK FORMAT "K"; DROP; FETCH 0; STORE OPC_MODE; CASE ELSE; SKIP ERRCHECK; END SELECT; END ACTIONS; END COMPONENT; ! ! COMPONENT UPDATESTATE NOTSAVED; TYPE INTEGER; INITIAL 0; END COMPONENT; COMPONENT UPDATER NOTSAVED NOERRCHECK; TYPE INTEGER; INITIAL 0; SET ACTIONS; IF UPDATER THEN; ELSE; GOSUB DO_UPDATE; END IF; END ACTIONS; GET ACTIONS DO_UPDATE; END COMPONENT; ! UPDATE COMPONENT UPDATER; ! ACTIONS DO_UPDATE; FETCH TRIG_COUNT; FETCH 1; EQ; FETCH TRIG; OR; !! Need non-clicked triggers FETCH Input_Port; AND; !! And an active input IF STACK THEN; FETCH UPDATESTATE; NOT; FETCH UPDATER; AND; IF STACK THEN; SET Start_Measure; FETCH 1; STORE UPDATESTATE; END IF; ! IF UPDATESTATE THEN; SELECT Trig_Count; CASE 1; SPOLL; FETCH 4; BIT; CASE ELSE; GET Standard_Event; FETCH Standard_Event; FETCH 67; BINAND; END SELECT; FETCH LIVEMODE; NOT; OR; IF STACK THEN; FETCH 0; STORE UPDATESTATE; FETCH TRIG_COUNT; FETCH 1; GT; IF STACK THEN; GET READINGS; ELSE; ENTER READING FORMAT "K"; GOSUB SHOW_READ; END IF; FETCH 0; STORE Start_Measure; END IF; END IF; ! FETCH UPDATER; NOT; FETCH UPDATESTATE; AND; IF STACK THEN; CLEAR; FETCH 0; DUP; STORE UPDATESTATE; STORE Start_Measure; END IF; END IF; END ACTIONS; ! !--- Start Actions ----------------------------------------- ! !----- Start Scrolling ------------------------------------- ! ACTIONS AUP_SCAN; IF SHOW_DATA THEN; FETCH 1; FETCH VIEW_TRIG; FETCH TRIG_COUNT; NE; IF STACK THEN; FETCH VIEW_TRIG; ADD; END IF; STORE VIEW_TRIG; GOSUB EXTRACT; END IF; END ACTIONS; ACTIONS ADN_SCAN; IF SHOW_DATA THEN; SELECT VIEW_TRIG; CASE 1; FETCH TRIG_COUNT; CASE ELSE; FETCH VIEW_TRIG; FETCH 1; SUB; END SELECT; STORE VIEW_TRIG; GOSUB EXTRACT; END IF; END ACTIONS; ! ACTIONS EXTRACT; FETCH TRIG_COUNT; FETCH 1; GT; IF STACK THEN; FETCH VIEW_TRIG; FETCH 1; LT; IF STACK THEN; FETCH 1; STORE VIEW_TRIG; END IF; FETCH VIEW_TRIG; FETCH TRIG_COUNT; GT; IF STACK THEN; FETCH TRIG_COUNT; STORE VIEW_TRIG; END IF; FETCH VIEW_TRIG; ELSE; FETCH 1; END IF; ! DUP; STORE DMARK; FETCH READINGS; STORE READING; END ACTIONS; ! ACTIONS VIEW_HEIGHT; SELECT FUNCTION; CASE DCV; IF DCV_AUTO THEN; FETCH 1000; ELSE; FETCH DCV_RANGE; END IF; DUP; STORE MAX_VIEW; FETCH -1; MUL; STORE MIN_VIEW; CASE ACV; IF ACV_AUTO THEN; FETCH 1000; ELSE; FETCH ACV_RANGE; END IF; STORE MAX_VIEW; FETCH 0; STORE MIN_VIEW; CASE DCI; FETCH 1; STORE MAX_VIEW; FETCH -1; STORE MIN_VIEW; CASE ACI; FETCH 1; STORE MAX_VIEW; FETCH 0; STORE MIN_VIEW; CASE ELSE; ! Ohms IF OHM_AUTO THEN; FETCH 100000000; ELSE; FETCH OHM_RANGE; END IF; STORE MAX_VIEW; FETCH 0; STORE MIN_VIEW; END SELECT; FETCH MAX_VIEW; STORE MAX_MAX_VIEW; FETCH MIN_VIEW; STORE MIN_MIN_VIEW; GOSUB TICKER; END ACTIONS; ! ACTIONS SHOW_READ; FETCH Trig_Count; FETCH 1; GT; FETCH PANELMODE; AND; IF STACK THEN; FETCH 1; FETCH READINGS; STORE READING; ! IF SHOW_DATA THEN; ELSE; ! Compute X-tics: FETCH 5; STORE X_MAJOR; FETCH Trig_Count; FETCH 20; IDIV; FETCH 1; ADD; STORE X_TIC; SELECT TRIG_COUNT; CASE 1; CASE RANGE 2,20; FETCH 1; STORE X_TIC; FETCH Trig_Count; FETCH 20; LE; IF STACK THEN; FETCH 1; STORE X_TIC; FETCH 1; STORE X_MAJOR; END IF; CASE ELSE; FETCH TRIG_COUNT; FETCH 20; IDIV; FETCH 1; ADD; STORE X_TIC; END SELECT; FETCH 1; STORE SHOW_DATA; END IF; END IF; END ACTIONS; ! ACTIONS TICKER; FETCH MAX_VIEW; FETCH MIN_VIEW; ADD; FETCH 2; DIV; STORE MID_DATA; FETCH MAX_VIEW; FETCH MIN_VIEW; SUB; FETCH .125; MUL; STORE Y_TIC; FETCH Y_TIC; FETCH 4.3; MUL; DUP; FETCH MID_DATA; ADD; STORE MAX_DATA; FETCH MID_DATA; SWAP; SUB; STORE MIN_DATA; END ACTIONS; ! ! !----- End Scrolling --------------------------------------- ! ACTIONS NO_SHOW; IF SHOW_DATA THEN; FETCH 0; DUP; STORE SHOW_DATA; STORE Start_Measure; INVALIDATE READING; INVALIDATE READINGS; END IF; END ACTIONS; ! ! --- Menu Control --- ! ACTIONS MENU; IF PANELMODE THEN; HIDE MULTIMETER,SET_UP; HIDE SET_UP,MIDI_XY; HIDE SET_UP,MIDI_SGL; HIDE SET_UP,ACV_ITEMS; HIDE SET_UP,DCV_ITEMS; HIDE SET_UP,DCI_ITEMS; HIDE SET_UP,ACI_ITEMS; HIDE SET_UP,RES_ITEMS; HIDE MULTIMETER,RUN; HIDE MULTIMETER,FETCHER; HIDE MULTIMETER,SEND_TRIGGER; HIDE MULTIMETER,ABOUT_ID; HIDE MULTIMETER,STATUS_INST; HIDE MULTIMETER,OTHER;HIDE MULTIMETER,CALIBRATION; HIDE CALIBRATION,CAL; SELECT Choices; CASE SET_UP; FETCH TRIG_COUNT; FETCH 1; EQ; FETCH EXECUTE; FETCH 1; EQ; AND; IF STACK THEN; FETCH 0; STORE EXECUTE; END IF; SELECT EXECUTE; CASE 0; if Input_Port then; FETCH TRIG_COUNT; FETCH 1; GT; IF STACK THEN; SHOW SET_UP,MIDI_XY; ELSE; SHOW SET_UP,MIDI_SGL; END IF; SELECT FUNCTION; CASE DCV; SHOW SET_UP,DCV_ITEMS; CASE ACV; SHOW SET_UP,ACV_ITEMS; CASE DCI; SHOW SET_UP,DCI_ITEMS; CASE ACI; SHOW SET_UP,ACI_ITEMS; CASE ELSE; SHOW SET_UP,RES_ITEMS; END SELECT; end if; SHOW MULTIMETER,SET_UP; CASE 1; SHOW MULTIMETER,RUN; CASE 2; SHOW MULTIMETER,SEND_TRIGGER; CASE ELSE; SHOW MULTIMETER,FETCHER; END SELECT; CASE STATUS_INST; SHOW MULTIMETER,STATUS_INST; CASE ABOUT_ID; SHOW MULTIMETER,ABOUT_ID; CASE CALIBRATION; IF CAL_SC THEN; SHOW CALIBRATION,CAL; END IF; SHOW MULTIMETER,CALIBRATION; CASE ELSE; SHOW MULTIMETER,OTHER; END SELECT; END IF; END ACTIONS; ! ! --- END Menu Control --- ! ! ACTIONS Find_Units; SELECT Input_Port; CASE ADIVB; FETCH STRING ""; CASE DEVTN; FETCH STRING ""; CASE ELSE; SELECT FUNCTION; CASE DCV; FETCH STRING "Volts DC"; CASE ACV; FETCH STRING "Volts AC"; CASE DCI; FETCH STRING "Amps DC"; CASE ACI; FETCH STRING "Amps AC"; CASE ELSE; FETCH STRING "Ohms"; END SELECT; END SELECT; STORE UNITS; END ACTIONS; ! ACTIONS OPC; IF OPC_MODE THEN; OUTPUT STRING ";*OPC?"; ENTER STACK FORMAT "K"; DROP; ELSE; FLUSH; END IF; END ACTIONS; ! COMPONENT RESET NOTSAVED; TYPE INTEGER; SET ACTIONS; CLEAR; OUTPUT STRING "*RST;*CLS"; FLUSH; POKEINITIAL; GET LFREQ; GOSUB MENU; END ACTIONS; END COMPONENT; ! COMPONENT START_UP NOTSAVED NOGEN; TYPE INTEGER; SET ACTIONS; SET RESET; IF LIVEMODE THEN; DISABLE FUNCTION DCI,ACI; DISABLE Input_Port CH_B,ADIVB,ASUBB,DEVTN; ELSE; ENABLE FUNCTION DCI,ACI; ENABLE Input_Port CH_B,ADIVB,ASUBB,DEVTN; END IF; OUTPUT STRING "*OPT?"; ENTER STACK FORMAT "#,K"; SELECT STACK; CASE 0; CASE 30; ENABLE FUNCTION DCI,ACI; CASE 40; ENABLE Input_Port CH_B,ADIVB,ASUBB,DEVTN; END SELECT; ENTER STACK FORMAT "K"; SELECT STACK; CASE 0; CASE 30; ENABLE FUNCTION DCI,ACI; CASE 40; ENABLE Input_Port CH_B,ADIVB,ASUBB,DEVTN; END SELECT; END ACTIONS; END COMPONENT; ! COMPONENT READING NOTSAVED; TYPE CONTINUOUS; INITIAL 0,INVALID; GET ACTIONS; if Input_Port then; FETCH TRIG_COUNT; FETCH 1; GT; IF STACK THEN; GOSUB AUP_SCAN; SKIP ERRCHECK; ELSE; IF Start_Measure THEN; ELSE; IF TRIG THEN; OUTPUT STRING "BLOCK 1"; ELSE; OUTPUT STRING "X?"; END IF; FLUSH; END IF; IF TRIG THEN; IF Start_Measure THEN; FETCH 0; ELSE; FETCH TIMEOUT; END IF; LOOP; DUP; FETCH 0; LE; EXIT IF STACK; GET Standard_Event; FETCH Standard_Event; FETCH 67; BINAND; EXIT IF STACK; WAIT TIME .5; FETCH .5; SUB; END LOOP; DROP; OUTPUT STRING "BKNO?"; ENTER STACK FORMAT "K"; IF STACK THEN; OUTPUT STRING "BRCL? 1,1"; FLUSH; ENTER READING FORMAT "K"; ELSE; FETCH -9.93E-37; STORE READING; INVALIDATE READING; END IF; ELSE; ENTER READING FORMAT "K"; END IF; FETCH 0; STORE Start_Measure; END IF; else; fetch 9.91E37; store reading; invalidate reading; SKIP ERRCHECK; end if; END ACTIONS; END COMPONENT; ! COMPONENT SEND_TRIG NOTSAVED NOERRCHECK; TYPE INTEGER; SET ACTIONS; IF VIEW_TRIG THEN; OUTPUT STRING "*TRG"; FLUSH; FETCH VIEW_TRIG; FETCH 1; SUB; STORE VIEW_TRIG; IF VIEW_TRIG THEN; ELSE; FETCH 1; STORE EXECUTE; GOSUB Menu; END IF; END IF; END ACTIONS; END COMPONENT; ! COMPONENT MEAS_READY NOTSAVED NOERRCHECK; TYPE DISCRETE; VALUES NO,YES; INITIAL NO; GET ACTIONS; IF MEAS_READY THEN; ELSE; GET Standard_Event; FETCH Standard_Event; FETCH 67; BINAND; NOT; NOT; STORE MEAS_READY; END IF; END ACTIONS; END COMPONENT; ! COMPONENT Start_Measure NOTSAVED NOERRCHECK; TYPE INTEGER; INITIAL 0; SET ACTIONS; IF Input_Port THEN; SELECT Trig_Count; CASE 1; IF TRIG THEN; OUTPUT STRING "BLOCK 1"; ELSE; OUTPUT STRING "X?"; END IF; FLUSH; CASE ELSE; OUTPUT Trig_Count FORMAT '"BLOCK ",K'; FLUSH; IF UPDATER THEN; ELSE; FETCH Trig_Count; STORE View_Trig; FETCH 0; STORE Meas_Ready; IF TRIG THEN; FETCH 3; ELSE; SET SEND_TRIG; FETCH 2; END IF; STORE EXECUTE; GOSUB MENU; END IF; END SELECT; IF UPDATER THEN; ELSE; FETCH 0; STORE SHOW_DATA; INVALIDATE READING; INVALIDATE READINGS; END IF; FETCH 1; ELSE; FETCH 0; END IF; STORE DEFAULT; END ACTIONS; END COMPONENT; ! COMPONENT READINGS NOTSAVED; TYPE RARRAY 1,1000; GET ACTIONS; IF Input_Port THEN; IF Start_Measure THEN; FETCH 1; ! Enter whether finished or not ELSE; IF TRIG THEN; ! External trigger & clicked on array==wait for it OUTPUT Trig_Count FORMAT '"BLOCK ",K'; FLUSH; IF LIVEMODE THEN; SELECT FUNCTION; CASE DCV; FETCH DCV_RESL; CASE ACV; FETCH 5; CASE DCI; FETCH DCI_RESL; CASE ACI; FETCH 5; CASE ELSE; FETCH OHM_RESL; END SELECT; SELECT STACK; CASE 0; FETCH .001; CASE 1; FETCH .02; CASE 2; FETCH 0.2; CASE ELSE; IF FILTER THEN; IF ACDC_COUP THEN; FETCH 3; ELSE; FETCH 1; END IF; ELSE; FETCH .0833333; END IF; END SELECT; FETCH Trig_Count; MUL; DUP; WAIT TIME STACK; FETCH 5; DIV; FETCH 10; ADD; LOOP; DUP; FETCH 0; LE; GET Standard_Event; FETCH Standard_Event; FETCH 67; BINAND; OR; EXIT IF STACK; WAIT TIME .5; FETCH .5; SUB; END LOOP; DROP; END IF; FETCH 1; ELSE; SET Start_Measure; FETCH 0; ! should have clicked Start_Measure END IF; END IF; if stack then; OUTPUT STRING "BKNO?"; ENTER STACK FORMAT "K"; DUP; FETCH Trig_Count; LT; IF STACK THEN; MATSCALE 0,-9.91E37 READINGS; END IF; DUP; OUTPUT STACK FORMAT '"BRCL? 1,",K'; FLUSH; ENTER READINGS FORMAT ASCII 0,STACK; VALIDATE READINGS; FETCH 0; STORE Start_Measure; IF UPDATER THEN; ELSE; SELECT EXECUTE; CASE RANGE 2,5; FETCH 1; STORE EXECUTE; GOSUB MENU; CASE ELSE; END SELECT; END IF; IF PANELMODE THEN; FETCH SHOW_DATA; GOSUB SHOW_READ; IF STACK THEN; GOSUB EXTRACT; ELSE; IF SHOW_DATA THEN; FETCH 1; STORE DMARK; FETCH 1; STORE VIEW_TRIG; END IF; END IF; END IF; else; MATSCALE 0,-9.91E37 READINGS; invalidate readings; SKIP ERRCHECK; FETCH 1; STORE SKIP_CHECK; end if; else; MATSCALE 0,-9.92E37 READINGS; invalidate readings; SKIP ERRCHECK; end if; END ACTIONS; END COMPONENT; ! COMPONENT V_READ NOTSAVED; TYPE INTEGER; GET ACTIONS; FETCH 0; STORE SKIP_CHECK; GET READINGS; IF SKIP_CHECK THEN; SKIP ERRCHECK; END IF; END ACTIONS; END COMPONENT; ! COMPONENT SYNC NOTSAVED; TYPE INTEGER; GET ACTIONS; FETCH 0; STORE SYNC; GET LFREQ; GET TRIG; ! Leaves *LRN? string in string_stack FETCH 1; STORE SYNC; GET GUARD; GET DELAY; GET CAL_SC; GET Input_Port; ! This destroys string_stack FETCH 0; STORE SYNC; GET FUNCTION; END ACTIONS; END COMPONENT; ! PANEL MULTIMETER; POSITION 1,1; SIZE 428,213; ! TEXT "Multimeter"; POSITION 99,185; FONT 15,25; END TEXT; ! BUTTON RESET; POSITION 6,189; SIZE 55,19; BACKGROUND (0,130,70),0; LABEL "Reset"; END BUTTON; ! DISCRETE Choices; POSITION 287,189; SIZE 136,19; BACKGROUND (75,0,240),0; LABEL "Measure Panel","Calibration", "Other Panel","Status Panel","About Panel"; END DISCRETE; ! PANEL SET_UP; POSITION 0,0; SIZE 428,184; FOREGROUND (255,255,255),100; TEXT 7,150 "Readings not available"; ! PANEL MIDI_SGL; POSITION 3,139; SIZE 315,41; DISPLAY READING; POSITION 4,10; SIZE 180,29; FONT 15,25; FORMAT "7 DIGITS"; END DISPLAY; DISPLAY UNITS; POSITION 190,10; SIZE 124,29; FONT 15,25; FORMAT "AAAAAAAA"; BACKGROUND (220,211,184),0; FOREGROUND (0,0,0),100; END DISPLAY; END PANEL; ! PANEL MIDI_XY; POSITION 3,139; SIZE 315,41; XY V_READ; POSITION 4,1; SIZE 160,39; FOREGROUND(0,200,50),100; SCALE DISPLAY_START,DISPLAY_WIDTH,MIN_DATA,MAX_DATA; GRATICULE FRAME X_TIC,Y_TIC,1,MID_DATA,X_MAJOR,2; TRACE READINGS; FOREGROUND(255,255,255),100; STATE SHOW_DATA; END TRACE; END XY; ! BUTTON EXECUTE; POSITION 171,21; SIZE 143,19; LABEL "Expand Display"; END BUTTON; END PANEL; ! BUTTON INP_ZERO; POSITION 323,160; SIZE 98,19; LABEL "Input ZERO"; END BUTTON; BUTTON Start_Measure; POSITION 323,138; SIZE 98,19; LABEL "Start Meas"; END BUTTON; TEXT 7,118 "Input Port"; DISCRETE Input_Port; POSITION 103,116; SIZE 98,19; LABEL "OFF","CHANNEL A","CHANNEL B","A / B","A-B","(A-B)/B"; END DISCRETE; TEXT 227,118 "Function"; DISCRETE FUNCTION; POSITION 323,116; SIZE 98,19; LABEL "DC Volts","AC Volts","DC Amps","AC Amps", "4Wire Ohms", "2Wire Ohms"; END DISCRETE; PANEL DCV_ITEMS; POSITION 2,71; SIZE 424,43; ! TEXT 5,25 "Range"; CONTINUOUS DCV_RANGE; POSITION 101,23; SIZE 98,19; FORMAT "3 DIGITS"; END CONTINUOUS; ! TEXT 225,25 "Auto Range"; TOGGLE DCV_AUTO; POSITION 321,23; SIZE 98,19; LABEL "Off","On"; END TOGGLE; ! TEXT 5,3 "Resolution"; DISCRETE DCV_RESL; POSITION 101,1; SIZE 98,19; LABEL "4.5 DIGITS","5.5 DIGITS","6.5 DIGITS"; END DISCRETE; END PANEL; ! PANEL DCI_ITEMS; POSITION 2,71; SIZE 424,43; TEXT 5,25 "Range 1.00"; TEXT 5,3 "Resolution"; DISCRETE DCI_RESL; POSITION 101,1; SIZE 98,19; LABEL "4.5 DIGITS","5.5 DIGITS","6.5 DIGITS"; END DISCRETE; END PANEL; PANEL ACI_ITEMS; POSITION 2,71; SIZE 424,43; TEXT 5,25 "Range 1.00"; TEXT 5,3 "Resolution"; DISCRETE ACI_RESL; POSITION 101,1; SIZE 98,19; LABEL "4.5 DIGITS","5.5 DIGITS"; END DISCRETE; TEXT 225,3 "Coupling"; TOGGLE ACDC_COUP; POSITION 321,1; SIZE 98,19; LABEL "AC","DC"; END TOGGLE; END PANEL; PANEL ACV_ITEMS; POSITION 2,71; SIZE 424,43; TEXT 5,25 "Range"; CONTINUOUS ACV_RANGE; POSITION 101,23; SIZE 98,19; FORMAT "3 DIGITS"; END CONTINUOUS; TEXT 225,25 "Auto Range"; TOGGLE ACV_AUTO; POSITION 321,23; SIZE 98,19; LABEL "Off","On"; END TOGGLE; TEXT 5,3 "Resolution"; DISCRETE ACV_RESL; POSITION 101,1; SIZE 98,19; LABEL "4.5 DIGITS","5.5 DIGITS"; END DISCRETE; TEXT 225,3 "Coupling"; TOGGLE ACDC_COUP; POSITION 321,1; SIZE 98,19; LABEL "AC","DC"; END TOGGLE; END PANEL; ! PANEL RES_ITEMS; POSITION 2,71; SIZE 424,43; ! TEXT 5,25 "Range"; CONTINUOUS OHM_RANGE; POSITION 101,23; SIZE 98,19; FORMAT "3 DIGITS"; END CONTINUOUS; TEXT 225,25 "Auto Range"; TOGGLE OHM_AUTO; POSITION 321,23; SIZE 98,19; LABEL "Off","On"; END TOGGLE; TEXT 5,3 "Resolution"; DISCRETE OHM_RESL; POSITION 101,1; SIZE 98,19; LABEL "4.5 DIGITS"," 5.5 DIGITS","6.5 DIGITS"; END DISCRETE; END PANEL; TEXT 7, 52 "Guard"; TOGGLE GUARD; POSITION 103, 50; SIZE 98,19; LABEL "Local","Remote"; END TOGGLE; ! TEXT 227,52 "Inp Filter"; TOGGLE FILTER; POSITION 323,50; SIZE 98,19; LABEL "OFF","ON"; END TOGGLE; TEXT 7,30 "Trig Count"; CONTINUOUS TRIG_COUNT; POSITION 103,28; SIZE 98,19; STYLE "NOENGR"; FORMAT "DDDD"; END CONTINUOUS; TEXT 227,30 "Trig Sour"; TOGGLE TRIG; POSITION 323,28; SIZE 98,19; LABEL "System","External"; END TOGGLE; TEXT 7,8 "Trig Delay"; TOGGLE DELAY_AUTO; POSITION 103,6; SIZE 98,19; LABEL "Manual","Default"; END TOGGLE; TEXT 227,8 "Delay Time"; CONTINUOUS DELAY; POSITION 323,6; SIZE 98,19; FORMAT "4 DIGITS"; END CONTINUOUS; END PANEL; ! PANEL SEND_TRIGGER; POSITION 0,0; SIZE 428,184; FOREGROUND (255,255,255),100; TEXT 20,150 "Click 'TRIGGER' to send another trigger:"; BUTTON SEND_TRIG; POSITION 167,125; SIZE 94,19; LABEL "TRIGGER"; END BUTTON; ! TEXT 20,59 "Click display to enter the readings:"; XY V_READ; POSITION 134,10; SIZE 160,39; FOREGROUND(0,200,50),100; SCALE DISPLAY_START,DISPLAY_WIDTH,MIN_DATA,MAX_DATA; GRATICULE FRAME X_TIC,Y_TIC,1,MID_DATA,X_MAJOR,2; TRACE READINGS; FOREGROUND(255,255,255),100; STATE SHOW_DATA; END TRACE; END XY; END PANEL; ! PANEL FETCHER; POSITION 0,0; SIZE 428,184; FOREGROUND (255,255,255),100; ! DISPLAY MEAS_READY; POSITION 254,125; SIZE 50,19; TITLE "Measurement Complete"; END DISPLAY; ! TEXT 20,59 "Click display to enter the readings:"; XY V_READ; POSITION 134,10; SIZE 160,39; FOREGROUND(0,200,50),100; SCALE DISPLAY_START,DISPLAY_WIDTH,MIN_DATA,MAX_DATA; GRATICULE FRAME X_TIC,Y_TIC,1,MID_DATA,X_MAJOR,2; TRACE READINGS; FOREGROUND(255,255,255),100; STATE SHOW_DATA; END TRACE; END XY; END PANEL; ! PANEL RUN; POSITION 0,0; SIZE 428,184; FOREGROUND (255,255,255),100; BUTTON READ_MAX; POSITION 6,141; LABEL "*->"; SIZE 40,19; END BUTTON; TEXT 52, 143 "Max:"; CONTINUOUS MAX_VIEW; POSITION 94,141; SIZE 109,19; FORMAT "6 DIGITS"; END CONTINUOUS; BUTTON READ_MIN; POSITION 6,23; LABEL "*->"; SIZE 40,19; END BUTTON; TEXT 52, 25 "Min:"; CONTINUOUS MIN_VIEW; POSITION 94,23; SIZE 109,19; FORMAT "6 DIGITS"; END CONTINUOUS; XY V_READ; POSITION 7,44; SIZE 201,95; FOREGROUND(0,200,50),100; SCALE DISPLAY_START,DISPLAY_WIDTH,MIN_DATA,MAX_DATA; GRATICULE G_GRID X_TIC,Y_TIC,1,MID_DATA,X_MAJOR,2; TRACE READINGS; FOREGROUND(255,255,255),100; CONNECT CONNECT_DATA; STATE SHOW_DATA; MARKER DMARK; FOREGROUND(255,255,0),100; TYPE POINT; STATE SHOW_DATA; END MARKER; END TRACE; END XY; TEXT 8,6 "<-- Readings Index -->"; ! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - TEXT 218,163 "Units"; DISPLAY UNITS; POSITION 285,161; SIZE 133,19; FORMAT "AAAAAAAA"; BACKGROUND (220,211,184),0; FOREGROUND (0,0,0),100; END DISPLAY; TEXT 218,141 "Reading"; DISPLAY READING; POSITION 285,139; SIZE 133,19; FORMAT "7 DIGITS"; END DISPLAY; TEXT 215,112 "Index Marker Control: "; ! DISCRETE G_GRID; POSITION 220,6; SIZE 57,19; LABEL "None","Axes","Grid","Frame"; END DISCRETE; TOGGLE CONNECT_DATA; POSITION 282,6; SIZE 40,19; LABEL "..","-"; END TOGGLE; ! TEXT 218,89 "Trig #"; CONTINUOUS VIEW_TRIG; POSITION 285,89; SIZE 58,19; STYLE "NOENGR"; FORMAT "DDDD"; END CONTINUOUS; BUTTON DN_SCAN; POSITION 350,89; LABEL " < "; END BUTTON; BUTTON UP_SCAN; POSITION 386,89; LABEL " > "; END BUTTON; BUTTON Start_Measure; POSITION 220,44; SIZE 201,19; LABEL "Start Measure"; END BUTTON; ! BUTTON DONE_POP_UP; POSITION 342,5; SIZE 76,19; LABEL "Reduce"; END BUTTON; END PANEL; ! ! PANEL OTHER; POSITION 0,0; SIZE 428,184; FOREGROUND (255,255,255),100; ! TEXT 7,162 "Line Freq"; DISCRETE LFREQ; POSITION 103,160; SIZE 98,19; LABEL "50 Hz","60 Hz","400 Hz"; END DISCRETE; BUTTON Save_Line_Freq; position 227,160; size 194,19; LABEL "Save Line Freq"; END BUTTON; ! TEXT 7,96 "IDN"; DISPLAY IDENTIFY; POSITION 45, 94; SIZE 375, 19; END DISPLAY; DISPLAY Self_Test; POSITION 195,6; SIZE 225,19; FORMAT "DDDDDD"; STYLE "NOENGR"; TITLE "Self Test"; END DISPLAY; END PANEL; ! PANEL ABOUT_ID; POSITION 0,0; SIZE 428,184; FOREGROUND (255,255,255),100; TEXT "WAVETEK 1362"; POSITION 121,131; FONT 15,25; END TEXT; TEXT 140,114 "Digit Multimeter"; TEXT 140, 83 "Revision A.01.00"; TEXT 156, 54 "Copyright (C)"; TEXT 123, 37 " Hewlett -Packard"; TEXT 190, 20 "1994"; END PANEL; ! PANEL CALIBRATION; POSITION 0,0; SIZE 428,184; FOREGROUND (255,255,255),100; ! TEXT 7,160 "Calibration Constants:"; DISPLAY Cal_Constants; POSITION 48,138; SIZE 375,19; TITLE "STOR"; END DISPLAY; DISPLAY ATOD_Constants; POSITION 48,116; SIZE 375,19; TITLE "A/D"; END DISPLAY; DISPLAY CVAL; POSITION 48, 94; SIZE 375,19; TITLE "VAL"; END DISPLAY; ! TOGGLE CAL_SC; POSITION 210,72; SIZE 210,19; LABEL "Off","On"; TITLE "Calibrate Security"; END TOGGLE; ! PANEL CAL; POSITION 1,1; SIZE 426,70; DISPLAY CAL_HI; POSITION 209,49; SIZE 210,19; STYLE "NOENGR"; FORMAT "DDDDD"; TITLE "Calibrate High"; END DISPLAY; ! DISPLAY CAL_LO; POSITION 209,27; SIZE 210,19; STYLE "NOENGR"; FORMAT "DDDDD"; TITLE "Calibrate Low"; END DISPLAY; END PANEL; END PANEL; ! PANEL STATUS_INST; POSITION 0,0; SIZE 428,186; FOREGROUND (255,255,255),100; ! TEXT 7, 163, "S-Poll"; DISPLAY Serial_Poll; POSITION 63,163; SIZE 60, 19; FORMAT "DDDDDD"; STYLE "NOENGR"; END DISPLAY; BUTTON Clear_Status; POSITION 287,163; SIZE 136,19; LABEL "Clear Status"; END BUTTON; TEXT 393,141 "<--"; DISPLAY Status_Byte; POSITION 327,141; SIZE 60,19; FORMAT "DDDDDD"; STYLE "NOENGR"; END DISPLAY; TEXT 222,141, "Status Byte"; ! CONTINUOUS Status_Enable; POSITION 129,141; SIZE 60,19; FORMAT "DDD"; STYLE "NOENGR"; END CONTINUOUS; TEXT 7,141 "SRQ Enable"; ! TEXT 268,119 "Event"; TEXT 330,119 "Enable"; TEXT 411,119 "^"; ! DISPLAY Standard_Event; POSITION 261, 97; SIZE 60,19; FORMAT "DDDDD"; STYLE "NOENGR"; TITLE "Standard Event Register"; END DISPLAY; CONTINUOUS Event_Enable; POSITION 327, 97; SIZE 60,19; FORMAT "DDDDD"; STYLE "NOENGR"; END CONTINUOUS; TEXT 393, 97 "--^"; ! DISCRETE OPC_MODE; POSITION 327,75; SIZE 60,19; LABEL "Off","On","Once"; TITLE "Wait for Operation Complete Mode"; END DISCRETE; ! TEXT 48,30 "Error Number"; DISPLAY ERROR; POSITION 164,28; SIZE 76,19; STYLE "NOENGR"; FORMAT "DDDDDD"; END DISPLAY; TEXT 248,30 "and Error String:"; DISPLAY ERR_STRING; POSITION 10,6; SIZE 408,19; END DISPLAY; END PANEL; END PANEL;