diff --git a/build/basics.tcl b/build/basics.tcl index e280f824d..b01042a1c 100644 --- a/build/basics.tcl +++ b/build/basics.tcl @@ -15,8 +15,8 @@ respond "*" ":rename .;@ nits, .;@ its\r" midas "sysbin;" "syseng;dump" dump_switches respond "*" ":delete sys;ts dump\r" -respond "*" ":link sys;ts dump,sysbin;dump bin\r" -respond "*" ":link sys;ts load,sys;ts dump\r" +make_link "sys;ts dump" "sysbin;dump bin" +make_link "sys;ts load" "sys;ts dump" type ":dump\r" respond "_" "load links crdir sorry\r" @@ -33,7 +33,7 @@ mkdir "cstacy" # TCTYP midas "sys1; ts tctyp" "syseng;tctyp" -respond "*" ":link sys1;ts tctype, sys1; ts tctyp\r" +make_link "sys1;ts tctype" " sys1; ts tctyp" source $build/emacs.tcl @@ -55,48 +55,46 @@ midas "sys1;ts stink" "sysen2;stink" # PDSET midas "sysbin;" "sysen1;pdset" respond "*" ":delete sys;ts pdset\r" -respond "*" ":link sys;ts pdset,sysbin;pdset bin\r" +make_link "sys;ts pdset" "sysbin;pdset bin" # LOCK midas "sysbin;" "syseng;lock" respond "*" ":delete sys;ts lock\r" -respond "*" ":link sys;ts lock,sysbin;lock bin\r" -respond "*" ":link sys3; ts vtfix, sys; ts lock\r" +make_link "sys;ts lock" "sysbin;lock bin" +make_link "sys3; ts vtfix" " sys; ts lock" # ATSIGN DEVICE midas "sysbin;" "syseng;@dev\r" respond "*" ":delete sys;atsign device\r" -respond "*" ":link sys;atsign device,sysbin;@dev bin\r" +make_link "sys;atsign device" "sysbin;@dev bin" # CRTSTY midas "sysbin;" "syseng;crtsty" -respond "*" ":job crtsty\r" -respond "*" ":load sysbin;crtsty bin\r" -respond "*" "purify\033g" -respond " BIN" "\r" -respond "*" ":kill\r" -respond "*" ":link sys3;ts crtsty,sysbin;crtsty bin\r" +purify crtsty "sysbin;crtsty bin" { + respond "*" "purify\033g" + respond " BIN" "\r" +} +make_link "sys3;ts crtsty" "sysbin;crtsty bin" # CTN, networking "supdup" CRTSTY midast "sysbin;ctn bin" "syseng; crtsty" { respond "with ^C" "NET==1\r\003" } -respond "*" ":job ctn\r" -respond "*" ":load sysbin; ctn bin\r" -respond "*" "purify\033g" -respond " BIN" "sys3; ts ctn\r" -respond "*" ":kill\r" +purify ctn "sysbin; ctn bin" { + respond "*" "purify\033g" + respond " BIN" "sys3; ts ctn\r" +} midast "sysbin;" "sysen2;peek" peek_switches -respond "*" ":job peek\r" -respond "*" ":load sysbin;peek bin\r" -respond "*" "purify\033g" -respond {$G} "q" -expect ":KILL" -respond "*" ":link sys; ts p,sys; ts peek\r" +purify peek "sysbin;peek bin" { + respond "*" "purify\033g" + respond {$G} "q" + expect ":KILL" +} +make_link "sys; ts p" "sys; ts peek" midas "device;jobdev arc" "syseng;arcdev" -respond "*" ":link device;jobdev ar,device;jobdev arc\r" +make_link "device;jobdev ar" "device;jobdev arc" midas "device;oarcdv bin" "sysen2; dmarcd" @@ -104,43 +102,43 @@ midas "device;oarcdv bin" "sysen2; dmarcd" midas "device;jobdev d" "syseng;dskdev" midas "sysbin;" "sysen2;find" -respond "*" ":link sys;ts find,sysbin;find bin\r" -respond "*" ":link sys;ts fi,sys;ts find\r" -respond "*" ":link sys;ts comb,sys;ts find\r" -respond "*" ":link sys2;ts lf,sys;ts find\r" +make_link "sys;ts find" "sysbin;find bin" +make_link "sys;ts fi" "sys;ts find" +make_link "sys;ts comb" "sys;ts find" +make_link "sys2;ts lf" "sys;ts find" midas "sys;ts dskuse" "syseng;dskuse" midas "channa;atsign taraka" "taraka" -respond "*" ":link sys; atsign dragon,channa; atsign taraka\r" +make_link "sys; atsign dragon" "channa; atsign taraka" midas "channa;rakash dmpcpy" "syseng; dmpcpy" midas "channa;rakash modems" "syseng; modems" -respond "*" ":link channa;ts modems,channa;rakash modems\r" -respond "*" ":link dragon;hourly modems,channa;ts modems\r" +make_link "channa;ts modems" "channa;rakash modems" +make_link "dragon;hourly modems" "channa;ts modems" midas "channa;rakash netime" "sysen1; netime" -respond "*" ":link channa;ts netime,channa;rakash netime\r" +make_link "channa;ts netime" "channa;rakash netime" midas "channa;rakash papsav" "sysen3;papsav" midas "dragon;rakash pfthmg" "syseng; pft" { respond "mcp=" "0\r" } -respond "*" ":link channa; rakash pfthmg,dragon; rakash pfthmg\r" +make_link "channa; rakash pfthmg" "dragon; rakash pfthmg" # LOSS device midas "device;jobdev loss" "syseng;loss" -respond "*" ":link device;jobdev los,device;jobdev loss\r" +make_link "device;jobdev los" "device;jobdev loss" midas "syshst;" "syshst;hosts3" -respond "*" ":link syshst;ts hosts3,syshst;hosts3 bin\r" +make_link "syshst;ts hosts3" "syshst;hosts3 bin" -respond "*" ":link syseng;t20mac 999999,system;t20mac >\r" +make_link "syseng;t20mac 999999" "system;t20mac >" midas "syshst;" "syshst;h3make" -respond "*" ":link syshst;ts h3make,syshst;h3make bin\r" +make_link "syshst;ts h3make" "syshst;h3make bin" # Run H3MAKE to make the SYSBIN; HOSTS3 > database. H3MAKE looks for # an older version, so there is an empty placeholder to make this @@ -155,7 +153,7 @@ midas "sys;atsign tcp" "syseng;@tcp" # Chaosnet support midas "sysbin;" "syseng;@chaos" -respond "*" ":link sys;atsign chaos,sysbin;@chaos bin\r" +make_link "sys;atsign chaos" "sysbin;@chaos bin" # ARPANET support if { ! [string equal "$mchn" "DM"] } { @@ -166,15 +164,15 @@ if { ! [string equal "$mchn" "DM"] } { # CHA: and CHAOS: device midas "device;jobdev cha" "dcp;chadev" -respond "*" ":link device;jobdev chaos,device;jobdev cha\r" +make_link "device;jobdev chaos" "device;jobdev cha" -respond "*" ":link syseng;netwrk 999999,sysnet;netwrk >\r" +make_link "syseng;netwrk 999999" "sysnet;netwrk >" # CHAOS ARPA/NCP/TCP gateway midas "sysnet;" "arpa" -respond "*" ":link device;chaos arpa, sysnet;arpa bin\r" -respond "*" ":link device;chaos ncp, sysnet;arpa bin\r" -respond "*" ":link device;chaos tcp, sysnet;arpa bin\r" +make_link "device;chaos arpa" " sysnet;arpa bin" +make_link "device;chaos ncp" " sysnet;arpa bin" +make_link "device;chaos tcp" " sysnet;arpa bin" midas ".;ts redrct" "sysnet;redrct" @@ -188,7 +186,7 @@ respond ") " ":kill\r" # telnet server midas "sysbin;telser" "sysnet;telser" # TCP port 23 (telnet) uses TELSER -respond "*" ":link device;tcp syn027,sysbin;telser bin\r" +make_link "device;tcp syn027" "sysbin;telser bin" # NCP sockets 1 and 23 use TELSER arpanet "rfc001" "sysbin;telser bin" arpanet "rfc027" "sysbin;telser bin" @@ -198,17 +196,17 @@ midas "sys;atsign stelnt" "syseng;stelnt" # telnet client midas "sysbin;telnet" "sysnet;telnet" -respond "*" ":link sys;ts telnet,sysbin;telnet bin\r" -respond "*" ":link sys;ts tcptn,sys;ts telnet\r" -respond "*" ":link sys;ts ttn,sys;ts telnet\r" -respond "*" ":link sys;ts ncptn,sys;ts telnet\r" -respond "*" ":link sys;ts oth,sys;ts telnet\r" +make_link "sys;ts telnet" "sysbin;telnet bin" +make_link "sys;ts tcptn" "sys;ts telnet" +make_link "sys;ts ttn" "sys;ts telnet" +make_link "sys;ts ncptn" "sys;ts telnet" +make_link "sys;ts oth" "sys;ts telnet" # old user telnet midas "sys1;ts ut" "syseng;ut" # supdup TCP port (95) uses telser -respond "*" ":link device;tcp syn137,sysbin;telser bin\r" +make_link "device;tcp syn137" "sysbin;telser bin" # NCP socket 95 uses TELSER arpanet "rfc137" "sysbin;telser bin" # We don't know why @@ -216,30 +214,30 @@ arpanet "rcf107" "sys1;ts supdup" # supdup client midas "sysbin;supdup" "sysnet;supdup" -respond "*" ":link sys1;ts supdup,sysbin;supdup bin\r" +make_link "sys1;ts supdup" "sysbin;supdup bin" # these two links are expected by sysnet; ftps > and are present # in the PI distribution -respond "*" ":link ksc;nuuos 999999,klh;nuuos >\r" -respond "*" ":link ksc;macros 999999,klh;macros >\r" -respond "*" ":link ksc;out 999999,klh; out >\r" +make_link "ksc;nuuos 999999" "klh;nuuos >" +make_link "ksc;macros 999999" "klh;macros >" +make_link "ksc;out 999999" "klh; out >" midas "sysbin;ftps" "sysnet;ftps" -respond "*" ":link device;tcp syn025,sysbin;ftps bin\r" -respond "*" ":link device;tcp syn031,sysbin;ftps bin\r" -respond "*" ":link device;chaos smtp,sysbin;ftps bin\r" +make_link "device;tcp syn025" "sysbin;ftps bin" +make_link "device;tcp syn031" "sysbin;ftps bin" +make_link "device;chaos smtp" "sysbin;ftps bin" arpanet "rfc003" "sysbin;ftps bin" arpanet "rfc025" "sysbin;ftps bin" arpanet "rfc031" "sysbin;ftps bin" arpanet "rfc103" "sysbin;ftps bin" midas "sysbin;ftpu" "sysnet;ftpu" -respond "*" ":link sys;ts ftp,sysbin;ftpu bin\r" +make_link "sys;ts ftp" "sysbin;ftpu bin" # NAME midas "sysbin;name" "sysen2;name" -respond "*" ":link syseng;ttytyp 999999,system;ttytyp >\r" +make_link "syseng;ttytyp 999999" "system;ttytyp >" # Build INQUIR;INQUPD BIN midas "inquir;inqupd bin" "inquir;inqupd" @@ -248,20 +246,20 @@ midas "inquir;inqupd bin" "inquir;inqupd" midas "inquir;dirs bin" "inquir;dmunch" # create .temp.;lsr1 empty -respond "*" "lsrini\033j" -respond "*" "\033linquir;inqupd bin\r" -respond "*" "\033g" -expect ":KILL" +purify lsrini "inquir;inqupd bin" { + respond "*" "\033g" + expect ":KILL" +} # create inquir;lsr1 1 respond "*" ":move .temp.;lsr1 empty,inquir;lsr1 1\r" # Now create INQUIR updates in new database # note: this reads the file inquir;.upd1. > and loads entries into the LSR database -respond "*" "inqupd\033j" -respond "*" "\033linquir;inqupd bin\r" -respond "*" "\033g" -expect ":KILL" +purify inqupd "inquir;inqupd bin" { + respond "*" "\033g" + expect ":KILL" +} # pword/panda midas "sysbin;panda bin" "sysen1;pword" { @@ -271,77 +269,75 @@ midas "sysbin;pword bin" "sysen1;pword" { respond "Is this to be a PANDA?" "no\r" } midas "sysbin;pwinit bin" "sysen1;pwinit" -respond "*" ":job pwinit\r" -respond "*" ":load sysbin;pwinit\r" -respond "*" "\033g" +purify pwinit "sysbin;pwinit" { + respond "*" "\033g" +} respond "*" ":copy cstacy;big dat,sysbin;\021 \021 \021 big \021 \021 0dat\r" -respond "*" ":job panda\r" -respond "*" ":load sysbin;panda bin\r" -# set password to "panda" -respond "*" "spword/107150326162\r" -type "purify\033g" -respond "*" ":pdump sysbin;panda bin\r" -respond "*" ":kill\r" -respond "*" ":link sys;atsign pword,sysbin;pword bin\r" -respond "*" ":link sys;ts panda,sysbin;panda bin\r" +purify panda "sysbin;panda bin" { + # set password to "panda" + respond "*" "spword/107150326162\r" + type "purify\033g" + respond "*" ":pdump sysbin;panda bin\r" +} +make_link "sys;atsign pword" "sysbin;pword bin" +make_link "sys;ts panda" "sysbin;panda bin" # Remove placeholder SYSBIN; HOSTS3 database. respond "*" ":delete sysbin; hosts3 <\r" respond "*" ":copy sysbin;name bin,sys;ts name\r" -respond "*" "name\033j" -respond "*" "\033l sys;ts name\r" -respond "*" "debug/" -respond "-1" "0\r\033g" - -respond "*" ":link sys1;ts when,sys;ts name\r" -respond "*" ":link sys1;ts whoare,sys;ts name\r" -respond "*" ":link sys1;ts whois,sys;ts name\r" -respond "*" ":link sys1;ts wheres,sys1;ts whois\r" -respond "*" ":link sys1;ts supnam,sys;ts name\r" -respond "*" ":link sys1;ts finger,sys;ts name\r" -respond "*" ":link sys;ts f,sys;ts name\r" -respond "*" ":link sys2;ts n,sys;ts name\r" -respond "*" ":link device;tcp syn117,sys;ts name\r" -respond "*" ":link device;chaos name,sys;ts name\r" +purify name "sys;ts name" { + respond "*" "debug/" + respond "-1" "0\r\033g" +} + +make_link "sys1;ts when" "sys;ts name" +make_link "sys1;ts whoare" "sys;ts name" +make_link "sys1;ts whois" "sys;ts name" +make_link "sys1;ts wheres" "sys1;ts whois" +make_link "sys1;ts supnam" "sys;ts name" +make_link "sys1;ts finger" "sys;ts name" +make_link "sys;ts f" "sys;ts name" +make_link "sys2;ts n" "sys;ts name" +make_link "device;tcp syn117" "sys;ts name" +make_link "device;chaos name" "sys;ts name" arpanet "rfc117" "sys;ts name" midas "device;atsign mldev" "sysen2;mldev" -respond "*" ":link device;jobdev db,device;atsign mldev\r" -respond "*" ":link device;jobdev es,device;atsign mldev\r" -respond "*" ":link device;jobdev no,device;atsign mldev\r" -respond "*" ":link device;jobdev sj,device;atsign mldev\r" -respond "*" ":link device;jobdev up,device;atsign mldev\r" +make_link "device;jobdev db" "device;atsign mldev" +make_link "device;jobdev es" "device;atsign mldev" +make_link "device;jobdev no" "device;atsign mldev" +make_link "device;jobdev sj" "device;atsign mldev" +make_link "device;jobdev up" "device;atsign mldev" midas "device;atsign mlslv" "sysen2;mlslv" -respond "*" ":link device;tcp syn123,device;atsign mlslv\r" -respond "*" ":link device;chaos mldev,device;atsign mlslv\r" +make_link "device;tcp syn123" "device;atsign mlslv" +make_link "device;chaos mldev" "device;atsign mlslv" midas "device;jobdev fc" "sysen2;fcdev" midas "device;atsign dirdev" "syseng;dirdev" -respond "*" ":link device;jobdev dir,device;atsign dirdev\r" -respond "*" ":link device;jobdev dirdb,device;atsign dirdev\r" -respond "*" ":link device;jobdev dires,device;atsign dirdev\r" -respond "*" ":link device;jobdev dirno,device;atsign dirdev\r" -respond "*" ":link device;jobdev dirsj,device;atsign dirdev\r" -respond "*" ":link device;jobdev dirup,device;atsign dirdev\r" +make_link "device;jobdev dir" "device;atsign dirdev" +make_link "device;jobdev dirdb" "device;atsign dirdev" +make_link "device;jobdev dires" "device;atsign dirdev" +make_link "device;jobdev dirno" "device;atsign dirdev" +make_link "device;jobdev dirsj" "device;atsign dirdev" +make_link "device;jobdev dirup" "device;atsign dirdev" midas "sys1;ts cftp" "sysen2; cftp" { respond "KLp==" "0\r" } -respond "*" ":link device;chaos telnet,sysbin;telser bin\r" -respond "*" ":link device;chaos supdup,sysbin;telser bin\r" +make_link "device;chaos telnet" "sysbin;telser bin" +make_link "device;chaos supdup" "sysbin;telser bin" # decuuo midas "decsys;" "decuuo" -respond "*" ":job decuuo\r" -respond "*" ":load decsys;decuuo bin\r" -respond "*" "purify\033g" -respond "TS DEC" "\r" -respond "*" ":kill\r" -respond "*" ":link sys;ts dec\021 *,must; be here\r" +purify decuuo "decsys;decuuo bin" { + respond "*" "purify\033g" + respond "TS DEC" "\r" +} +make_link "sys;ts dec\021 *" "must; be here" midas "decsys;" "decbot" @@ -353,6 +349,6 @@ palx "gt40;" "gt40;bootvt" # PLAN/CREATE midas "sys3;ts create" "syseng;create" -respond "*" ":link sys1;ts plan,sys3;ts create\r" +make_link "sys1;ts plan" "sys3;ts create" processor_basics diff --git a/build/build.tcl b/build/build.tcl index 0912a2ae6..2d0526baf 100644 --- a/build/build.tcl +++ b/build/build.tcl @@ -110,12 +110,54 @@ proc ip_address {string} { format "%o" $x } +proc expect_load {} { + # Loading a FASL outputs a number in the current base. + # Loading a source file outputs T. + expect -re {[\r\n]([0-9]+\.?|T) *[\r\n]} +} + # Respond to the output from (load ...). proc respond_load { r } { - expect -re {[\r\n][0-9]+\.? *[\r\n]} + expect_load type $r } +# Call the LISP compiler. The action argument is evalutated first to +# send commands to LISP for setting up the compilation environment. +# The second argument is a list of files to be compiled. +proc complr_action {action files} { + respond "*" "complr\013" + expect "LISP COMPILER" + if {$action ne ""} { + respond "_" "\007" + eval $action + type "(maklap)" + } + foreach i $files { + respond "_" "$i\r" + } + respond "_" "\032" + respond ") " ":kill\r" +} + +# Call the LISP compiler, first loading a set of libraries to set up +# the compilation environment. +proc complr_load {libs files} { + set action "" + set respond {respond "*"} + foreach i $libs { + set action "$action$respond \"(load '$i)\"\n" + set respond "respond_load" + } + set action "$action;expect_load\n" + complr_action $action $files +} + +# Call LISP compiler with no fuss. +proc complr {files} { + complr_action {} $files +} + proc build_macsyma_portion {} { respond "*" "complr\013" respond "_" "\007" @@ -143,6 +185,10 @@ proc build_macsyma_portion {} { set timeout 100 } +proc make_link {to from} { + respond "*" ":link $to,$from\r" +} + set timeout 100 proc setup_timeout {} { # Don't do this until after you've called "spawn", otherwise it'll cause a @@ -167,9 +213,9 @@ proc arpanet {rfc file} { # Others do not. global mchn if [string equal "$mchn" "DM"] { - respond "*" ":link sys;atsign $rfc, $file\r" + make_link "sys;atsign $rfc" $file } else { - respond "*" ":link device;lbsign $rfc, $file\r" + make_link "device;lbsign $rfc" $file } } @@ -237,6 +283,21 @@ proc linker {files} { } } +# Load a binary file, do some potentially purifying and dumping +# actions, and kill the job. +proc purify {job file actions} { + respond "*" ":job $job\r" + respond "*" ":load $file\r" + eval $actions + # Some actions leave the job around, others don't. The following + # will take care of both cases. + respond "*" "$job\033\030" + expect -exact "--Kill--" { + type " " + } -exact "No Such Job" { + } +} + proc decuuo {file {dump ":pdump"}} { respond "*" ":start 45\r" respond "Command:" "d" diff --git a/build/dm.tcl b/build/dm.tcl index 8608fd40d..8efa04f0e 100644 --- a/build/dm.tcl +++ b/build/dm.tcl @@ -10,9 +10,9 @@ midas "sys; atsign demstr" "sysen2; demstr" midas "sysen2; ts demst" "sysen2; demst" # Gun down dead demons. -respond "*" ":link taa; pwfile 999999, sysen1; pwfile >\r" +make_link "taa; pwfile 999999" " sysen1; pwfile >" midas "sysbin;" "sysen2; gunner" -respond "*" ":link sys; atsign gunner, sysbin; gunner bin\r" +make_link "sys; atsign gunner" " sysbin; gunner bin" # Line printer unspooler demon. midas "sys; atsign unspoo" "sysen1; unspoo" { @@ -33,10 +33,10 @@ midas "sys; atsign survey" "survey; survey" # Survey giver demon. midas "survey; atsign surgiv" "surgiv" -respond "*" ":link sys; atsign surgiv, survey;\r" +make_link "sys; atsign surgiv" " survey;" # Survey sender demon. -respond "*" ":link sys; atsign sursnd, survey;\r" +make_link "sys; atsign sursnd" " survey;" # Login program. midas "sysbin;" "syseng; booter" @@ -44,21 +44,21 @@ midas "sysbin;" "syseng; booter" respond "*" ":job pw\r" respond "*" "2/" respond "0" "\0331'AS\033\r" -respond "\n" ":job booter\r" -respond "*" ":load sysbin;\r" -respond "*" "start/" -respond "LITTER" "\033q\033x" -respond "*" "a/" -respond "0" "\0331'\033\r" -respond "\n" ":go scramble\r" -expect "ILOPR" -respond "0>>0" "a/" -respond " " ":job pw\r" -respond "*" "3/" -respond "0" "\0331q\r" -respond "\n" "\033y" -respond " " "sys;\021 \021 pass \021 words\r" -respond "*" ":kill\r" -respond "*" ":kill\r" +respond "\n" ":vk\r" +purify booter "sysbin;" { + respond "*" "start/" + respond "LITTER" "\033q\033x" + respond "*" "a/" + respond "0" "\0331'\033\r" + respond "\n" ":go scramble\r" + expect "ILOPR" + respond "0>>0" "a/" + respond " " ":job pw\r" + respond "*" "3/" + respond "0" "\0331q\r" + respond "\n" "\033y" + respond " " "sys;\021 \021 pass \021 words\r" + respond "*" ":kill\r" +} mkdir "(init)" -respond "*" ":link (init); as hactrn, sys2; ts shell\r" +make_link "(init); as hactrn" " sys2; ts shell" diff --git a/build/emacs.tcl b/build/emacs.tcl index d2f57047b..76682a18b 100644 --- a/build/emacs.tcl +++ b/build/emacs.tcl @@ -1,16 +1,15 @@ midas "sysbin;" ".teco.;teco" -respond "*" ":job teco\r" -respond "*" ":load sysbin;teco bin\r" -sleep 2 -respond "*" "dumpit\033g" -sleep 2 -respond "TECPUR" "\r" -respond "*" ":kill\r" -respond "*" ":link sys;ts teco,.teco.;tecpur >\r" -respond "*" ":link sys;ts t, sys; ts teco\r" +purify teco "sysbin;teco bin" { + sleep 2 + respond "*" "dumpit\033g" + sleep 2 + respond "TECPUR" "\r" +} +make_link "sys;ts teco" ".teco.;tecpur >" +make_link "sys;ts t" " sys; ts teco" -respond "*" ":link sys2;ts emacs,emacs;ts >\r" -respond "*" ":link sys2;ts ne,emacs;ts >\r" +make_link "sys2;ts emacs" "emacs;ts >" +make_link "sys2;ts ne" "emacs;ts >" respond "*" ":emacs\r" respond "EMACS Editor" "\033xrun\033einit\033? Generate\r" expect -timeout 1000 -exact { -> DSK: EMACS; [PURE]} @@ -29,8 +28,8 @@ respond "*" ":teco\r" respond "&" "mmrun\033purify\033dump\033ts 163\033\033" respond "&" "\003" respond "*" ":kill\r" -respond "*" ":link sys2;ts edit,sys2;ts emacs\r" -respond "*" ":link sys2;ts e, sys2; ts emacs\r" +make_link "sys2;ts edit" "sys2;ts emacs" +make_link "sys2;ts e" " sys2; ts emacs" # BABYL, BABYLM, CACHE, FIXLIB, IVORY, MKDUMP, OUTLINE-MODE, PL1, # TEACH-C100, TMACS and WORDAB are generated with IVORY. @@ -101,7 +100,7 @@ respond "*" ":rename emacs;\[rmai\] \021:ej, emacs;\[rmai\] 147\r" # Support canonical phrase "er emacs;emacs init$ @y :m(hfx*)$" # at end of personal init file -respond "*" ":link emacs;emacs init,emacs;* emacs\r" +make_link "emacs;emacs init" "emacs;* emacs" # make TS BABYL midas "sys3;ts babyl" "kmp;babyl" @@ -125,8 +124,8 @@ send "\r" expect ":KILL" # The previous file version was 62, dated 1982-01-05. respond "*" ":rename emacs; tsinfo >, tsinfo 63\r" -respond "*" ":link sys2;ts info,emacs;tsinfo >\r" -respond "*" ":link sys2;ts h, sys2; ts info\r" +make_link "sys2;ts info" "emacs;tsinfo >" +make_link "sys2;ts h" " sys2; ts info" respond "*" ":emacs\r" respond "EMACS Editor" "\033XLoad Library\033docond\r" @@ -156,10 +155,10 @@ send "\r" respond "*" ":move turnip; ts view, sys3;\r" # VDIR -respond "*" ":link sys3; ts vdir, ts view\r" +make_link "sys3; ts vdir" " ts view" # RMODE -respond "*" ":link sys1; ts rmode, .teco.;\r" +make_link "sys1; ts rmode" " .teco.;" # Make TECORD within Emacs work -respond "*" ":link info;tecord 999999,.teco.;tecord >\r" +make_link "info;tecord 999999" ".teco.;tecord >" diff --git a/build/haunt.tcl b/build/haunt.tcl index 8b80bc80b..e47199f64 100644 --- a/build/haunt.tcl +++ b/build/haunt.tcl @@ -3,10 +3,7 @@ log_progress "ENTERING BUILD SCRIPT: HAUNT" cwd "haunt" # build ops4 -respond "*" "complr\013" -respond "_" "haunt;_haunt;ops4 lsp\r" -respond "_" "\032" -type ":kill\r" +complr {"haunt;_haunt;ops4 lsp"} # dump ops4 respond "*" "lisp\013" @@ -17,14 +14,9 @@ respond ":\$Job Suspended\$" ":pdump haunt;ts ops4\r" type ":kill\r" # build compile haunt lisp code -respond "*" "complr\013" -respond "_" "haunt;_haunt;comman lsp\r" -respond "_" "haunt;_haunt;haunt lsp\r" -respond "_" "haunt;_haunt;slurp lsp\r" -respond "_" "haunt;_haunt;tlist lsp\r" -respond "_" "haunt;_haunt;user lsp\r" -respond "_" "\032" -type ":kill\r" +complr {"haunt;_haunt;comman lsp" "haunt;_haunt;haunt lsp" + "haunt;_haunt;slurp lsp" "haunt;_haunt;tlist lsp" + "haunt;_haunt;user lsp"} # dump haunt respond "*" ":haunt;ops4\r" @@ -34,5 +26,5 @@ respond "*" ":pdump haunt;ts haunt\r" type ":kill\r" # make available in SYS: -respond "*" ":link sys3;ts haunt,haunt;ts haunt\r" -respond "*" ":link sys3;ts ops4,haunt;ts ops4\r" +make_link "sys3;ts haunt" "haunt;ts haunt" +make_link "sys3;ts ops4" "haunt;ts ops4" diff --git a/build/ka10/processor.tcl b/build/ka10/processor.tcl index 83a327d98..57822f107 100644 --- a/build/ka10/processor.tcl +++ b/build/ka10/processor.tcl @@ -17,13 +17,13 @@ omidas "dsk0:.;@ mark" "syseng; mark" midas "sys3; ts utnam" "lars; utnam" # Name Dragon -respond "*" ":link syseng;tvkbd rooms, sysen2;\r" +make_link "syseng;tvkbd rooms" "sysen2;" midas "sysbin;" "sysen2;namdrg" -respond "*" ":link channa;rakash namdrg, sysbin; namdrg bin\r" +make_link "channa;rakash namdrg" "sysbin; namdrg bin" # STUFF midas "sys1;ts stuff" "sysen2;stuff" -respond "*" ":link channa;rakash tvfix, sys1; ts stuff\r" +make_link "channa;rakash tvfix" "sys1; ts stuff" # IOELEV, PDP-11 doing I/O for the PDP-10 host. # The "AI" IOELEV, also known as CHAOS-11. @@ -82,10 +82,9 @@ omidas "dsk0:.;@ dazdrt" "klh; dazdrt" { # Knight TV Spacewar midas "gjd;" "swr data" -respond "*" ":job swr\r" -respond "*" ":load gjd; swr bin\r" -respond "*" "first\033,last\033\060ygjd; swr ships\r" -respond "*" ":kill\r" +purify swr "gjd; swr bin" { + respond "*" "first\033,last\033\060ygjd; swr ships\r" +} respond "*" ":midas games;ts tvwar_spcwar; tvwar\r" expect ":KILL" @@ -144,7 +143,7 @@ midas "dsk0:.;@ 3406" "stan.k; 3406" # 340D midas "stan.k;mod11 bin" "340d" -respond "*" ":link sys1;ts 340d, stan.k; mod11 bin\r" +make_link "sys1;ts 340d" "stan.k; mod11 bin" # Munching squares for 340 display. midas "lars; ts munch" "munch" @@ -154,11 +153,11 @@ midast "dsk0: .; @ munch" "lars; munch" { # Minskytron, translated from PDP-1. midas "dsk0: lars; ts minsky" "minsky tron" -respond "*" ":link dsk0: .; @ minsky, lars; ts minsky\r" +make_link "dsk0: .; @ minsky" "lars; ts minsky" # Edward Lorenz' strange attactor. midas "dsk0: lars; ts lorenz" "lorenz" -respond "*" ":link dsk0: .; @ lorenz, lars; ts lorenz\r" +make_link "dsk0: .; @ lorenz" "lars; ts lorenz" # Mandelbrot. midas "lars; ts tvbrot" "tvbrot" @@ -190,23 +189,21 @@ midas "sysbin;" "syseng;scrimp" midas "sys3;ts carpet" "syseng;carpet" # Patch PDP-6 LISP to run on PDP-10. -respond "*" ":job lisp\r" -respond "*" ":load .; @ lisp\r" -respond "*" "33777//\031" -respond "*" "\033q\033,777777\033\033z" -respond "*" "pitele+13/" -respond "FSC" "push p,b\n" -respond "FSC" "jrst patch\r" -respond "\n" "patch/" -respond "0" "move b,echocc\n" -respond "0" "add b,ticc\n" -respond "0" "dpb b,.+3\n" -respond "0" "pop p,b\n" -respond "0" "jrst pitele+15\n" -respond "0" "331000,,a\r" -respond "\n" "\033y" -respond " " "dsk0:.;@ lisp\r" -respond "*" ":kill\r" +purify lisp ".; @ lisp" { + respond "*" "33777//\031" + respond "*" "\033q\033,777777\033\033z" + respond "*" "pitele+13/" + respond "FSC" "push p,b\n" + respond "FSC" "jrst patch\r" + respond "\n" "patch/" + respond "0" "move b,echocc\n" + respond "0" "add b,ticc\n" + respond "0" "dpb b,.+3\n" + respond "0" "pop p,b\n" + respond "0" "jrst pitele+15\n" + respond "\n" "\033y" + respond " " "dsk0:.;@ lisp\r" +} # Lisp display slave, PDP-6 version. midas "sys; atsign 6slave" "sysen2; ld10" { diff --git a/build/kl10/processor.tcl b/build/kl10/processor.tcl index 78a7bf12c..5d6eeef5b 100644 --- a/build/kl10/processor.tcl +++ b/build/kl10/processor.tcl @@ -15,18 +15,17 @@ copy_to_klfe "kldcp; kldcp hlp" # KL10 microcode assembler midas "sysbin;" "syseng;micro" -respond "*" ":job micro\r" -respond "*" ":load sysbin; micro bin\r" -respond "*" ":start purify\r" -respond "TS MICRO" "sys; ts micro\r" -respond "*" ":kill\r" +purify micro "sysbin; micro bin" { + respond "*" ":start purify\r" + respond "TS MICRO" "sys; ts micro\r" +} # Microcode ASCIIzer and binarator converter. midas "sysbin;" "syseng;cnvrt" -respond "*" ":link sys1;ts mcnvrt,sysbin;cnvrt bin\r" -respond "*" ":link sys1;ts pcnvrt,sysbin;cnvrt bin\r" -respond "*" ":link sys1;ts ucnvrt,sysbin;cnvrt bin\r" -respond "*" ":link sys1;ts acnvrt,sysbin;cnvrt bin\r" +make_link "sys1;ts mcnvrt" "sysbin;cnvrt bin" +make_link "sys1;ts pcnvrt" "sysbin;cnvrt bin" +make_link "sys1;ts ucnvrt" "sysbin;cnvrt bin" +make_link "sys1;ts acnvrt" "sysbin;cnvrt bin" respond "*" ":mcnvrt .; @ ddt\r" expect ":KILL" @@ -62,7 +61,7 @@ respond "*" ":copy sysbin; klrug bin, .;\r" # PDP-11 linker. midas "sys1;ts 11stnk" "kldcp;11stnk" -respond "*" ":link .; ts boot11, sys1; ts 11stnk\r" +make_link ".; ts boot11" "sys1; ts 11stnk" # KL10 diagnostics console program. palx "kldcp;" "kldcp" diff --git a/build/ks10/include.tcl b/build/ks10/include.tcl index bde219266..06ef32685 100644 --- a/build/ks10/include.tcl +++ b/build/ks10/include.tcl @@ -85,7 +85,7 @@ proc prepare_frontend {} { midas "sysbin;" "kshack;ksfedr" respond "*" ":delete sys;ts ksfedr\r" - respond "*" ":link sys;ts ksfedr,sysbin;ksfedr bin\r" + make_link "sys;ts ksfedr" "sysbin;ksfedr bin" respond "*" ":ksfedr\r" respond "!" "write\r" @@ -203,8 +203,8 @@ proc bootable_tapes {} { global emulator_escape global out - respond "*" ":link kshack;good ram,.;ram ram\r" - respond "*" ":link kshack;ddt bin,.;@ ddt\r" + make_link "kshack;good ram" ".;ram ram" + make_link "kshack;ddt bin" ".;@ ddt" respond "*" $emulator_escape create_tape "$out/ndskdmp.tape" type ":kshack;mtboot\r" diff --git a/build/lisp.tcl b/build/lisp.tcl index 1893f1052..3e30465f4 100644 --- a/build/lisp.tcl +++ b/build/lisp.tcl @@ -2,42 +2,41 @@ log_progress "ENTERING BUILD SCRIPT: LISP" # lisp -respond "*" ":link l;fasdfs 1,lisp;.fasl defs\r" -respond "*" ":link lisp;grind fasl,lisp;gfile fasl\r" -respond "*" ":link lisp;grinde fasl,lisp;gfn fasl\r" -respond "*" ":link l;loop fasl,liblsp;loop fasl\r" -respond "*" ":link lisp;loop fasl,liblsp;loop fasl\r" +make_link "l;fasdfs 1" "lisp;.fasl defs" +make_link "lisp;grind fasl" "lisp;gfile fasl" +make_link "lisp;grinde fasl" "lisp;gfn fasl" +make_link "l;loop fasl" "liblsp;loop fasl" +make_link "lisp;loop fasl" "liblsp;loop fasl" midas ".temp.;" "l;*lisp" { respond "end input with ^C" "\003" } -respond "*" ":job lisp\r" -respond "*" ":load .temp.;*lisp bin\r" -respond "*" "\033g" -respond "*" "purify\033g" -respond "*" ":pdump sys;purqio 2156\r" -respond "*" ":kill\r" +purify lisp ".temp.;*lisp bin" { + respond "*" "\033g" + respond "*" "purify\033g" + respond "*" ":pdump sys;purqio 2156\r" +} -respond "*" ":link sys;ts lisp,sys:purqio >\r" -respond "*" ":link sys;ts q,sys;purqio >\r" -respond "*" ":link sys;atsign lisp,sys;purqio >\r" -respond "*" ":link sys;ts l,sys;ts lisp\r" +make_link "sys;ts lisp" "sys:purqio >" +make_link "sys;ts q" "sys;purqio >" +make_link "sys;atsign lisp" "sys;purqio >" +make_link "sys;ts l" "sys;ts lisp" -respond "*" ":link .info.;lisp step,.info.;step info\r" -respond "*" ":link libdoc;struct 280,alan;struct >\r" -respond "*" ":link libdoc;struct doc,alan;struct doc\r" -respond "*" ":link .info.;lisp struct,libdoc;struct doc\r" -respond "*" ":link l;-read- -this-,lisp;-read- -this-\r" +make_link ".info.;lisp step" ".info.;step info" +make_link "libdoc;struct 280" "alan;struct >" +make_link "libdoc;struct doc" "alan;struct doc" +make_link ".info.;lisp struct" "libdoc;struct doc" +make_link "l;-read- -this-" "lisp;-read- -this-" # lisp compiler -respond "*" ":link comlap;cdmacs fasl,cd.fas >\r" -respond "*" ":link comlap;complr fasl,comlap;cl.fas >\r" -respond "*" ":link comlap;phas1 fasl,comlap;ph.fas >\r" -respond "*" ":link comlap;comaux fasl,comlap;cx.fas >\r" -respond "*" ":link comlap;faslap fasl,comlap;fl.fas >\r" -respond "*" ":link comlap;maklap fasl,comlap;mk.fas >\r" -respond "*" ":link comlap;initia fasl,comlap;in.fas >\r" -respond "*" ":link comlap;srctrn fasl,comlap;st.fas >\r" +make_link "comlap;cdmacs fasl" "cd.fas >" +make_link "comlap;complr fasl" "comlap;cl.fas >" +make_link "comlap;phas1 fasl" "comlap;ph.fas >" +make_link "comlap;comaux fasl" "comlap;cx.fas >" +make_link "comlap;faslap fasl" "comlap;fl.fas >" +make_link "comlap;maklap fasl" "comlap;mk.fas >" +make_link "comlap;initia fasl" "comlap;in.fas >" +make_link "comlap;srctrn fasl" "comlap;st.fas >" mkdir "lspdmp" respond "*" "lisp\013" respond "Alloc?" "n\r" @@ -45,13 +44,13 @@ respond "*" "(load \"comlap;ccload\")" respond ";BKPT CCLOAD:DUMPVERNO" "(setq ccload:dumpverno 1998)" respond "1998" "(return)" respond "*" ":kill\r" -respond "*" ":link sys;ts complr,lspdmp;cl.dmp >\r" -respond "*" ":link sys;ts cl,sys;ts complr\r" -respond "*" ":link info;complr 1,info;lispc >\r" +make_link "sys;ts complr" "lspdmp;cl.dmp >" +make_link "sys;ts cl" "sys;ts complr" +make_link "info;complr 1" "info;lispc >" # lisp;* fasl that that have autoload properties in interpreter -respond "*" ":link sys;.fasl defs,lisp;.fasl defs\r" -respond "*" ":link sys;fasdfs 1,lisp;.fasl defs\r" +make_link "sys;.fasl defs" "lisp;.fasl defs" +make_link "sys;fasdfs 1" "lisp;.fasl defs" midas "lisp;" "l;allfil" midas "lisp;" "l;bltarr" midas "lisp;" "lspsrc;edit" @@ -59,196 +58,90 @@ midas "lisp;" "l;getmid" midas "lisp;" "l;humble" midas "lisp;" "lspsrc;sort" -respond "*" ":link lisp;subloa lsp,nilcom;subloa >\r" +make_link "lisp;subloa lsp" "nilcom;subloa >" -respond "*" "complr\013" -respond "_" "liblsp;_libdoc;loop\r" -respond "_" "\032" -type ":kill\r" +complr {"liblsp;_libdoc;loop"} -respond "*" "complr\013" -respond "_" "lisp;_lspsrc;umlmac\r" -respond "_" "lisp;_nilcom;sharpa\r" -respond "_" "lisp;_nilcom;sharpc\r" -respond "_" "lisp;_nilcom;defvst\r" -respond "_" "\032" -type ":kill\r" +complr {"lisp;_lspsrc;umlmac" "lisp;_nilcom;sharpa" + "lisp;_nilcom;sharpc" "lisp;_nilcom;defvst"} -respond "*" "complr\013" -respond "_" "lisp;_nilcom;errck\r" -respond "_" "\032" -type ":kill\r" - -respond "*" "complr\013" -respond "_" "lisp;_nilcom;backq\r" -respond "_" "\032" -type ":kill\r" +complr {"lisp;_nilcom;errck"} +complr {"lisp;_nilcom;backq"} +complr {"lisp;_lspsrc;bits" "lisp;_lspsrc;cerror" "lisp;_nilcom;defmac"} +complr {"lisp;_nilcom;defmax"} +complr {"lisp;_nilcom;defvsx"} +complr {"lisp;_nilcom;defvsy" "lisp;_lspsrc;descri" "lisp;_lspsrc;dumpar"} -respond "*" "complr\013" -respond "_" "lisp;_lspsrc;bits\r" -respond "_" "lisp;_lspsrc;cerror\r" -respond "_" "lisp;_nilcom;defmac\r" -respond "_" "\032" -type ":kill\r" +complr {"lisp;_lspsrc;extmac" "lisp;_lspsrc;extbas" "lisp;_lspsrc;extsfa" + "lisp;_nilcom;evonce" "lisp;_lspsrc;extend" "lisp;_lspsrc;grind" + "lisp;_lspsrc;grinde" "lisp;_lspsrc;lap" "lisp;_comlap;ledit" + "lisp;_nilcom;let"} -respond "*" "complr\013" -respond "_" "lisp;_nilcom;defmax\r" -respond "_" "\032" -type ":kill\r" +make_link "l;humble fasl" "lisp;" +make_link "l;ledit* fasl" "lisp;" +make_link "l;let fasl" "lisp;" -respond "*" "complr\013" -respond "_" "lisp;_nilcom;defvsx\r" -respond "_" "\032" -type ":kill\r" +complr {"lisp;_nilcom;macaid"} +complr {"lisp;_lspsrc;mlmac" "lisp;_lspsrc;mlsub"} -respond "*" "complr\013" -respond "_" "lisp;_nilcom;defvsy\r" -respond "_" "lisp;_lspsrc;descri\r" -respond "_" "lisp;_lspsrc;dumpar\r" -respond "_" "\032" -type ":kill\r" +complr_action {respond "*" "(remprop 'eval-ordered* '*lexpr)" + expect "(T AUTOLOAD ((LISP) EVONCE FASL))"} \ + {"lisp;_nilcom;setf"} -respond "*" "complr\013" -respond "_" "lisp;_lspsrc;extmac\r" -respond "_" "lisp;_lspsrc;extbas\r" -respond "_" "lisp;_lspsrc;extsfa\r" -respond "_" "lisp;_nilcom;evonce\r" -respond "_" "lisp;_lspsrc;extend\r" -respond "_" "lisp;_lspsrc;grind\r" -respond "_" "lisp;_lspsrc;grinde\r" -respond "_" "lisp;_lspsrc;lap\r" -respond "_" "lisp;_comlap;ledit\r" -respond "_" "lisp;_nilcom;let\r" -respond "_" "\032" -type ":kill\r" +complr {"lisp;_nilcom;sharpm"} +complr {"lisp;_nilcom;string"} +complr {"lisp;_nilcom;subseq" "lisp;_lspsrc;trace"} +complr {"lisp;_nilcom;yesnop"} +complr {"liblsp;_libdoc;lspmac" "liblsp;_libdoc;lusets"} -respond "*" ":link l;humble fasl,lisp;\r" -respond "*" ":link l;ledit* fasl,lisp;\r" -respond "*" ":link l;let fasl,lisp;\r" - -respond "*" "complr\013" -respond "_" "lisp;_nilcom;macaid\r" -respond "_" "\032" -type ":kill\r" - -respond "*" "complr\013" -respond "_" "lisp;_lspsrc;mlmac\r" -respond "_" "lisp;_lspsrc;mlsub\r" -respond "_" "\032" -type ":kill\r" - -respond "*" "complr\013" -respond "_" "\007" -respond "*" "(remprop 'eval-ordered* '*lexpr)" -respond "(T AUTOLOAD ((LISP) EVONCE FASL))" "(maklap)" -respond "_" "lisp;_nilcom;setf\r" -respond "_" "\032" -type ":kill\r" - -respond "*" "complr\013" -respond "_" "lisp;_nilcom;sharpm\r" -respond "_" "\032" -type ":kill\r" - -respond "*" "complr\013" -respond "_" "lisp;_nilcom;string\r" -respond "_" "\032" -type ":kill\r" - -respond "*" "complr\013" -respond "_" "lisp;_nilcom;subseq\r" -respond "_" "lisp;_lspsrc;trace\r" -respond "_" "\032" -type ":kill\r" - -respond "*" "complr\013" -respond "_" "lisp;_nilcom;yesnop\r" -respond "_" "\032" -type ":kill\r" - -respond "*" "complr\013" -respond "_" "liblsp;_libdoc;lspmac\r" -respond "_" "liblsp;_libdoc;lusets\r" -respond "_" "\032" -type ":kill\r" - -respond "*" "complr\013" -respond "_" "\007" -respond "*" "(load '((lisp) extend))" -respond_load "(maklap)" -respond "_" "lisp;_lspsrc;extstr\r" -respond "_" "\032" -type ":kill\r" +complr_load {"((lisp) extend)"} {"lisp;_lspsrc;extstr"} # inquir midas "inquir;" "lsrrtn" midas "inquir;" "cstacy;netrtn" -respond "*" ":link liblsp;debug fasl,liblsp;dbg fasl\r" -respond "*" ":link lisp;debug fasl,liblsp;debug fasl\r" -respond "*" "complr\013" -respond "_" "liblsp;_libdoc;tty\r" -respond "_" "inquir;reader\r" -respond "_" "inquir;fake-s\r" -respond "_" "rwk;debmac\r" -respond "_" "liblsp;_libdoc;lispm\r" -respond "_" "inquir;inquir\r" -respond "_" "\032" -type ":kill\r" +make_link "liblsp;debug fasl" "liblsp;dbg fasl" +make_link "lisp;debug fasl" "liblsp;debug fasl" + +complr {"liblsp;_libdoc;tty" "inquir;reader" "inquir;fake-s" + "rwk;debmac" "liblsp;_libdoc;lispm" "inquir;inquir"} midas "inquir;ts inqexm" "inqexm" midas "inquir;ts inqrep" "inqrep" -respond "*" ":link inquir;ts inqchk,ts inquir\r" +make_link "inquir;ts inqchk" "ts inquir" -respond "*" "complr\013" -respond "_" "liblsp;_libdoc;dbg ejs2\r" -respond "_" "liblsp;_libdoc;comrd kmp1\r" -respond "_" "\032" -type ":kill\r" +complr {"liblsp;_libdoc;dbg ejs2" "liblsp;_libdoc;comrd kmp1"} respond "*" ":lisp inquir;inquir (dump)\r" -respond "*" ":link inquir;ts inquir,inquir;inqbin >\r" -respond "*" ":link sys;ts inquir,inquir;ts inquir\r" +make_link "inquir;ts inquir" "inquir;inqbin >" +make_link "sys;ts inquir" "inquir;ts inquir" -respond "*" ":link inquir;ts inqcpy,inqupd bin\r" -respond "*" ":link inquir;ts inqpat,inqupd bin\r" -respond "*" ":link inquir;ts lsrini,inqupd bin\r" +make_link "inquir;ts inqcpy" "inqupd bin" +make_link "inquir;ts inqpat" "inqupd bin" +make_link "inquir;ts lsrini" "inqupd bin" # od -respond "*" "complr\013" -respond "_" "liblsp;_libdoc; od\r" -respond "_" "\032" -type ":kill\r" +complr {"liblsp;_libdoc; od"} respond "*" ":lisp libdoc;od (dump)\r" expect ":KILL" # comred -respond "*" "complr\013" -respond "_" "liblsp;_libdoc; comred\r" -respond "_" "\032" -type ":kill\r" +complr {"liblsp;_libdoc; comred"} -respond "*" ":link inquir;lsrtns 1,syseng;lsrtns >\r" +make_link "inquir;lsrtns 1" "syseng;lsrtns >" midas "inquir;ts lookup" "inquir;lookup" -respond "*" ":link sys1;ts lookup,inquir;ts lookup\r" +make_link "sys1;ts lookup" "inquir;ts lookup" midas "sys3;ts lsrprt" "sysen1; lsrprt" midas "sys3;ts lsrdmp" "bawden; lsrdmp" # more lisp packages -respond "*" ":link lisp;tty fasl,liblsp;tty fasl\r" -respond "*" "complr\013" -respond "_" "\007" -respond "*" "(load '((lisp) subloa lsp))" -respond "T" "(maklap)" -respond "_" "lisp;_lspsrc;funcel\r" -respond "_" "lisp;_lspsrc;reap\r" -respond "_" "lisp;_lspsrc;lexprf\r" -respond "_" "lisp;_lspsrc;ldbhlp\r" -respond "_" "\032" -type ":kill\r" +make_link "lisp;tty fasl" "liblsp;tty fasl" +complr_load {"((lisp) subloa lsp)"} \ + {"lisp;_lspsrc;funcel" "lisp;_lspsrc;reap" + "lisp;_lspsrc;lexprf" "lisp;_lspsrc;ldbhlp"} respond "*" "complr\013" respond "_" "lisp;_nilcom;lsets\r" @@ -257,79 +150,41 @@ respond "(Y or N)" "Y" respond "_" "\032" type ":kill\r" -respond "*" "complr\013" -respond "_" "\007" -respond "*" "(load '((lisp) subloa lsp))" -respond "T" "(maklap)" -respond "_" "lisp;_lspsrc;nilaid\r" -respond "_" "\032" -type ":kill\r" +complr_load {"((lisp) subloa lsp)"} {"lisp;_lspsrc;nilaid"} -respond "*" "complr\013" -respond "_" "liblsp;_libdoc;sharab\r" -respond "_" "liblsp;_libdoc;bs\r" -respond "_" "\032" -type ":kill\r" +complr {"liblsp;_libdoc;sharab" "liblsp;_libdoc;bs"} -respond "*" ":link lisp;sharab fasl,liblsp;\r" -respond "*" ":link lisp;bs fasl,liblsp;\r" +make_link "lisp;sharab fasl" "liblsp;" +make_link "lisp;bs fasl" "liblsp;" -respond "*" "complr\013" -respond "_" "\007" -respond "*" "(load '((lisp) subloa lsp))" -respond "T" "(maklap)" -respond "_" "lisp;_nilcom;thread\r" -respond "_" "\032" -type ":kill\r" +complr_load {"((lisp) subloa lsp)"} {"lisp;_nilcom;thread"} midas "lisp;" "l;lchnsp" midas "lisp;" "l;purep" # struct -respond "*" ":link alan;dprint fasl,liblsp;dprint fasl\r" -respond "*" ":link alan;struct 9,alan;nstruc 280\r" +make_link "alan;dprint fasl" "liblsp;dprint fasl" +make_link "alan;struct 9" "alan;nstruc 280" respond "*" ":copy liblsp;struct fasl,alan;struct boot\r" -respond "*" ":link alan;struct fasl,liblsp;struct fasl\r" -respond "*" "complr\013" -respond "_" "alan;lspcom\r" -respond "_" "alan;lspenv\r" -respond "_" "alan;lspint\r" -respond "_" "alan;setf\r" -respond "_" "alan;binda\r" -respond "_" "alan;crawl\r" -respond "_" "alan;nstruc 280\r" -respond "_" "\032" -type ":kill\r" +make_link "alan;struct fasl" "liblsp;struct fasl" + +complr {"alan;lspcom" "alan;lspenv" "alan;lspint" "alan;setf" + "alan;binda" "alan;crawl" "alan;nstruc 280"} respond "*" ":copy alan;nstruc fasl,liblsp;struct fasl\r" -respond "*" ":link lisp;struct fasl,liblsp;struct fasl\r" +make_link "lisp;struct fasl" "liblsp;struct fasl" midas "liblsp;" "alan;macits" -respond "*" "complr\013" -respond "_" "liblsp;_alan;dprint\r" -respond "_" "\032" -type ":kill\r" +complr {"liblsp;_alan;dprint"} -#respond "*" "complr\013" -#respond "_" "alan;ljob\r" -#respond "_" "liblsp;_libdoc;gprint rcw3\r" -#respond "_" "alan;lspgub\r" -#respond "_" "\032" -#type ":kill\r" +#complr {"alan;ljob" "liblsp;_libdoc;gprint rcw3" "alan;lspgub"} # compile lisp compiler -respond "*" "complr\013" -respond "_" "comlap;cd.fas 40_cdmacs\r" -respond "_" "comlap;cx.fas 25_comaux\r" -respond "_" "comlap;cl.fas 936_complr\r" -respond "_" "comlap;fl.fas 392_faslap\r" -respond "_" "comlap;in.fas 120_initia\r" -respond "_" "comlap;mk.fas 80_maklap\r" -respond "_" "comlap;ph.fas 86_phas1\r" -respond "_" "comlap;st.fas 20_srctrn\r" -respond "_" "\032" -type ":kill\r" +complr {"comlap;cd.fas 40_cdmacs" "comlap;cx.fas 25_comaux" + "comlap;cl.fas 936_complr" "comlap;fl.fas 392_faslap" + "comlap;in.fas 120_initia" "comlap;mk.fas 80_maklap" + "comlap;ph.fas 86_phas1" "comlap;st.fas 20_srctrn"} # and redump compiler respond "*" "comlap\033\033\023" @@ -340,120 +195,53 @@ type ":vk\r" respond "*" ":kill\r" # Additional LSPLIB packages -respond "*" "complr\013" -respond "_" "liblsp;_libdoc;iota\r" -respond "_" "liblsp;_libdoc;time\r" -respond "_" "liblsp;_libdoc;letfex\r" -respond "_" "liblsp;_libdoc;break\r" -respond "_" "liblsp;_libdoc;smurf\r" -respond "_" "liblsp;_rlb%;fasdmp\r" -respond "_" "liblsp;_libdoc;lispt\r" -respond "_" "\032" -type ":kill\r" +complr {"liblsp;_libdoc;iota" "liblsp;_libdoc;time" "liblsp;_libdoc;letfex" + "liblsp;_libdoc;break" "liblsp;_libdoc;smurf" "liblsp;_rlb%;fasdmp" + "liblsp;_libdoc;lispt"} -respond "*" ":link liblsp;gcdemn fasl,lisp;\r" +make_link "liblsp;gcdemn fasl" "lisp;" ### more lisplib stuff -respond "*" "complr\013" -respond "_" "liblsp;_libdoc;%print\r" -respond "_" "liblsp;_libdoc;6bit\r" -respond "_" "liblsp;_libdoc;apropo\r" -respond "_" "liblsp;_libdoc;arith\r" -respond "_" "liblsp;_libdoc;aryfil\r" -respond "_" "liblsp;_libdoc;atan\r" -respond "_" "liblsp;_libdoc;autodf\r" -respond "_" "liblsp;_libdoc;bboole\r" -respond "_" "\032" -type ":kill\r" +complr {"liblsp;_libdoc;%print" "liblsp;_libdoc;6bit" "liblsp;_libdoc;apropo" + "liblsp;_libdoc;arith" "liblsp;_libdoc;aryfil" "liblsp;_libdoc;atan" + "liblsp;_libdoc;autodf" "liblsp;_libdoc;bboole"} -respond "*" "complr\013" -respond "_" "liblsp;_libdoc;bench\r" -respond "_" "liblsp;_libdoc;binprt\r" -respond "_" "liblsp;_lmlib;gprint\r" -respond "_" "liblsp;_libdoc;carcdr\r" -respond "_" "liblsp;_libdoc;char\r" -respond "_" "liblsp;_libdoc;debug*\r" -respond "_" "liblsp;_libdoc;defsta\r" -respond "_" "liblsp;_libdoc;doctor\r" -respond "_" "\032" -type ":kill\r" +complr {"liblsp;_libdoc;bench" "liblsp;_libdoc;binprt" "liblsp;_lmlib;gprint" + "liblsp;_libdoc;carcdr" "liblsp;_libdoc;char" "liblsp;_libdoc;debug*" + "liblsp;_libdoc;defsta" "liblsp;_libdoc;doctor"} -respond "*" "complr\013" -respond "_" "liblsp;_libdoc;dow\r" -respond "_" "liblsp;_libdoc;dribbl\r" -respond "_" "liblsp;_libdoc;dumpgc\r" -respond "_" "liblsp;_libdoc;fake-s\r" -respond "_" "liblsp;_libdoc;fforma\r" -respond "_" "liblsp;_libdoc;filbit\r" -respond "_" "liblsp;_libdoc;fload\r" -respond "_" "liblsp;_libdoc;fontrd\r" -respond "_" "\032" -type ":kill\r" +complr {"liblsp;_libdoc;dow" "liblsp;_libdoc;dribbl" "liblsp;_libdoc;dumpgc" + "liblsp;_libdoc;fake-s" "liblsp;_libdoc;fforma" "liblsp;_libdoc;filbit" + "liblsp;_libdoc;fload" "liblsp;_libdoc;fontrd"} -respond "*" "complr\013" -respond "_" "liblsp;_libdoc;for\r" -respond "_" "lisp;_lspsrc;gcdemn\r" -respond "_" "liblsp;_libdoc;genfns\r" -respond "_" "liblsp;_libdoc;graphs\r" -respond "_" "liblsp;_libdoc;graphm\r" -respond "_" "liblsp;_libdoc;graph$\r" -respond "_" "liblsp;_libdoc;grapha\r" -respond "_" "liblsp;_libdoc;grapht\r" -respond "_" "liblsp;_libdoc;impdef\r" -respond "_" "liblsp;_libdoc;laugh\r" -respond "_" "liblsp;_libdoc;lets\r" -respond "_" "liblsp;_libdoc;linere\r" -respond "_" "\032" -type ":kill\r" +complr {"liblsp;_libdoc;for" "lisp;_lspsrc;gcdemn" "liblsp;_libdoc;genfns" + "liblsp;_libdoc;graphs" "liblsp;_libdoc;graphm" "liblsp;_libdoc;graph$" + "liblsp;_libdoc;grapha" "liblsp;_libdoc;grapht" "liblsp;_libdoc;impdef" + "liblsp;_libdoc;laugh" "liblsp;_libdoc;lets" "liblsp;_libdoc;linere"} respond "*" ":delete libdoc;gcdemn 999999\r" -respond "*" ":link libdoc;gcdemn 999999,lspsrc;gcdemn >\r" +make_link "libdoc;gcdemn 999999" "lspsrc;gcdemn >" -respond "*" "complr\013" -respond "_" "liblsp;_libdoc;loop\r" -respond "_" "liblsp;_libdoc;more\r" -respond "_" "liblsp;_libdoc;nshare\r" -respond "_" "liblsp;_libdoc;octal\r" -respond "_" "liblsp;_libdoc;optdef\r" -respond "_" "liblsp;_libdoc;phsprt\r" -respond "_" "liblsp;_libdoc;privob\r" -respond "_" "liblsp;_libdoc;prompt\r" -respond "_" "liblsp;_libdoc;qtrace\r" -respond "_" "\032" -type ":kill\r" +complr {"liblsp;_libdoc;loop" "liblsp;_libdoc;more" "liblsp;_libdoc;nshare" + "liblsp;_libdoc;octal" "liblsp;_libdoc;optdef" "liblsp;_libdoc;phsprt" + "liblsp;_libdoc;privob" "liblsp;_libdoc;prompt" "liblsp;_libdoc;qtrace"} -respond "*" "complr\013" -respond "_" "liblsp;_libdoc;reads\r" -respond "_" "liblsp;_libdoc;redo\r" -respond "_" "liblsp;_libdoc;save\r" -respond "_" "liblsp;_libdoc;sets\r" -respond "_" "\032" -type ":kill\r" +complr {"liblsp;_libdoc;reads" "liblsp;_libdoc;redo" + "liblsp;_libdoc;save" "liblsp;_libdoc;sets"} -respond "*" "complr\013" -respond "_" "liblsp;_libdoc;share\r" -respond "_" "liblsp;_libdoc;sixbit\r" -respond "_" "liblsp;_libdoc;split\r" -respond "_" "liblsp;_libdoc;stack\r" -respond "_" "liblsp;_libdoc;statty\r" -respond "_" "liblsp;_libdoc;stepmm\r" -respond "_" "liblsp;_libdoc;stepr\r" -respond "_" "liblsp;_libdoc;string\r" -respond "_" "liblsp;_libdoc;sun\r" -respond "_" "liblsp;_libdoc;trap\r" -respond "_" "liblsp;_libdoc;ttyhak\r" -respond "_" "liblsp;_libdoc;wifs\r" -respond "_" "liblsp;_libdoc;window\r" -respond "_" "\032" -type ":kill\r" +complr {"liblsp;_libdoc;share" "liblsp;_libdoc;sixbit" "liblsp;_libdoc;split" + "liblsp;_libdoc;stack" "liblsp;_libdoc;statty" "liblsp;_libdoc;stepmm" + "liblsp;_libdoc;stepr" "liblsp;_libdoc;string" "liblsp;_libdoc;sun" + "liblsp;_libdoc;trap" "liblsp;_libdoc;ttyhak" "liblsp;_libdoc;wifs" + "liblsp;_libdoc;window"} -respond "*" ":link liblsp;defvst fasl,lisp;\r" -respond "*" ":link liblsp;format fasl,liblsp;fforma fasl\r" -respond "*" ":link libdoc;lispt info,info;lispt >\r" -respond "*" ":link liblsp;sharpm fasl,lisp;\r" +make_link "liblsp;defvst fasl" "lisp;" +make_link "liblsp;format fasl" "liblsp;fforma fasl" +make_link "libdoc;lispt info" "info;lispt >" +make_link "liblsp;sharpm fasl" "lisp;" respond "*" ":copy nilcom;sharpm >,libdoc;sharpm nil\r" -respond "*" ":link libdoc;step info,.info.;\r" -respond "*" ":link libdoc;stepmm info,.info.;lisp stepmm\r" +make_link "libdoc;step info" ".info.;" +make_link "libdoc;stepmm info" ".info.;lisp stepmm" respond "*" ":copy nilcom;string >,libdoc;string nil\r" # can't build any more LIBLSP FASLs because directory is full @@ -464,28 +252,13 @@ respond "Delete? (Y or N):" "y" respond "@" "q\r" expect ":KILL" -respond "*" "complr\013" -respond "_" "\007" -respond "*" "(load '((libdoc) set ira10))" -respond "T" "(maklap)" -respond "_" "liblsp;_libdoc;askusr\r" -respond "_" "liblsp;_pratt;cgrub\r" -respond "_" "\032" -type ":kill\r" +complr_load {"((libdoc) set ira10)"} \ + {"liblsp;_libdoc;askusr" "liblsp;_pratt;cgrub"} # compile cgol -respond "*" "complr\013" -respond "_" "lisp;_pratt;cgol\r" -respond "_" "\032" -type ":kill\r" +complr {"lisp;_pratt;cgol"} -respond "*" "complr\013" -respond "_" "\007" -respond "*" "(load '((lisp) cgol fasl))" -respond_load "(maklap)" -respond "_" "liblsp;_pratt;cgprin\r" -respond "_" "\032" -type ":kill\r" +complr_load {"((lisp) cgol fasl)"} {"liblsp;_pratt;cgprin"} # clean up remaining unfasl files in liblsp respond "*" ":dired liblsp;\r" @@ -494,13 +267,9 @@ respond "Delete? (Y or N):" "y" respond "@" "q\r" expect ":KILL" -respond "*" "complr\013" -respond "_" "\007" -respond "*" "(sstatus features Compile-Subload)" -respond "COMPILE-SUBLOAD" "(maklap)" -respond "_" "lisp;_nilcom;subloa\r" -respond "_" "\032" -type ":kill\r" +complr_action {respond "*" "(sstatus features Compile-Subload)" + expect "COMPILE-SUBLOAD"} \ + {"lisp;_nilcom;subloa"} midas "liblsp;" "libdoc;bssq" midas "liblsp;" "libdoc;aryadr" @@ -508,35 +277,22 @@ midas "liblsp;" "libdoc;link" midas "liblsp;" "libdoc;lscall" midas "liblsp;" "libdoc;cpyhnk" -respond "*" ":link lisp;defns mid,l;defns >\r" +make_link "lisp;defns mid" "l;defns >" midas "liblsp;" "libdoc;fft" midas "liblsp;" "libdoc;phase" # More LIBLSP packages -respond "*" "complr\013" -respond "_" "liblsp;_libdoc;didl\r" -respond "_" "liblsp;_libdoc;getsyn\r" -respond "_" "liblsp;_libdoc;iter\r" -respond "_" "liblsp;_libdoc;hash\r" -respond "_" "liblsp;_libdoc;graph3\r" -respond "_" "liblsp;_libdoc;ledit*\r" -respond "_" "\032" -type ":kill\r" +complr {"liblsp;_libdoc;didl" "liblsp;_libdoc;getsyn" "liblsp;_libdoc;iter" + "liblsp;_libdoc;hash" "liblsp;_libdoc;graph3" "liblsp;_libdoc;ledit*"} -respond "*" "complr\013" -respond "_" "liblsp;_libdoc;stacks\r" -respond "_" "\032" -type ":kill\r" +complr {"liblsp;_libdoc;stacks"} midas "liblsp;" "libdoc;dirsiz" midas "liblsp;" "z;timer" -respond "*" ":link lisp;vsaid lisp,nilcom;vsaid >\r" -respond "*" "complr\013" -respond "_" "lisp;_nilcom;vsaid\r" -respond "_" "\032" -type ":kill\r" -respond "*" ":link liblsp;vsaid fasl,lisp;\r" +make_link "lisp;vsaid lisp" "nilcom;vsaid >" +complr {"lisp;_nilcom;vsaid"} +make_link "liblsp;vsaid fasl" "lisp;" # cleanup unfasl files in lisp; respond "*" ":dired lisp;\r" @@ -552,39 +308,17 @@ midas "liblsp;" "gsb;ttyvar" { midas "liblsp;" "libdoc;aryadr" midas "liblsp;" "libdoc;bssq" -respond "*" "complr\013" -respond "_" "liblsp;_libdoc;lddt\r" -respond "_" "\032" -type ":kill\r" +complr {"liblsp;_libdoc;lddt"} +complr {"liblsp;_libdoc;ndone"} -respond "*" "complr\013" -respond "_" "liblsp;_libdoc;ndone\r" -respond "_" "\032" -type ":kill\r" +make_link "graphs;graph3 fasl" "liblsp" +make_link "graphs;plot3 fasl" "liblsp" +make_link "graphs;plot fasl" "liblsp" +complr {"liblsp;_libdoc;plot" "liblsp;_libdoc;plot3"} -respond "*" ":link graphs;graph3 fasl,liblsp\r" -respond "*" ":link graphs;plot3 fasl,liblsp\r" -respond "*" ":link graphs;plot fasl,liblsp\r" -respond "*" "complr\013" -respond "_" "liblsp;_libdoc;plot\r" -respond "_" "liblsp;_libdoc;plot3\r" -respond "_" "\032" -type ":kill\r" - -respond "*" "complr\013" -respond "_" "liblsp;_libdoc;prime\r" -respond "_" "\032" -type ":kill\r" - -respond "*" "complr\013" -respond "_" "liblsp;_libdoc;step\r" -respond "_" "\032" -type ":kill\r" - -respond "*" "complr\013" -respond "_" "liblsp;_libdoc;utils\r" -respond "_" "\032" -type ":kill\r" +complr {"liblsp;_libdoc;prime"} +complr {"liblsp;_libdoc;step"} +complr {"liblsp;_libdoc;utils"} # cleanup unfasl files in liblsp; respond "*" ":dired liblsp;\r" @@ -594,25 +328,13 @@ respond "@" "q\r" expect ":KILL" # DEFSET -respond "*" "complr\013" -respond "_" "lisp;_nilcom;defset\r" -respond "_" "\032" -type ":kill\r" +complr {"lisp;_nilcom;defset"} # compile some lisp; libraries -respond "*" "complr\013" -respond "_" "lisp;_nilcom;cnvd\r" -respond "_" "lisp;_lspsrc;exthuk\r" -respond "_" "lisp;_lspsrc;gfile\r" -respond "_" "lisp;_lspsrc;gfn\r" -respond "_" "\032" -type ":kill\r" +complr {"lisp;_nilcom;cnvd" "lisp;_lspsrc;exthuk" + "lisp;_lspsrc;gfile" "lisp;_lspsrc;gfn"} -respond "*" "complr\013" -respond "_" "lisp;_lspsrc;querio\r" -respond "_" "lisp;_lspsrc;vector\r" -respond "_" "\032" -type ":kill\r" +complr {"lisp;_lspsrc;querio" "lisp;_lspsrc;vector"} midas "lisp;" "lspsrc;sendi" midas "lisp;" "lspsrc;straux" @@ -620,8 +342,8 @@ midas "lisp;" "lspsrc;straux" # lispt source is in libdoc, therefore fasl should be in liblsp # version in lisp; should be a link to liblsp;lispf fasl respond "*" ":delete lisp;lispt fasl\r" -respond "*" ":link lisp;lispt fasl,liblsp;\r" -respond "*" ":link sys2;ts lispt,sys2;ts edit\r" +make_link "lisp;lispt fasl" "liblsp;" +make_link "sys2;ts lispt" "sys2;ts edit" # Lisp display library midas "lisp; slave fasl" "l; slave" @@ -633,18 +355,10 @@ midas "sys; atsign 10slav" "sysen2; ld10" { } # animal -respond "*" "complr\013" -respond "_" "games;_games;parse\r" -respond "_" "games;_games;pattrn\r" -respond "_" "games;_games;words\r" -respond "_" "games;_games;word\r" -respond "_" "\032" -type ":kill\r" +complr {"games;_games;parse" "games;_games;pattrn" + "games;_games;words" "games;_games;word"} -respond "*" "complr\013" -respond "_" "games;_games;animal 133\r" -respond "_" "\032" -type ":kill\r" +complr {"games;_games;animal 133"} respond "*" "l\013" respond "Alloc?" "n" @@ -653,87 +367,51 @@ respond_load "(dump '((games) ts animal))" expect "KILL" # think -respond "*" "complr\013" -respond "_" "games;_games;think\r" -respond "_" "\032" -type ":kill\r" +complr {"games;_games;think"} # wa -respond "*" "complr\013" -respond "_" "games;_games;wa 10\r" -respond "_" "\032" -type ":kill\r" +complr {"games;_games;wa 10"} # chase -respond "*" "complr\013" -respond "_" "games;_chase\r" -respond "_" "\032" -type ":kill\r" +complr {"games;_chase"} # yahtze -respond "*" "complr\013" -respond "_" "sca;macros\r" -respond "_" "sca;modeb\r" -respond "_" "\032" -type ":kill\r" +complr {"sca;macros" "sca;modeb"} # note sca;mode > will not compile. Yahtze will load it interpreted -respond "*" "complr\013" -respond "_" "games;yahtze\r" -respond "_" "\032" -type ":kill\r" +complr {"games;yahtze"} # ITSter -respond "*" "complr\013" -respond "_" "games;_hibou;itster\r" -respond "_" "\032" -type ":kill\r" +complr {"games;_hibou;itster"} # Knight TV Spacewar respond "*" ":lisp gjd; sine lisp\r" expect ":KILL" # Kermit -respond "*" ":link math;defset fasl,lisp;\r" -respond "*" ":complr\r" -respond "_" "math;common\r" -respond "_" "math;kermit\r" -respond "_" "\032" -type ":kill\r" +make_link "math;defset fasl" "lisp;" +complr {"math;common" "math;kermit"} respond "*" ":lisp math; kermit dumper\r" respond "to dump.|" "(kermit-dump)" expect ":KILL" -respond "*" ":link sys3;ts kermit,math;\r" +make_link "sys3;ts kermit" "math;" # SUPDUP ARDS -respond "*" ":complr\r" -respond "_" "dcp;sgincl\r" -respond "_" "dcp;supard\r" -respond "_" "\032" -type ":kill\r" +complr {"dcp;sgincl" "dcp;supard"} respond "*" ":lisp\r" respond "Alloc?" "n" respond "*" {(load "dcp;supard")} respond "system program" "(bootstrap)" # ARDS to SVG converter -respond "*" ":complr\r" -respond "_" "victor; ards\r" -respond "_" "\032" -type ":kill\r" +complr {"victor; ards"} # Forth -respond "*" ":complr\r" -respond "_" "kle;forth\r" -respond "_" "\032" -type ":kill\r" +complr {"kle;forth"} # ULisp -respond "*" ":complr\r" -respond "_" "teach; ulisp\r" -respond "_" "\032" -type ":kill\r" +complr {"teach; ulisp"} respond "*" ":lisp\r" respond "Alloc?" "n\r" respond "*" "(load '((teach) ulisp))" @@ -751,15 +429,8 @@ respond "\n" ":vk\r" respond "*" ":kill\r" # AS8748 -respond "*" ":complr\r" -respond "_" "lmio1;as8748\r" -respond "_" "\032" -type ":kill\r" - -respond "*" ":complr\r" -respond "_" "moon;8478sa\r" -respond "_" "\032" -type ":kill\r" +complr {"lmio1;as8748"} +complr {"moon;8478sa"} respond "*" ":lisp\r" respond "Alloc?" "n" @@ -771,51 +442,20 @@ expect ":KILL" # Lisp Logo cwd "llogo" -respond "*" ":complr\r" -respond "_" "germ\r" -respond "_" "ioc\r" -respond "_" "\032" -type ":kill\r" -respond "*" ":complr\r" -respond "_" "\007" -respond "*" "(load 'ioc)" -respond_load "(load 'define)" -respond "T" "(maklap)" -respond "_" "define\r" -respond "_" "\032" -type ":kill\r" -respond "*" ":complr\r" -respond "_" "\007" -respond "*" "(load 'ioc)" -respond_load "(load 'define)" -respond_load "(maklap)" -respond "_" "error\r" -respond "_" "parser\r" -respond "_" "primit\r" -respond "_" "print\r" -respond "_" "reader\r" -respond "_" "setup\r" -respond "_" "unedit\r" -respond "_" "music\r" -respond "_" "turtle\r" -respond "_" "tvrtle\r" -respond "_" "\032" -type ":kill\r" +complr {"germ" "ioc"} +complr_load {"ioc" "define"} {"define"} +complr_load {"ioc" "define"} \ + {"error" "parser" "primit" "print" "reader" "setup" "unedit" "music" + "turtle" "tvrtle"} respond "*" ":lisp loader\r" respond "?" "Y\r" respond "?" "LLOGO\r" respond "?" "1700\r" expect ":KILL" -respond "*" ":link sys1; ts llogo, llogo; ts llogo\r" +make_link "sys1; ts llogo" " llogo; ts llogo" # 2500 assembler -respond "*" ":complr\r" -respond "_" "\007" -respond "*" "(load 'ioc)" -respond_load "(maklap)" -respond "_" "2500;zap\r" -respond "_" "\032" -type ":kill\r" +complr_load {"ioc"} {"2500;zap"} # 2500 microcode cwd "minsky" @@ -832,26 +472,11 @@ expect ":KILL" # TEACH;TS XLISP -respond "*" ":complr\r" -respond "_" "teach;macro\r" -respond "_" "\032" -type ":kill\r" +complr {"teach;macro"} -respond "*" ":complr\r" -respond "_" "teach;apropos\r" -respond "_" "teach;compla\r" -respond "_" "teach;databa\r" -respond "_" "teach;errhan\r" -respond "_" "teach;errhel\r" -respond "_" "teach;exlist\r" -respond "_" "teach;io\r" -respond "_" "teach;lessn\r" -respond "_" "teach;more\r" -respond "_" "teach;record\r" -respond "_" "teach;teach\r" -respond "_" "teach;treepr\r" -respond "_" "\032" -type ":kill\r" +complr {"teach;apropos" "teach;compla" "teach;databa" "teach;errhan" + "teach;errhel" "teach;exlist" "teach;io" "teach;lessn" + "teach;more" "teach;record" "teach;teach" "teach;treepr"} respond "*" ":lisp\r" respond "Alloc?" "n" @@ -862,20 +487,10 @@ expect ":KILL" respond "*" ":rename teach;ts xlisp,ts lisp\r" # Munching squares for display terminals. -respond "*" ":complr\r" -respond "_" "lars; munch lisp\r" -respond "_" "\032" -type ":kill\r" +complr {"lars; munch lisp"} # CUBE, Rubik's cube by Bernard Greenberg. -respond "*" ":complr\r" -respond "_" "bsg;cube\r" -respond "_" "bsg;cutils\r" -respond "_" "bsg;csolve\r" -respond "_" "bsg;cinput\r" -respond "_" "bsg;cxfrm\r" -respond "_" "\032" -type ":kill\r" +complr {"bsg;cube" "bsg;cutils" "bsg;csolve" "bsg;cinput" "bsg;cxfrm"} respond "*" ":lisp\r" respond "Alloc?" "n" respond "*" {(load "bsg;cdriv")} @@ -884,14 +499,7 @@ respond "*" ":pdump sys3;ts cube\r" respond "*" ":kill\r" # LMODEM -respond "*" ":complr\r" -respond "_" "eb;sfadcl\r" -respond "_" "eb;errmac\r" -respond "_" "eb;signal\r" -respond "_" "eb;dsk8\r" -respond "_" "eb;lmodem\r" -respond "_" "\032" -type ":kill\r" +complr {"eb;sfadcl" "eb;errmac" "eb;signal" "eb;dsk8" "eb;lmodem"} respond "*" ":lisp\r" respond "Alloc?" "n" respond "*" {(load "eb;lmodem")} @@ -902,4 +510,4 @@ expect -re {[\r\n][\r\n]T ?[\r\n][\r\n]} type "(quit)" expect ":KILL" # Make a link for the CP/M archive users. -respond "*" ":link cpm; ts lmodem, eb;\r" +make_link "cpm; ts lmodem" " eb;" diff --git a/build/macsyma.tcl b/build/macsyma.tcl index 039fa68c0..7e39e0ebc 100644 --- a/build/macsyma.tcl +++ b/build/macsyma.tcl @@ -5,10 +5,7 @@ log_progress "ENTERING BUILD SCRIPT: MACSYMA" # all libmax components (well almost all) require libmax;module fasl # at compile time. Build it first. -respond "*" "complr\013" -respond "_" "libmax;module\r" -respond "_" "\032" -type ":kill\r" +complr {"libmax;module"} # libmax;maxmac can't be compiled unless libmax;mforma is (first) compiled. # However, libmax;mforma uses libmax;macmac. Hence you end up having to @@ -17,37 +14,10 @@ type ":kill\r" # files for each, but anything that depends on these two packages will also # have errors during compilation. -respond "*" "complr\013" -respond "_" "\007" -respond "*" "(load '((libmax) module))" -respond_load "(maklap)" -respond "_" "libmax;mforma\r" -respond "_" "\032" -type ":kill\r" - -respond "*" "complr\013" -respond "_" "\007" -respond "*" "(load '((libmax) module))" -respond_load "(maklap)" -respond "_" "libmax;maxmac\r" -respond "_" "\032" -type ":kill\r" - -respond "*" "complr\013" -respond "_" "\007" -respond "*" "(load '((libmax) module))" -respond_load "(maklap)" -respond "_" "libmax;mforma\r" -respond "_" "\032" -type ":kill\r" - -respond "*" "complr\013" -respond "_" "\007" -respond "*" "(load '((libmax) module))" -respond_load "(maklap)" -respond "_" "libmax;maxmac\r" -respond "_" "\032" -type ":kill\r" +complr_load {"((libmax) module)"} {"libmax;mforma"} +complr_load {"((libmax) module)"} {"libmax;maxmac"} +complr_load {"((libmax) module)"} {"libmax;mforma"} +complr_load {"((libmax) module)"} {"libmax;maxmac"} # the following are required to compile some of the libmax; # FASL files @@ -55,99 +25,47 @@ type ":kill\r" midas "rwk;lfsdef fasl" "rwk;lfsdef" midas "rat;ratlap fasl" "rat;ratlap" mkdir "maxdmp" -respond "*" ":link maxdmp;ratlap fasl,rat;ratlap fasl\r" -respond "*" ":link libmax;lusets fasl,liblsp;\r" +make_link "maxdmp;ratlap fasl" "rat;ratlap fasl" +make_link "libmax;lusets fasl" "liblsp;" -respond "*" "complr\013" -respond "_" "\007" -respond "*" "(load '((libmax) module))" -respond_load "(maklap)" -respond "_" "libmax;ermsgx\r" -respond "_" "libmax;ermsgc\r" -respond "_" "z;fildir\r" -respond "_" "libmax;lmmac\r" -respond "_" "libmax;meta\r" -respond "_" "libmax;lmrund\r" -respond "_" "libmax;lmrun\r" -respond "_" "libmax;displm\r" -respond "_" "libmax;defopt\r" -respond "_" "libmax;mopers\r" -respond "_" "libmax;mrgmac\r" -respond "_" "libmax;nummac\r" -respond "_" "libmax;opshin\r" -respond "_" "libmax;edmac_emaxim;\r" -respond "_" "libmax;procs\r" -respond "_" "libmax;readm\r" -respond "_" "libmax;strmac\r" -respond "_" "libmax;transm\r" -respond "_" "libmax;rzmac_rz;macros\r" -respond "_" "libmax;transq\r" -respond "_" "libmax;mdefun\r" -respond "_" "\032" -type ":kill\r" +complr_load {"((libmax) module)"} \ + {"libmax;ermsgx" "libmax;ermsgc" "z;fildir" "libmax;lmmac" + "libmax;meta" "libmax;lmrund" "libmax;lmrun" "libmax;displm" + "libmax;defopt" "libmax;mopers" "libmax;mrgmac" "libmax;nummac" + "libmax;opshin" "libmax;edmac_emaxim;" "libmax;procs" "libmax;readm" + "libmax;strmac" "libmax;transm" "libmax;rzmac_rz;macros" + "libmax;transq" "libmax;mdefun"} # build MAXTUL FASL files mkdir "maxerr" mkdir "maxer1" -respond "*" "complr\013" -respond "_" "maxtul;strmrg\r" -respond "_" "maxtul;defile\r" -respond "_" "maxtul;docgen\r" -respond "_" "maxtul;query\r" -respond "_" "maxtul;maxtul\r" -respond "_" "maxtul;toolm\r" -respond "_" "maxtul;dclmak\r" -respond "_" "maxtul;mailer\r" -respond "_" "maxtul;mcl\r" -respond "_" "maxtul;timepn\r" -respond "_" "maxtul;expand\r" -respond "_" "maxtul;fsubr!\r" -respond "_" "maxtul;error!\r" -respond "_" "\032" -type ":kill\r" +complr {"maxtul;strmrg" "maxtul;defile" "maxtul;docgen" "maxtul;query" + "maxtul;maxtul" "maxtul;toolm" "maxtul;dclmak" "maxtul;mailer" + "maxtul;mcl" "maxtul;timepn" "maxtul;expand" "maxtul;fsubr!" + "maxtul;error!"} -respond "*" "complr\013" -respond "_" "maxtul;fasmap\r" -respond "_" "\032" -type ":kill\r" +complr {"maxtul;fasmap"} # define needs (for some reason) to be compiled separately. # not doing this results in errors compiling macsyma sources, # such as ELL; HYP > # -respond "*" "complr\013" -respond "_" "\007" -respond "*" "(load '((libmax) module))" -respond_load "(maklap)" -respond "_" "libmax;define\r" -respond "_" "\032" -type ":kill\r" +complr_load {"((libmax) module)"} {"libmax;define"} # build macsyma mkdir "macsym" -respond "*" ":link macsym;mdefun fasl,libmax;\r" +make_link "macsym;mdefun fasl" "libmax;" -respond "*" "complr\013" -respond "_" "\007" -respond "*" "(load '((libmax) module))" -respond_load "(maklap)" -respond "_" "macsym;ermsgm_maxsrc;ermsgm\r" -respond "_" "maxdoc;tdcl\r" -respond "_" "rlb;bitmac\r" -respond "_" "\032" -type ":kill\r" +complr_load {"((libmax) module)"} \ + {"macsym;ermsgm_maxsrc;ermsgm" "maxdoc;tdcl" "rlb;bitmac"} -respond "*" "complr\013" -respond "_" "rlb;faslre\r" -respond "_" "rlb;faslro\r" -respond "_" "\032" -type ":kill\r" +complr {"rlb;faslre" "rlb;faslro"} -respond "*" ":link rlb%;faslre fasl,rlb;\r" +make_link "rlb%;faslre fasl" "rlb;" respond "*" ":copy rlb;faslre fasl,liblsp;\r" respond "*" "l\013" respond "Alloc?" "n" @@ -175,33 +93,14 @@ respond "MAXIMUM TOOLAGE>" "declare-file-make\r" respond "MAXIMUM TOOLAGE>" "quit\r" respond "*" "(quit)" -respond "*" "complr\013" -respond "_" "\007" -respond "*" "(load '((libmax) module))" -respond_load "(maklap)" -respond "_" "libmax;mhayat_rat;mhayat\r" -respond "_" "\032" -type ":kill\r" - -respond "*" "complr\013" -respond "_" "\007" -respond "*" "(load '((libmax) module))" -respond_load "(maklap)" -respond "_" "libmax;ratmac_rat;ratmac\r" -respond "_" "\032" -type ":kill\r" +complr_load {"((libmax) module)"} {"libmax;mhayat_rat;mhayat"} +complr_load {"((libmax) module)"} {"libmax;ratmac_rat;ratmac"} # mforma needs to get recompiled (not sure exactly which # dependency yet causes the version we've built so far # not to work, but if recompiled at this point, we're # able to build macsyma -respond "*" "complr\013" -respond "_" "\007" -respond "*" "(load '((libmax) module))" -respond_load "(maklap)" -respond "_" "libmax;mforma\r" -respond "_" "\032" -type ":kill\r" +complr_load {"((libmax) module)"} {"libmax;mforma"} respond "*" "complr\013" respond "_" "\007" @@ -214,13 +113,10 @@ respond "File name->" "\002" respond ";BKPT" "(quit)" midas "maxtul;ts mcl" "mcldmp midas" -respond "*" ":link maxtul;.good. complr,maxtul;mcldmp 32\r" +make_link "maxtul;.good. complr" "maxtul;mcldmp 32" # build UTMCL -- the compiler invoked by compile_lisp_file in Macsyma -respond "*" "complr\013" -respond "_" "maxtul;utmcl\r" -respond "_" "\032" -type ":kill\r" +complr {"maxtul;utmcl"} # dump out UTMCL respond "*" "complr\013" @@ -231,10 +127,7 @@ respond "*" "(dump-utmcl)" respond "_" "\032" type ":kill\r" -respond "*" "complr\013" -respond "_" "mrg;macros\r" -respond "_" "\032" -type ":kill\r" +complr {"mrg;macros"} mkdir "maxout" mkdir "share2" @@ -291,11 +184,11 @@ respond "T" "(loader 1001)" respond "(C1)" "quit();" respond "*" ":copy aljabr;user profil,macsym;\r" -respond "*" ":link macsym;check fasl,ellen;\r" -respond "*" ":link sys3;ts macsym,maxdmp;loser >\r" -respond "*" ":link sys;ts a,sys3; ts macsym\r" -respond "*" ":link demo;manual demo,demo;manual >\r" -respond "*" ":link manual;manual demo,demo;manual demo\r" +make_link "macsym;check fasl" "ellen;" +make_link "sys3;ts macsym" "maxdmp;loser >" +make_link "sys;ts a" "sys3; ts macsym" +make_link "demo;manual demo" "demo;manual >" +make_link "manual;manual demo" "demo;manual demo" ### build ctensr for macsyma respond "*" "macsym\013" @@ -304,7 +197,7 @@ respond "(C2)" "compile_lisp_file(translate_file(\"tensor\\;ctensr funcs\")\[2\] respond "Type ALL;" "all;" respond "Type ALL;" "all;" respond "(C3)" "quit();" -respond "*" ":link share;ctensr fasl,tensor;\r" +make_link "share;ctensr fasl" "tensor;" ### build eigen for macsyma respond "*" "macsym\013" @@ -314,31 +207,15 @@ respond "Type ALL;" "all;" respond "(C2)" "quit();" ### build share;array fasl and ellen;check fasl for macsyma -respond "*" "complr\013" -respond "_" "\007" -respond "*" "(load '((libmax) module))" -respond_load "(load '((libmax) maxmac))" -respond_load "(maklap)" -respond "_" "share;_maxsrc;array\r" -respond "_" "ellen;check\r" -respond "_" "\032" -type ":kill\r" +complr_load {"((libmax) module)" "((libmax) maxmac)"} \ + {"share;_maxsrc;array" "ellen;check"} ### rebuild float because version built the first time gives ### arithmetic overflows. See ticket #1211. -respond "*" "complr\013" -respond "_" "\007" -respond "*" "(load '((libmax) module))" -respond_load "(load '((libmax) maxmac))" -respond_load "(maklap)" -respond "_" "macsym;_rat;float\r" -respond "_" "\032" -type ":kill\r" +complr_load {"((libmax) module)" "((libmax) maxmac)"} \ + {"macsym;_rat;float"} # this is not technically part of macsyma, but requires a bunch # of macsyma macros and libraries in order to compile -respond "*" ":complr\r" -respond "_" "liblsp;_libdoc;lchstr\r" -respond "_" "\032" -type ":kill\r" +complr {"liblsp;_libdoc;lchstr"} respond "*" ":delete liblsp;lchstr unfasl\r" diff --git a/build/mark.tcl b/build/mark.tcl index 9bca2eff9..a232045a1 100644 --- a/build/mark.tcl +++ b/build/mark.tcl @@ -32,19 +32,17 @@ respond "*" ":listf sys\r" mkdir "sysbin" midas "sysbin;" "midas;midas" -respond "*" ":job midas\r" -respond "*" ":load sysbin;midas bin\r" -respond "*" "purify\033g" -respond "CR to dump" "\r" -sleep 2 -respond "*" ":kill\r" +purify midas "sysbin;midas bin" { + respond "*" "purify\033g" + respond "CR to dump" "\r" + sleep 2 +} midas "sysbin;" "sysen1;ddt" -respond "*" ":job ddt\r" -respond "*" ":load sysbin;ddt bin\r" -respond "*" "purify\033g" -respond "*" ":pdump sys;atsign ddt\r" -respond "*" ":kill\r" +purify ddt "sysbin;ddt bin" { + respond "*" "purify\033g" + respond "*" ":pdump sys;atsign ddt\r" +} midas "dsk0:.;" "system;its" its_switches diff --git a/build/mchn/HX/custom.tcl b/build/mchn/HX/custom.tcl index 5829b989d..7df21a540 100644 --- a/build/mchn/HX/custom.tcl +++ b/build/mchn/HX/custom.tcl @@ -1,5 +1,5 @@ #Gun down users that are idle and not logged in. -respond "*" ":link dragon; hourly gunner, cstacy; gunner bin\r" +make_link "dragon; hourly gunner" "cstacy; gunner bin" #Run a weekly unattended incremental dump. midas "dragon; weekly backup" "lars; backup" { diff --git a/build/mchn/TT/custom.tcl b/build/mchn/TT/custom.tcl index 53e1b9237..08282a30c 100644 --- a/build/mchn/TT/custom.tcl +++ b/build/mchn/TT/custom.tcl @@ -7,7 +7,7 @@ midas "/t device;chaos shutdo" "sysnet;shutsr" { respond "*" ":delete sys;atsign gunner\r" #Gun down users that are idle and not logged in. -respond "*" ":link dragon; hourly gunner, cstacy; gunner bin\r" +make_link "dragon; hourly gunner" "cstacy; gunner bin" #Run a weekly unattended incremental dump. midas "dragon; weekly backup" "lars; backup" { diff --git a/build/misc.tcl b/build/misc.tcl index c47e59780..3708eec6d 100644 --- a/build/misc.tcl +++ b/build/misc.tcl @@ -7,22 +7,20 @@ midast "sysbin; midas 324bin" "midas; midas 324" { respond "\n" "ldbi=ildb\r" respond "\n" "dpbi=idpb\003" } -respond "*" ":job midas\r" -respond "*" ":load sysbin; midas 324bin\r" -respond "*" "purify\033g" -respond "TS MIDAS" "midas;ts 324\r" -respond "*" ":kill\r" +purify midas "sysbin; midas 324bin" { + respond "*" "purify\033g" + respond "TS MIDAS" "midas;ts 324\r" +} # MIDAS 77, needed for MUSRUN. -respond "*" ":job midas\r" -respond "*" ":load sysbin; midas 77bin\r" -# Patch to accomodate more symbols returned from .GETSYS. -respond "*" "tsymgt+5/" -respond "P" "10\r" -respond "\n" "purify\033g" -expect "PURIFIED" -respond "*" ":pdump midas; ts 77\r" -respond "*" ":kill\r" +purify midas "sysbin; midas 77bin" { + # Patch to accomodate more symbols returned from .GETSYS. + respond "*" "tsymgt+5/" + respond "P" "10\r" + respond "\n" "purify\033g" + expect "PURIFIED" + respond "*" ":pdump midas; ts 77\r" +} # MIDAS 73, bootstrapped from 77. oomidas 77 "MIDAS; TS 73" "MIDAS; MIDAS 73" @@ -38,18 +36,17 @@ omidas "sysbin;" "sysen2; mactap" # TECO6 midas "sysbin;teco 335bin" ".teco.; teco 335" -respond "*" ":job teco\r" -respond "*" ":load sysbin; teco 335bin\r" -respond "*" "purify\033g" -respond "PURIFIED" "\r" -respond "*" ":pdump .teco.; ts 335\r" -respond "*" ":kill\r" +purify teco "sysbin; teco 335bin" { + respond "*" "purify\033g" + respond "PURIFIED" "\r" + respond "*" ":pdump .teco.; ts 335\r" +} -respond "*" ":link teach;teach emacs,emacs;teach emacs\r" +make_link "teach;teach emacs" "emacs;teach emacs" respond "*" "teach\033\023" respond "*" ":emacs\r" expect ":KILL" -respond "*" ":link sys2;ts teachemacs,emacs;tstch >\r" +make_link "sys2;ts teachemacs" "emacs;tstch >" # nsalv, timesharing version midas "sys1;ts nsalv" "kshack;nsalv" { @@ -64,25 +61,25 @@ midas "sys1;ts salv" "system;salv" { midas "sys3;ts syslod" "sysen1;syslod" midas "sys3;ts vv" "sysen2;vv" -respond "*" ":link sys3;ts vj,sys3;ts vv\r" -respond "*" ":link sys3;ts detree,sys3;ts vv\r" +make_link "sys3;ts vj" "sys3;ts vv" +make_link "sys3;ts detree" "sys3;ts vv" midas "sys3;ts trees" "sysen1; trees" midas "sys2;ts syschk" "sysen2;syschk" midas "sysbin;" "sysen3;whoj" -respond "*" ":link sys1;ts talk,sysbin;whoj bin\r" -respond "*" ":link sys1;ts who,sysbin;whoj bin\r" -respond "*" ":link sys1;ts whoj,sysbin;whoj bin\r" -respond "*" ":link sys1;ts whom,sysbin;whoj bin\r" -respond "*" ":link sys2;ts users,sysbin;whoj bin\r" -respond "*" ":link sys1;ts w,sys1;ts who\r" -respond "*" ":link sys2;ts u,sys2;ts users\r" +make_link "sys1;ts talk" "sysbin;whoj bin" +make_link "sys1;ts who" "sysbin;whoj bin" +make_link "sys1;ts whoj" "sysbin;whoj bin" +make_link "sys1;ts whom" "sysbin;whoj bin" +make_link "sys2;ts users" "sysbin;whoj bin" +make_link "sys1;ts w" "sys1;ts who" +make_link "sys2;ts u" "sys2;ts users" #Inter-Entity Communication midas "sysbin;" "sysen2; iec" -respond "*" ":link sys; atsign iec, sysbin; iec bin\r" +make_link "sys; atsign iec" " sysbin; iec bin" arpanet "rfc113" "sys; atsign iec" midas "sys2;ts untalk" "gren;untalk" @@ -94,10 +91,10 @@ midas "sys3;ts ddtdoc" "syseng;ddtdoc" midas "sys1;ts nwatch" "sysen1;nwatch" midas "sys1;ts crock" "sysen1;crock" { respond "System?" "ITS\r" } -respond "*" ":link sys2;ts c,sys1;ts crock\r" +make_link "sys2;ts c" "sys1;ts crock" midas "sys1;ts dcrock" "sysen1;dcrock" { respond "System?" "ITS\r" } -respond "*" ":link sys2;ts dc,sys1;ts dcrock\r" +make_link "sys2;ts dc" "sys1;ts dcrock" # Not Zork midas "sys3;ts zork" "sysen3;zork" @@ -110,42 +107,41 @@ midas "bawden;" "uptime" # Chaosnet EVACUATE service. midas "sysbin; evacua" "bawden; evacua" -respond "*" ":job evacua\r" -respond "*" ":load sysbin; evacua bin\r" -respond "*" "purify\033g" -respond "CHAOS EVACUA" "\r" -respond "*" ":kill\r" +purify evacua "sysbin; evacua bin" { + respond "*" "purify\033g" + respond "CHAOS EVACUA" "\r" +} # Mini Chaosnet file server. Version 24 is MINI. midas "sysbin; mini" "lmio; minisr 24" -respond "*" ":link device; chaos mini, sysbin; mini bin\r" +make_link "device; chaos mini" " sysbin; mini bin" # Mini Chaosnet file server. This is the 36-bit version. midas "kshack;" "mini36" -respond "*" ":link device; chaos mini36, kshack; mini36 bin\r" +make_link "device; chaos mini36" " kshack; mini36 bin" midas "sysbin;" "sysnet;echo" -respond "*" ":link device; chaos echo, sysbin; echo bin\r" +make_link "device; chaos echo" " sysbin; echo bin" midas "alan;ts gensym" "alan;gensym" -respond "*" ":link device; chaos gensym, alan; ts gensym\r" +make_link "device; chaos gensym" " alan; ts gensym" midas "device;chaos load" "alan;load" # Mini Chaosnet file server. Version 5 is MINIC. midas "sysbin; minic bin" "syseng; minisr 5" -respond "*" ":link device; chaos minic, sysbin; minic bin\r" +make_link "device; chaos minic" " sysbin; minic bin" midas "sysbin;" "lmio1; door" -respond "*" ":link device; chaos door, sysbin; door bin\r" +make_link "device; chaos door" " sysbin; door bin" midas "sys3; ts esce" "sysen1; esce" midas "sysbin;chtn" "sysnet;chtn" -respond "*" ":link sys2;ts chtn,sysbin;chtn bin\r" +make_link "sys2;ts chtn" "sysbin;chtn bin" midas "sys;ts ttloc" "sysen1;ttloc" -respond "*" ":link sys2;ts styloc,sys;ts ttloc\r" +make_link "sys2;ts styloc" "sys;ts ttloc" midas "device;jobdev dp" "sysen3;dpdev" @@ -156,62 +152,60 @@ midas "sys1;ts quote" "sysen1;limeri" { midas "sys2;ts limeri" "sysen1;limeri" { respond "Use what filename instead?" "eak; lims >\r" } -respond "*" ":link sys2;ts limmer,sys2;ts limeri\r" +make_link "sys2;ts limmer" "sys2;ts limeri" midas "sysbin;" "eak;limser" -respond "*" ":link device;chaos limeri,sysbin;limser bin\r" +make_link "device;chaos limeri" "sysbin;limser bin" midas "sys;ts srccom" "sysen2;srccom" -respond "*" ":link sys2;ts =,sys;ts srccom\r" +make_link "sys2;ts =" "sys;ts srccom" midas ".mail.;comsat" "sysnet;comsat" comsat_switches midas "device;jobdev dq" "sysnet;dqxdev" dqxdev_switches -respond "*" "comsat\033j" -respond "*" "\033l.mail.;comsat bin\r" -respond "*" "debug/0\r" -type "xvers/0\r" -type "purify\033g" -respond ":PDUMP DSK:.MAIL.;COMSAT LAUNCH" "\r" -respond "*" ":kill\r" +purify comsat ".mail.;comsat bin" { + respond "*" "debug/0\r" + type "xvers/0\r" + type "purify\033g" + respond ":PDUMP DSK:.MAIL.;COMSAT LAUNCH" "\r" +} initialize_comsat -respond "*" ":link emacs;rmail \021:ej,emacs;\[rmai\] >\r" +make_link "emacs;rmail \021:ej" "emacs;\[rmai\] >" midas "sys1;ts rmail" "emacs1;rmaill" -respond "*" ":link channa;rakash cnavrl,.mail.;comsat launch\r" -respond "*" ":link channa;ts cnavrl,channa;rakash cnavrl\r" -respond "*" ":link dragon;hourly cnavrl,.mail.;comsat launch\r" +make_link "channa;rakash cnavrl" ".mail.;comsat launch" +make_link "channa;ts cnavrl" "channa;rakash cnavrl" +make_link "dragon;hourly cnavrl" ".mail.;comsat launch" midas "sysbin;" "sra; gcmail" -respond "*" ":link dragon; hourly gcmail,sysbin; gcmail bin\r" -respond "*" ":link dragon; hourly gcbulk,sysbin; gcmail bin\r" +make_link "dragon; hourly gcmail" "sysbin; gcmail bin" +make_link "dragon; hourly gcbulk" "sysbin; gcmail bin" midas "sysbin;qmail" "ksc;qmail" { respond "PWORD version (Y or N)? " "N\r" } -respond "*" ":job qmail\r" -respond "*" ":load sysbin;\r" -respond "*" "purify\033g" -respond "QMAIL BIN" "\r" -respond "*" ":kill\r" +purify qmail "sysbin;" { + respond "*" "purify\033g" + respond "QMAIL BIN" "\r" +} -respond "*" ":link sys;ts mail,sysbin;qmail bin\r" -respond "*" ":link sys;ts qmail,sysbin;qmail bin\r" -respond "*" ":link sys;ts qsend,sysbin;qmail bin\r" -respond "*" ":link sys1;ts bug,sysbin;qmail bin\r" -respond "*" ":link sys;ts m,sys;ts mail\r" -respond "*" ":link sys2;ts featur,sys;ts qmail\r" -respond "*" ":link .info.;mail info,.info.;qmail info\r" +make_link "sys;ts mail" "sysbin;qmail bin" +make_link "sys;ts qmail" "sysbin;qmail bin" +make_link "sys;ts qsend" "sysbin;qmail bin" +make_link "sys1;ts bug" "sysbin;qmail bin" +make_link "sys;ts m" "sys;ts mail" +make_link "sys2;ts featur" "sys;ts qmail" +make_link ".info.;mail info" ".info.;qmail info" # Chaosnet MAILServer midas "sysbin;" "sysnet;mails" -respond "*" ":link device; chaos mail, sysbin; mails bin\r" +make_link "device; chaos mail" " sysbin; mails bin" # DIGEST midas "digest; ts digest" "digest" -respond "*" ":link dragon; hourly digest, digest; ts digest\r" +make_link "dragon; hourly digest" " digest; ts digest" # MBXLOC midas "digest; ts mbxloc" "mbxloc" @@ -254,18 +248,18 @@ midas "sys3;ts bitprt" "sysen2;bitprt" # bday midas "sysbin;" "sysen1;bday" -respond "*" ":link dragon;daily bday,sysbin;bday bin\r" +make_link "dragon;daily bday" "sysbin;bday bin" # sender midas "sysbin;sender" "sysen1;sender" -respond "*" ":link sys;ts freply,sysbin;sender bin\r" -respond "*" ":link sys;ts send,sysbin;sender bin\r" -respond "*" ":link sys2;ts fr,sysbin;sender bin\r" -respond "*" ":link sys2;ts reply,sysbin;sender bin\r" -respond "*" ":link sys3;ts fs,sysbin;sender bin\r" -respond "*" ":link sys1;ts s,sys;ts send\r" -respond "*" ":link sys3;ts snd,sys;ts send\r" -respond "*" ":link sys3;ts sned,sys;ts send\r" +make_link "sys;ts freply" "sysbin;sender bin" +make_link "sys;ts send" "sysbin;sender bin" +make_link "sys2;ts fr" "sysbin;sender bin" +make_link "sys2;ts reply" "sysbin;sender bin" +make_link "sys3;ts fs" "sysbin;sender bin" +make_link "sys1;ts s" "sys;ts send" +make_link "sys3;ts snd" "sys;ts send" +make_link "sys3;ts sned" "sys;ts send" # psend midas "sys3;ts psend" "sysen2;b" @@ -287,8 +281,8 @@ midas "sys1;ts reatta" "sysen2;reatta" # print midas "sys;ts print" "sysen2;print" -respond "*" ":link sys;ts copy,sys;ts print\r" -respond "*" ":link sys;ts listf,sys;ts print\r" +make_link "sys;ts copy" "sys;ts print" +make_link "sys;ts listf" "sys;ts print" # fdir midas "sys2;ts fdir" "syseng;fdir" @@ -311,8 +305,8 @@ midas "sys1;ts sysmsg" "sysen1;sysmsg" # meter midas "sys1;ts meter" "syseng;meter" -respond "*" ":link sys1; ts smeter, sys1; ts meter\r" -respond "*" ":link sys1; ts meterd, sys1; ts meter\r" +make_link "sys1; ts smeter" " sys1; ts meter" +make_link "sys1; ts meterd" " sys1; ts meter" # cross # This is not the microcomputer cross assembler. @@ -338,23 +332,23 @@ midas "sys;ts acount" "sysen3;acount" # idents midas "sysbin;" "sysnet;idents" -respond "*" ":link device;tcp syn161,sysbin;idents bin\r" +make_link "device;tcp syn161" "sysbin;idents bin" # timsrv midas "sysbin;timsrv bin" "sysnet;timsrv" -respond "*" ":link device;tcp syn045,sysbin;timsrv bin\r" +make_link "device;tcp syn045" "sysbin;timsrv bin" arpanet "rfc045" "sysbin;timsrv bin" # datsrv midas "sysbin;" "sysnet;datsrv" -respond "*" ":link device;tcp syn015,sysbin;datsrv bin\r" +make_link "device;tcp syn015" "sysbin;datsrv bin" # WEBSER respond "*" ":xfile sysnet;make webser\r" expect -timeout 300 "*:kill" # mailt -respond "*" ":link sys;ts mailt,sys2;ts emacs\r" +make_link "sys;ts mailt" "sys2;ts emacs" # rmtdev midas "device;atsign rmtdev" "gz;rmtdev" @@ -445,19 +439,18 @@ midas "sys1;ts wumpus" "games; wumpus" # Jotto cwd "games" midas "games;" "jotto" -respond "*" ":job jotto\r" -respond "*" ":load jotto bin\r" -# Run initialisation code to open the TTY channels. -respond "*" "erase0\033bbeg\033g" -# Load dictionary from disk instead of DECtape. -respond "ERASE0>>" "\024ut1:*;* *, dsk:games;* *\r" -# Run the dictionary loader. -respond "*" "beg7\033g" -respond "utape drive for dictionary?" "1" -respond "file name?" "JOTTO DICT\r" -# Dump out TS JOTTO including the dictionary. -respond "words" ":pdump sys1;ts jotto\r" -respond "*" ":kill\r" +purify jotto "jotto bin" { + # Run initialisation code to open the TTY channels. + respond "*" "erase0\033bbeg\033g" + # Load dictionary from disk instead of DECtape. + respond "ERASE0>>" "\024ut1:*;* *, dsk:games;* *\r" + # Run the dictionary loader. + respond "*" "beg7\033g" + respond "utape drive for dictionary?" "1" + respond "file name?" "JOTTO DICT\r" + # Dump out TS JOTTO including the dictionary. + respond "words" ":pdump sys1;ts jotto\r" +} # ngame midas "games;ts game" "ejs;ngame" { @@ -465,8 +458,8 @@ midas "games;ts game" "ejs;ngame" { respond "Adventure (2): " "ts,adv448,games\r" respond "Adventure (1.5): " "ts,adv350,games\r" } -respond "*" ":link sys3;ts game,games;ts game\r" -respond "*" ":link info;o.info,_info_;\r" +make_link "sys3;ts game" "games;ts game" +make_link "info;o.info" "_info_;" # guess midas "games;ts guess" "games;guess" @@ -476,7 +469,7 @@ midas "sys3;ts ten50" "mrc; ten50" # who% midas "sys1;ts who%" "sysen3;who%" -respond "*" ":link sys1;ts %,sys1;ts who%\r" +make_link "sys1;ts %" "sys1;ts who%" # MACRO-10 cwd "decsys" @@ -536,34 +529,32 @@ midas "sys3;ts lotcln" "sysen1; lotcln" # itsdev midas "device;chaos itsdev" "bawden;itsdev" -respond "*" ":link device; tcp syn723, device; chaos itsdev\r" +make_link "device; tcp syn723" " device; chaos itsdev" # charfc/charfs midas "sys1;ts charfc" "sysen3;charfc" -respond "*" ":link sys1;ts charfs,sys1;ts charfc\r" +make_link "sys1;ts charfs" "sys1;ts charfc" # file midas "sysbin;" "syseng;file" -respond "*" ":job file\r" -respond "*" ":load sysbin;\r" -respond "*" "purify\033g" -respond "CHAOS FILE" "\r" -respond "*" ":kill\r" +purify file "sysbin;" { + respond "*" "purify\033g" + respond "CHAOS FILE" "\r" +} # filei, fileo midas "device;chaos filei" "eak;file" -respond "*" ":link device;chaos fileo,device;chaos filei\r" +make_link "device;chaos fileo" "device;chaos filei" # ifile midas "device;chaos ifile" "syseng;ifile" # NFILE midas "alan;" "bawden;nfile" -respond "*" ":job nfile\r" -respond "*" ":load alan;nfile bin\r" -respond "*" "purify\033g" -respond "CHAOS NFILE" "\r" -respond "*" ":kill\r" +purify nfile "alan;nfile bin" { + respond "*" "purify\033g" + respond "CHAOS NFILE" "\r" +} # 11sim midas "sys;ts pdp45" "syseng;11sim" @@ -574,23 +565,23 @@ midast "sys1;ts pdp11" "syseng;11sim" { # times midas "sysbin;times bin" "sysnet;times" -respond "*" ":link sys1;ts ctimes,sysbin;times bin\r" -respond "*" ":link sys1;ts times,sysbin;times bin\r" +make_link "sys1;ts ctimes" "sysbin;times bin" +make_link "sys1;ts times" "sysbin;times bin" # idle midas "sys1;ts idle" "gren;idle" # spell midas "sys1;ts spell" "syseng;spell" -respond "*" ":link sys1;ts espell,sys1;ts spell\r" +make_link "sys1;ts espell" "sys1;ts spell" # jobs midas "sys2;ts jobs" "sysen1;jobs" # hsndev midas "device;jobdev hsname" "sysen1;hsndev" -respond "*" ":link device;jobdev hs,device;jobdev hsname\r" -respond "*" ":link device;jobdev hf,device;jobdev hsname\r" +make_link "device;jobdev hs" "device;jobdev hsname" +make_link "device;jobdev hf" "device;jobdev hsname" # gunner midas "device; jobdev shoe" "rwk; gunner" @@ -602,21 +593,21 @@ midas "cstacy;" "gunner" # pr midas "sys1;ts pr" "sysen1;pr" -respond "*" ":link sys1;ts call,sys1;ts pr\r" -respond "*" ":link sys1;ts .call,sys1;ts pr\r" -respond "*" ":link sys1;ts uuo,sys1;ts pr\r" -respond "*" ":link sys1;ts uset,sys1;ts pr\r" -respond "*" ":link sys1;ts suset,sys1;ts pr\r" -respond "*" ":link sys1;ts doc,sys1;ts pr\r" -respond "*" ":link sys1;ts intrup,sys1;ts pr\r" -respond "*" ":link sys1;ts ttyvar,sys1;ts pr\r" -respond "*" ":link sys1;ts prim,sys1;ts pr\r" - -respond "*" ":link .info.;its .calls,sysdoc;.calls >\r" -respond "*" ":link .info.;its uuos,sysdoc;uuos >\r" -respond "*" ":link .info.;its usets,sysdoc;usets >\r" -respond "*" ":link .info.;its %pi,sysdoc;%pi >\r" -respond "*" ":link .info.;its ttyvar,sysdoc;ttyvar >\r" +make_link "sys1;ts call" "sys1;ts pr" +make_link "sys1;ts .call" "sys1;ts pr" +make_link "sys1;ts uuo" "sys1;ts pr" +make_link "sys1;ts uset" "sys1;ts pr" +make_link "sys1;ts suset" "sys1;ts pr" +make_link "sys1;ts doc" "sys1;ts pr" +make_link "sys1;ts intrup" "sys1;ts pr" +make_link "sys1;ts ttyvar" "sys1;ts pr" +make_link "sys1;ts prim" "sys1;ts pr" + +make_link ".info.;its .calls" "sysdoc;.calls >" +make_link ".info.;its uuos" "sysdoc;uuos >" +make_link ".info.;its usets" "sysdoc;usets >" +make_link ".info.;its %pi" "sysdoc;%pi >" +make_link ".info.;its ttyvar" "sysdoc;ttyvar >" # inline midas "sys2;ts inline" "sysen1;inline" @@ -644,22 +635,21 @@ midas "sys3;ts fretty" "sysen2;fretty" # bye midas "sys1;ts bye" "sysen1;bye" -respond "*" ":link device;chaos bye,sys1;ts bye\r" +make_link "device;chaos bye" "sys1;ts bye" # yow server midas "sys3;ts yow" "maeda; yow" -respond "*" ":link device;chaos yow, sys3; ts yow\r" +make_link "device;chaos yow" " sys3; ts yow" # yow client midas "sysnet;ts yow" "sysen2; yow" # @ midas "sysbin;" "sysen1;@" -respond "*" ":job @\r" -respond "*" ":load sysbin;\r" -respond "*" "purify\033g" -respond "TS @" "\r" -respond "*" ":kill\r" +purify "atsign" "sysbin;@ bin" { + respond "*" "purify\033g" + respond "TS @" "\r" +} omidas "dsk0:.;@ pt" "syseng;pt" @@ -677,7 +667,7 @@ midas "sys1;ts sty" "sysen2;sty" # luser midas "sysbin;luser bin" "syseng;luser" -respond "*" ":link sys1;ts luser,sysbin;luser bin\r" +make_link "sys1;ts luser" "sysbin;luser bin" # ARCCPY midas "sys2;ts arccpy" "sysen2;arccpy" @@ -692,22 +682,22 @@ midas "sys2;ts hostab" "sysen1;hostab" midas "sys2;ts hostat" "sysen2;hostat" # PROBE -respond "*" ":link syseng;its defs,sys;itsdfs >\r" +make_link "syseng;its defs" "sys;itsdfs >" midas "sysbin;probe bin" "bawden;probe" # note: setting debug to 0 and running causes it to pdump itself to # sys;ts probe -respond "*" ":job probe\r" -respond "*" ":load sysbin;probe bin\r" -respond "*" "debug/0\r" -type "\033g" -respond "*" ":link sys;ts pb,sys;ts probe\r" +purify probe "sysbin;probe bin" { + respond "*" "debug/0\r" + type "\033g" +} +make_link "sys;ts pb" "sys;ts probe" # TTY midas "sys1;ts tty" "sysen1;tty" # TTYLINK, just a stub. midas "sysbin;ttylin bin" "bawden; u" -respond "*" ":link device; chaos ttylin, sysbin; ttylin bin\r" +make_link "device; chaos ttylin" " sysbin; ttylin bin" # IPLJOB midas "sys;atsign ipl" "sysen2; ipljob" @@ -717,14 +707,14 @@ midas "device;atsign r.i.p." "sysen2;ripdev" # GMSGS midas "sys2;ts gmsgs" "sysen1;gmsgs" -respond "*" ":link sys2;ts expire, sys2;ts gmsgs\r" -respond "*" ":link dragon;daily expire,sys2;ts gmsgs\r" -respond "*" ":link device;chaos gmsgs,sys2;ts gmsgs\r" +make_link "sys2;ts expire" " sys2;ts gmsgs" +make_link "dragon;daily expire" "sys2;ts gmsgs" +make_link "device;chaos gmsgs" "sys2;ts gmsgs" # X, Y, Z midas "sys1;ts x" "sysen2;x" -respond "*" ":link sys1;ts y,sys1;ts x\r" -respond "*" ":link sys1;ts z,sys1;ts x\r" +make_link "sys1;ts y" "sys1;ts x" +make_link "sys1;ts z" "sys1;ts x" # LOADP midas "sys2;ts loadp" "sysen1;loadp" @@ -755,7 +745,7 @@ midas "sys3;ts crc" "gren; crc" # TMPKIL midas "sys2;ts tmpkil" "syseng;tmpkil" -respond "*" ":link dragon;hourly tmpkil,sys2;ts tmpkil\r" +make_link "dragon;hourly tmpkil" "sys2;ts tmpkil" # WHAT midas "sys2;ts what" "syseng;what" @@ -772,11 +762,11 @@ expect ":KILL" # UP midas "sys1;ts up" "sysen1;up" -respond "*" ":link sys1;ts down, sys1;ts up\r" +make_link "sys1;ts down" " sys1;ts up" # UPTIME midas "sysbin;uptime bin" "sysen1;uptime" -respond "*" ":link device;chaos uptime,sysbin;uptime bin\r" +make_link "device;chaos uptime" "sysbin;uptime bin" # SHUTDN midas "sys3;ts shutdn" "bawden;shutdn" @@ -792,7 +782,7 @@ midas "sys;ts type8" "sysen3;type8" # USQ midas "sys2;ts usq" "sysen3;usq" -respond "*" ":link sys2;ts typesq,sys2;ts usq\r" +make_link "sys2;ts typesq" "sys2;ts usq" # SCRAM midas "sys2;ts scram" "rwk;scram" @@ -802,11 +792,11 @@ midas "sys3;ts host" "sysnet;host" # EXPN/VRFY midas "sys3;ts expn" "sysnet;expn" -respond "*" ":link sys3;ts vrfy,sys3;ts expn\r" +make_link "sys3;ts vrfy" "sys3;ts expn" # MUSCOM midas "sysbin;" "syseng; muscom" -respond "*" ":link sys1;ts muscom, sysbin; muscom bin\r" +make_link "sys1;ts muscom" " sysbin; muscom bin" # BIG oomidas 77 "SYSBIN;" "SYSENG; BIG" @@ -864,11 +854,11 @@ midas "sysbin;" "sysen1; whoiml" { respond "FILE:" "whoiml\r" respond "FILE:" "sys2\r" } -respond "*" ":job whoiml\r" -respond "*" ":load sysbin; whoiml bin\r" -respond "*" "start1\033b\033g" -expect ">>" -respond " " ":kill\r" +purify whoiml "sysbin; whoiml bin" { + respond "*" "start1\033b\033g" + expect ">>" + respond " " ":vk\r" +} # VTTIME midas "sys1;ts vttime" "rvb;vttime" @@ -881,19 +871,19 @@ midas "device;chaos time" "syseng;ctimsr" # DEVICE; CHAOS SEND midas "sysbin;" "sysnet;senver" -respond "*" ":link device;chaos send,sysbin;senver bin\r" +make_link "device;chaos send" "sysbin;senver bin" # Alternate DEVICE; CHAOS SEND midas "sysbin;" "sysnet;sends" -#respond "*" ":link device;chaos send,sysbin;senver bin\r" +#make_link "device;chaos send" "sysbin;senver bin" # Chaosnet BABEL service. midas "sysbin; babel" "dcp2; babel" -respond "*" ":link device;chaos babel,sysbin; babel bin\r" +make_link "device;chaos babel" "sysbin; babel bin" # Chaosnet HOSTAB service. midas "sysbin;" "eak; chahtb" -respond "*" ":link device; chaos hostab, sysbin; chahtb bin\r" +make_link "device; chaos hostab" " sysbin; chahtb bin" arpanet "rfc121" "sysbin; chahtb bin" # Chaosnet 11LOAD service for booting MINITS. @@ -913,11 +903,11 @@ midas "sys1;ts factor" "rz;factor" # balanc midas "sys3;ts balanc" "alan;balanc" -respond "*" ":link sys3;ts movdir,sys3;ts balanc\r" +make_link "sys3;ts movdir" "sys3;ts balanc" # scrmbl and unscr midas "sys3;ts scrmbl" "ejs;scrmbl" -respond "*" ":link sys3;ts unscr,sys3;ts scrmbl\r" +make_link "sys3;ts unscr" "sys3;ts scrmbl" # ZOTZ midas "ksc; ts zotz" "zotz" @@ -939,33 +929,33 @@ expect ":KILL" # XXFILE midas "sysbin;xxfile bin" "sysen1;xxfile" -respond "*" ":job xxfile\r" -respond "*" ":load sysbin;xxfile bin\r" -respond "*" "ttyop1\033b\033g" -expect ":PDUMP SYS2;TS XXFILE" -expect ">>" -respond " " ":kill\r" +purify xxfile "sysbin;xxfile bin" { + respond "*" "ttyop1\033b\033g" + expect ":PDUMP SYS2;TS XXFILE" + expect ">>" + respond " " ":vk\r" +} # MSEND midas "sysbin;" "sysen2;msend" -respond "*" ":job msend\r" -respond "*" ":load sysbin;msend bin\r" -respond "*" "ttyopn\033b\033g" -expect ">>" -respond " " ":kill\r" +purify msend "sysbin;msend bin" { + respond "*" "ttyopn\033b\033g" + expect ">>" + respond " " ":vk\r" +} # IMLOAD and IMTRAN midas "sys1; ts imload" "syseng; imload" -respond "*" ":link sys1; ts imtran, sys1; ts imload\r" +make_link "sys1; ts imtran" " sys1; ts imload" # UNTRAN midas "imlac; ts untran" "untran" # IMPRNT midas "sys1; ts imprnt" "syseng; imprnt" -respond "*" ":link sys1; ts imprin, sys1; ts imprnt\r" -respond "*" ":link sys1; ts ardprn, sys1; ts imprnt\r" -respond "*" ":link sys1; ts tekprn, sys1; ts imprnt\r" +make_link "sys1; ts imprin" " sys1; ts imprnt" +make_link "sys1; ts ardprn" " sys1; ts imprnt" +make_link "sys1; ts tekprn" " sys1; ts imprnt" # IMGOUT midas "sys3; ts imgout" "cbf; imgout" @@ -1009,7 +999,7 @@ respond "*" ":imtran\r" respond "@" "imlac; ssv22 iml_sysbin; ssv22 bin\r" respond "@" "\021" expect ":KILL" -respond "*" ":link imlac; .prgm. normal, imlac; ssv22 iml\r" +make_link "imlac; .prgm. normal" " imlac; ssv22 iml" # Assemble SSV4. midas "imlac; ts assv4" "assv4" @@ -1036,12 +1026,11 @@ midas "sysbin;" "klh; mazser" { respond "DEBUG=" "1\r" respond "STATS=" "1\r" } -respond "*" ":job maze\r" -respond "*" ":load sysbin; mazser bin\r" -respond "*" ":start init\r" -respond "M IML" "\r" -respond ":PDUMP" "games; ts maze\r" -respond "*" ":kill\r" +purify maze "sysbin; mazser bin" { + respond "*" ":start init\r" + respond "M IML" "\r" + respond ":PDUMP" "games; ts maze\r" +} # SWAR midas "imlac;" "imsrc; swar" { @@ -1073,13 +1062,12 @@ respond "@" "\021" # The old CLIB has a UFA instruction which doesn't work on a KS10. # Patch out the call to FIXIFY. -respond "*" ":job cc\r" -respond "*" ":load c; ts cc\r" -respond "*" "55107/" -respond "FIXIFY" "jfcl\r" -respond "UNPURE" ":corblk pure,55107\r" -respond "*" ":pdump c; ts cc\r" -respond "*" ":kill\r" +purify cc "c; ts cc" { + respond "*" "55107/" + respond "FIXIFY" "jfcl\r" + respond "UNPURE" ":corblk pure,55107\r" + respond "*" ":pdump c; ts cc\r" +} # CLIB cwd "clib" @@ -1202,12 +1190,11 @@ expect ":KILL" # TJ6 midas "sysbin;" "tj6;tj6" -respond "*" ":job tj6\r" -respond "*" ":load sysbin; tj6 bin\r" -respond "*" "purify\033g" -respond "DSK: SYS; TS NTJ6" "\r" -respond "*" ":kill\r" -respond "*" ":link sys; ts tj6, sys; ts ntj6\r" +purify tj6 "sysbin; tj6 bin" { + respond "*" "purify\033g" + respond "DSK: SYS; TS NTJ6" "\r" +} +make_link "sys; ts tj6" " sys; ts ntj6" # Old TJ6. midas "sys2; ts otj6" "tj6; otj6" @@ -1218,7 +1205,7 @@ respond "*" ":cc rcntrl rdev rexpr rfile rfonts richar ridn rin rin1 rin2\r" respond "*" ":cc rits rline rlpt rmain rmisc rout rreadr rreg rreq1 rreq2\r" respond "*" ":cc rreq3 rtext rtoken rtrap rvaria rxgp\r" respond "*" ":stinkr r\r" -respond "*" ":link sys3; ts r, r; ts r30\r" +make_link "sys3; ts r" " r; ts r30" # sys2; ts rr -> r; ts rr # .info.; r info -> r; r info # .info.; r recent -> r; r recent @@ -1228,14 +1215,13 @@ respond "*" ":link sys3; ts r, r; ts r30\r" # Binary patch Lisp image to work on ITS not named AI, ML, MC, or DM. # This is for Bolio. -respond "*" ":job purqio\r" -respond "*" ":load sys; purqio 2138\r" -respond "*" "udirset+20/" -# Cross fingers, nop out valret, hope for best! -respond ".VALUE" "JFCL\r" -respond "UNPURE" ":corblk pure .\r" -respond "*" ":pdump sys; purqio 2138\r" -respond "*" ":kill\r" +purify purqio "sys; purqio 2138" { + respond "*" "udirset+20/" + # Cross fingers, nop out valret, hope for best! + respond ".VALUE" "JFCL\r" + respond "UNPURE" ":corblk pure .\r" + respond "*" ":pdump sys; purqio 2138\r" +} proc build_c_program {input output {libs {}}} { respond "*" ":cc $input\r" @@ -1273,32 +1259,29 @@ build_c_program "cprog/rstat" "cprog/ts.rstat" # Versatec spooler # This has some harmless unresolved symbols (FOO, XE4). midas "sys3;ts versa" "dcp; versa" -# respond "*" ":link channa; rakash v80spl,sys3; ts versa\r" +# make_link "channa; rakash v80spl" "sys3; ts versa" # SCAN midas "sysbin;" "sysen1; scan" -respond "*" ":job scan\r" -respond "*" ":load sysbin; scan bin\r" -respond "*" "purify\033g" -respond "*" ":pdump sys3; ts scan\r" -respond "*" ":kill\r" +purify scan "sysbin; scan bin" { + respond "*" "purify\033g" + respond "*" ":pdump sys3; ts scan\r" +} # DDT subroutines midas "sys3;ts cmd" "dcp; cmd" # XGP and GLP midas "sysbin;xgp bin" "sysen2;xqueue" -respond "*" ":job xgp\r" -respond "*" ":load sysbin;xgp bin\r" -respond "*" "debug/0\r" -type ":pdump sys;ts xgp\r" -respond "*" ":kill\r" +purify xgp "sysbin;xgp bin" { + respond "*" "debug/0\r" + type ":pdump sys;ts xgp\r" +} midast "sysbin;glp bin" "sysen2;xqueue" { respond "with ^C" "GLP==1\r\003" } -respond "*" ":job glp\r" -respond "*" ":load sysbin;glp bin\r" -respond "*" "debug/0\r" -type ":pdump sys2;ts glp\r" -respond "*" ":kill\r" +purify glp "sysbin;glp bin" { + respond "*" "debug/0\r" + type ":pdump sys2;ts glp\r" +} # XGPDEV and GLPDEV midas "device;jobdev xgp" "sysen2;xgpdev" @@ -1372,8 +1355,8 @@ midas "rug; ts punch" "punch" # LODER, PDP-11 file transfer. midas "rug;" "loder" -respond "*" ":link sys; ts nloder, rug; loder bin\r" -respond "*" ":link sys1; ts mloder, rug; loder bin\r" +make_link "sys; ts nloder" " rug; loder bin" +make_link "sys1; ts mloder" " rug; loder bin" # SITS. cwd "sits" diff --git a/build/muddle.tcl b/build/muddle.tcl index ee8b9648f..b05a79ce3 100644 --- a/build/muddle.tcl +++ b/build/muddle.tcl @@ -24,20 +24,20 @@ midas "mudsys; ts mksvfl" "mudsys;mksvfl" # Run mksvfl to create pure library for MDL 54 for the purposes of the 500-point zork midas "sys3; ts mudinq" "sysen2; mudinq" -respond "*" ":link sys3; ts purge, sys3; ts mudinq\r" -respond "*" ":link sys3; ts makscr, sys3; ts mudinq\r" -respond "*" ":link sys3; ts status, sys3; ts mudinq\r" -respond "*" ":link sys3; ts whomud, sys3; ts mudinq\r" +make_link "sys3; ts purge" " sys3; ts mudinq" +make_link "sys3; ts makscr" " sys3; ts mudinq" +make_link "sys3; ts status" " sys3; ts mudinq" +make_link "sys3; ts whomud" " sys3; ts mudinq" -respond "*" ":link sys3; ts mdl,mudsav; ts mud56\r" -respond "*" ":link sys3; ts muddle,mudsav; ts mud56\r" +make_link "sys3; ts mdl" "mudsav; ts mud56" +make_link "sys3; ts muddle" "mudsav; ts mud56" midas "sys3; ts mudcom" "sysen3; mudcom" { respond "(Y OR N)" "Y\r" } -respond "*" ":link sys3; ts mudchk, sys3; ts mudcom\r" -respond "*" ":link sys3; ts mudlst, sys3; ts mudcom\r" -respond "*" ":link sys3; ts mudfnd, sys3; ts mudcom\r" +make_link "sys3; ts mudchk" " sys3; ts mudcom" +make_link "sys3; ts mudlst" " sys3; ts mudcom" +make_link "sys3; ts mudfnd" " sys3; ts mudcom" midas "sys3; ts combat" "sysen3; combat" { respond "(Y OR N)" "Y\r" @@ -45,7 +45,7 @@ midas "sys3; ts combat" "sysen3; combat" { midas "sys3; ts pick" "sysen2; pick" -respond "*" ":link sys1;ts mud55,mudsav;ts mud55\r" +make_link "sys1;ts mud55" "mudsav;ts mud55" #Build Muddle PCOMP compiler. midas "sys1;ts pcomp" "mudsys;subsys maker" { @@ -138,7 +138,7 @@ midas "sys;atsign batchn" "mudsys;subsys maker" { # Now build BATCH user program (interfaces with BATCHN daemon) -respond "*" ":link libmud;pmap fbin,mbprog;pmap fbin\r" +make_link "libmud;pmap fbin" "mbprog;pmap fbin" respond "*" ":ecomp\r" respond "T" "\033" diff --git a/build/sail.tcl b/build/sail.tcl index 3974491bf..57c3880b6 100644 --- a/build/sail.tcl +++ b/build/sail.tcl @@ -20,23 +20,23 @@ respond "\n" "\033y sail; fail bin\r" respond "*" ":kill\r" # Make links needed for SUDS. -respond "*" ":link wl; switch 999999, draw; switch >\r" -respond "*" ":link wl; first 999999, draw; first >\r" -respond "*" ":link wl; sigsub 999999, draw; sigsub >\r" -respond "*" ":link draw; board0 999999, wl; board0 >\r" -respond "*" ":link draw; board1 999999, wl; board1 >\r" -respond "*" ":link draw; board2 999999, wl; board2 >\r" -respond "*" ":link draw; decloc 999999, wl; decloc >\r" -respond "*" ":link draw; lg627 999999, wl; lg627 >\r" -respond "*" ":link draw; lg684 999999, wl; lg684 >\r" -respond "*" ":link draw; mpg21 999999, wl; mpg21 >\r" -respond "*" ":link draw; mpg216 999999, wl; mpg216 >\r" -respond "*" ":link draw; ncp13 999999, wl; ncp13 >\r" -respond "*" ":link draw; ug61c 999999, wl; ug61c >\r" -respond "*" ":link sys1; ts d, datdrw; d bin\r" -respond "*" ":link sys1; ts wl, datdrw; wl bin\r" -respond "*" ":link sys1; ts pc, datdrw; pc bin\r" -respond "*" ":link sys1; ts scnv, datdrw; scnv bin\r" +make_link "wl; switch 999999" " draw; switch >" +make_link "wl; first 999999" " draw; first >" +make_link "wl; sigsub 999999" " draw; sigsub >" +make_link "draw; board0 999999" " wl; board0 >" +make_link "draw; board1 999999" " wl; board1 >" +make_link "draw; board2 999999" " wl; board2 >" +make_link "draw; decloc 999999" " wl; decloc >" +make_link "draw; lg627 999999" " wl; lg627 >" +make_link "draw; lg684 999999" " wl; lg684 >" +make_link "draw; mpg21 999999" " wl; mpg21 >" +make_link "draw; mpg216 999999" " wl; mpg216 >" +make_link "draw; ncp13 999999" " wl; ncp13 >" +make_link "draw; ug61c 999999" " wl; ug61c >" +make_link "sys1; ts d" " datdrw; d bin" +make_link "sys1; ts wl" " datdrw; wl bin" +make_link "sys1; ts pc" " datdrw; pc bin" +make_link "sys1; ts scnv" " datdrw; scnv bin" # The drawing program needs WL; BOARDS REL cwd "wl" diff --git a/build/scheme.tcl b/build/scheme.tcl index e153e8fd1..78bf830a6 100644 --- a/build/scheme.tcl +++ b/build/scheme.tcl @@ -1,10 +1,7 @@ log_progress "ENTERING BUILD SCRIPT: SCHEME" # Old? Scheme interpreter -respond "*" "complr\013" -respond "_" "scheme;_nschsy\r" -respond "_" "\032" -type ":kill\r" +complr {"scheme;_nschsy"} respond "*" ":lisp\r" respond "Alloc?" "n" respond "*" {(load "scheme; nschsy fasl")} @@ -12,16 +9,11 @@ respond "\n" "(schemedump)" respond "==>" "(quit)" # New Scheme interpreter -respond "*" "complr\013" -respond "_" "quux;_schint lsp\r" -respond "_" "quux;_schmac lsp\r" -respond "_" "quux;_schuuo lsp\r" -respond "_" "\032" -type ":kill\r" +complr {"quux;_schint lsp" "quux;_schmac lsp" "quux;_schuuo lsp"} -respond "*" ":link quux;scheme interp, schint fasl\r" -respond "*" ":link quux;scheme macros, schmac fasl\r" -respond "*" ":link quux;scheme uuohan, schuuo fasl\r" +make_link "quux;scheme interp" " schint fasl" +make_link "quux;scheme macros" " schmac fasl" +make_link "quux;scheme uuohan" " schuuo fasl" respond "*" ":lisp quux;scheme (dump)\r" # Fails the build, disabled for now. @@ -32,10 +24,7 @@ respond "==>" {(schload "scheme; rabbit")} respond "==>" {(comfile "scheme; rabbit")} expect -timeout 3600 "COMPILE TIME:" respond "==>" "(quit)" -respond "*" ":complr\r" -respond "_" "scheme;_rabbit lisp\r" -respond "_" "\032" -type ":kill\r" +complr {"scheme;_rabbit lisp"} respond "*" ":scheme;scheme\r" respond "==>" {(schload "scheme; rabbit fasl")} respond "==>" "(dumpit)" diff --git a/build/shrdlu.tcl b/build/shrdlu.tcl index b204225c6..0eec71c86 100644 --- a/build/shrdlu.tcl +++ b/build/shrdlu.tcl @@ -4,59 +4,24 @@ cwd "shrdlu" # first, compile all the sources that should be compiled -respond "*" ":complr graphf\r" -respond "Job COMPLR finished" ":kill\r" - -respond "*" ":complr macros\r" -respond "Job COMPLR finished" ":kill\r" - -respond "*" ":complr proggo\r" -respond "Job COMPLR finished" ":kill\r" - -respond "*" ":complr plnr\r" -respond "Job COMPLR finished" ":kill\r" - -respond "*" ":complr thtrac\r" -respond "Job COMPLR finished" ":kill\r" - -respond "*" ":complr syscom\r" -respond "Job COMPLR finished" ":kill\r" - -respond "*" ":complr morpho\r" -respond "Job COMPLR finished" ":kill\r" - -respond "*" ":complr show\r" -respond "Job COMPLR finished" ":kill\r" - -respond "*" ":complr progmr\r" -respond "Job COMPLR finished" ":kill\r" - -respond "*" ":complr ginter\r" -respond "Job COMPLR finished" ":kill\r" - -respond "*" ":complr gramar\r" -respond "Job COMPLR finished" ":kill\r" - -respond "*" ":complr dictio\r" -respond "Job COMPLR finished" ":kill\r" - -respond "*" ":complr smspec\r" -respond "Job COMPLR finished" ":kill\r" - -respond "*" ":complr smass\r" -respond "Job COMPLR finished" ":kill\r" - -respond "*" ":complr smutil\r" -respond "Job COMPLR finished" ":kill\r" - -respond "*" ":complr newans\r" -respond "Job COMPLR finished" ":kill\r" - -respond "*" ":complr blockp\r" -respond "Job COMPLR finished" ":kill\r" - -respond "*" ":complr blockl\r" -respond "Job COMPLR finished" ":kill\r" +complr {"graphf"} +complr {"macros"} +complr {"proggo"} +complr {"plnr"} +complr {"thtrac"} +complr {"syscom"} +complr {"morpho"} +complr {"show"} +complr {"progmr"} +complr {"ginter"} +complr {"gramar"} +complr {"dictio"} +complr {"smspec"} +complr {"smass"} +complr {"smutil"} +complr {"newans"} +complr {"blockp"} +complr {"blockl"} # now load up a compiled version of SHRDLU respond "*" ":lisp\r" diff --git a/build/timestamps.txt b/build/timestamps.txt index 0b2f24e2d..062877258 100644 --- a/build/timestamps.txt +++ b/build/timestamps.txt @@ -950,7 +950,7 @@ info/tip.2 198105191613.22 _info_/tj6.info 197407011344.08 _info_/tj6.order 197606110701.50 info/tmacs.12 198104240012.01 -_info_/tn6.info 197403067415.11 +_info_/tn6.info 197403060715.11 info/trace.1 198002261128.57 _info_/trmctl.aaa 197902091956.02 _info_/trmctl.houstn 198107121646.59 diff --git a/build/zork.tcl b/build/zork.tcl index 7440c0319..55333b3ae 100644 --- a/build/zork.tcl +++ b/build/zork.tcl @@ -5,7 +5,7 @@ midas "sys2; ts ozork" "taa; zork" # New Zork startup midas "sys; ts rbye" "cfs; zork" -respond "*" ":link sys1;ts zork, sys; ts rbye\r" +make_link "sys1;ts zork" " sys; ts rbye" mkdir "cfs"