• [88] 4 upcycled warriors.

    From Stephen Gunnell@21:1/5 to All on Fri Dec 24 14:45:23 2021
    I maintain a sort of top 200 list for each KotH hill and one of the views is the effectiveness against the published hill warriors. Every so often one of the classic warriors bubbles up into contention and I investigate it. Recently I have been doing
    some upcycling where I don't investigate the warrior in any detail but just present it with a new set of constants. Here are:
    Agony 4.1 by Stefan Strack
    Positive Knife '88 by Ken Espiritu
    Sixth Sense by Wayne Sheppard
    Tangle Trap 3 by David Moore

    I was going to post the warriors as an uuencoded zip file for old times sake but Google Groups throws an error without explaining what the problem is. What a crock!

    Merry Christmas people,

    Steve

    ;redcode
    ;name Agony 4.1 kzkb
    ;author Stefan Strack
    ;strategy Small-interval CMP scanner that bombs with a SPL 0 carpet.
    ;strategy Tweaked and upcycled by Steve G
    ;assert CORESIZE==8000

    CDIST equ 12
    IVAL equ 3634
    FIRST equ scan+OFFSET+IVAL
    OFFSET equ (3634*1585)
    DJNOFF equ 6045

    load mov #CDIST+(bptr-comp)+1 ,count
    scan sub incr ,comp
    comp cmp FIRST-CDIST ,FIRST
    slt #incr-comp+CDIST+(bptr-comp)+1 ,comp
    djn scan ,<FIRST+DJNOFF
    mov comp ,bptr
    bptr dat #0
    split mov bomb ,<bptr
    count djn split ,#CDIST+(bptr-comp)+1
    jmz load ,load-1
    bomb spl 0 ,<1-IVAL
    mov incr ,<count
    incr dat <0-IVAL ,<0-IVAL

    end comp

    ----------------------------------------------------

    ;redcode
    ;name Positive Knife '88 kdyp
    ;author Ken Espiritu
    ;strategy q^2 -> stone/imp
    ;assert CORESIZE==8000

    step equ 5557
    time equ 6306
    doff equ 2101
    boff equ 3030
    sloc equ 2512
    iloc equ 7067
    ioff equ 7921

    qf equ (qgo+1*qs)
    qd equ 82
    qs equ (2*qd)
    qi equ 5
    qr equ 9

    spl 0 ,<sloc-iloc+doff
    spl sloc-iloc-1 ,ioff+2667*2+1
    add #2667 ,-1
    djn @-2 ,<sloc-iloc+doff-3
    iend mov 0 ,2667

    s spl 0 ,<doff
    sl mov boff+3 ,hit-step*time
    hit add #step ,-1
    djn sl ,<doff+s
    bomb dat <2667 ,<0

    qbomb dat <qi/2-qi*qr ,<qi*qr-qi/2
    dat #12*qs ;a
    qp1 dat #5*qs ;b
    qp2 dat #2*qs ;c
    qp3 ; dat #1*qs ;d

    qgo cmp qd+qf ,qf ;d
    jmp qskip ,<qf+4

    cmp qd+qf+qs*5 ,qf+qs*5
    jmp qfast ,<qf+qs*5+4
    cmp qd+qf+qs*12 ,qf+qs*12
    q1 djn qfast ,#qp1

    cmp qd+qf+qs*7 ,qf+qs*7
    jmp qslow ,<qf+qs*7+4
    cmp qd+qf+qs*14 ,qf+qs*14
    jmp qslow ,<q1
    cmp qd+qf+qs*10 ,qf+qs*10
    q2 djn qslow ,#qp2
    cmp qd+qf+qs*2 ,qf+qs*2
    jmp qslow ,<qfast

    cmp qd+qf+qs*8 ,qf+qs*8
    jmp qslower ,<qf+qs*8+4
    cmp qd+qf+qs*15 ,qf+qs*15
    jmp qslower ,<q1
    cmp qd+qf+qs*11 ,qf+qs*11
    jmp qslower ,<q2
    cmp qd+qf+qs*9 ,qf+qs*9
    q3 djn qslower ,#qp3
    cmp qd+qf+qs*3 ,qf+qs*3
    jmp <qfast ,<qf+qs*3+4
    cmp qd+qf+qs*6 ,qf+qs*6
    jmp <qfast ,<q2
    cmp qd+qf+qs*4 ,qf+qs*4
    jmp <qfast ,<q3
    cmp qd+qf+qs*16 ,qf+qs*16
    slt <q3 ,<q1

    jmz boot ,qd+qf+qs*8+10

    qslower add @q3 ,@q2
    qslow add @q2 ,qkil
    qfast add @q1 ,@qslow

    qskip jmn qloop ,@qkil

    add #qd ,qkil
    qloop mov qbomb ,@qkil
    qkil mov qbomb ,<qf
    sub #qi ,@qloop
    djn qloop ,#qr+2

    boot mov <ssptr ,s+sloc+boff
    mov <siptr ,s+iloc+ioff
    ssptr spl 1 ,bomb+1
    siptr spl 1 ,iend+1
    mov <ssptr ,<dsptr
    mov <siptr ,<diptr
    dsptr spl @0 ,s+sloc
    diptr jmp @0 ,s+iloc

    end qgo

    -------------------------------------------------

    ;redcode
    ;name Sixth Sense vjfn
    ;author Wayne Sheppard
    ;strategy cmp scanner-SPL/JMP-Gate
    ;strategy Tweaked and upcycled by Steve G
    ;assert CORESIZE==8000

    dist equ 121
    scan equ dist*2
    safe equ off-Go+4

    Go add off ,@x
    loc cmp dist-1 ,-1
    slt #safe ,@x
    djn -3 ,<5994
    mov j ,@loc
    x mov s ,<loc
    sub new ,@x
    jmn loc ,loc-1
    s spl 0 ,<1-dist
    mov 2 ,<-2
    j jmp -1 ,#0
    new dat <0-dist ,<0-dist-1
    off dat #scan ,#scan

    end Go

    ------------------------------------------------------

    ;redcode
    ;name Tangle Trap 3 dlhu
    ;author David Moore
    ;strategy .4c pit trapper with error-checking.
    ;strategy If damaged, then deploy "airbag"
    ;strategy tweaked and upcycled by Steve G
    ;assert CORESIZE==8000

    ; vamp numbers

    step equ 6935
    skip equ (0-11)
    time equ 570

    ; boot distances

    dist equ 4429 ; distance to vamp_A from boot
    distCh equ 14 ; distance to check from vamp_A
    distT equ 123 ; distance to trap from vamp_A
    distCl equ (0-72) ; distance to clear from vamp_A

    MARK equ 4405

    boot2 mov clBomb ,@pCl
    mov fang2 ,@pF
    mov fang1 ,<pF
    pW mov wimp ,boot+dist+(vamp_C-vamp_A)+skip+step
    pT spl pC ,boot+dist+distT+3
    pF spl boot+dist+2 ,boot+dist+distCh
    pV spl @0 ,boot+dist+6
    mov <pV ,pF ; hide boot pointers
    dat <pT ,<pW

    pC spl boot+dist+3 ,boot+dist+distCl+3
    pV2 spl @0 ,boot+dist+1
    mov <pV2 ,pC ; hide boot pointers
    dat <pV2 ,<boot+dist+5421

    boot spl boot2 ,<boot+dist+MARK
    spl 2 ,<boot+dist+MARK*2
    spl 1 ,<boot+dist+MARK*3
    mov <source ,<pV
    mov <source ,<pV
    mov <source ,<pC
    mov <source ,<pT
    djn @pV2 ,#3
    pCl djn @pV ,#boot+dist+distCl-4

    wimp jmp 0 ,<0
    clBomb dat <-8 ,#-10

    fang1 jmp skip + step ,skip
    fang2 jmp distT-(vamp_C-vamp_A)+(step*time)-skip-step ,2

    spl 0 ,<2
    source spl -1 ,vamp_A + 6
    jmn -1 ,#MAXPROCESSES

    spl 0 ,<-7
    mov -5 ,<-5
    djn -1 ,<5359

    check equ (vamp_A + distCh)
    clear equ (vamp_A + distCl)

    vamp_A add vamp_B ,check
    vamp_B sub #-step ,2
    vamp_C mov <check ,@vamp_D
    vamp_D mov <check ,@vamp_C - step * time
    vamp_E jmz vamp_A ,check
    jmp clear ,0

    end boot

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)