.TITLE MG05.. GENERAL PURPOSE REGISTER PROCEDURE ; .IDENT /MG05../ ; .PAGE .SBTTL EXCHANGE THE CONTENTS OF REGISTERS R1 TO R3 ; R$SWAP:: ; ; ENTRY CONDITIONS ; ; CONTENTS OF REGISTERS R1 TO R3 PLACED IN DATA AREA ; ; EXIT CONDITIONS ; ; REGISTERS LOADED WITH PREVIOUS ENTRY CONTENTS ; ; SAVE R5 ;PROTECT CONTENTS OF R5 CALL 20$ ;GET STORE ADDRESS POINTER COM 10$ ;SET SWITCH TO POINT TO ALTERNATE STORE MOV @R1,(R5)+ ;SAVE CONTENTS OF R1 MOV @R2,(R5)+ ;SAVE CONTENTS OF R2 MOV @R3,(R5)+ ;SAVE CONTENTS OF R3 CALL 20$ ;GET ADDRESS OF ALTERNATE STORE MOV (R5)+,@R1 ;RESTORE CONTENTS INTO R1 MOV (R5)+,@R2 ;RESTORE CONTENTS INTO R2 MOV (R5)+,@R3 ;RESTORE CONTENTS INTO R3 UNSAVE R5 ;RESTORE CONTENTS OF R5 RETURN ;RETURN TO CALLING PROGRAM ; ; DATA AREA ; 10$: .WORD 0 ;DATA AREA POINTER FLAG 11$: .WORD 0,0,0,0 ;STORE AREA ONE 12$: .WORD 0,0,0,0 ;STORE AREA TWO ; ; ADDRESS CHANGING ROUTINE ; 20$: MOV #11$,R5 ;HOLD START ADDRESS OF DATA STORE TST 10$ ;IS THIS THE REQUIRED ADDRESS BEQ 21$ ;J IF CORRECT ADDRESS FOUND MOV #12$,R5 ;INCREMENT ADDRESS POINTER TO SECOND STORE 21$: RETURN ;EXIT FROM ADDRESS SWAPPER ; ; .END ;