;NSFCWT Round 7 ;contact gmeadon@mit.edu ;redcode-94 ;name Tim ;author G. Eadon ;strategy Lays a DJN.F stream starting in the 4000-4500 range. The starting ;strategy point for stream is changed whenever the last round was a loss. ;strategy The idea is that the DJN.F stream will eventually find a position ;strategy where it catches the P-Switch or boot routine... If it looses 50 ;strategy times (ie- it tries starting @ every n*10 address where n=[400,450] ;strategy and doesn't find one that wins every time) then a imp-spiral is ;strategy is used. RESULT equ #0 POS1 equ #1 wlt dat 0, 0 pos0 xxx for 5 dat 0, (6-xxx) * 100 - 00 + 4000 + wlt rof xxx for 5 dat 0, (6-xxx) * 100 - 40 + 4000 + wlt rof xxx for 5 dat 0, (6-xxx) * 100 - 80 + 4000 + wlt rof xxx for 5 dat 0, (6-xxx) * 100 - 60 + 4000 + wlt rof xxx for 5 dat 0, (6-xxx) * 100 - 20 + 4000 + wlt rof xxx for 25 dat 0, (510 - xxx*20)- 00 + 4000 + wlt rof start ldp POS1, go slt go, #(start - go) jmp spiral, <4000 ldp RESULT, wlt jmz adjust, wlt ; 0 = Loss djn 2, wlt ; 1 = Win jmp go, <4000 djn 2, wlt ; 2 = Tie jmp adjust, <4000 mov #(pos0-go-1), go ; Other = Initilize adjust add #1, go stp go, POS1 jmp go, <4000 jmp 0, <4000 go djn.f 0, <0 jmp go, <4000 pos dat 0, 0 ; 26-process 13-point spiral (coresize 8000, '94 standard) ; Generated by Jay Han's makeimp ; I added the trashing step equ 3077 spiral spl imp2, <4002+wlt spl lbl3, <4008 + wlt spl lbl5, < 4015 + wlt spl lbl9, < 4025 + wlt spl lbl17, < 4035 + wlt spl lbl33, < 4045 + wlt jmp imp+0*step+0, < 4055 + wlt lbl33 jmp imp+1*step+0, < 4065 + wlt lbl17 spl lbl35, < 4075 + wlt jmp imp+2*step+0, < 4085 + wlt lbl35 jmp imp+3*step+0, < 4095 + wlt lbl9 spl lbl19, < 4105 + wlt spl lbl37, < 4115 + wlt jmp imp+4*step+0, < 4125 + wlt lbl37 jmp imp+5*step+0, < 4135 + wlt lbl19 spl lbl39, < 4145 + wlt jmp imp+6*step+0, < 4155 + wlt lbl39 jmp imp+7*step+0, < 4165 + wlt lbl5 spl lbl11, < 4175 + wlt spl lbl21, < 4185 + wlt spl lbl41, < 4195 + wlt jmp imp+8*step+0, < 4205 + wlt lbl41 jmp imp+9*step+0, < 4215 + wlt lbl21 spl lbl43, < 4225 + wlt jmp imp+10*step+0, < 4235 + wlt lbl43 jmp imp+11*step+0, < 4245 + wlt lbl11 spl lbl23, < 4255 + wlt spl lbl45, < 4265 + wlt jmp imp+12*step+0, < 4275 + wlt lbl45 jmp imp+0*step+1, < 4285 + wlt lbl23 spl lbl47, < 4295 + wlt jmp imp+1*step+1, < 4305 + wlt lbl47 jmp imp+2*step+1, < 4315 + wlt lbl3 spl lbl7, < 4325 + wlt spl lbl13, < 4335 + wlt spl lbl25, < 4345 + wlt spl lbl49, < 4355 + wlt jmp imp+3*step+1, < 4365 + wlt lbl49 jmp imp+4*step+1, < 4375 + wlt lbl25 spl lbl51, < 4385 + wlt jmp imp+5*step+1, < 4395 + wlt lbl51 jmp imp+6*step+1, < 4405 + wlt lbl13 spl lbl27, < 4415 + wlt spl lbl53, < 4425 + wlt jmp imp+7*step+1, < 4435 + wlt lbl53 jmp imp+8*step+1, < 4445 + wlt lbl27 spl lbl55, < 4455 + wlt jmp imp+9*step+1, < 4465 + wlt lbl55 jmp imp+10*step+1, < 4475 + wlt lbl7 djn.b 0, #2 ; Idle 2 cycles spl lbl57, < 4485 + wlt jmp imp+11*step+1, < 4492 + wlt lbl57 jmp imp+12*step+1, < 4497 + wlt imp mov.i 0, step imp2 mov 0, 1 dat 0, 0 dat 0, 0 n for 375/5 dat 1, 1 dat n+79, 1 dat 1, 1490+n dat 666, n dat 2112-n, 1490 rof end start