.TITLE BYEBRK .IDENT /V01.00/ .MCALL DIR$,CNCT$,STSE$S,EXIT$S,GLUN$ .MCALL SRDA$S,SDAT$,RCVD$,CLEF$S,SETF$S,ASTX$S,RQST$ ; SEND: SDAT$ CSRFND,SNDBUF RECEIV: RCVD$ CSRFND,RCVBUF REQUES: RQST$ CSRFND CNCT: CNCT$ ,1,, TSKNAM==CNCT+C.NCTN GLUN: GLUN$ 5,LUNBUF LUNBUF: .BLKW 6 LUNAME=LUNBUF+G.LUNA LUNUNT=LUNBUF+G.LUNU DOTS: .RAD50 /.../ BYE: .RAD50 /BYE/ SNDBUF: .BLKW 13. RCVBUF: .BLKW 15. DOTTED: .BYTE 0 .EVEN ; BYEBRK: DIR$ #RECEIV ;Flush receive data que, if any BCC BYEBRK ;Keep flushing if successful SRDA$S #RCVAST MOV BYE,TSKNAM DIR$ #GLUN ;GET TI: INFORMATION MOVB LUNAME,R1 ;GET TYPE ('T' FOR TT OR 'V' FOR VT) CMPB R1,#'V ;Virtual terminal? BNE 10$ ;No, branch JMP 80$ ;Yes, don't do anything 10$: SUB #'@,R1 ;FORM RAD50 MUL #3100,R1 ;SHIFT TO THE LEFT 2 CHARS MOV R1,R0 ;COPY IT MOVB LUNUNT,R1 ;GET UNIT NUMBER MOV R1,SNDBUF CMP #10,R1 ;SINGLE DIGIT? BLOS 20$ ;IF NOT, PROCESS TWO-DIGIT NUMBER ADD #36,R1 ;MAKE IT RAD50 MUL #50,R1 ;ELSE GET SINGLE DIGIT BR 30$ ;AND MERGE WITH OTHER PART 20$: ADD #2356,R1 ;CORRECT FOR 10-17 CMP #2376,R1 ;DONE? BHI 30$ ;YES ADD #40,R1 ;CORRECT FOR 20-27 CMP #2446,R1 ;DONE? BHI 30$ ;YES ADD #40,R1 ;CORRECT FOR 30-37 CMP #2516,R1 ;DONE? BHI 30$ ;YES ADD #40,R1 ;CORRECT FOR 40-47 CMP #2566,R1 ;DONE? BHI 30$ ;YES ADD #40,R1 ;CORRECT FOR 50-57 CMP #2636,R1 ;DONE? BHI 30$ ;YES ADD #40,R1 ;CORRECT FOR 60-67 CMP #2706,R1 ;DONE? BHI 30$ ;YES ADD #40,R1 ;CORRECT FOR 70-77 30$: ADD R0,R1 ;PUT IT TOGETHER IN R1 MOV R1,TSKNAM+2 ;FORM NEW TASKNAME 40$: DIR$ #CNCT ;CONNECT TO TASK BCC 70$ ;OK CMP $DSW,#IE.INS ;CONNECT TO CLI OR UNINSTALLED TASK? BEQ 50$ ;YES, CHECK FOR ...-TYPE CMP $DSW,#IE.ACT ;NOT ACTIVE? BEQ 60$ ;NOT ACTIVE--MUST HAVE COMPLETED ALREADY JMP 80$ ;OTHER ERRORS 50$: TSTB DOTTED BNE 80$ INCB DOTTED MOV DOTS,TSKNAM MOV BYE,TSKNAM+2 BR 40$ 60$: SETF$S #1 ;Task not active for CNCT$, set efn 70$: CLEF$S #2 STSE$S #1 ;STOP FOR EVENT FLAG DIR$ #SEND BCS 80$ DIR$ #REQUES BCC 71$ CMP $DSW,#IE.ACT BNE 80$ 71$: STSE$S #2 MOV #400,SNDBUF MOV RCVBUF+4,SNDBUF+2 MOV RCVBUF+6,SNDBUF+4 MOV RCVBUF+10,SNDBUF+6 MOV #15.,SNDBUF+10 MOV #15.,SNDBUF+12 CLEF$S #2 DIR$ #SEND BCS 80$ DIR$ #REQUES BCC 75$ CMP $DSW,#IE.ACT BNE 80$ 75$: STSE$S #2 BR 90$ 80$: 90$: EXIT$S ;EXIT RCVAST: DIR$ #RECEIV BCC 10$ EXIT$S 10$: SETF$S #2 ASTX$S .END BYEBRK