.TITLE CNVTUC .IDENT /V01/ .ENABLE LC ; ; This module converts all lower-case characters in a string into upper-case. ; ;Author: V01 25-Jan-80 Phil Stephensen-Payne ; ; Calling Sequence: ; ; This subroutine is called via the standard FORTRAN calling sequence as:- ; ; CALL CNVTUC (NUMCHR,ASCSTR [,STATUS]) ; or ; STATUS = CNVTUC (NUMCHR,ASCSTR) ; ; Where:- ; NUMCHR = Number of Characters to be converted (0-255) ; ASCSTR = Address of Strin to be converted. ; STATUS = Optional Error Return ; ; Errors Returned: ; ; STATUS = 0 if the operation was successful ; = -1 if a parameter error was detected ; ; External References: ; ; This module calls the subroutine PRMCHK. ; ; CNVTUC:: MOV #3,R0 ;CHECK NUMBER OF PARAMETERS CALL PRMCHK ; BCS CNVEND ;IF CS ERROR - EXIT IMMEDIATELY MOVB @2(R5),R1 ;GET NUMBER OF CHARACTERS TO CONVERT BEQ CNVEND ;IF EQ NONE - TERMINATE IMMEDIATELY MOV 4(R5),R2 ;GET ADDRESS OF STRING ; 10$: CMPB (R2),#141 ;LOWER THAN LOWER-CASE A? BLO 20$ ;IF LO YES - CARRY ON CMPB (R2),#172 ;HIGHER THAN LOWER-CASE Z? BHI 20$ ;IF HI YES - CARRY ON BICB #40,(R2) ;NO - CLEAR LOWER-CASE BIT ; 20$: INC R2 ;SET TO NEXT CHARACTER SOB R1,10$ ;AND PROCESS IT CLR R0 ; ; CNVEND: RETURN .END