23 FILTRN: MOVE P,[-LPDL,,PDL] ;GET A PDL
24 .OPEN TYIC,[SIXBIT / $TTY/]
25 .VALUE [ASCIZ /:LOGOUT /]
26 .OPEN TYOC,[SIXBIT / %TTY/]
27 .VALUE [ASCIZ /:LOGOUT /]
29 .IOT TYOC,["\] ;ACKNOLEDGE
31 MOVEI B,4*6 ;PREPARE TO READ FILE STUFF
32 MOVE A,[440600,,PTRF] ;GET POINT BYTER
35 SUBI C,40 ;CONVERT TO SIXBIT
37 SOJN B,GETIF ;DO ALL CHARS
39 SKIPE PTRF+3 ;SYSNAME GIVEN?
40 .SUSET [.SSNAM,,PTRF+3] ;NO USE CURRENT
41 MOVSI A,6 ;GET BLOCK IMAGE INPUT MODE
42 HLLM A,PTRF ;AND CLOBBER IN
44 .OPEN INC,PTRF ;OPEN THE FILE
45 SKIPA A,["/] ;NEGATIVE ACK
48 .IOT TYOC,A ;SEND DOWN
49 CAIE A,"\ ;SKIP IF A WIINER
51 .VALUE [ASCIZ /:LOGOUT
54 .IOT TYIC,A ;WAIT FOR HIM TO RE-ACK
56 .VALUE [ASCIZ /:LOGOUT /]
59 NXTBB: MOVE A,[-BFLNT,,BUFR] ;SETUP ITO POINTER
61 MOVEI B,6*BFLNT ;NUMBER OF 6 BIT CHRS
62 JUMPGE A,GOTIT ;NOT EOF YET, JUMP
63 SETOM EOF ;AT END OF FILE
64 MOVEI B,(A) ;COMPUTE REMAINING
66 IMULI B,6 ;CONVERT TO 6 BIT CHRS
68 GOTIT: MOVE C,[440600,,BUFR] ;POINT TO BUFFER
69 NXTB: MOVEI G,NCHRS ;GET MAX MESSAGE LNT
70 CAIL G,(B) ;IF GRT THAN LEFT
71 MOVEI G,(B) ;USE REMAINS
72 SUBI B,(G) ;AND SHRINK TOTAL
73 ADDI G,40 ;CONVERT TO ASCII
77 MOVEI D,0 ;INIT CHECKSUM
79 LOOP: ILDB A,C ;READ A CHAR
80 ADDI D,(A) ;UPDATE CKS
81 ADDI A,40 ;CONV TO ASCII
82 .IOT TYOC,A ;TO NEXT MACHINE
83 SOJN G,LOOP ;COUNT DOWN
87 .IOT TYOC,D ;SEND THE CKS
88 .IOT TYIC,D ;WAIT FOR ACK
91 .VALUE [ASCIZ /:LOGOUT /]
93 JUMPN B,NXTB ;STILL MORE IN BUFFER
96 JRST NXTBB ;MORE IN FILE, READ IT
98 .IOT TYOC,[40] ;SEND EOF HACK
101 .VALUE [ASCIZ /:LOGOUT /]