: $Id: pulse.mod,v 1.1 1998/07/21 13:54:10 billl Exp $
COMMENT
ENDCOMMENT
INDEPENDENT {t FROM 0 TO 1 WITH 1 (ms)}
NEURON {
POINT_PROCESS PULSE
NONSPECIFIC_CURRENT i
RANGE amp, dur
}
INCLUDE "snsarr.inc" : array management routines
UNITS {
(nA) = (nanoamp)
(mV) = (millivolt)
(umho) = (micromho)
(mM) = (milli/liter)
}
PARAMETER {
dur = 0 (ms) : duration
amp = 0 (nA) : amplitude
Cdur = 0 : not used
Deadtime = 0 (ms) : mimimum time between release events, not used
GMAX = 1 (umho) : not used
DELAY = 0 (ms)
}
ASSIGNED {
i (nA)
dt
}
INITIAL {
i = 0
if (nsyn > 0) {
initq()
}
}
BREAKPOINT {
if (nsyn>0) { : do not try accessing a queue that hasn't been allocated
VERBATIM
static int ii,who;
static QueU *pqueu;
static SynS *ppst;
pqueu = (QueU *)((unsigned long) queu);
while (t >= pqueu[(int)begsyn].time) { /* somebody spiked delay time ago */
i = -amp;
popqh1(dur); /* next (also add Cdur to value on the queu) */
}
while (t >= pqueu[(int)endsyn].time) { /* somebody needs to be turned off */
i = 0;
popqh2(); /* next */
}
ENDVERBATIM
}
}