1
0
mirror of https://github.com/PDP-10/its.git synced 2026-01-18 01:02:15 +00:00
2017-01-28 12:31:14 -08:00

133 lines
2.3 KiB
Groff
Executable File
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

;-*-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