.NLIST TITLE CMDIN,CMDIN .LIST .PAGE .SBTTL CMDIN - COMMAND PROCESSING ; CMDIN.MAC 01DEC82 ; ; .ENABL LC MES5: .ASCII <15><12>/TLK -- ILLEGAL COMMAND ISSUED/ LENM5=.-MES5 .EVEN CMDIN:: QIOMAC R0, #WALTIO, #EKOBUF ; SET UP PART OF DPB FOR WRITE MOVB CHAR, EKOBUF ; MOVE CHARACTER TO WRITE BUFFER QIOMAC R0, , , #3, Y ; ECHO CHARACTER TO TERMINAL ; CMPB CHAR,#15 ; EXIT COMMAND MODE? BEQ 9000$ ; CMPB CHAR,#SPNCAR ; IGNORE CONTROL-S AND CONTROL-Q BEQ 9900$ ; INPUT WHILE WAITING FOR A COMMAND CMPB CHAR,#RESCAR ; INPUT, TO AVOID PROBLEM WITH VT100 BNE 1$ ; TERMINAL IN SMOOTH SCROLL WITH 9900$: JMP 99$ ; AUTO XON/XOFF ; 9000$: JMP 90$ ; EXIT COMMAND MODE ; 1$: CMPB CHAR,#141 ; IS CHAR LOWER CASE ALPHA (OR ABOVE) BLT 61$ ; NO BICB #40,CHAR ; ASSUME AN ALPHA - ENSURE UPPER CASE ; 61$: CMPB CHAR, #RIHCAR ; REDIRECTED INPUT HELP? BEQ 62$ ; YES CMPB CHAR, #RIHCA2 ; REDIRECTED INPUT HELP (ALTERNATE)? BNE 2$ 62$: JSR PC, RDIHLP JMP 90$ 2$: CMPB CHAR, #ROHCAR ; REDIRECTED OUTPUT HELP? BEQ 63$ ; YES CMPB CHAR, #ROHCA2 ; REDIRECTED INPUT HELP (ALTERNATE)? BNE 3$ 63$: JSR PC, RDOHLP JMP 90$ 3$: CMPB CHAR, #MNUCAR ; DISPLAY MENU? BNE 4$ JSR PC, MENU JSR PC, BREAK ; ISSUE COMMAND PROMPT BR 99$ ; DON'T RESET COMMAND FLAG 4$: CMPB CHAR,#CNXCAR ; CANCEL BOTH REDIRECTED INPUT & OUTPUT? BNE 450$ ; NO .IF NDF IBMTSO JSR PC,PAWAKE ; WAKE UP HOST FIRST (SO IF HELPING ON ; ; SIGMA 9, EOF CHAR SEQ SENT OK) .ENDC ;NDF IBMTSO JSR PC, CANINP ; CANCEL REDIRECTED INPUT FIRST BR 550$ ; THEN CANCEL REDIRECTED OUTPUT 450$: CMPB CHAR, #CNICAR ; CANCEL REDIRECTED INPUT? BNE 5$ .IF NDF IBMTSO JSR PC,PAWAKE ; WAKE UP HOST FIRST (SO IF HELPING ON .ENDC ;NDF IBMTSO ; ; SIGMA 9, EOF CHAR SEQ SENT OK) JSR PC, CANINP BR 90$ 5$: CMPB CHAR, #CNOCAR ; CANCEL REDIRECTED OUTPUT? BNE 6$ 550$: JSR PC, CANOUT BR 90$ 6$: CMPB CHAR, #CGECAR ; CHANGE EOR CHARACTER? BNE 7$ JSR PC, ASKEOR BR 90$ 7$: CMPB CHAR, #EXICAR ; EXIT PROGRAM? BEQ 720$ CMPB CHAR, #EXICAR-100 ; EXIT PROGRAM? BNE 8$ 720$: INCB EXIFLG BR 90$ 8$: CMPB CHAR, #RDICAR ; REDIRECT INPUT? BNE 9$ JSR PC, REDINP BR 90$ 9$: CMPB CHAR, #RDOCAR ; REDIRECT OUTPUT? BNE 10$ JSR PC, REDOUT BR 90$ 10$: CMPB CHAR, #XCCCAR ; TRANSMIT CONTROL CHARACTER? BNE 11$ MOVB #CMDCAR,CHAR ; PREPARE TO TRANSMIT CHARACTER BR 15$ 11$: CMPB CHAR,#XCSCAR ; TRANSMIT ^S TO PORT? BNE 12$ MOVB #'S-100,CHAR ; GET ^S BR 15$ 12$: CMPB CHAR,#XCQCAR ; TRANSMIT ^Q TO PORT? BNE 13$ MOVB #'Q-100,CHAR ; GET ^Q BR 15$ 13$: CMPB CHAR,#PASCAR ; DETACH FROM TALK? BNE 14$ JSR PC,PAUSE ; STOP THE PROGRAM TEMPORARILY JSR PC, BREAK ; ISSUE COMMAND PROMPT BR 99$ ; DON'T RESET COMMAND FLAG 14$: CMPB CHAR,#XBCCAR ; TRANSMIT BREAK CONTROL CHARACTER? BNE 20$ MOVB #TBCHAR,CHAR ; GET THE BREAK CONTROL CHARACTER 15$: JSR PC,SENDPR ; SEND CHARACTER TO PORT BR 90$ 20$: ; ILLEGAL COMMAND CHARACTER QIOMAC R0, #WALTIO, #MES5, #LENM5, Y ; WRITE MESSAGE TO TERMINAL JSR PC, BREAK ; ISSUE COMMAND PROMPT AGAIN BR 99$ ; DON'T RESET COMMAND FLAG ; 90$: CLRB CMDFLG ; CLEAR COMMAND FLAG CLRB SUSPND ; CLEAR SUSPEND FLAG .IF NDF IBMTSO JSR PC,PAWAKE ; WAKE UP THE HOST .ENDC ;NDF TSO 99$: RTS PC .NLIST TITLE ,CMDIN .LIST ; .END