;redcode-94x ;name Aoshi E 107 ;author Steve Gunnell ;strategy Fast f-scanner with Q^4 scan cribbed from CW 84. ;assert 1 STEP equ 3541 GAP5 equ 14 GAP6 equ 4 BPTR equ (top-GAP5-4) SPAN equ 17 TIME equ 25 LEAP equ (sptr+23569) QFAC equ 61 QINV equ 30901 dat0 equ (t2 - 20 ) GAP1 equ 4 GAP2 equ 5 GAP3 equ 11 GAP4 equ 0 START equ 13862 IMPNUM equ 8 D equ (QINV+1) A1 equ (1 + QFAC * (t1-1 - qb) ) A2 equ (1 + QFAC * (t1 - qb) ) B1 equ (1 + QFAC * (t2-1 - qb) ) B2 equ (1 + QFAC * (t2 - qb) ) B3 equ (1 + QFAC * (t2+1 - qb) ) C2 equ (1 + QFAC * (t3 - qb) ) dat.f 0 ,B1 t2 dat.f 0 ,B2 dat.f 0 ,B3 for GAP1 dat.f $0 ,$0 rof dat.f dat0 ,A1 t1 dat.f dat0 ,A2 for GAP2 dat.f $0 ,$0 rof t3 dat.f qb ,C2 for GAP3 dat.f $0 ,$0 rof bgo mov.i >boot ,}boot add.a #GAP5 ,boot mov.i >boot ,}boot mov.i >boot ,}boot for GAP6 mov.i >boot ,}boot rof mov.i >boot ,}boot mov.i >boot ,}boot spl 2 ,>4000 boot spl LEAP ,top mov.i >boot ,}boot mov.i >boot ,}boot mov.i >boot ,}boot mov.i >boot ,}boot mov.i >boot ,}boot sub.f boot ,boot top dat #START,START+SPAN sptr mov.b @tptr ,BPTR wipe mov.i bomb ,>BPTR for GAP6 mov.i *wipe ,>BPTR rof jmn.f wipe ,@BPTR scan add.f incr ,@tptr jmn.f safe ,@top-GAP5 tptr jmz.f scan ,*top-GAP5 mov.x @tptr ,@tptr safe slt.b @tptr ,#tail-top+GAP5+3 jmp sptr djn.b scan ,#TIME jmp scan ,}wipe incr dat STEP ,STEP bomb spl #0, {0 tail dat.f $0 ,$0 for GAP4 dat.f $0 ,$0 rof qscan seq qb+D ,qb+D+B2 jmp decid sne qb+D*C2 ,qb+D*C2+B2 seq