menuitem "watch variables" hotmenu wModuleMaskData() { GEL_WatchAdd("moduleMaskData, x"); } hotmenu wCalCoeff() { GEL_WatchAdd("calCoeff, x"); } hotmenu wScanControl() { GEL_WatchAdd("hc, x"); } hotmenu wModuleCfgData() { GEL_WatchAdd("moduleConfigSet, x"); } hotmenu wMaskCfg() { GEL_WatchAdd("maskConfigData, x"); } menuitem "nmask scan" hotmenu loadCfg_Cambridge_nmask(){ GEL_MemoryLoad(0x02062000, 2, 0x1000, "lists/nmask-prims/rwModuleData-Cambridge-mlist.txt"); setInListBit(); } hotmenu scanCtrl_nmask(){ GEL_MemoryLoad(0x02062000, 2, 0x15c, "lists/nmask-prims/scanCtrl-nmask.txt"); setInListBit(); } menuitem "3pt scan" hotmenu loadCfg_Cambridge_3pt(){ GEL_MemoryLoad(0x02062000, 2, 0x1000, "lists/3pt-prims/rwModuleData-Cambridge-mlist.txt"); setInListBit(); } hotmenu qcal_1d5_3pt(){ GEL_MemoryLoad(0x02062000, 2, 0x100, "lists/3pt-prims/qcal-1d5-modvar-mlist.txt"); setInListBit(); } hotmenu qcal_2d0_3pt(){ GEL_MemoryLoad(0x02062000, 2, 0x100, "lists/3pt-prims/qcal-2d0-modvar-mlist.txt"); setInListBit(); } hotmenu qcal_2d5_3pt(){ GEL_MemoryLoad(0x02062000, 2, 0x100, "lists/3pt-prims/qcal-2d5-modvar-mlist.txt"); setInListBit(); } hotmenu scanCtrl_3pt(){ GEL_MemoryLoad(0x02062000, 2, 0x15c, "lists/3pt-prims/3pt-scan.txt"); setInListBit(); } hotmenu scanCtrl_3pt_rangelist(){ GEL_MemoryLoad(0x02062000, 2, 0x15c, "lists/3pt-prims/3pt-scan-rl.txt"); setInListBit(); } menuitem "additional 6201 functions" hotmenu attachFifoProbePoints() { //inmem write: GEL_PortConnect(0x2ff6000, 1, 6, 0x1e, "inmemAl.txt"); //GEL_PortConnect(0x2ff6004, 1, 2, 0x1e, "inmemAh.txt"); //GEL_PortConnect(0x2ff6008, 1, 4, 0x1e, "inmemBl.txt"); //GEL_PortConnect(0x2ff600c, 1, 2, 0x1e, "inmemBh.txt"); //inmem read: //GEL_PortConnect(0x2ff6020, 1, 4, 0x1d, "inmemAl.txt"); //GEL_PortConnect(0x2ff6024, 1, 2, 0x1d, "inmemAh.txt"); //GEL_PortConnect(0x2ff6028, 1, 4, 0x1d, "inmemBl.txt"); //GEL_PortConnect(0x2ff602c, 1, 2, 0x1d, "inmemBh.txt"); } hotmenu detachFifoProbePoints() { //inmem write: GEL_PortDisconnect(0x2ff6000, 1, 4, ); GEL_PortDisconnect(0x2ff6004, 1, 4, ); GEL_PortDisconnect(0x2ff6008, 1, 4, ); GEL_PortDisconnect(0x2ff600c, 1, 4, ); //inmem read: GEL_PortDisconnect(0x2ff6020, 1, 4, ); GEL_PortDisconnect(0x2ff6024, 1, 4, ); GEL_PortDisconnect(0x2ff6028, 1, 4, ); GEL_PortDisconnect(0x2ff602c, 1, 4, ); } hotmenu loadSim6201() { GEL_Load("Pixel/Binary/rodrun_pxl_sim.out"); GEL_Restart(); } hotmenu loadSim6713() { GEL_Load("Pixel\Binary\sdsp6713.out"); GEL_Restart(); } hotmenu loadSim6701S() { GEL_Load("Pixel\Binary\sdsp6701.out"); GEL_Restart(); } hotmenu rwModCfg_fei1_j0(){ GEL_MemoryLoad(0x02062000, 2, 0x10014, "lists/fei1-j0-vg4.txt"); setInListBit(); } hotmenu rwModCfg_fei1_j6(){ GEL_MemoryLoad(0x02062000, 2, 0x10014, "lists/fei1-j6-vg4.txt"); setInListBit(); } hotmenu rwModCfg_fei2_j0(){ GEL_MemoryLoad(0x02062000, 2, 0x10014, "lists/fei2-j0-vg4.txt"); setInListBit(); } hotmenu rwModCfg_fei2_j6(){ GEL_MemoryLoad(0x02062000, 2, 0x10014, "lists/fei2-j6-vg4.txt"); setInListBit(); } hotmenu setRodMode(){ GEL_MemoryLoad(0x02062000, 2, 0x100, "lists/setRodMode_mlist.txt"); setInListBit(); } hotmenu testPrim(){ GEL_MemoryLoad(0x02062000, 2, 0x100, "lists/testPrim_mlist.txt"); setInListBit(); } hotmenu ets_moderr() { GEL_MemoryLoad(0x02062000, 2, 0x76, "lists/ets-moderr.txt"); setInListBit(); } //These functions all use a dataset derived from Cambridge module index #02: hotmenu rwModCfg_m02_All(){ GEL_MemoryLoad(0x02062000, 2, 0x300, "lists/rwModuleData-m02-mlist0.txt"); setInListBit(); } hotmenu rwModCfg_m02_write_srcCpy_allchips(){ GEL_MemoryLoad(0x02062000, 2, 0x300, "lists/rwModuleData-m02-mlist1.txt"); setInListBit(); } hotmenu rwModCfg_m02_write_srcCpy_m8chip_basic_caldata(){ GEL_MemoryLoad(0x02062000, 2, 0x300, "lists/rwModuleData-m02-mlist2.txt"); setInListBit(); } hotmenu rwModCfg_m02_write_srcCpy_m8chip_calData(){ GEL_MemoryLoad(0x02062000, 2, 0x300, "lists/rwModuleData-m02-mlist3.txt"); setInListBit(); } //hotmenu rwModCfg_m209_j1(){ // GEL_MemoryLoad(0x02062000, 2, 0x10014, "lists/rwMod-209.txt"); // //GEL_MemoryLoad(0x02062000, 2, 0x10014, "lists/rwMod-209a.txt"); // setInListBit(); //} hotmenu rwModCfg_m679_j2(){ GEL_MemoryLoad(0x02062000, 2, 0x10014, "lists/rwMod-679.txt"); //GEL_MemoryLoad(0x02062000, 2, 0x10014, "lists/rwMod-679a.txt"); setInListBit(); } hotmenu rwModCfg_m674_j3(){ GEL_MemoryLoad(0x02062000, 2, 0x10014, "lists/rwMod-674.txt"); //GEL_MemoryLoad(0x02062000, 2, 0x10014, "lists/rwMod-674a.txt"); setInListBit(); } hotmenu rwModCfg_m216_j4(){ GEL_MemoryLoad(0x02062000, 2, 0x10014, "lists/rwMod-216.txt"); //GEL_MemoryLoad(0x02062000, 2, 0x10014, "lists/rwMod-216a.txt"); setInListBit(); } hotmenu rwModCfg_m916_j5(){ GEL_MemoryLoad(0x02062000, 2, 0x10014, "lists/rwMod-916.txt"); //GEL_MemoryLoad(0x02062000, 2, 0x10014, "lists/rwMod-916a.txt"); setInListBit(); } hotmenu rwModCfg_m174_j6(){ GEL_MemoryLoad(0x02062000, 2, 0x10014, "lists/rwMod-174.txt"); //GEL_MemoryLoad(0x02062000, 2, 0x10014, "lists/rwMod-174a.txt"); setInListBit(); } hotmenu proccessPrimList() { unsigned int ixx= 0, ilr, rr, cr, getErr= 0, getInfo= 0, getXfer= 0; GEL_OpenWindow("List Processing", 0, 20); GEL_TextOut( "PrimList: Init.\n", "List Processing", 1); GEL_Run("(cmdReg0 & 0x1) == 1"); do { //getDspText("List Processing"); //********************* SR0 Checks ******************** if ((statReg0 & 0xff00) != 0) { if (statReg0 & 0x1000) { if (!getErr) { GEL_OpenWindow("Error Buffer", 0, 20); GEL_TextOut("\nNew DSP Text:\n\n", "Error Buffer", 1); GEL_TextOut(" Error!\n", "List Processing", 2); } getErr= 1; if (statReg0 & 0x100) { GEL_TextOut("PrimList: Error (NE)\n", "List Processing", 0); } if (!(cmdReg0 & 0x10)) { GEL_TextOut("PrimList: Error (rr wait)\n", "List Processing", 0); } } else getErr= 0; if (statReg0 & 0x2000) { if (!getInfo) { GEL_OpenWindow("Info Buffer", 0, 20); GEL_TextOut("\nNew DSP Text:\n\n", "Info Buffer", 0); GEL_TextOut("PrimList: Info.\n", "List Processing", 1); } getInfo= 1; if (statReg0 & 0x200) { GEL_TextOut("PrimList: Info (NE)\n", "List Processing", 0); } if (!(cmdReg0 & 0x20)) { GEL_TextOut("PrimList: Info (rr wait)\n", "List Processing", 0); } } else getInfo= 0; if (statReg0 & 0x8000) { if (!getXfer) { GEL_OpenWindow("Xfer Buffer", 0, 20); GEL_TextOut("\nNew DSP Text:\n\n", "Xfer Buffer", 0); GEL_TextOut("PrimList: Xfer.\n", "List Processing", 0); } getXfer= 1; if (statReg0 & 0x800) { GEL_TextOut("PrimList: Xfer (NE)\n", "List Processing", 0); } if (!(cmdReg0 & 0x80)) { GEL_TextOut("PrimList: Xfer (rr wait)\n", "List Processing", 0); } } else getXfer= 0; } //SR0 Text Checks //********************* CR Text Checks **************** if (cmdReg0 & 0xf0) { if (cmdReg0 & 0x10) { if (getErr == 1) { ++getErr; GEL_TargetTextOut(0x02040000, 2, 0x8000, 0, "Error Buffer", 2); GEL_MemoryFill(0x02040000, 2, 0x200, 0); } GEL_TextOut("PrimList: Error (rr assert)\n", "List Processing", 0); } if (cmdReg0 & 0x20) { if (getInfo == 1) { ++getInfo; GEL_TargetTextOut(0x02048000, 2, 0x8000, 0, "Info Buffer", 1); GEL_MemoryFill(0x02048000, 2, 0x200, 0); } GEL_TextOut("PrimList: Info (rr assert)\n", "List Processing", 0); } if (cmdReg0 & 0x80) { if (getXfer == 1) { ++getXfer; GEL_TargetTextOut(0x02058000, 2 , 0x8000, 0, "Xfer Buffer", 1); GEL_MemoryFill(0x02058000, 2, 0x200, 0); } GEL_TextOut("PrimList: Xfer (rr assert)\n", "List Processing", 0); } } //CR Text Checks ilr= cmdReg0 & 0x1; } while (ilr); if (cmdReg0 & 0xf0) { GEL_TextOut("PrimList: Post List Text Handling.\n", "List Processing", 0); GEL_Run("(cmdReg0 & 0xf0) != 0"); do { //getDspText("List Processing"); //********************* SR0 Checks ******************** if ((statReg0 & 0xff00) != 0) { if (statReg0 & 0x1000) { if (!getErr) { GEL_OpenWindow("Error Buffer", 0, 20); GEL_TextOut("\nNew DSP Text:\n\n", "Error Buffer", 1); GEL_TextOut(" Error!\n", "List Processing", 2); } getErr= 1; if (statReg0 & 0x100) { GEL_TextOut("PrimList: Error (NE)\n", "List Processing", 0); } if (!(cmdReg0 & 0x10)) { GEL_TextOut("PrimList: Error (rr wait)\n", "List Processing", 0); } } else getErr= 0; if (statReg0 & 0x2000) { if (!getInfo) { GEL_OpenWindow("Info Buffer", 0, 20); GEL_TextOut("\nNew DSP Text:\n\n", "Info Buffer", 0); GEL_TextOut("PrimList: Info.\n", "List Processing", 1); } getInfo= 1; if (statReg0 & 0x200) { GEL_TextOut("PrimList: Info (NE)\n", "List Processing", 0); } if (!(cmdReg0 & 0x20)) { GEL_TextOut("PrimList: Info (rr wait)\n", "List Processing", 0); } } else getInfo= 0; if (statReg0 & 0x8000) { if (!getXfer) { GEL_OpenWindow("Xfer Buffer", 0, 20); GEL_TextOut("\nNew DSP Text:\n\n", "Xfer Buffer", 0); GEL_TextOut("PrimList: Xfer.\n", "List Processing", 0); } getXfer= 1; if (statReg0 & 0x800) { GEL_TextOut("PrimList: Xfer (NE)\n", "List Processing", 0); } if (!(cmdReg0 & 0x80)) { GEL_TextOut("PrimList: Xfer (rr wait)\n", "List Processing", 0); } } else getXfer= 0; } //SR0 Text Checks //********************* CR Text Checks **************** if (cmdReg0 & 0xf0) { if (cmdReg0 & 0x10) { if (getErr == 1) { ++getErr; GEL_TargetTextOut(0x02040000, 2, 0x8000, 0, "Error Buffer", 2); GEL_MemoryFill(0x02040000, 2, 0x200, 0); } GEL_TextOut("PrimList: Error (rr assert)\n", "List Processing", 0); } if (cmdReg0 & 0x20) { if (getInfo == 1) { ++getInfo; GEL_TargetTextOut(0x02048000, 2, 0x8000, 0, "Info Buffer", 1); GEL_MemoryFill(0x02048000, 2, 0x200, 0); } GEL_TextOut("PrimList: Info (rr assert)\n", "List Processing", 0); } if (cmdReg0 & 0x80) { if (getXfer == 1) { ++getXfer; GEL_TargetTextOut(0x02058000, 2 , 0x8000, 0, "Xfer Buffer", 1); GEL_MemoryFill(0x02058000, 2, 0x200, 0); } GEL_TextOut("PrimList: Xfer (rr assert)\n", "List Processing", 0); } } //CR Text Checks rr= cmdReg0 & 0xf0; } while (rr); } } hotmenu loadSectorCfg() { //can change the group #s later before scan starts. //GEL_TextOut("PrimList: rwMod-209.txt\n", "List Processing", 1); //rwModCfg_m209_j1(); //setInListBit(); //proccessPrimList(); GEL_TextOut("PrimList: rwMod-679.txt\n", "List Processing", 1); rwModCfg_m679_j2(); setInListBit(); proccessPrimList(); GEL_TextOut("PrimList: rwMod-674.txt\n", "List Processing", 1); rwModCfg_m674_j3(); setInListBit(); proccessPrimList(); GEL_TextOut("PrimList: rwMod-216.txt\n", "List Processing", 1); rwModCfg_m216_j4(); setInListBit(); proccessPrimList(); GEL_TextOut("PrimList: rwMod-916.txt\n", "List Processing", 1); rwModCfg_m916_j5(); setInListBit(); proccessPrimList(); GEL_TextOut("PrimList: rwMod-174.txt\n", "List Processing", 1); rwModCfg_m174_j6(); setInListBit(); proccessPrimList(); } hotmenu rwregfield_echo(){ GEL_TextOut("PrimList: rwregfield_echo.txt\n", "List Processing", 1); GEL_MemoryLoad(0x02062000, 2, 0x1b, "lists/rwregfield_echo.txt"); setInListBit(); } hotmenu p14(){ GEL_TextOut("PrimList: prim14.txt\n", "List Processing", 1); GEL_MemoryLoad(0x02062000, 2, 0xa7, "lists2/dual-module/prim14.txt"); setInListBit(); } hotmenu p15(){ GEL_TextOut("PrimList: prim15.txt\n", "List Processing", 1); GEL_MemoryLoad(0x02062000, 2, 0x1a, "lists2/dual-module/prim15.txt"); setInListBit(); } hotmenu p16(){ GEL_TextOut("PrimList: prim16.txt\n", "List Processing", 1); GEL_MemoryLoad(0x02062000, 2, 0x1a, "lists2/dual-module/prim16.txt"); setInListBit(); } hotmenu p17(){ GEL_TextOut("PrimList: prim17.txt\n", "List Processing", 1); GEL_MemoryLoad(0x02062000, 2, 0x3b, "lists2/dual-module/prim17.txt"); setInListBit(); } hotmenu p18(){ GEL_TextOut("PrimList: prim18.txt\n", "List Processing", 1); GEL_MemoryLoad(0x02062000, 2, 0x10, "lists2/dual-module/prim18.txt"); setInListBit(); } hotmenu p19(){ GEL_TextOut("PrimList: prim19.txt\n", "List Processing", 1); GEL_MemoryLoad(0x02062000, 2, 0xa5, "lists2/dual-module/prim19.txt"); setInListBit(); } hotmenu p20(){ GEL_TextOut("PrimList: prim20.txt\n", "List Processing", 1); GEL_MemoryLoad(0x02062000, 2, 0x1b, "lists2/dual-module/prim20.txt"); setInListBit(); } hotmenu p21(){ GEL_TextOut("PrimList: prim21.txt\n", "List Processing", 1); GEL_MemoryLoad(0x02062000, 2, 0x45, "lists2/dual-module/prim21.txt"); setInListBit(); } hotmenu scan(){ GEL_TextOut("PrimList: fei1-j0.txt\n", "List Processing", 1); rwModCfg_fei1_j0(); proccessPrimList(); GEL_TextOut("PrimList: fei2-j6.txt\n", "List Processing", 1); rwModCfg_fei2_j6(); proccessPrimList(); /* GEL_TextOut("PrimList: prim14.txt\n", "List Processing", 1); GEL_MemoryLoad(0x02062000, 2, 0xa7, "lists2/dual-module/prim14.txt"); setInListBit(); proccessPrimList(); GEL_TextOut("PrimList: prim15.txt\n", "List Processing", 1); GEL_MemoryLoad(0x02062000, 2, 0x1a, "lists2/dual-module/prim15.txt"); setInListBit(); proccessPrimList(); GEL_TextOut("PrimList: prim16.txt\n", "List Processing", 1); GEL_MemoryLoad(0x02062000, 2, 0x1a, "lists2/dual-module/prim16.txt"); setInListBit(); proccessPrimList(); GEL_TextOut("PrimList: prim17.txt\n", "List Processing", 1); GEL_MemoryLoad(0x02062000, 2, 0x3b, "lists2/dual-module/prim17.txt"); setInListBit(); proccessPrimList(); GEL_TextOut("PrimList: prim18.txt\n", "List Processing", 1); GEL_MemoryLoad(0x02062000, 2, 0x10, "lists2/dual-module/prim18.txt"); setInListBit(); proccessPrimList(); GEL_TextOut("PrimList: prim19.txt\n", "List Processing", 1); GEL_MemoryLoad(0x02062000, 2, 0xa5, "lists2/dual-module/prim19.txt"); setInListBit(); proccessPrimList(); */ GEL_TextOut("PrimList: prim20.txt\n", "List Processing", 1); GEL_MemoryLoad(0x02062000, 2, 0x1b, "lists2/dual-module/prim20.txt"); setInListBit(); proccessPrimList(); GEL_TextOut("PrimList: prim21.txt\n", "List Processing", 1); GEL_MemoryLoad(0x02062000, 2, 0x45, "lists2/dual-module/prim21.txt"); setInListBit(); //proccessPrimList(); } hotmenu vcalScan() { GEL_TextOut("PrimList: fei1-j0.txt\n", "List Processing", 1); rwModCfg_fei1_j0(); proccessPrimList(); GEL_TextOut("PrimList: fei2-j6.txt\n", "List Processing", 1); rwModCfg_fei2_j6(); proccessPrimList(); //can change the group # later before scan starts. GEL_TextOut("PrimList: rwregfield_echo.txt\n", "List Processing", 1); GEL_MemoryLoad(0x02062000, 2, 0x1b, "lists/rwregfield_echo.txt"); setInListBit(); proccessPrimList(); GEL_TextOut("PrimList: histoCtrl-v140-vcal.txt\n", "List Processing", 1); GEL_MemoryLoad(0x02062000, 2, 0x45, "lists/histoCtrl-v140-vcal.txt"); setInListBit(); } hotmenu histoCtrl_vcal() { GEL_TextOut("PrimList: histoCtrl-v140-vcal.txt\n", "List Processing", 1); GEL_MemoryLoad(0x02062000, 2, 0x45, "lists/histoCtrl-v140-vcal.txt"); setInListBit(); } hotmenu getText() { int ixx= 0, rr; GEL_OpenWindow("Error Buffer", 0, 20); GEL_TargetTextOut(0x02040000, 2 , 0x8000, 0, "Error Buffer", 2); GEL_OpenWindow("Info Buffer", 0, 20); GEL_TargetTextOut(0x02048000, 2 , 0x8000, 0, "Info Buffer", 2); GEL_OpenWindow("Xfer Buffer", 0, 20); GEL_TargetTextOut(0x02058000, 2 , 0x8000, 0, "Xfer Buffer", 2); GEL_MemoryFill(0x02040000, 2, 0x200, 0); GEL_MemoryFill(0x02048000, 2, 0x200, 0); GEL_MemoryFill(0x02058000, 2, 0x200, 0); } hotmenu closeTextWindows() { GEL_CloseWindow("Error Buffer"); GEL_CloseWindow("Info Buffer"); GEL_CloseWindow("Xfer Buffer"); } hotmenu test_setDigital40MHz(){ GEL_MemoryLoad(0x02062000, 2, 0x29, "lists2/test-setDigital40MHz.txt"); setInListBit(); } hotmenu sendCfg(){ GEL_MemoryLoad(0x02062000, 2, 0x16, "lists2/sendCfg.txt"); setInListBit(); } hotmenu testGblReg_fei2_fe0(){ GEL_MemoryLoad(0x02062000, 2, 0xd, "lists2/testGblReg-fei2-fe0.txt"); //output: GEL_MemoryLoad(0x020b2000, 2, 0x100, "lists2/testGblReg-fei2-fe0-output.txt"); setInListBit(); } hotmenu testGblReg_fei1_fe0(){ GEL_MemoryLoad(0x02062000, 2, 0xd, "lists2/testGblReg-fei1-fe0.txt"); //output: GEL_MemoryLoad(0x020b2000, 2, 0x100, "lists2/testGblReg-fei1-fe0-output.txt"); setInListBit(); } menuitem "additional 6713 functions" hotmenu histoSetup_pxl_vcal(){ GEL_MemoryLoad(0xa0062000, 2, 0x200, "lists/histoSetup_pxl_vcal_0_400_mlist.txt"); setInListBit6713(); } hotmenu loadScanData_pxl(){ //GEL_MemoryLoad(0xa00e2000, 2, 0x4e6600, "c:/analysis/vcal-scan/vcalScan-M510174.txt"); GEL_MemoryLoad(0xa00e2000, 2, 0x4e6600, "c:/analysis/vcal-scan/vcal_m174_sdsp0.txt"); } hotmenu fitHistograms(){ GEL_MemoryLoad(0xa0062000, 2, 0x100, "lists/fitHisto_mlist.txt"); setInListBit6713(); } hotmenu getTexte() { int ixx= 0, rr; GEL_OpenWindow("Error Buffer", 0, 20); GEL_TargetTextOut(0xa0040000, 2 , 0x8000, 0, "Error Buffer", 2); GEL_OpenWindow("Info Buffer", 0, 20); GEL_TargetTextOut(0xa0048000, 2 , 0x8000, 0, "Info Buffer", 2); GEL_OpenWindow("Diag Buffer", 0, 20); GEL_TargetTextOut(0xa0050000, 2 , 0x8000, 0, "Diag Buffer", 2); GEL_MemoryFill(0xa0040000, 2, 0x2000, 0); GEL_MemoryFill(0xa0048000, 2, 0x2000, 0); GEL_MemoryFill(0xa0050000, 2, 0x2000, 0); } hotmenu closeTexteWindows() { GEL_CloseWindow("Error Buffer"); GEL_CloseWindow("Info Buffer"); GEL_CloseWindow("Diag Buffer"); }