.TITLE FNAM4 .IDENT /V7.00/ ;***************************************************************** ; ; *** $FNAM4 PUT FIRST NAME OF USER IN MESSAGE ; TO BE USED WITH ACCOUNTING SYSTEM V7 (HELLO) ; RSX-11M V4.0 ONLY. ; ; THE USERS' FIRST NAME (OR WHATEVER IS IN THE ACCOUNT FILE ; IN THIS FIELD) IS ADDED TO THE END OF THE GREETING MESSAGE. ; THE FIRST LETTER OF THE FIRST NAME IS COPIED IN UPPER ; CASE, WHILE THE REMAINING LETTERS ARE LOWER CASE. ; ; VERSION: V7 APRIL 1981 ; ; STEVE THOMPSON SCHOOL OF CHEMICAL ENGINEERING ; OLIN HALL ; CORNELL UNIVERSITY ; ITHACA NY 14853 ; ; INPUT: ; R0 ADDRESS OF GREETING MESSAGE ; (NAME GOES AT END OF MESSAGE) ; ;****************************************************************** SPA = 40 ; SPACE QFLAG: .WORD 0 ; MESSAGE ENDS WITH QUESTION MARK ; 0=NO 1=YES $FNAM4::MOV R0,-(SP) ; SAVE MESSAGE POINTER 5$: TSTB (R0)+ ; LOOK FOR END OF MESSAGE BNE 5$ ; IF NE KEEP LOOKING SUB #3,R0 ; STEP BACK TO NULL BYTE AND TAKE OFF THE ; CARRIAGE RETURN AND LINEFEED CMPB -1(R0),#'? ; DID MESSAGE END WITH A QUESTION MARK? BNE 10$ ; IF NE NO INC QFLAG ; YES, SET FLAG TO SHOW IT DEC R0 ; AND REMOVE ? FROM MESSAGE 10$: MOV $ENTAD,R1 ; GET ACCOUNT ENTRY ADDRESS ADD #A.FNM,R1 ; POINT TO FIRST NAME MOV #12.,R2 ; SET MAX. NO. OF CHARACTERS TO TRANSFER ; (PLUS ONE MINUS FIRST CHARACTER) MOVB #SPA,(R0)+ ; START NAME WITH A SPACE MOVB (R1)+,(R0)+ ; COPY FIRST CHARACTER IN EXACT CASE 15$: MOVB (R1)+,(R0) ; MOVE A CHARACTER CMPB (R0)+,#SPA ; WAS IT A SPACE? BEQ 20$ ; IF EQ YES CMPB -(R0),#'A ; ALPHABETIC (UPPER CASE)? BLO 17$ ; IF LO NO CMPB (R0),#'Z ; MAYBE BHI 17$ ; IF HI NO BISB #40,(R0) ; MAKE IT LOWER CASE 17$: INC R0 ; POINT TO NEXT CHARACTER POSITION DEC R2 ; NO, SEE IF THERE ARE ANY MORE TO MOVE BNE 15$ ; AND MOVE THEM 20$: DEC R0 ; REMOVE LAST SPACE TST QFLAG ; DOES THE MESSAGE NEED A QUESTION MARK? BEQ 25$ ; IF EQ NO MOVB #'?,(R0)+ ; YES, PUT IT IN 25$: MOVB #15,(R0)+ ; PUT IN A CARRIAGE RETURN CLRB (R0) ; MAKE THE STRING ASCII MOV (SP)+,R0 ; RESTORE ORIGINAL MESSAGE POINTER RETURN ; AND RETURN .END