Cinammon is a binary launched paper/imp which also has silk-imps and spiral forming steps. Cinammon entered the KOTH.org 94nop hill in September 1999 and survived 121 challenges before being push off on 20th April 2000. Cinammon also survived 53 challenges on the Pizza 94 hill before the server closed in June 2001 and was published in Core Warrior issue 77.

;redcode-94
;name Cinammon
;author John Metcalf
;strategy Mini-Q^3 -> Paper/Imps and Wimp
;assert CORESIZE==8000

     pStep1 equ 6405                    ; computer optimized against scans
     pStep2 equ 4240                    ; from HSA, Snoopy & Recycled Bits
     pStep3 equ (pStep2-2667)
     wBoot  equ (pap1+5373)             ; pocket to place wimp, distance
                                        ; particularly effective against
     org qGo                            ; Recycled Bits scan :-)

ppGo:mov   {pap1,       {bb             ; binary launch
     mov   {pap1,       {bb
bb:  spl   pap1+4000+12,{qf+25*qs

pap1:spl   @12,         >pStep1
     mov   }pap1,       >pap1
     mov   }pap1,       >pap1           ; copy
pap2:spl   @0,          >pStep2
     mov   }pap2,       >pap2           ; copy
pap3:spl   @0,          >pStep3
     mov   }pap3,       >pap3           ; copy

     mov.i #-2669,      }4000-pStep3    ;   silk-imp
     mov.i #-pStep2,    2667            ; standard-imp
     mov.i #4001,       *0              ; mirrored-imp

     for 40
     dat 0,0
     rof

wimp:jmp   #0,          #0

     qf equ qKil
     qs equ 222
     qd equ 322
     qi equ 7
     qr equ 11

qGo: seq   qd+qf+qs,    qf+qs      ; 1
     jmp   qSki,        {qd+qf+qs+qi
     seq   qd+qf+6*qs,  qf+6*qs    ; B
     jmp   qFas,        {qd+qf+6*qs+qi
     seq   qd+qf+5*qs,  qf+5*qs    ; B-1
     jmp   qFas,        <qBmb
     seq   qd+qf+7*qs,  qf+7*qs    ; B+1
     jmp   qFas,        >qBmb
     seq   qd+qf+9*qs,  qf+9*qs    ; A-1
     djn   qFas,        {qFas
     seq   qd+qf+10*qs, qf+10*qs   ; A
     jmp   qFas,        {qFas

     seq   qd+qf+3*qs,  qf+3*qs    ; C
     jmp   >qFas,       {qd+qf+3*qs+qi
     seq   qd+qf+2*qs,  qf+2*qs    ; C-1
     jmp   >qFas,       {qSlo
     seq   qd+qf+4*qs,  qf+4*qs    ; C+1
     jmp   >qFas,       }qSlo
     seq   qd+qf+12*qs, qf+12*qs   ; B*C-B
     jmp   qSlo,        {qSlo
     seq   qd+qf+15*qs, qf+15*qs   ; B*C-C
     jmp   qSlo,        <qBmb
     seq   qd+qf+21*qs, qf+21*qs   ; B*C+C
     jmp   qSlo,        >qBmb
     seq   qd+qf+24*qs, qf+24*qs   ; B*C+B
     jmp   qSlo,        }qSlo
     seq   qd+qf+27*qs, qf+27*qs   ; A*C-C
     djn   qSlo,        {qFas
     seq   qd+qf+30*qs, qf+30*qs   ; A*C
     jmp   qSlo,        {qFas
     sne   qd+qf+18*qs, qf+18*qs   ; B*C
     jmz.f pGo,         qd+qf+18*qs-10

qSlo:mul   #3,          qKil       ; C=3
qFas:mul.b qBmb,        @qSlo
qSki:sne   >qf+23*qs,   >qKil
     add   #qd,         qKil
qLoo:mov   *qKil,       <qKil
qKil:mov   qBmb,        }qs
     sub   #qi-1,       @qLoo
     djn   qLoo,        #qr

pGo: spl   }0,          >qf+29*qs  ; 6 parallel processes and 1
     spl   0,           }qf+28*qs  ; stray process for the wimp
     djn   ppGo,        #1
     mov   wimp,        {1
     djn.f wBoot+1,     #10        ; A=10
qBmb:dat   {qi*qr-10,   {6         ; B=6
     end