1;redcode-94nop
2;name Reepicheep
3;author Grabun/Metcalf
4;strategy Q^4 -> Stone/Paper
5;assert CORESIZE==8000
6
7org qGo
8
9sOff    equ     3941
10pHit0   equ     7599
11pDst0   equ     535
12pDst1   equ     3875
13pDst2   equ     5160
14
15pGo     spl     1       , }qC
16qTab2   spl     1       , }qD
17        spl     1       , }qE
18
19pSilk0  spl     @0      , >pDst0
20        mov     }pSilk0 , >pSilk0
21pSilk1  spl     pDst1   , 0
22        mov     >pSilk1 , }pSilk1
23        mov     pBmb    , >pHit0
24        mov     <pSilk1 , <pSilk2
25pSilk2  djn.f   @0      , >pDst2
26pBmb    dat     >5334   , >2667
27
28        for     20
29        dat     0       , 0
30        rof
31
32step    equ     2777
33time    equ     1425
34hop     equ     31
35bOff    equ     5
36
37sSpl    spl     #0      , #0
38ptr     mov     bomb    , }-(step*time)+1
39        mov     bomb    , @ptr
40a       add     #step   , @-1
41sLoo    djn.f   ptr     , {-1500
42
43        for     5
44        dat     0       , 0
45        rof
46
47bomb    dat     >hop    , >1
48
49        dat     0       , 0
50
51bBoot   mov     sSpl    , sOff-6-CURLINE
52        mov     bomb    , sOff+5-CURLINE
53        spl     2       , }qA
54qTab1   spl     2       , }qB
55sDst    spl     1       , sOff-CURLINE
56        mov     <sSrc   , <sDst
57        djn     @bBoot  , #5
58sSrc    jmp     pGo     , sLoo+1
59
60        for     23
61        dat     0       , 0
62        rof
63
64        qX      equ     3080
65        qA      equ     3532
66        qB      equ     2051
67        qC      equ     6177
68        qD      equ     4696
69        qE      equ     3215
70        qF      equ     583
71
72        qStep   equ     7
73        qTime   equ     16
74        qOff    equ     87
75
76qBomb   dat     {qOff   , qF
77
78qGo     sne     qPtr+qX*qE      , qPtr+qX*qE+qE
79        seq     <qTab2+1        , qPtr+qX*(qE-1)+(qE-1)
80        jmp     qDec            , }qDec+2
81        sne     qPtr+qX*qF      , qPtr+qX*qF+qD
82        seq     <qBomb          , qPtr+qX*(qF-1)+qD
83        jmp     qDec            , }qDec
84        sne     qPtr+qX*qA      , qPtr+qX*qA+qD
85        seq     <qTab1-1        , qPtr+qX*(qA-1)+qD
86        djn.a   qDec            , {qDec
87        sne     qPtr+qX*qB      , qPtr+qX*qB+qD
88        seq     <qTab1          , qPtr+qX*(qB-1)+qD
89        djn.a   qDec            , *0
90        sne     qPtr+qX*qC      , qPtr+qX*qC+qC
91        seq     <qTab2-1        , qPtr+qX*(qC-1)+(qC-1)
92        jmp     qDec            , {qDec+2
93        sne     qPtr+qX*qD      , qPtr+qX*qD+qD
94        jmz.f   bBoot           , <qTab2
95
96qDec    mul.b   *2      , qPtr
97qSkip   sne     <qTab1  , @qPtr
98        add.b   qTab2   , qPtr
99qLoop   mov     qBomb   , @qPtr
100qPtr    mov     qBomb   , }qX
101        sub     #qStep  , @qSkip
102        djn     qLoop   , #qTime
103        djn.f   bBoot   , #0
104
105        end
106