; ; ; 2-sep-80 Joe Sventek ; ; slp correction file for mcr dispatcher mods ; ; the mods generated by this correction file fix the following ; MCR features ; ; 1. When the dispatcher is processing the command line typed by ; the user (crunching to upper case and squeezing out extra ; blanks and tabs), any strings surrounded by single or double ; quotes ('") are passed through intact, including the quotes. ; thus lower case and embedded blanks and tabs may be sent to ; a user task. ; ; 2. one and two character names typed to MCR, as well as names ; with embedded periods and semicolons are not flagged as ; syntax errors, with the result that the catch-all task will ; receive command lines of this type ; ; 3. multiple copies of a task can be active at a single terminal, ; and the restriction of ...xxx and xxxtnn has been removed. ; The code currently generates an error when more than eight ; copies of a given task are active. i.e. ...xxx, xxxtnn, xxxunn, ; xxxvnn, xxxwnn, xxxxnn, xxxynn, and xxxznn. This could be ; easily changed in the code, if more are desired. ; mcrdis.mac;2/au/bf,mcrdis.lst/-sp=mcrdis.mac;1 -52,,/;JSS001/ ; JSS001 18-AUG-80 MODS TO ALLOW QUOTED STRINGS TO BE PASSED INTACT ; ALSO, ONE AND TWO CHARACTER COMMANDS ARE PASSED TO ...CA. ; INSTEAD OF FLAGGED AS A SEPARATE ERROR ; -73,,/;JSS001/ SQU = 047 ; SINGLE QUOTE DQU = 042 ; DOUBLE QUOTE BIGZ = 132 ; CAPITAL Z -267,267,/;JSS001/ QUOFLG: .WORD 0 ; QUOTED STRING FLAG ; ZERO NO QUOTE, NON-ZERO QUOTE CHARACTER -463,463,/;JSS001/ CLR QUOFLG ; SET NO QUOTE IN PROGRESS 6$: MOVB (R3)+,R1 ; GET NEXT CHAR CMPB R1,#IE.EOF ; CTRL/Z? BNE 7$ ; NO MOVB #CR,R1 ; YES, SET IT TO CR 7$: -467,,/;JSS001/ CMPB R1,#SQU ; IS IT A SINGLE QUOTE? BEQ 4$ ; YES CMPB R1,#DQU ; IS IT A DOUBLE QUOTE? BEQ 4$ ; YES TST QUOFLG ; QUOTED STRING IN PROGRESS? BNE 17$ ; YES, COPY CHARACTER UNALTERED -472,476,/;JSS001/ TST COMFLG ; COMMENT IN PROGRESS? -487,,/;JSS001/ 4$: TST COMFLG ; COMMENT IN PROGRESS? BNE 6$ ; YES, SKIP THIS CHARACTER TST QUOFLG ; QUOTED STRING IN PROGRESS? BNE 3$ ; YES MOVB R1,QUOFLG ; PLACE QUOTE CHARACTER IN FLAG BR 17$ ; GO COPY CHARACTER 3$: CMPB R1,QUOFLG ; IS THIS TERMINATING QUOTE? BNE 17$ ; NO, GO COPY CHARACTER CLR QUOFLG ; INDICATE NOT IN QUOTED STRING BR 17$ ; GO COPY CHARACTER -524,524,/;JSS001/ JMP DISE13 ; ERROR, TASK NOT FOUND -540,540,/;JSS001/ 44$: CMPB R2,#'. ; SEE IF PERIOD IN TASK NAME BEQ 40$ ; IF EQ, YES - CONTINUE CMPB R2,#'; ; SEE IF SEMIICOLON IN TASK NAME BEQ 40$ ; IF EQ, YES - CONTINUE JMP DISE10 ; SYNTAX ERROR -663,664,/;JSS001/ ; CMP $MUCB,T.UCB(R0) ; YES, IS IT ACTIVE FOR THIS TERMINAL? ; BEQ 14$ ; YES, CAN'T SPAWN ANOTHER TASK -676,680,/;JSS001/ MOV #$MPARS,R3 ; POINT TO TASK NAME MOV 2(R3),(R3) ; SET NAME TO XXXYN 175$: MOV #UNIT,R0 ; POINT TO ASCII TERMINAL NUMBER CALL $CAT5 ; CONVERT TO RAD50 MOV #$MPARS,R3 ; POINT TO TASK NAME MOV R1,2(R3) ; COPY YN INTO TASKNAME BUFFER -693,695,/;JSS001/ BPL 195$ ; YES, ERROR CLR R5 ; NO, SET NO PARENT 19$: BR 30$ ; START IT UP FOR THIS TERMINAL 195$: INCB UNIT ; BUMP CHARACTER BY ONE CMPB UNIT,#BIGZ ; SEE IF STILL VALID BLE 175$ ; YES, GO TRY AGAIN BR 14$ ; ERROR - CANNOT SPIN OFF ANY MORE COPIES -879,879,/;JSS001/ DISER7: ADD #2,$MERRN ; 5 - LATER DISE13: INC $MERRN ; 3 - TASK REQUEST ERROR /