record format parmf(integer dest, srce, p1, p2, p3, p4, p5, p6) external routine spec dpon(record (parmf) name p) external routine spec dpoff(record (parmf) name p) system routine spec signal(integer ep, p1, p2, integer name flag) const long integer int mask= x'03E2000A03E2000A'; ! INT: A,C,Q,V,W,X,Y,a,c,q,v,w,x,y system routine spec reroutecontingency(integer ep, class, long integer mask, routine ontrap, integer name flag) external routinespec tim(string (255) s) include "CONLIB.VVP_VVPSPECS" record format tmodef(half integer flags1, flags2, {.04} byte integer promptchar, endchar, {.06} byte array breakbit1(0:3) {%or %halfintegerarray BREAKBIT2(0:1))}, {.0A} byte integer pads, rptbuf, linelimit, pageleng, {.0E} byte integer array tabvec(0:7), {.16} byte integer cr, esc, del, can, sp1, sp2, sp3, sp4, sp5, sp6) {length of this format is X20 bytes} record format uinff(string (6) user, string (31) jobdocfile, {.28} integer mark, fsys, {.30} procno, isuff, reason, batchid, {.40} sessiclim, scidensad, scidens, startcnsl, {.50} aiostat, sct date, sync1 dest, sync2 dest, {.60} async dest, aacct rec, aic revs, {.6C} string (15) jobname, {.7C} string (31) basefile, {.9C} integer previc, {.A0} itaddr0, itaddr1, itaddr2, itaddr3, {.B0} itaddr4, stream id, dident, scarcity, {.C0} preemptat, string (11) spoolrfile, {.D0} integer funds, sesslen, priority, decks, {.E0} drives, part close, {.E8} record (tmodef) tmodes, {108} integer pslot, {10C} string (63) itaddr, {14C} integer array fclosing(0:3), integer clo fes, {160} integer output limit, dapsecs, long integer dapinstrs, {170} integer out, string (15) outname, {184} integer hiseg, integer uend) const record (uinff) name uinf=9<<18 const integer every= 1 const integer after= 2 const integer clock dact=5 {arbitrary} routine kick at(integer seconds, dact, every or after, info) ! Param EVERY OR AFTER should be 1 for every SECONDS seconds, or CANCEL ! or 2 for after SECONDS second. ! If SECONDS is -1, then it's a "cancel" request. record (parmf) p p=0 p_dest=X'A0000'!every or after p_p1=uinf_sync1 dest!dact p_p2=seconds p_p3=info {returned in P_P1} dpon(p) end ; ! KICK AT routine ontrap(integer class, subclass) integer flag integer array aa(0:31) kick at(-1 {cancel}, clock dact, after, 9 {info}) signal(3, class, subclass, flag); ! Get the Subsystem to do the rest end ; ! of ONTRAP external routine spec documents(string (255) s) external routine spec ddelay(integer seconds) external routine spec nrstrg(stringname s) external routine spec bel(string (255) s) external routine spec define(string (255) s) external routine spec clear(string (255) s) external routine rdoc(string (255) s) integer flag, secs, done, some, count, bell string (127) aa, bb record (parmf) p secs=40; count=0 reroutecontingency(3, 65, int mask, ontrap, flag); ! Catch INT: messages define("25,t#tempxyz") done=0; some=0 cycle count=count+1 secs=120 if count>4 select output(25) documents("") printstring("**end**") newline select output(0) closestream(25) select input(25) bell=0 cycle nrstrg(s) if s="No documents found" then done=1 else if s="**end**" then exit if s->aa.("Sending").bb then bell=1 printstring(s) newline repeat tim("") select input(0) closestream(25) bel("") if bell#0 exit if done#0 kick at(secs, clock dact, after, 0) dpoff(p) some=1 repeat clear("25") bel("") if some#0 and done#0 end {rdoc} external routine cl(string (255) s) integer j, flag vv init(j) return if j#0 vv define triggers(2, 0, 0) vv define triggers(0, 0, 0) end {cl} end of file