.TITLE RDCSI READ COMMAND STRING .IDENT /V01.2/ ; ; ORCAM - READ COMMAND STRING ; ; Modifications Record: ; ===================== ; V01.2 13-Aug-85 CJD ; Add support for /IN and /DA switches, as [VAX83C.EVERHART.DGTETC]. ; Preset these switch values to -1, so that it's possible to specify ; the blank PSECT. In any case, we should clear out old values. ; Write prompt in full: "ORCAM>", like VAX utilities. ; Don't complain about no '=', o/p will be defaulted if none. .MCALL GCML$,RCML$,CSI$1 .MCALL EXIT$S ; ; RD$CSI - READ A COMMAND STRING ; RD$CSI::GCML$ #GCLBLK,#PR,#PRLEN ; ISSUE PROMPT AND READ LINE ;V01.2 BCS 10$ CSI$1 #CSIBLK,GCLBLK+G.CMLD+2,GCLBLK+G.CMLD BCS 50$ ; CS IF ERROR TST GCLBLK+G.CMLD ; NULL COMMAND (after compression) ;V01.2 BEQ RD$CSI ; YES - REPROMPT ;V01.2 ;V01.2 BITB #CS.EQU,C.STAT(R0) ; EQUALS SIGN IN COMMAND LINE? ;V01.2 BEQ 50$ ; ERROR IF NOT ; Preset switch values to something that can't be an ASCII PSECT name ;V01.2 MOV R1,-(SP) ; Save counter ;V01.2 MOV #,R1 ; 2 sets of bytes (set by words) ;V01.2 MOV #IP1,R0 ; Starting at IP1 ;V01.2 5$: MOV #-1,(R0)+ ; All 1's isn't ASCII ;V01.2 SOB R1,5$ ;V01.2 MOV (SP)+,R1 ;V01.2 RTS PC ; 10$: CMPB #GE.EOF,G.ERR(R0) ; CTRL/Z ENTERED? BNE 20$ EXIT$S ; IF SO - TERMINATE ORC ; 20$: MOV #ERR1,MESNO ; OTHERWISE ERROR 30$: RCML$ #GCLBLK ; COME BACK TO TOP LEVEL 40$: JSR PC,MOCALL ; ISSUE ERROR MESSAGE BR RD$CSI 50$: MOV #ERR2,MESNO ; SYNTAX ERROR BR 40$ ; .PSECT ORCDAT,D ;V01.2 PR: .ASCII <15><12>"ORCAM>" ;V01.2 PRLEN=.-PR ;V01.2 .EVEN ;V01.2 .END