.TITLE MRC7.. CHARACTER PROCEDURES IN MACRO ; .IDENT /MRC7../ ; .PAGE .SBTTL . EXTRACT A CHARACTER FROM A STRING ; R$MOVC:: ;EXTRACT A CHARACTER FROM A STRING ; ; ENTRY CONDITIONS ; R1 -> STRING ADDRESS ; ; EXIT CONDITIONS ; R0 = CHARACTER IF STATUS EQUALS SUCCESS ; ; TST @R1 ;ARE THERE ANY CHARACTERS IN THE STRING BLE 30$ ;J IF NOT CHARS IN STRING TST -2(R1) ;IS STRING WRITE PROTECTED BLE 30$ ;J IF PROTECTED ; SAVE R1,R2,R3 ;PROTECT REGISTERS DEC @R1 ;REDUCE STRING LENGTH BY ONE MOVB 2(R1),R0 ;HOLD FIRST CHARACTER MOV (R1)+,R3 ;HOLD NUMBER OF CHARS TO MOVE DOWN STRING BLE 20$ ;JI F NO CHARS TO MOVE (IE LAST CHAR) MOV R1,R2 ;HOLD ADDRESS OF FIRST CHARACTER INC R2 ;HOLD ADDRESS OF SECOND CHARACTER ; 10$: MOVB (R2)+,(R1)+ ;MOVE A CHARACTER DOWN THE STRING SOB R3,10$ ;LOOP TILL ALL CHARACTERS MOVED ; 20$: SETSUCCESS ;INDICATE JOB DONE WITH SUCCESS UNSAVE R1,R2,R3 ;RESTORE REGISTERS RETURN ;EXIT TO CALLING PROGRAM ; 30$: EXITERROR ;INDICATE JOB FAILED AND EXIT TO CALLING PROGRAM ; ; ; ; ; .END ; ;