.TITLE MR09.. STRING PROCEDURES IN MACRO ; .IDENT /MR09../ ; .PAGE .SBTTL . CHARACTER SHIFT LEFT END-AROUND ; R$SHLE:: ;SHIFT CHARACTER STRING LEFT END AROUND ; ; ENTRY CONDITIONS ; ; R0 -> CHARACTER STRING ADDRESS ; SAVE R1,R2,R3,R4 ;SAVE REGISTERS R1 TO R4 MOV @R0,R3 ;HOLD LOOP COUNTER +1 DEC R3 ;CORRECT VALUE BLE 80$ ;J IF STRING LENGTH <=1 CHARACTER ; MOV R0,R1 ;HOLD START ADDRESS OF STRING INC R1 ;INDEX TO START CHARACTERS -1 ADD @R0,R1 ;END CHARACTER ADDRESS OF STRING MOV R1,R2 ;HOLD END CHARACTER ADDRESS OF STRING ; 50$: MOVB (R1),90$ ;EXTRACT CHARACTERS MOVB -(R1),90$+1 SWAB 90$ ;REVERSE ORDER OF CHARACTERS MOVB 90$,(R2) ;REPLACE CHARACTERS MOVB 90$+1,-(R2) SOB R3,50$ ;LOOP THROUGH STRING MOVING ;LAST CHARACTER TO START ; 80$: UNSAVE R1,R2,R3,R4 ;RESTORE REGISTERS R1 TO R4 RETURN ;EXIT ; 90$: .WORD ;SWAP SPACE WORK AREA ; .END ; ;