; .MACRO SAVE A,B,C,D,E,F,G,H,I,J,K .NARG NARG .IF GT NARG-10. ;IF EXCESS 10 ARGUMENT THEN ERROR .ERROR NARG ;EXCESS ARGUMENTS LIMIT MAXIMUM 10. .MEXIT .ENDC .IF EQ NARG ;SPECIAL DEFAULT CASE SAVE R0 TO R5 .EMIT .MEXIT ;IMEDIATE EXIT .ENDC ;END OF SUBSET OF CODE CNT = -1. .IRP SYM, CNT = CNT+1 .IF GT NARG-CNT .IFT .EMIT .IFF .MEXIT .ENDC .ENDM .ENDM SAVE ; ; ; .MACRO UNSAVE A,B,C,D,E,F,G,H,I,J,K .NARG NARG .IF GT NARG-10. ;IF EXCESS 10 ARGUMENT THEN ERROR .ERROR NARG ;EXCESS ARGUMENTS LIMIT MAXIMUM 10. .MEXIT .ENDC .IF EQ NARG ;SPECIAL DEFAULT CASE UNSAVE R0 TO R5 .EMIT .MEXIT ;IMEDIATE EXIT .ENDC ;END OF SUBSET OF CODE CNT = 11. ;LOOP COUNTER .IRP SYM, CNT = CNT-1 .IF GE NARG-CNT .EMIT .ENDC .ENDM .ENDM UNSAVE ; ; ; REGISTER SET MACROS ; ******************* ; .MACRO SETREG P0,P1,P2,P3,P4,P5,P7,P8,P9 .NARG NUMARG .IF GT NUMARG-6 .ERROR ;TOO MANY REGISTERS DEFINED. .MEXIT .ENDC .IIF GE NUMARG-1 ..TPRM P0,R0 .IIF GE NUMARG-2 ..TPRM P1,R1 .IIF GE NUMARG-3 ..TPRM P2,R2 .IIF GE NUMARG-4 ..TPRM P3,R3 .IIF GE NUMARG-5 ..TPRM P4,R4 .IIF GE NUMARG-6 ..TPRM P5,R5 .ENDM ..TRST ; .MACRO ..TPRM ARG,REG .IF NB ARG .IF IDN ARG,#0 .EMIT .IFF .IF DIF ARG,- .EMIT .ENDC .ENDC .ENDC .ENDM ..TPRM ; .END