1
0
mirror of https://github.com/PDP-10/its.git synced 2026-02-09 18:01:01 +00:00

PSEND - super sender.

This commit is contained in:
Lars Brinkhoff
2017-01-28 19:00:35 +01:00
committed by Eric Swenson
parent 21896d5513
commit 942faf8f57
3 changed files with 137 additions and 0 deletions

View File

@@ -192,6 +192,7 @@ A list of [known ITS machines](doc/machines.md).
- PRINT, print long-named files.
- PROBE, probe inside job and display various information about it.
- PRUFD, list files on disk volume.
- PSEND, super sender.
- PTY, pseudo-tty.
- PWMAIL, a limited version of MAIL when not yet logged in under PWORD.
- PWORD, replacement for sys;atsign hactrn that requires registered logins.

View File

@@ -792,6 +792,10 @@ 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"
# psend
respond "*" ":midas sys3;ts psend_sysen2;b\r"
expect ":KILL"
# more lisp packages
respond "*" ":link lisp;tty fasl,liblsp;tty fasl\r"
respond "*" "complr\013"

132
src/sysen2/b.5 Executable file
View File

@@ -0,0 +1,132 @@
;-*-Midas-*-
TITLE Super Sender!
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;
;;; Format:
;;;
;;; :PSEND <uname> <message> ^C
;;;
;;; Output:
;;;
;;; [Msg from UNAME:]
;;; <Message>
;;;
;;;
;;; Only one line JCL sent, and only same-site sends allowed.
;;;
;;; Written By SPC@AI
;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
A=1 ;General purpose
B=2
C=3
J=10 ;Pointer to JCL
CLIC==1 ;CLI output chnl
USRC==2 ;USR: chnml to see if target logged in
JCLEN==20 ;Allow 80. chars of jcl
UNAME: 0 ;Your uname
TARGET: 0 ;Uname of who you're sending to.
COLON: ":
BLM: "M
LS: "s
LG: "g
LEF: "f
LR: "r
LO: "o
LM: "m
SP: 40 ;Space
OPENB: "[
CLOSEB: "]
CR: 15 ;Carriage Return
JCLBUF: BLOCK JCLEN
-1
DEFINE SYSCAL OP,ARGS
.CALL [SETZ ? SIXBIT /OP/ ? ARGS ((SETZ))]
TERMIN
BEGIN: .BREAK 12,[..RJCL,,JCLBUF] ;Get JCL
MOVE J,[440700,,JCLBUF] ;Make pointer to same
MOVE A,[440600,,TARGET] ;Pointer (6bit) to target
.SUSET [.RUNAME,,UNAME]
GETARG: ILDB B,J ;Get a char from JCL
CAME B,SP ;Uname ends in any of ^C, ^M, ^_, or Space
CAIN B,^M
JRST GETEXT
CAIE B,^_
CAIN B,^C
JRST GETEXT
AOS C ;This is the Cth char
CAMG B,SP
ADDI B,100
CAIL B,140
SUBI B,40
SUBI B,40 ;Make sixbit
IDPB B,A ;Put chr in Target
CAIE C,6 ;Was this 6th char (last possible)?
JRST GETARG ;Nope.
ILDB B,J
GETEXT: CAME B,SP
.VALUE [ASCIZ /
:No message??  :KILL /]
SYSCAL OPEN,[%CLBIT,,.BII
%CLIMM,,USRC
[SIXBIT /USR/] ;Target logged in?
TARGET
[SIXBIT /HACTRN/]]
.VALUE [ASCIZ /
:Not logged in.  :KILL /]
.CLOSE USRC,
SENDIT: SYSCAL OPEN,[%CLBIT,,.UAO
%CLIMM,,CLIC
[SIXBIT /CLI/] ;Open CLI to send
TARGET
[SIXBIT /HACTRN/]]
.VALUE [ASCIZ /
:The cretin is gagged..  :KILL /]
.IOT CLIC,[177]
.IOT CLIC,OPENB ;"["
.IOT CLIC,BLM
.IOT CLIC,LS
.IOT CLIC,LG
.IOT CLIC,SP
.IOT CLIC,LEF
.IOT CLIC,LR
.IOT CLIC,LO
.IOT CLIC,LM
.IOT CLIC,SP
MOVE A,UNAME
SETZ B,
ROTC A,6 ;UNAME
ADDI B,40
.IOT CLIC,B
JUMPN A,.-4
.IOT CLIC,CLOSEB
.IOT CLIC,COLON
.IOT CLIC,CR
.IOT CLIC,SP
.IOT CLIC,SP
OUTMSG: ILDB C,J
CAIE C,^M
CAIN C,^C
JRST CLOSE
CAIN C,^_
JRST CLOSE
.IOT CLIC,C
JRST OUTMSG
CLOSE: .CLOSE CLIC,
.BREAK 16,44000
END BEGIN