: $Id: precall.mod,v 1.3 1995/12/16 19:00:01 billl Exp $
COMMENT
presynaptic pointer array
ENDCOMMENT
INDEPENDENT {t FROM 0 TO 1 WITH 1 (ms)}
NEURON {
POINT_PROCESS PRESYN
RANGE spk_internal, spk, num
GLOBAL thresh
}
PARAMETER {
thresh = -20 : voltage level nec for release
num = -1 : number for reporting spk occurrence
}
ASSIGNED {
spk : available for user monitoring of spiking
spk_internal : internal use only (if taken externally ...)
v
}
INCLUDE "presyn.inc"
INITIAL {
spk = 0
spk_internal = 0
}
BREAKPOINT {
SOLVE pp
}
PROCEDURE pp() {
if (v > thresh) {
if (spk_internal == 0) {
newspike() : only allow this to happen once
spk_internal = 1
spk = 1
VERBATIM
{
#ifndef NRN_VERSION_GTEQ_8_2_0
extern double hoc_call_func();
#endif
char func[8] = "precall";
Symbol* s = hoc_lookup(func);
if (s && num>=0) {
hoc_pushx(num);
hoc_call_func(s, 1);
}
}
ENDVERBATIM
}
} else {
spk_internal = 0 : drop back down at the end of the spike
spk = 0
}
}