1
0
mirror of https://github.com/PDP-10/its.git synced 2026-01-13 15:27:28 +00:00

Added X, Y, and Z.

Resolves #304.
This commit is contained in:
Eric Swenson 2016-12-20 16:19:39 -08:00 committed by Lars Brinkhoff
parent a632f5cbc3
commit b07ccdcf15
4 changed files with 98 additions and 0 deletions

View File

@ -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.

View File

@ -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"

8
doc/_info_/x.info Executable file
View File

@ -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<CR>"
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.

83
src/sysen2/x.9 Executable file
View File

@ -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