* multiply permutations in cycle form (taopc p. 168) * MAXWDS EQU 1200 PERM ORIG *+MAXWDS ANS ORIG *+MAXWDS OUTBUF ORIG *+24 CARDS EQU 16 PRINTER EQU 18 BEGIN IN PERM(CARDS) ENT2 0 LDA EQUALS 1H JBUS *(CARDS) CMPA PERM+15,2 JE *+2 IN PERM+16,2(CARDS) ENT1 OUTBUF JBUS *(PRINTER) MOVE PERM,2(16) OUT OUTBUF(PRINTER) JE 1F INC2 16 CMP2 =MAXWDS-16= JLE 1B HLT 666 1H INC2 15 ST2 SIZE ENT3 0 2H LDAN PERM,3 CMPA LPREN(1:5) JNE 1F STA PERM,3 INC3 1 LDXN PERM,3 JXZ *-2 1H CMPA RPREN(1:5) JNE *+2 STX PERM,3 INC3 1 CMP3 SIZE JL 2B LDA LPREN ENT1 ANS OPEN ENT3 0 1H LDXN PERM,3 JXN GO INC3 1 CMP3 SIZE JL 1B * DONE CMP1 =ANS= JNE *+2 MOVE LPREN(2) MOVE =0= MOVE -1,1(22) ENT3 0 OUT ANS,3(PRINTER) INC3 24 LDX ANS,3 JXNZ *-3 HLT * LPREN ALF " (" RPREN ALF ") " EQUALS ALF " =" * GO MOVE LPREN MOVE PERM,3 STX START SUCC STX PERM,3 INC3 1 LDXN PERM,3(1:5) JXN 1F JMP *-3 5H STX 0,1 INC1 1 ENT3 0 4H CMPX PERM,3(1:5) JE SUCC 1H INC3 1 CMP3 SIZE JL 4B CMPX START(1:5) JNE 5B CLOSE MOVE RPREN CMPA -3,1 JNE OPEN INC1 -3 JMP OPEN END BEGIN