Title VMESS -- Get A PHONEy Directory
.DECSAVE
 
;1..4
x==12
n==13

Define JError &s
	ErJmp [	Hrroi 1,[Asciz s]
		Jrst $JErr ]
Termin
 
Define Error &s
	Jrst [	Hrroi 1,[Asciz s]
		Jrst $Err ]
Termin
 
Table:
;PDP-11'S: PROTOS, PHOTON, LASER, TRON, ET
;PDP-10'S BUCS20
irp node,,[CRYST,ENGVXA,NEBULA,PHYVXA,PHYVXB,QUINCY,YODA]
	[Asciz /!node!/]
termin
tablen==.-table

S:	RESET
	Movsi x,-Tablen
Loop:	Hrroi 1,Strbuf
	Hrroi 2,[Asciz 'DCN:']
	Setz 3,
	SOUT
	Hrro 2,Table(x)
	SOUT
	Hrroi 2,[Asciz '-29.']
	SOUT
	Idpb 3,1

	Movei 1,"[		;]
	PBOUT
	Hrro 1,Table(x)
	PSOUT			;[
	Hrroi 1,[Asciz ']
']
	PSOUT

	Movsi 1,(GJ%SHT)
	Hrroi 2,Strbuf
	GTJFN
	 JError 'Could not get jfn'
	Movem 1,Dcnjfn
 	Move 2,[100000,,OF%RD+OF%WR] ;8 bit bytes
	OPENF
	 JError 'Could not open'
 
	Setz n,
	TIME
	Move 4,1
	Addi 4,1000.*15.
Chk:	Move 1,Dcnjfn
	Movei 2,.MORLS		;read link sts
	MTOPR
	 Jerror 'Could not read link status'
	Tlne 3,(MO%CON)		;connected?
	 Jrst Gotcon
	Tlne 3,(MO%WFC)		;NO, WAITING FOR A CONNECT?
	 Jrst Snooze
	Tlne 3,(MO%ABT)		;NO, CONNECT BEEN REJECTED?
	 Error 'Connection was rejected'
Snooze:	Movei 1,500.
	DISMS
	TIME
	Camg 1,4
	 Jrst Chk
	error 'Connection timed out'
 
Gotcon:	Move 1,Dcnjfn
	Hrroi 2,Mess
	Movei 3,10.
	SOUTR
 
	Hrroi 2,Strbuf
	Movni 3,100*5
	SINR
	 Jerror 'Network input failed'
	Addi 3,100*5
	Jumpe 3,Nomore
 
	Movei 1,.PRIOU
	Hrroi 2,Strbuf
	SOUT
	Aoj n,

	Hrroi 1,[Asciz '
']
	PSOUT
	jrst Gotcon
 
Nomore:	Jumpn n,Bot
	Hrroi 1,[Asciz 'No one.
']
	PSOUT

Bot:	Move 1,Dcnjfn
	CLOSF
	 Trn
	Jrst Again

$Jerr:	ESOUT
	Movei 1,.PRIOU
	Movei 2,":
	BOUT
	Movei 2,40
	BOUT
	Hrloi 2,.FHSLF
	Setz 3,
	ERSTR
	 Trna
	  Trn
	Jrst Zzz
$Err:	ESOUT
Zzz:	Hrroi 1,Crlf
	PSOUT
Again:	Hrroi 1,Crlf
	PSOUT
	Aobjn x,Loop
	HALTF
	Jrst .-1
 
Crlf:	.BYTE 7 ? ^M ? ^J ? .BYTE

Mess:	.BYTE 7
	15.			;MESSAGE CODE
IRPC X,,[FOO::BAR]
	"X
TERMIN
	0			;TERMINATE WITH NULL
	.BYTE
 
Dcnjfn: Block 1
Strbuf:	block 101
 
	End S
