From badb7975d1361e6a4ce4f40144640e31d32af385 Mon Sep 17 00:00:00 2001 From: Eric Swenson Date: Sun, 11 Dec 2016 18:42:40 -0800 Subject: [PATCH] Added RIPDEV. --- README.md | 1 + build/build.tcl | 4 ++ src/sysen2/ripdev.3 | 95 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 100 insertions(+) create mode 100644 src/sysen2/ripdev.3 diff --git a/README.md b/README.md index c0b22e38..42264773 100644 --- a/README.md +++ b/README.md @@ -173,6 +173,7 @@ There's a [DDT cheat sheet](doc/DDT.md) for Unix users. - PTY, pseudo-tty - PWORD, replacement for sys;atsign hactrn that requires registered logins. - REATTA, reattaches disowned jobs to terminal. + - RIPDEV, replacement for MLDEV for no-longer-existing machines. - RMAIL, Mail reading client. - RMTDEV, MLDEV for non-ITS hosts. - SCANDL, TTY OUTPUT SPY diff --git a/build/build.tcl b/build/build.tcl index aae657a9..e54be33d 100644 --- a/build/build.tcl +++ b/build/build.tcl @@ -847,6 +847,10 @@ respond "*" "debug/0\r" type "\033g" respond "*" ":link sys;ts pb,sys;ts probe\r" +# RIPDEV +respond "*" ":midas device;atsign r.i.p._sysen2;ripdev\r" +expect ":KILL" + # GMSGS respond "*" ":midas sys2;ts gmsgs_sysen1;gmsgs\r" expect ":KILL" diff --git a/src/sysen2/ripdev.3 b/src/sysen2/ripdev.3 new file mode 100644 index 00000000..01b289e1 --- /dev/null +++ b/src/sysen2/ripdev.3 @@ -0,0 +1,95 @@ +;;;-*-Midas-*- + +TITLE RIP Device -- replaces MLDEV for ITS machines that have passed away. + +a=1 +b=2 +c=3 +d=4 +e=5 + +t=10 +tt=11 + +p=17 + +call=pushj p, +return=popj p, +jcall==jrst +save=push p, +rest=pop p, + +;;;Channels +boj==b + +define syscall name,args + .call [setz ? sixbit /name/ ? args(400000)] +termin + +lpdl==100. +.vector pdl(lpdl) +.vector twenty(20) + +go: move p,[-lpdl,,pdl-1] + move tt,[-2,,[ .roption,,a + .rsuppr,,b + ]] + .suset tt + jumpl b,goset + tlo a,%opojb + .suset [.soption,,a] + tlne a,%opddt + .value [asciz ""] +goset: .open boj,[10\.bio,,'boj] + done ;he went away? + move tt,[-12.,,args] + .call jobcal + done ;he went away? + tlne t,60000 ;close? (?) + done + jrst @opntbl(t) + +opntbl: offset -. +%joopn:: dna ;.open +%joiot:: urk ;.iot (?) +%jolnk:: dna ;mlink +%jorst:: urk ;.reset (?) +%jorch:: urk ;.rchst (?) +%joacc:: urk ;.access (?) +%jornm:: dna ;.fdele (delete or rename) +%jorwo:: urk ;.fdele (renmwo) (?) +%jocal:: urk ;.call (?) + offset 0 + +urk: jfcl + .lose + +dna: movsi t,%enadv + .call joberr + done ;perhaps he punted + done + +.vector args(12.) + +jobcal: setz ;obtain arguments, aobjn in TT, + sixbit /jobcal/ ; ,, returned in T + movei boj + move tt + setzm t + +joberr: setz ;error return, ,,0 in T + sixbit /jobret/ + movei boj + setz t + +done=:call . + .logout ;Only die if toplevel + jfcl + .hang + +cnstnts: +constants + +variables + +end go