mirror of
https://github.com/PDP-10/its.git
synced 2026-01-18 01:02:15 +00:00
133 lines
2.3 KiB
Groff
Executable File
133 lines
2.3 KiB
Groff
Executable File
;-*-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
|