$R0 = 6e770bc339d5fa0db1328c6ebf921f7581ea4cdb46a89c33ce578466c7802db0bed47da4a0e17e061486025704c998ca1ba9ffafff5544a016ec62a82a56986ec17498be948dfd60574f91cf4967826f93bedd5927ef7466a2337ad8e3b7ceb1bcd4b742830bc3125f0d8be7117010bcd94a1291b5d1c7fb49f58b0a290cfb8b $R1 = 18ffd8b2dcd19f00e9301d1d985d45553d7ee55d752e23cf82caba2feb2b9d9495bd1cca2c71ce26ce791d5a7255967e721617bbed81d7f989a783988e0ccf86193a13afeebae3b0d422c2a5f2db5d74fb3f29581a8ca6a4e3816421465b08a66dc59f9d348a89655959953e0accdfb0b370d03d7f441245f187000513640b37 $R2 = c14b1fabc4c6c1678379c768cd00a4782b90d4ae4e32cb20e1f991bb37bbf0f04778e6219d460e1872182c5e2610ceedd9a86f4ad38e1ab9699d5cc006a206f4d1aaf3b14dd2158f7646650ada256579b0c36c597abe5996b40a931b9c97fc9c5dba6d37001a4790422482d4a15d0d3c36999454624cae656000f22202851a6d I=1024 CALL(POWER) X=0 R14=A END(0);@R14 ################################### # Power subroutine (EVEN/ODD) # A = R1 ^ R2 mod R0 ################################### POWER: SEL(X);C=SEL2;D=SEL2;X=1 BC(POWEREVEN);SEL(X);B=SEL2 ################################### # ODD CASE ################################### A=SEL1;C=SEL2;J=1024 YDIV: ADDL=DIVA;ADDR=D;CMP;SUB;INV;A=SEL3;B=SEL3;C=SEL3;BJ(YDIV) ADDL=DIVA;ADDR=D;CMP;SUB;INV;A=SEL3;B=SEL3;C=SEL3 D=SEL1;SUB;A=SEL1;X=0 SEL (X);B=SEL2;X=2 SEL (X);C=SEL2;MRES J=256;XCOUNT YLBL1: XCOUNT;MMUL;BJ(YLBL1) XCOUNT;MMUL MMUL;MRES;MUL;D=SEL1;A=SEL1 CMP;SUB;INV;ADDL=A;ADDR=B;A=SEL1;BC(YLBL2) D=SEL1;ADDR=D;A=SEL1 MMUL;MRES;A=SEL1 CMP;SUB;INV;ADDL=A;ADDR=B;A=SEL1 YLBL2: BI(YLBL1);MRES C=SEL1;J=256;XCOUNT RET NOP ################################### # EVEN ################################### POWEREVEN: SUB;A=SEL1 R0=A;X=2 ZLBL0: SEL (X);C=SEL2 ADDR=C;B=SEL1 BC(ZLBL1);ADDR=B;A=SEL1 R2=A;J=512;B=SEL2;X=1 SEL (X);C=SEL2;X=0 SEL (X);A=SEL1 ZMUL0: ADDL=A;ADDR=B;MUL;B=SEL1;C=SEL1;BJ(ZMUL0) ADDL=A;ADDR=B;MUL;B=SEL1;C=SEL1 J=1024;A=SEL1 ZDIV0: ADDL=DIVA;ADDR=D;CMP;SUB;INV;A=SEL3;B=SEL3;C=SEL3;BJ(ZDIV0) ADDL=DIVA;ADDR=D;CMP;SUB;INV;A=SEL3;B=SEL3;C=SEL3 R0=A;J=512;B=SEL2;X=1 ZLBL1: SEL (X);A=SEL1;C=SEL2 ZMUL1: ADDL=A;ADDR=B;MUL;B=SEL1;C=SEL1;BJ(ZMUL1) ADDL=A;ADDR=B;MUL;B=SEL1;C=SEL1 J=1024;A=SEL1 ZDIV1: ADDL=DIVA;ADDR=D;CMP;SUB;INV;A=SEL3;B=SEL3;C=SEL3;BJ(ZDIV1); ADDL=DIVA;ADDR=D;CMP;SUB;INV;A=SEL3;B=SEL3;C=SEL3 BI(ZLBL0) X=2;R1=A;B=SEL2 X=0;RET SEL(X);A=SEL1