1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
|
* 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
|