Mascafe is a paper/imp with an embedded vortex launch paired with a paper with anti-imp MOV bombs. Mascafe entered the KOTH 94nop hill on 21st February 2006 and survived 163 challenges before being pushed off on 8th June. Mascafe was resubmitted on 1st June 2014 and reached age 376 before leaving the hill on 25th June 2015.

;redcode-94nop
;name Mascafe
;author G.Labarga
;assert 1
;Qscan -> Anti A-imp paper + bombing paper/imp

;----- Anti-imp paper:
dest1 equ 4723
dest2 equ 2803
dest3 equ 4135
x equ 3388
y equ 3870
;----- Paper/imp:
dest4 equ 6065
dec equ 5905
trail equ 6876
bstep equ 5353
;----- booot:
piloc equ boot+6133     ;927
ailoc equ boot+4122     ;2661-1000

zero equ qbomb
qtab3 equ qbomb

qbomb:  dat >qoff, >qc2
        dat 0,0
        dat 0,0

boot:   spl 1,<qb1
qtab2:  spl 1,<qb2
        spl 1,<qb3

        mov {pap2,{1
p1go:   spl *piloc,<-510
        mov {pap1,{1
p2go:   jmz.a *ailoc,*0

pap1:   spl @8,{dest1
        mov }-1,>-1
        spl @0,{dest2
        mov }-1,>-1
        mov.i #1,{1
        mov x,{y
        mov {-4,{1
        jmz.a *dest3,*0
for 3
        dat 0,0
rof
        dat zero-1,qa1
qtab1:  dat zero-1,qa2
for 19
        dat 0, 0
rof
 pap2:   spl @8,<dest4
        mov }-1,>-1
head:   spl #-1143,<dec
        mov bmb,@igo
        sub.f head,igo
igo:    djn.f imp-(8*1143),{trail
bmb:    dat {bstep,<1
imp:    mov.i #3,1143
for 12+3
        dat 0,0
rof
qc2 equ ((1 + (qtab3-qptr)*qy) % CORESIZE)
qb1 equ ((1 + (qtab2-1-qptr)*qy) % CORESIZE)
qb2 equ ((1 + (qtab2-qptr)*qy) % CORESIZE)
qb3 equ ((1 + (qtab2+1-qptr)*qy) % CORESIZE)
qa1 equ ((1 + (qtab1-1-qptr)*qy) % CORESIZE)
qa2 equ ((1 + (qtab1-qptr)*qy) % CORESIZE)
qz equ 2108
qy equ 243

Qgo:    sne qptr + qz*qc2, qptr + qz*qc2 + qb2
        seq <qtab3, qptr + qz*(qc2-1) + qb2
        jmp q0, }q0
        sne qptr + qz*qa2, qptr + qz*qa2 + qb2
        seq <qtab1, qptr + qz*(qa2-1) + qb2
        jmp q0, {q0
        sne qptr + qz*qa1, qptr + qz*qa1 + qb2
        seq <(qtab1-1), qptr + qz*(qa1-1) + qb2
        djn.a q0, {q0
        sne qptr + qz*qb3, qptr + qz*qb3 + qb3
        seq <(qtab2+1), qptr + qz*(qb3-1) + (qb3-1)
        jmp q0, }q1
        sne qptr + qz*qb1, qptr + qz*qb1 + qb1
        seq <(qtab2-1), qptr + qz*(qb1-1) + (qb1-1)
        jmp q0, {q1
        sne qptr + qz*qb2, qptr + qz*qb2 + qb2
        seq <qtab2, qptr + qz*(qb2-1) + (qb2-1)
        jmp q0
        seq >qptr, qptr + qz + (qb2-1)
        jmp q2, <qptr
        seq qptr+(qz+1)*(qc2-1),qptr+(qz+1)*(qc2-1)+(qb2-1)
        jmp q0, }q0
        seq qptr+(qz+1)*(qa2-1),qptr+(qz+1)*(qa2-1)+(qb2-1)
        jmp q0, {q0
        seq qptr+(qz+1)*(qa1-1),qptr+(qz+1)*(qa1-1)+(qb2-1)
        djn.a q0, {q0
        jmz.f boot, qptr + (qz+1)*(qb2-1) + (qb2-1)

qoff equ -87
qstep equ -7
qtime equ 14

q0:     mul.b *2, qptr
q2:     sne {qtab1, @qptr
q1:     add.b qtab2, qptr
        mov qtab3, @qptr
qptr:   mov qbomb, }qz
        sub #qstep, qptr
        djn -3, #qtime
        jmp boot,{0
end Qgo