From ec2b7579d742d98d79a034b9539ce4b619508576 Mon Sep 17 00:00:00 2001 From: Eric Swenson Date: Sat, 3 Dec 2016 14:09:30 -0800 Subject: [PATCH] Added SEND/REPLY, as replacements for DDT's :SEND. --- README.md | 1 + build/build.tcl | 12 ++ doc/info/sender.1 | 299 ++++++++++++++++++++++++++++++++++++++++++ src/sysen1/sender.397 | Bin 0 -> 59187 bytes 4 files changed, 312 insertions(+) create mode 100755 doc/info/sender.1 create mode 100644 src/sysen1/sender.397 diff --git a/README.md b/README.md index 1b82f6fe..6888cfff 100644 --- a/README.md +++ b/README.md @@ -105,6 +105,7 @@ from scratch. - INQUIR, user account database - PWORD, replacement for sys;atsign hactrn that requires registered logins - PANDA, user account management program + - SEND, REPLY, replacements for DDT :SEND 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 c54ca1ef..2cc5679b 100644 --- a/build/build.tcl +++ b/build/build.tcl @@ -607,6 +607,18 @@ respond "*" ":pdump sysbin;panda bin\r" respond "*" ":link sys;atsign pword,sysbin;pword bin\r" respond "*" ":link sys;ts panda,sysbin;panda bin\r" +# sender +respond "*" ":midas sysbin;sender_sysen1;sender\r" +expect ":KILL" +respond "*" ":link sys;ts freply,sysbin;sender bin\r" +respond "*" ":link sys;ts send,sysbin;sender bin\r" +respond "*" ":link sys2;ts fr,sysbin;sender bin\r" +respond "*" ":link sys2;ts reply,sysbin;sender bin\r" +respond "*" ":link sys3;ts fs,sysbin;sender bin\r" +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" + # ndskdmp tape respond "*" ":link kshack;good ram,.;ram ram\r" diff --git a/doc/info/sender.1 b/doc/info/sender.1 new file mode 100755 index 00000000..cff203f9 --- /dev/null +++ b/doc/info/sender.1 @@ -0,0 +1,299 @@ +-*-Text-*- +Last update 10:52pm Saturday, 13 March 1982 + +File: SENDER, Node: Top, Up: (DIR), Next: General + +SENDER is a program used to send messages to other users, be they on an +ITS, some ARPAnet site, or somewhere on the Chaosnet. + +SENDER behaves differently depending on the jname it is run under. See +menu item JNAMES for the list of recognized jobnames, and what they do. + + +* Menu: + +* General:: General outline of what it can do for you. Why use it? +* Control:: Control codes with special meanings, during input. +* Escape:: Command level entered by hitting . +* Errors:: Errors like (Can't) and what they mean. +* Jnames:: Correlates SENDERs running jnames to actions. + + +File: SENDER, Node: General, Next: Control, Up: Top + +SENDER is a single program that can take the place of + + o DDT's :SEND + o :QSEND (mostly) + o :REPLY and variants + o :LMSEND + +In its simplest use, as :SEND, you can send to a user anywhere. There +is no need for you to do :LMSEND for ChaosNet, and :QSEND for ArpaNet, +or whatever. Using SENDER, you just do :SEND @, and it gets +where it needs to. + +SENDER has these advantages over DDT's built-in :SEND: + + o Better editing + o Loading/Dumping of message text + o Allows specification of "From:" and "To:" fields + o Has a re-try and mail command + o Can do multiple-recipient sends + +The disadvantage of using SENDER over DDT's :SEND is that SENDER is a +program, and requires a job slot and all attached frills to work, while +DDT is *always* there, and you can always use it. This, however, is +not all so bad, seeing as how DDT also has the :OSEND command, which +does the same thing as :SEND normally does, no matter what SNDFLG is +set at. So using SENDER, you have the option of either :SEND (using +SENDER), or :OSEND (using :DDT). + +If you want to use SENDER, then what you do is put in ..SNDFLG any non- +zero value. This tells DDT that ":SEND" should look for the program +named SEND, and not use the built-in one. Then you just need a link or +translation of TS SEND to the binary (KP;SENDER BIN on MC), and you're +set. + + +File: SENDER, Node: Control, Next: Escape, Up: Top, Previous: General + +Control codes recognized while typing in text - SENDER's set of editing +characters is a superset of DDT's: + + is delete-back-character + ^U is delete-line + ^W is delete-back-word + +Also, there is + + ^T Transpose last two letters + ^R Retype line + ^Q Quote next character + ^L Retype entire text + ^D,^G Flush program - Must be confirmed if there's any text + +and lastly + + ^C Send message. + ^P Polygramme send (See node on Escape commands). + Enter alternate command mode + +A similar list can be obtained by typing [HELP] or ^_H anytime while +entering text. + + +File: SENDER, Node: Escape, Next: Errors, Up: Top, Previous: Control + +The command break entered by hitting : + +Hitting while entering text puts you at a command level for +doing assorted esoteric things, from which you hit to get back +to entering text. Commands known here are: + + A, I Append/Insert file. The specified file is tacked + onto the end of the text, and number of characters + loaded is shown. + + B Print very Brief list of these Meta commands, for + people who don't want to sit through the long one + (and since it can't be ^S-flushed) + + C Commented mail. Mails the text, putting the + comment [This was a failing send] and a dividing + line of dashes before the actual text - Nice if + the person you're sending to logs off and you + want them to know you *tried* to send. + + D Dump text. Dumps the message text to the specified + file, and shows the number of character saved. + + F Specify the "From:" field for this message. The + text is not parsed, just taken as a literal string. + The verbose header when this is done looks like + + [Message from FRUFRU at MIT-MC (really from Gronk) HH:MMxm] + + and the short header like + + [FRUFRU (Gronk): xxxxxxx ... ] + + Assuming "Gronk" was typed to the From: prompt, and you + are named FRUFRU (I don't know WHY you'd be named FRUFRU, + but there's no accounting for taste). + + H, ? Help - Prints a relatively short (compared to this one) + explanation of these Escape commands. It's relatively + LONG compared to the one given by 'B'. + + J Prints a short table of SENDER jnames and functions: + an exceedingly cut-down version of menu item JNAMES. + + K Kaosnet. When a message is determined to come from an + ITS site, the normal method of replying is via Core + Link Interrupt, or CLI (this is what DDT's send uses). + Doing a "K" toggles this setting, from CLI to Chaosnet, + and back again. + + M Mails the text of the message, then quits. + + N Next send. This takes the Next send physically in your + sends file, and parses it for name@site to reply to. + Note that the next physical send is the previous chron- + ological one. Next prints (n) and then the new name@site + where n is the number of the send in your file (top one + is 1, next is 2, etc) + + P Polygramme send. The rather dubious facility for sending + the message text to multiple recipients. This asks you + "Poly-To:" and takes a line of text. It then sends to the + current name@site (just like Send)... but once done, it + checks to see if you specified anything in the To-list. + If you did, it parses that string for the first name@site, + and then sends the message to that person, and then reads + the next, and sends, and so on. Note that the during a + Polygramme, the Send command is redefined to mean "Send + to the next person on the To-list". + + Q Quit. Must be confirmed if there is any text. + + R Reply. Use the 1st send in your sends file to get the + name@site from, then displays it. Note that this + command forces a re-open of your sends file, so that + a message which came after you've already begun will + be gotten, and not the one which was top When You + Started. + + S Send. Tries to send the message. If it fails, you get + the error (Can't), and return to Escape level. + + T To. Lets you enter explicitly the "To:" name@site for + this message. + + V Verbosity. Toggles the flag that tells whether this + message is to the have a full-length header, or a short + one. This flag only matters for CLI messages. + + W Prints the current name@site: who SENDER will try and + send to if you were to do "S" right now. + + Z Zero buffer. Must be confirmed. Zeroes out the message + buffer, actually just sets the length counter to 0. + + +File: SENDER, Node: Errors, Next: Jnames, Up: Top, Previous: Escape + +Errors that SENDER barfs at you, and what they mean. + + +(Can't) means that the message could not be sent. For CLI messages, + CLI could not be opened, or some such. Often re-trying will + succeed (unless the reason for failure was that no such user + was logged in). ARPAnet QSend-style messages could only fail + if the .MAIL. file couldn't be opened, which isn't likely. + For Chaosnet, who knows? I don't know enough about Chaosnet + to know what caused it. Read the error message supplied by + NETWRK. + +(Author?) means that SENDER could not figure out who to send to itself, + by parsing the sends file. Either there was a message there with + a header it did not understand, or NO header, or the message was + from yourself, or one of your jobs. + +"No." means you're an evil anti-social goon who ought not to do those + things! Shame on you!! + + +File: SENDER, Node: Jnames, Up: Top, Previous: Errors + +Correlations between SENDER's jobnames and functions. + + +S or SEND is like DDT's built-in :SEND command. It sends a message to + the user specified by you, in the form NAME@SITE. Normally, + this is given in JCL, but if it is left out, you are prompted + by "To:" and have the oppurtunity the type it in then. If you + wish, just hit to that prompt, and SENDER will try and + figure out who the message should go to by examining your + sends file, and picking out the name of the last person who + sent you a message. If SENDER was unable to determine the + author of the last message to you, it will give you the error + "Author?" and ask "To:" again. To abort the program now, just + hit again. + + +FS or FSEND is the same as SEND, except that the flag telling how + verbose the message header should be is initially set on + low verbosity. SEND's normal header (tween ITS') is like: + + [Message from FOO at MIT-xx HH:MMxm] + ... + + and FSEND's: [FOO@xx: ... ] + + See the node on Escape commands, specifically the "V"erbosity + toggle, for how to change this once the program has started. + + +LMSEND is like SEND, except that it chooes Chaosnet instead of CLI, + when sending to sites that are on both Chaosnet and Arpanet + This is only here so that people who used the old :LMSEND + will not be greatly confused and distraught and run in circles + when they say :LMSEND and it laughs at them. + + +RP or REPLY is like SEND, except that you are not expected to supply the + NAME@SITE for the message: It is automatically taken from your + sends file. Only if SENDER can't parse the file correctly will + it ask you, via "To:", who the message is for. At that point, + REPLY is identical to SEND. The long header used by REPLY, if + it gets the NAME@SITE itself and didn't need help, is like: + + [Reply from FOO at MIT-ZZ HH:MMpm] + + The header reverts back to "Message from..." if you were needed + to supply the recipient. + + +FR or FREPLY is analagous to FSEND. It does a REPLY but answers using + the short header format of FSEND. + + +RA stands for Reply-Abbreviated. The first word of JCL is expected to + be a keyword of up to six characters (any more are ignored). + SENDER looks for the file ; REPLY, and if it + exists, scans it, entry by entry, for a line starting with the + keyword you specified. If there is a match, the rest of the + file entry is used as the text of the message. If there is + no match, the keyword itself (capitalized) is used as text. + Since this is a REPLY-Abbreviated, the author is taken from + your sends file, ala REPLY. Entries in your REPLY keyword file + are of the form + ^_ + For example: + FOO This is an example.^_ + BYE Good-bye^_ + BUSY I am busy now. Go away...^_ + TEXT When I do :RA TEXT this text you are reading + now will be sent as the message.^_ + + If that were the entire contents of your REPLY file, and you had + done :RA MOOWAH, then the text of the message would be "Moowah". + The message header used is the short form... after all, this IS + Abbreviated. + + +SA stands for Send-Abbreviated. Is is analagous to RA except that the + first thing on the JCL line is assumed to be NAME@SITE, and the + SECOND is the keyword. + + +. If SENDER is run with a jname that is not any of those listed + above, then the jname itself, capitalized, is sent as text. For + example, if you made the link of TS YES to SENDER BIN, then doing + + :YES + would be equivilent to + :FR Yes^C + + diff --git a/src/sysen1/sender.397 b/src/sysen1/sender.397 new file mode 100644 index 0000000000000000000000000000000000000000..93b2639d4b6b195a676b9f253b9657a27b7b040f GIT binary patch literal 59187 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