From b07ccdcf15393475e4c40d0b0ff0d70d049c946d Mon Sep 17 00:00:00 2001 From: Eric Swenson Date: Tue, 20 Dec 2016 16:19:39 -0800 Subject: [PATCH] Added X, Y, and Z. Resolves #304. --- README.md | 1 + build/build.tcl | 6 ++++ doc/_info_/x.info | 8 +++++ src/sysen2/x.9 | 83 +++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 98 insertions(+) create mode 100755 doc/_info_/x.info create mode 100755 src/sysen2/x.9 diff --git a/README.md b/README.md index 48dcf623..90cdcde3 100644 --- a/README.md +++ b/README.md @@ -220,6 +220,7 @@ A list of [known ITS machines](doc/machines.md). - UPTIME, Chaosnet uptime server. - WHAT, humorous quips to various "what" questions. - WHO%, list index/uname/jname/%time in sorted list. + - X, Y, Z, remember DDT command and re-execute it. 6. A brand new host table is built from the host table source and installed into SYSBIN; HOSTS3 > using H3MAKE. diff --git a/build/build.tcl b/build/build.tcl index b0bb3b35..43016b65 100644 --- a/build/build.tcl +++ b/build/build.tcl @@ -996,6 +996,12 @@ respond "*" ":midas sys2;ts gmsgs_sysen1;gmsgs\r" expect ":KILL" respond "*" ":link dragon;daily expire,sys2;ts gmsgs\r" +# X, Y, Z +respond "*" ":midas sys1;ts x_sysen2;x\r" +expect ":KILL" +respond "*" ":link sys1;ts y,sys1;ts x\r" +respond "*" ":link sys1;ts z,sys1;ts x\r" + # LOADP respond "*" ":midas sys2;ts loadp_sysen1;loadp\r" expect ":KILL" diff --git a/doc/_info_/x.info b/doc/_info_/x.info new file mode 100755 index 00000000..1076db2e --- /dev/null +++ b/doc/_info_/x.info @@ -0,0 +1,8 @@ +úSi a1/10/76 THE PROGRAM X REMEMBERS A DDT COMMAND FORôgÕ] +PREFIX A LINE OF DDT COMMANDS WITH ":X " TO EXECUTE THEM +AND SET :X'S MEMORY. FROM THEN ON, JUST PLAIN ":X" +WILL RE-EXECUTE THEM. Y AND XM ALSO EXIST, AND EACH REMEMBERS +ITS OWN COMMAND LINE. MORE CAN BE CREATED BY LINKING TO +SYS;TS X (FROM YOUR OWN DIRECTORY OR FROM SYS1;). +THE MEMORY IS ONô$Ó—õˆ$ÎAø(#I™E WHOSE FIRST Nø3b “S +_Xôé ¿Y OR _XM OR WHATEVER, AND WHOSE SECOND NAME IS YOUR UNAME. diff --git a/src/sysen2/x.9 b/src/sysen2/x.9 new file mode 100755 index 00000000..93a0b7f8 --- /dev/null +++ b/src/sysen2/x.9 @@ -0,0 +1,83 @@ + +;-*-MIDAS-*- + +TITLE X ;REMEMBER AND RE-EXECUTE A COMMAND STRING. + +.INSRT RMS;MACROS > + +TYOC==1 +DSKC==2 + +IFNDEF CMDBFL,CMDBFL==1000. + +BEG: .SUSET [.RXUNAM,,XUNAME] + .SUSET [.RHSNAM,,HSNAME] + .SUSET [.RXJNAM,,B] + LSH B,-6 + TLO B,(SIXBIT/_/) + .SUSET [.ROPTIO,,A] + TLNN A,OPTCMD + JRST NOJCL + .BREAK 12,[5,,CMDBUF] + SYSCAL OPEN,[[.BAO,,DSKC] ? ['DSK,,] ? XUNAME ? B ? HSNAME] + JRST NODSK + SKIPN CMDBUF + JRST NOJCL + MOVE A,[440700,,CMDBUF] +LOOP: ILDB C,A + CAIN C,^C + JRST NOLOOP + JUMPE C,NOLOOP + CAIE C,^M ;FIND THE CR ENDING THE JCL + JRST LOOP + MOVEI C,^J ;AND PUT A LF AFTER IT. + IDPB C,A +NOLOOP: SETZ A, + SKIPE CMDBUF(A) + AOJA A,.-1 + MOVNS A + HRLZS A + HRRI A,CMDBUF + .IOT DSKC,A +NOJCL: SYSCAL OPEN,[[.BAI,,DSKC] ? ['DSK,,] ? XUNAME ? B ? HSNAME] + JRST NOFILE + MOVE A,[-CMDBFL,,CMDBUF] + .IOT DSKC,A + SETZM (A) + SUBI A,1 ;FLUSH CONTROL-C'S AT EOF + HRLI A,010700 +FLSCTC: LDB B,A + CAIE B,^C + JRST FLSCTX + MOVEI B,0 + DPB B,A + ADD A,[070000,,] + JUMPGE A,FLSCTC +FLSCTX: .VALUE VALCOM + +NODSK: MOVEI A,[ASCIZ/CAN'T WRITE DISK FILE/] + JRST NO + +NOFILE: MOVEI A,[ASCIZ/CAN'T READ DISK FILE/] + JRST NO + +NO: SYSCAL OPEN,[[.UAO,,TYOC] ? ['TTY,,]] + .VALUE + HRLI A,440700 +NO1: ILDB B,A + JUMPE B,KILL + .IOT TYOC,B + JRST NO1 + +KILL: DPAUSE + .BREAK 16,40000 + +VALCOM: ASCII/:KILL / +CMDBUF: BLOCK CMDBFL + -1 + +XUNAME: 0 ;USER'S XUNAME +HSNAME: 0 ;USER'S HOME DIRECTORY. +DEBUG: -1 ;-1 IF DEBUGGING. + +END BEG \ No newline at end of file