Title : Multi-User Chat Program for DEC-10's
Author : The Mentor
==Phrack Inc.==
Volume One, Issue Nine, Phile #7 of 10
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
(512)-396-1120
The Shack // presents
A Multi-User Chat Program for DEC-10s
Original Program by
TTY-Man
Modified and Clarified by
+++The Mentor+++
October 6th, 1986
Intro: Unlike its more sophisticated older brother, the VAX, the DEC has no
easy-to-use communication system like the VMS PHONE utility. The following
program makes use of the MIC file type available on most DECs. Each user that
wishes to be involved in the conference needs to run the program from his area
using the .DO COM command. The program can be entered with any editor (I
recommend SED if you have VT52 emulation), and should be saved as COM.MIC. The
program does not assume any specific terminal type or emulation. You will
have to know the TTY number of any person you wish to add to the conference,
but this is available through a .SYSTAT command or .R WHO (see below.)
SYSTAT
This is an example of a SYSTAT to used to determine TTY#...
Status of Saturn 7.03.2 at 7:27:51 on 03-Oct-86
Uptime 40:41:14, 77% Null time = 77% Idle + 0% Lost, 9% Overhead
27 Jobs in use out of 128. 27 logged in (LOGMAX of 127), 16 detached.
PPN# TTY# CURR SIZE
19 [OPR] 6 OPR 56+39 HB 18
20 7,20 5 OPR 23+39 HB 24 $
21 2501,1007 56 COMPIL 8+8 ^C 1:34 $
22 66,1012 57 TECO 10+12 TI 39
23 66,1011 62 1022 16+55 TI 36 $
24 [SELF] 64 SYSTAT 23+SPY RN 0 $
26 [OPR] DET STOMPR 10+9 SL 2
27 16011,1003 DET DIRECT 17+32 ^C 30 $
36 [OPR] DET FILDAE 17 HB 1:57
The TTY# is available in the TTY column... DET means that the user is
detached and is unavailable for chatting...
Below is an example of .R WHO to obtain the same information...
/- jobs in use out of 127.
Job Who Line PPN
20 OPERATOR 20 5 7,20
21 DISPONDENT 56 2501,1007
22 ADP-TBO 57 66,1012
23 ADP-MDL 62 66,1011
24 THE MENTOR 64 XXXX,XXX
27 GEO4440103 Det 16011,1003
In each case, I am on TTY# 64...
Anyway, use the following program, it's more convenient that doing a
.SEN <tty> every time you want to send a message. Also, to shut out an
annoying sender, use .SET TTY GAG. To remove, .SET TTY NO GAG... pretty
simple, huh?
start::
!
!Now in loop: 'a 'b 'c 'd 'e 'f
!
.mic input A,"Destination Terminal 1:"
.if ($a="") .goto welcome
.mic input B,"Destination Terminal 2:"
.if ($b="") .goto welcome
.mic input C,"Destination Terminal 3:"
.if ($c="") .goto welcome
.mic input D,"Destination Terminal 4:"
.if ($d="") .goto welcome
.mic input E,"Destination Terminal 5:"
.if ($e="") .goto welcome
.mic input F,"Destination Terminal 6:"
.if ($f="") .goto welcome
welcome::
!Sending Hello Message...
sen 'a Conference Forming on TTYs 'b 'c 'd 'e 'f ... DO COM to these to join'
sen 'b Conference Forming on TTYs 'a 'c 'd 'e 'f ... DO COM to these to join'
sen 'c Conference Forming on TTYs 'a 'b 'd 'e 'f ... DO COM to these to join'
sen 'd Conference Forming on TTYs 'a 'b 'c 'e 'f ... DO COM to these to join'
sen 'e Conference Forming on TTYs 'a 'b 'c 'd 'f ... DO COM to these to join'
sen 'f Conference Forming on TTYs 'a 'b 'c 'd 'e ... DO COM to these to join'
!
!Type /h for help
com::
.mic input G,"T>"
!Checking Commands.. Wait..
.if ($g="/h") .goto help
.if ($g="/k") .goto kill
.if ($g="/l") .goto list
.if ($g="/d") .goto drop
.if ($g="/t") .goto time
.if ($g="/w") .goto who
.if ($g="/u") .goto users
.if ($g="/q") .goto quit
.if ($g="/r") .backto start
.if ($g="/ac") .goto ack
!Transmitting.. Wait..
sen 'a 'g
sen 'b 'g
sen 'c 'g
sen 'd 'g
sen 'e 'g
sen 'f 'g
.backto com
help::
!
! Internal Commands
!
! /H -> This Menu /K -> Kill
! /L -> List Terminals /U -> Users
! /W -> R who /AC-> Alert Caller
! /Q -> Quit
! /R -> Restart/Add
! /T -> Show Date/Time
! /D -> Drop Caller
!
! All Commands must be in lower case.
!
.backto com
list::
!
!Currently Connected To Terminals: 'a 'b 'c 'd 'e 'f
!
.backto com
who::
.revive
.r who
'<silence>
.backto com
users::
.revive
.r users
'<silence>
.BACKTO COM
QUIT::
!
!Call The Shack... 512-396-1120 300/1200 24 hours
!
.mic cancel
drop::
!
!Send Hangup Message:: Enter Terminal Number To Be Disconnected.
!
.mic input h,"Destination Terminal Number:"
.sen 'h <=- Communication Terminated at '<time> -=>
.backto start
ack::
.mic input h,"Destination Terminal Number:"
.sen 'h %TMRR - Timeout Error, Response Required, Please ACKNOWLEDGE!
.backto com
kill::
!
!Send Message To Specific Terminal In A Loop
.mic input n,"Are You Sure (Y/N)?"
.if ($n="y") then .goto k1
!%Function Aborted - Returning To Communication Mode.
.backto com
k1::
.mic input h,"Destination Terminal Number:"
.mic input n,"K>"
dog::
!Transmitting...CTRL-C Aborts!
.sen 'h'n
.backto dog
time::
!
!Current Date : '<date>
!Current Time : '<time>
!
.backto com
Wasn't that neat? A feature that you can implement separately to be a
pain in the ass is the recursive MIC that sends an annoying message to a
specified terminal. It is almost impossible for them to shut you out without
logging out unless they are already gagged.
Just create a small MIC file called BUG.MIC... to do it in two lines,
simply type...
.SEN <tty # goes here> Eat hot photons, Vogon slime!
.DO BUG
That's it! I hope this comes in useful to someone out there! Give us
a call at The Shack... 512-396-1120 300/1200 baud, 24 hours a day... And a
special welcome to all the feds who will doubtlessly be calling since the
number appears in here... we have nothing to hide!
+++The Mentor+++