perm filename NETWHO.MID[S,NET] blob
sn#697656 filedate 1983-01-28 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00005 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 NIORTS CORBEG PDL USRBUF HSTBUF COREND NETWHO CMDSCN GETCMD MUMBLE GETUSR GETHST GETHCH
C00005 00003 GOGOGO
C00006 00004 YUMMIE SNDUSR SNTUSR
C00008 00005 GOBLIN GOBBLE MSGLUP
C00009 ENDMK
C⊗;
;NIORTS CORBEG PDL USRBUF HSTBUF COREND NETWHO CMDSCN GETCMD MUMBLE GETUSR GETHST GETHCH
TITLE NETWHO
; QUICK NETWORK WHO KLUDGE UNTIL I DO THE RIGHT THING
NIORTS==-1 ? ERRHAN==-1 ? HSTTAB==-1 ; MARVELOUS NETWORK ROUTINES
.INSRT NETWRK
CORBEG==.
PDL: BLOCK 20.
USRBUF: BLOCK 10.
HSTBUF: BLOCK 10.
COREND==.-1
SUBTTL INITIALIZATION AND COMMAND PARSING
NETWHO: JFCL
RESET
MOVE 17,[PDL(-20)]
SETZM CORBEG
MOVE [CORBEG,,CORBEG+1]
BLT COREND
RESCAN 1
JUMPE 1,GETCMD
INCHRS
JRST GETCMD
CAIE "W
CAIN "w
SKIPA 1,[" ]
MOVEI 1,";
CMDSCN: INCHRS
JRST GETCMD
CAIE ↑J
CAIN 175
JRST GETCMD
CAIE "%
CAIN "@
JRST MUMBLE
CAIE (1)
JRST CMDSCN
JRST MUMBLE
GETCMD: INSKIP
OUTSTR [ASCIZ/(User@)Host: /]
; GET USER NAME
MUMBLE: MOVE 1,[440700,,USRBUF]
GETUSR: INCHWL
CAIE <" >
CAIN ↑M
JRST GETUSR
CAIE 175
CAIN ↑J
JRST [SKIPN USRBUF
JRST GETCMD
MOVE [USRBUF,,HSTBUF]
BLT HSTBUF+9.
SETZM USRBUF
JRST GOGOGO]
CAIE "% ; CRETIN SAIL CONVENTION
CAIN "@
JRST GETHST
IDPB 1
JRST GETUSR
; GET HOST NAME
GETHST: MOVE 1,[440700,,HSTBUF]
GETHCH: INCHWL
CAIE <" >
CAIN ↑M
JRST GETHCH
CAIE 175
CAIN ↑J
JRST GOGOGO
IDPB 1
JRST GETHCH
;GOGOGO
SUBTTL FIRE UP A CONNECTION
GOGOGO: PUSHJ 17,MAPHST
MOVEI HSTBUF
PUSHJ 17,HSTNAM
JRST [ OUTSTR [ASCIZ/No such host.
/]
CLRBFI
PUSHJ 17,UNMHST
JRST NETWHO]
JRST [ OUTSTR [ASCIZ/Ambiguous host name.
/]
CLRBFI
PUSHJ 17,UNMHST
JRST NETWHO]
MOVEM HOST
PUSHJ 17,UNMHST
MOVEI 365
MOVEM ICPSKT
PUSHJ 17,CONECT
; FALLS THROUGH
;YUMMIE SNDUSR SNTUSR
SUBTTL SEND COMMAND
IRPC GARPLY,,[ERSTR]
MOVEI "GARPLY
PUSHJ 17,NETOCH
TERMIN
MOVEI ↑M ? PUSHJ 17,NETOCH
MOVEI ↑J ? PUSHJ 17,NETOCH
PUSHJ 17,NETSND ; FORCE COMMAND OUT
YUMMIE: PUSHJ 17,NETICW
CAIE "@
JRST YUMMIE
SKIPN USRBUF ; EVERYBODY?
JRST [ IRPC GARPLY,,[SSINF]
MOVEI "GARPLY
PUSHJ 17,NETOCH
TERMIN
JRST SNTUSR]
IRPC GARPLY,,[USINF ]
MOVEI "GARPLY
PUSHJ 17,NETOCH
TERMIN
MOVE 1,[440700,,USRBUF]
SNDUSR: ILDB 1
JUMPE SNTUSR
PUSHJ 17,NETOCH
JRST SNDUSR
SNTUSR: MOVEI ↑M ? PUSHJ 17,NETOCH
MOVEI ↑J ? PUSHJ 17,NETOCH
PUSHJ 17,NETSND ; FORCE COMMAND OUT
; FALLS THROUGH
;GOBLIN GOBBLE MSGLUP
SUBTTL FOOL AROUND WITH REPLIES
PUSHJ 17,NETICW
CAIN "+
JRST MSGLUP
CAIE "-
JRST 4,.-1
GOBLIN: PUSHJ 17,NETICW
CAIE <" >
JRST GOBLIN
GOBBLE: PUSHJ 17,NETICW
CAIN "@
EXIT
OUTCHR
JRST GOBBLE
MSGLUP: PUSHJ 17,NETICW
CAIN "+
EXIT
OUTCHR
JRST MSGLUP
END NETWHO