1
0
mirror of https://github.com/PDP-10/its.git synced 2026-02-04 07:43:02 +00:00

Added BYE: says goodbye to user with nickname/quips.

Used in LOGOUT scripts.
This commit is contained in:
Eric Swenson
2016-12-07 22:56:06 -08:00
committed by Lars Brinkhoff
parent 5f767f06b1
commit 6b0bad5dc8
4 changed files with 275 additions and 0 deletions

269
src/sysen1/bye.19 Normal file
View File

@@ -0,0 +1,269 @@
;-*-MIDAS-*-
title BYE -- Call luser names and pontificate
;CODE ADDED 9-3-78 BY ED TO USE INQUIR DATA BASE FOR NICKNAME
;10/3/84 Chaosnet BYE server --Moon
;19/5/85 use BYELIB; essentially re-written -- gumby
printx /
Be sure to install the binary on all systems
/
a=1
b=2
c=3
d=4
e=5
f=6
cnt=7
t=15
tt=16
p=17
;;; IO channels
tyi==1
tyoch==2
linch==3
idxch==4 ; index file input
odxch==5 ; index file output
lsrch==6
;;; Random constants
pdlsiz==20 ; pdl
ascbyt==440700 ; ascii byte ptr waiting to be read
print=1000,, ;glik!
call=<pushj p,>
ret=<popj p,>
define syscall name,args
.call [setz ? sixbit /name/ ? args((setz))]
termin
;;; Inquir database hackery
lsrpgs=100 ;number of pages for lsrtab
$$ulnm==0 ;don't assemble useless cruft.
$$ulnp==0
$$unam==0
.insrt syseng;lsrtns >
;;; Network hackery
netwrk"$$serve==1
netwrk"$$chaos==1
.insrt syseng;netwrk >
byelib"$$deth==1
.insrt syseng;byelib >
subttl figure out if we're a server; print out messges.
.scalar uname, server, pdl(pdlsiz)
begin: move p,[-pdlsiz,,pdl-1]
.suset [.rxuname,,uname]
.suset [.rjname,,a]
came a,[sixbit/chaos/]
call ttyini
call srvini
prlusr: move c,uname ;print special "See you later" msg?
move a,[-hakn,,0]
hkloop: move b,haknms(a)
camn b,c
jrst [print hakmsg
jrst seewho]
aobjn a,hkloop
print [asciz /
See Ya Later /]
seewho: call unmout
print [asciz /... /]
nounam: call byelib"getmsg
syscal siot,[%climm,,tyoch ? %clin,,a ? %clin,,b]
jsr death
syscal finish,[%climm,,tyoch] ;wait for all output to get to tty.
.lose %lssys
Skipe server
jrst srvend
exit: .suset [.roption,,c]
tlnn c,%opbrk ; Don't .BREAK unless a superior handles it.
.logout 1,
.break 16,124000 ;die as quitely as possible
srvend: movei t,netwrk"%coeof
setzm netwrk"pktbuf
dpb t,[netwrk"$cpkop+netwrk"pktbuf]
syscal pktiot,[%climm,,tyoch ? %climm,,netwrk"pktbuf]
jfcl
syscal finish,[%climm,,tyoch]
jfcl
.sleep c, ;seems to be needed for some reason
.logout 1, ;to delay before closing
ttyini: .suset [.smask,,[%pityi]]
syscal open,[%clbit,,.uao ? %climm,,tyoch ? [sixbit/tty/]]
.lose %lsfil
syscal open,[%clbit,,.uai ? %climm,,tyi ? [sixbit/tty/]]
.lose %lsfil
aos (p) ;return to .+2
ret
srvini: setom server ;we're a chaosnet server, not talking to a tty
.suset [.smask,,[%piioc]]
movei a,tyi
movei c,[asciz/BYE/]
movei d,5
call netwrk"chasrv
.logout 1,
move a,[440600,,d]
move b,[440800,,netwrk"pktbuf+netwrk"%cpkdt]
ldb c,[netwrk"$cpknb+netwrk"pktbuf]
movei d,0
unmgt1: ildb e,b ;get user name from contact args
caie e,40
sojg c,unmgt1
sojle c,nounam ;just print msg w/o see ya later bullshit
unmgt2: ildb e,b
caige e,140
subi e,40
tlne a,770000
idpb e,a
sojg c,unmgt2
jumpe d,nounam
movem d,uname
ret
subttl UNMOUT -- print uname or nickname or whatever
;;; c has uname in it...
unmout: setz b, ;search our database for nickname
serc: hlr a,unms(b)
camn c,@a ;found it?
jrst [hrr a,unms(b)
print @a ;print it
ret] ;and return
aos b
caig b,lunm-unms
jrst serc
move a,lsrch ;not in our database, try inquir
move b,[-lsrpgs,,lsrbeg]
call lsrtns"lsrmap
jrst ohwell ;lost, so use xuname
move b,uname
call lsrtns"lsrunm ;find his entry in database
jrst ohwell ;nope, not known to inquir
.close lsrch, ;close lsr file
movei a,lsrtns"i$nick
call lsrtns"lsritm ;find his nickname
jrst ohwell ;nope, hasn't told us his nickname
tyunam: ildb b,a ;found it, type it out.
jumpe b,cpopj
caie b,^C ;^C has an equal right to stop us
cain b,", ;some people have two nicknames, separated by ,
ret
aos c
.iot tyoch,b
jrst tyunam
ohwell: .close lsrch, ;close lsr file
move a,[440600,,uname] ;here if all else fails, use xuname.
repeat 6,[
ildb b,a
addi b,40
.iot tyoch,b
]
cpopj: ret
haknms: sixbit /jcma/
sixbit /cstacy/
sixbit /gavan/
sixbit /derway/
hakn==.-haknms
hakmsg: asciz /Seeeee yaauh /
;;; Somehow inquir nicname isn't good enuf for these losers
unms: [sixbit /devon/],,[asciz /Devon/]
[sixbit /dht/],,[asciz /Dave/]
[sixbit /drb/],,[asciz /Dave, you turkey!/]
[sixbit /ed/],,[asciz /, Alligator, have fun!/]
[sixbit /ffm/],,[asciz /Steve/]
[sixbit /fnt/],,[asciz /Ferd/]
[sixbit /foo/],,[asciz /Loser/]
[sixbit /gjh/],,[asciz /HAVE A NICE DAY GROG!/]
[sixbit /gls1/],,[asciz /QUUX1/]
[sixbit /jlk/],,[asciz /John/]
[sixbit /jmb/],,[asciz /Joel/]
[sixbit /jpg/],,[asciz /--MIGHTY MOUSE--/]
[sixbit /jps/],,[asciz /Mr. Sample/]
[sixbit /ken/],,[asciz /Kenneth, Have Time./]
[sixbit /kgk/],,[asciz /You complete random turkey, you!/]
[sixbit /larswe/],,[asciz /Sicnarf/]
[sixbit /mab/],,[asciz /Meyer/]
[sixbit /md/],,[asciz /Doc/]
[sixbit /mrg/],,[asciz /... Mike, don't be loose./]
[sixbit /murph/],,[asciz /Richard/]
[sixbit /neal/],,[asciz /Chiron/]
[sixbit /rlb/],,[asciz /Rich/]
[sixbit /rms/],,[asciz /Stallman/]
[sixbit /rsl/],,[asciz /Rici/]
[sixbit /stan/],,[asciz /Duckie/]
[sixbit /stever/],,[asciz /Fellow Star Trek watcher/]
[sixbit /srf/],,[asciz /Sheldo/]
lunm: [sixbit /tsamos/],,[asciz /John/]
subttl uuo and interrupt handlers
uuoh: 0
move a,40
hrli a,ascbyt
lo: ildb b,a
skipn b
jrst @uuoh
.iot tyoch,b
jrst lo
tsint: 0 ? 0
push p,a
move a,tsint
trne a,%piioc
jsr death
movei a,tyi
.ityic a,
jrst intout
caie a,^s
cain a,^g
jrst shutup
intout: pop p,a
.dismiss tsint+1
.scalar debug
death: 0 ;jsr here on error
skipn debug
jrst exit ; oh well, give up...
sos death
sos death
syscal lose,[movei ? death]
shutup: .reset tyoch,
jrst exit
;;; dump variables so we can figger out where lsr maps in
consta
variab
-1 ;So core gets created!
lsrbeg==<.+1777>/2000 ;beginning of LSR pages.
loc 41
jsr uuoh
jsr tsint
end begin

BIN
src/syseng/byelib.43 Normal file

Binary file not shown.