1
0
mirror of https://github.com/PDP-10/its.git synced 2026-01-18 01:02:15 +00:00
2016-12-08 09:39:57 +01:00

270 lines
5.9 KiB
Plaintext
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 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