.TITLE INIT .SBTTL INITIALIZATION AND COMMAND DECODING ;************************************************************************** ; ; START OF MAIN PROGRAM (CILUS) ; ;************************************************************************** START:: FINIT$ ;INIT FCS RESTRT::MOV #SPL,FLAG ;ASSUME SPOOL LISTING FILE GCML$ #CMDL ;GET A COMMAND LINE BCC .+6 ;OKAY JMP CMDCHK ;CHECK FOR CNTRL Z OR ERROR CSI$1 #CSIBLK,CMDL+G.CMLD+2,CMDL+G.CMLD ;CHECK THE SYNTAX BCC .+6 ;OKAY JMP CMDERR ;OTHERWISE COMMAND SYNTAX ERROR BITB CSIBLK+C.STAT,#CS.EQU ;MUST HAVE AN EQUAL SIGN BNE .+6 ;OKAY JMP CMDERR ;OTHERWISE COMMAND SYNTAX ERROR CSI$2 #CSIBLK,OUTPUT,#SWTAB ;GET AN OUTPUT FILE SPEC BCC .+6 ;OKAY JMP CMDERR ;OTHERWISE COMMAND SYNTAX ERROR PARSE OUTLST,OUTDST,CSIBLK+C.DSDS,LSTNAM ;PARSE THE FILENAME SPEC INPSPC: CSI$2 #CSIBLK,INPUT,#SWTAB ;GET PRIMARY INPUT SPEC BCC .+6 ;OKAY JMP CMDERR ;OTHERWISE COMMAND SYNTAX ERROR PARSE PRIINP,PRIDST,CSIBLK+C.DSDS,CILNAM ;PARSE PRIMARY FILENAME BITB CSIBLK+C.STAT,#CS.MOR ;IS THERE ANOTHER INPUT SPEC? BNE .+4 ;YES BR CMDERR ;HAS TO BE OR ERROR CSI$2 #CSIBLK,INPUT,#SWTAB ;GET SECONDARY INPUT SPEC BCC .+6 ;OKAY JMP CMDERR ;OTHERWISE COMMAND SYNTAX ERROR PARSE SECINP,SECDST,CSIBLK+C.DSDS,CILNAM ;PARSE SECONDARY FILENAME JMP COMP ;GO DO THE COMPARE ; CMDCHK: CMPB CMDL+G.ERR,#GE.EOF ;CONTROL Z? BNE CMDERR ;NO EXIT$S CMDERR: MOV #CMDER,R1 ;POINT TO MESSAGE BLOCK CALL PRINT ;PRINT IT JMP RESTRT ;AND RESTART CMDER: .WORD CMDERL ;COMMAND SYNTAX ERROR MESSAGE .ASCII /CCM> *** ILLEGAL SYNTAX ***/ CMDERL = .-CMDER-2 ;LENGTH OF MESSAGE .EVEN NUMFLE: MOV #NUMFL,R1 ;ILLEGAL NUMBER OF I/O SPECS CALL PRINT ;PRINT IT JMP RESTRT ;RESTART NUMFL: .WORD NUMFLL ;MESSAGE .ASCII ?CCM> *** TOO MANY INPUT/OUTPUT DATASETS ***? NUMFLL = .-NUMFL-2 .EVEN .END