diff --git a/doc/xschem_man/xschem_man.html b/doc/xschem_man/xschem_man.html
index 2f7ace3c..549865ab 100644
--- a/doc/xschem_man/xschem_man.html
+++ b/doc/xschem_man/xschem_man.html
@@ -78,6 +78,7 @@
[Video] See logic propagation of nets live in xschem without using a backend simulator
[Video] View Ngspice/Xyce simulation data inside XSCHEM
[Video] Live annotation of simulation values into the schematic
+ [Video] Setting up a Xyce simulation, viewing results and doing math on graphs
[Video] Probe xschem nets into the GAW waveform viewer
[Video] Probe xschem nets into the BESPICE waveform viewer
[Video] Creating a symbol
diff --git a/src/save.c b/src/save.c
index 94760efb..6b1c8667 100644
--- a/src/save.c
+++ b/src/save.c
@@ -761,20 +761,22 @@ int plot_raw_custom_data(int sweep_idx, int first, int last, const char *expr)
if(stackptr2 > 1) { /* 2 argument operators */
switch(stack1[i].i) {
case PLUS:
- stack2[stackptr2 - 2] = stack2[stackptr2 - 2] + stack2[stackptr2 - 1];
+ stack2[stackptr2 - 2] = stack2[stackptr2 - 2] + stack2[stackptr2 - 1];
stackptr2--;
break;
case MINUS:
- stack2[stackptr2 - 2] = stack2[stackptr2 - 2] - stack2[stackptr2 - 1];
+ stack2[stackptr2 - 2] = stack2[stackptr2 - 2] - stack2[stackptr2 - 1];
stackptr2--;
break;
case MULT:
- stack2[stackptr2 - 2] = stack2[stackptr2 - 2] * stack2[stackptr2 - 1];
+ stack2[stackptr2 - 2] = stack2[stackptr2 - 2] * stack2[stackptr2 - 1];
stackptr2--;
break;
case DIVIS:
if(stack2[stackptr2 - 1]) {
- stack2[stackptr2 - 2] = stack2[stackptr2 - 2] / stack2[stackptr2 - 1];
+ stack2[stackptr2 - 2] = stack2[stackptr2 - 2] / stack2[stackptr2 - 1];
+ } else if(stack2[stackptr2 - 2] == 0.0) {
+ stack2[stackptr2 - 2] = 0;
} else {
stack2[stackptr2 - 2] = y[p - 1];
}
diff --git a/src/xschem.tcl b/src/xschem.tcl
index c68a53b5..e3983950 100644
--- a/src/xschem.tcl
+++ b/src/xschem.tcl
@@ -657,6 +657,9 @@ proc sim_is_ngspice {} {
return 0
}
+proc sim_is_Xyce {} {
+ return [sim_is_xyce]
+}
proc sim_is_xyce {} {
global sim