.TITLE CMDENB - BASIC COMMAND INPUT ROUTINE .IDENT /21NOV7/ ;16:50, MK ; .ENTRY CMDENB - BASIC COMMAND INPUT ROUTINE ; ;+ ; C M D E N B ; ; PURPOSE: BASIC COMMAND INPUT ROUTINE ; ; THIS ROUTINE IS AN AST SERVICE ROUTINE. THE ; AST IS INITIATED BY AN UNSOLICITED CTRL/C FROM ; THE KEYBOARD. ; ; INTERFACE: CALLING SEQUENCE: ; CALL CMDENB ; ; LANGUAGE: MACRO-11 ; ; RESTRICTIONS: NOT FORTRAN-CALLABLE. SEPARATE VERSIONS EXIST FOR ; RSX-11D AND RSX-11M. THIS ROUTINE IS INTERNAL TO THE ; PLOTTING PACKAGE (RS4010) AND IS NOT INTENDED ; FOR GENERAL USE. ;- ; REVISIONS: ; 05-NOV-75 CHANGED FOR RSX-11D V6; SEND AND RCV ; CHANGED TO VARIABLE LENGTH COMMANDS. ; 01-JUN-77 SJS UPDATED TO CONFORM TO STANDARDS. ; 14-NOV-77 MK CHANGES TO USE UNSOLICITED INPUT FOR ; COMMAND MODE ; 18-NOV-77 MK MINOR CODE CHANGES ; 20-NOV-77 MK REMOVE DETACH QIO (MOVED TO CHO) ; .MCALL PUSH,POP,DIR$,ASTX$S,QIOW$,QIO$ .MCALL RQST$,EXIT$S ; CM.ENB:: .IF DF,R$$11M CMPB (SP)+,#3 ;IF 11M, POP CHAR AND TEST FOR CTL/C BNE 3$ ;IGNORE IF NOT CTL/C .ENDC MOV #377,CM.CMD ;SET CMD, CLEAR CDN TST CH.MOD ;IS TERMINAL IN GRAPHICS? BNE 1$ ;YES--NO ECHO EVER, GET CMD NOW DIR$ #ECPMT ;ECHO *C> MOV #IO.RLB,CMDDPB+Q.IOFN ;READ, ECHO FUNCTION BR 2$ 1$: MOV #IO.RNE,CMDDPB+Q.IOFN ;READ, NO ECHO FUNCTION 2$: DIR$ #ECBEL ;ECHO BELL DIR$ #CMDDPB ;QIO (COMMAND INPUT) 3$: ASTX$S ; CMDAST: TSTB @(SP)+ ;COMMAND RECEIVED? (STACK POINTS TO STATUS) BPL 10$ ;YES CMPB #IE.EOF,CMDST ;CTL/Z TYPED? BNE 2$ ;NO - IGNORE THIS DIR$ #CM.DET ;DETACH THE TERMINAL CLR CM.ATF ;RESET ATTACH FLAG EXIT$S ;EXIT 10$: CMP CM.CHA,#3 ;AT LEAST 3 CHARS TYPED? BLT 1$ ;NO - CAN'T BE 'MCR' CMP CM.BUF,#"MC ;CHECK FOR 'MCR' BNE 1$ ;NO CMPB CM.BUF+2,#'R ;CHECK FOR 'MCR' BNE 1$ ;NO DIR$ #RQSMCR ;REQUEST MCR BR 2$ ;BUG OUT 1$: COM CM.CMD ;CLEAR CMD, SET CDN .GLOBL CMDINT ;GIVE CONTROL TO PUSH JSR PC,CMDINT ;USER'S CMDINT ROUTINE POP 2$: ASTX$S ; CM.CMD::.BYTE 0 CM.CDN::.BYTE 0 ; CMDDPB: QIO$ IO.RVB,LUN,CMDFL,,CMDST,CMDAST, ; QIO$ - COMMAND INPUT ; ECPMT: QIOW$ IO.WVB,LUN,CMDFL,,,, ;QIOW$ - CR,LF,^ PMTBF: .ASCII <15><12>/*C>/ PMTL=.-PMTBF .EVEN ; ECBEL: QIOW$ IO.WVB,LUN,CMDFL,,,, ;QIOW$ - BELL BELBF: .BYTE 7,7 ; RQSMCR: RQST$ ...MCR ; CM.BUF::.BLKB BUFL CMDST: .WORD 1 CM.CHA::.WORD 0 .END