1;redcode-94
2;name nPaper II
3;author Paul-V Khuong
4;strategy MiniQ^3 -> Paper
5;assert CORESIZE==8000
6
7     org qGo
8
9     pStep1 equ 560
10     pStep2 equ 2680
11     pStep3 equ -1120
12
13     x equ -3781
14     y equ -2013
15
16pGo: spl   1,      >424
17     spl   1,      {761
18     spl   1,      {933
19     mov   {pap1,  {pBoo
20pBoo:spl   pEnd+4000,{2093
21pap1:spl   @pEnd,  <pStep1
22     mov.i }pap1,  >pap1
23pap2:spl   @0,     {pStep2
24     mov.i }pap2,  >pap2
25     mov.i #1,     {1
26     mov   x,      <y
27     mov.i {pap2,  <pap3
28pap3:jmz.a @0,     pStep3
29pEnd:
30
31     a for 45
32     dat   0,0
33     rof
34
35     qf equ qKil
36     qs equ (qd*2)
37     qd equ 107
38     qi equ 7
39     qr equ 11
40
41;    -+)>] 0/1 cycles [(<+-
42
43qGo: seq   qd+qf+qs,    qf+qs      ; 1
44     jmp   qSki,        {qd+qf+qs+qi
45     seq   qd+qf+6*qs,  qf+6*qs    ; B
46     jmp   qFas,        {qd+qf+6*qs+qi
47     seq   qd+qf+5*qs,  qf+5*qs    ; B-1
48     jmp   qFas,        <qBmb
49     seq   qd+qf+7*qs,  qf+7*qs    ; B+1
50     jmp   qFas,        >qBmb
51     seq   qd+qf+9*qs,  qf+9*qs    ; A-1
52     djn   qFas,        {qFas
53     seq   qd+qf+10*qs, qf+10*qs   ; A
54     jmp   qFas,        {qFas
55
56;    -+>)] 2 cycles [(<+-
57
58     seq   qd+qf+3*qs,  qf+3*qs    ; C
59     jmp   >qFas,       {qd+qf+3*qs+qi
60     seq   qd+qf+2*qs,  qf+2*qs    ; C-1
61     jmp   >qFas,       {qSlo
62     seq   qd+qf+4*qs,  qf+4*qs    ; C+1
63     jmp   >qFas,       }qSlo
64     seq   qd+qf+12*qs, qf+12*qs   ; B*C-B
65     jmp   qSlo,        {qSlo
66     seq   qd+qf+15*qs, qf+15*qs   ; B*C-C
67     jmp   qSlo,        <qBmb
68     seq   qd+qf+21*qs, qf+21*qs   ; B*C+C
69     jmp   qSlo,        >qBmb
70     seq   qd+qf+24*qs, qf+24*qs   ; B*C+B
71     jmp   qSlo,        }qSlo
72     seq   qd+qf+27*qs, qf+27*qs   ; A*C-C
73     djn   qSlo,        {qFas
74     seq   qd+qf+30*qs, qf+30*qs   ; A*C
75     jmp   qSlo,        {qFas
76     sne   qd+qf+18*qs, qf+18*qs   ; B*C
77     jmz.f pGo,         qd+qf+18*qs-10
78
79qSlo:mul.ab #3,         qKil       ; C=3
80qFas:mul.b qBmb,        @qSlo
81qSki:sne   >3456,       @qKil
82     add   #qd,         qKil
83qLoo:mov   qBmb,        @qKil
84qKil:mov   qBmb,        *qs
85     sub   #qi,         qKil
86     djn   qLoo,        #qr
87     jmp   pGo,         >10        ; A=10
88qBmb:dat   {qi*qr-10,   {6         ; B=6
89     end
90
91