; ******************************************************* ; * * ; * THIS SOFTWARE WAS DEVELOPED WITH SUPPORT * ; * FROM THE NATIONAL INSTITUTES OF HEALTH: * ; * NIH CA06927 * ; * NIH CA22780 * ; * * ; * DIRECT INQUIRIES TO: * ; * COMPUTER CENTER * ; * THE INSTITUTE FOR CANCER RESEARCH * ; * 7701 BURHOLME AVENUE * ; * PHILADELPHIA, PENNSYLVANIA 19111 * ; * * ; * NO WARRANTY OR REPRESENTATION, EXPRESS OR * ; * IMPLIED, IS MADE WITH RESPECT TO THE * ; * CORRECTNESS, COMPLETENESS, OR USEFULNESS * ; * OF THIS SOFTWARE, NOR THAT USE OF THIS * ; * SOFTWARE MIGHT NOT INFRINGE PRIVATELY * ; * OWNED RIGHTS. * ; * * ; * NO LIABILITY IS ASSUMED WITH RESPECT TO * ; * THE USE OF, OR FOR DAMAGES RESULTING FROM * ; * THE USE OF THIS SOFTWARE * ; * * ; ******************************************************* ; * * ; * THIS SOFTWARE WAS DESIGNED FOR USE ON A * ; * PDP-11/70 OPERATING UNDER IAS V3.0 USING * ; * THE IAS PDP-11 MACRO ASSEMBLER. * ; * * ; ******************************************************* .TITLE GTLIN -- GET COMMAND LINE .SBTTL GTLIN -- DOCUMENTATION .IDENT /ICR004/ .MCALL GCMLB$,GCML$,RCML$ ; ; GTLIN -- GET A COMMAND LINE. ; ------------------------------ ; CALL GTLIN(LINE,NCH,LU,IPRM,NPRM [,UPPCAS [,CLOSE]]) ; LINE ARRAY OF LENGTH 80 BYTES. ; NCH IF NON-NEGATIVE, IS NUMBER OF BYTES READ. ; IF -1, IS EOF. ; IF -2, I/O ERROR. ; LU LOGICAL UNIT TO READ FROM. ; IPRM PROMPT STRING ; NPRM NUMBER OF CHARACTERS IN PROMPT. ; UPPCAS OPTIONAL CASE FLAG - .TRUE.=UPPERCASE, .FALSE.=LOWERCASE ; DEFAULT .TRUE. ; CLOSE OPTIONAL CLOSE FLAG - .TRUE.=CLOSE, .FALSE.=NO CLOSE ; DEFAULT .TRUE. ; ; SETEXT -- SET DEFAULT EXTENSION FOR INDIRECT COMMAND FILES. ; ------------------------------------------------------------ ; CALL SETEXT(NEWEXT) ; NEWEXT -- 3 RAD50 CHARACTER EXTENSION FOR COMMAND FILES. ; ; FLUSHC -- FLUSH ALL INDIRECT COMMAND FILES. ; -------------------------------------------- ; ; CALLING SEQUENCE: ; CALL FLUSHC ; .PAGE .SBTTL GMCL TABLES ; ; COMMAND BLOCK ; .PSECT GCBLK,RW,D,LCL,CON GCBLK.:: .ENABL LSB GCM: GCMLB$ 3,,,,,,,DFNB .DSABL LSB ; .PSECT GTLIN,RW,I,LCL,CON GTLIN:: CLR @4(R5) ;SET FOR NULL LINE OR EOF. MOVB @6(R5),GCM+F.LUN ;SET NEW LU. BICB #GE.LC,GCM+G.MODE ;DEFAULT NO LOWER CASE BISB #GE.CLO,GCM+G.MODE ;DEFAULT CLOSE FILE AFTER READ. CMPB #6,(R5) ;OPTIONAL PARAMETERS PRESENT? BGT 20$ ;NO MOV 14(R5),R0 ;GET LOWER CASE FLAG IF PRESENT CMP #-1,R0 ;IS IT NULL BEQ 10$ ;EQ - YES BIT #100000,(R0) ;IS IT TRUE BNE 10$ ;NE - YES BISB #GE.LC,GCM+G.MODE ;FALSE - ENABLE LOWER CASE 10$: CMPB #7,(R5) ;OPTIONAL CLOSE FLAG PRESENT? BGT 20$ ;LE - NO MOV 16(R5),R0 ;GET FLAG CMP #-1,R0 ;IS IT NULL BEQ 20$ ;EQ - YES BIT #100000,(R0) ;IS IT TRUE BNE 20$ ;NE - YES BICB #GE.CLO,GCM+G.MODE ;FALSE - NO CLOSE 20$: GCML$ #GCM,10(R5),@12(R5) ;GET COMMAND LINE. BCC MOVLN ;IF NO ERROR, GO MOVE LINE. MOV #-1,@4(R5) ;SET FOR EOF. CMPB #GE.EOF,GCM+G.ERR BEQ DONL ;DONE IF EOF. MOV #-2,@4(R5) ;I/O ERROR. DONL: RETURN MOVLN: MOV GCM+G.CMLD,R2 ;GET # OF CHARS. BLE DONL MOV GCM+G.CMLD+2,R1 ;GET ADDRESS OF CHARS. CMP #80.,R2 ;TRUNCATE EXCESS BGE MVL MOV #80.,R2 MVL: MOV R2,@4(R5) ;SAVE NUMBER OF CHARS. MOV 2(R5),R0 ;SAVE USER BUFFER LPM: MOVB (R1)+,(R0)+ DEC R2 BNE LPM RETURN .SBTTL FLUSHC -- MAIN CODE. ; ; SUBROUTINE FLUSHC ; FLUSHC:: RCML$ #GCM RETURN .SBTTL SETEXT -- MAIN CODE ; ; SUBROUTINE SETEXT(NEWEXT) ; SETEXT:: MOV @2(R5),DFNB+N.FTYP RETURN .END