I'm prompted to publish my 1-Shot Bomber Piltdown following recent interest in both "intelligent" bombers and post-bombing S/S/D clears on the ravenous IRC channel [irc.koth.org]. The Piltdown variants to have made the hill [49nop or Draft] used lures of the form: (a) lure: mov.b #(2*STEP), *(WATCH-(2*STEP)) but there are interesting variants such as: (b) lure: sub.b #((1*STEP)), {(WATCH-(1*STEP)) (c) lure: mov.i #((2*STEP)+ADJ),{(WATCH-((2*STEP)+ADJ)) All three versions allow one to detect when and _where_ a bomb was detonated, this being the primary distinction from A. Inver's C.I.A [& P. Kendall's M.I.5]. The basic structure is vamp-like as follows: ;=== lure: mov.b #(2*STEP), *(WATCH-(2*STEP)) vbmb: djn.f -(MSIZ), <6 ;MSIZ is the bomb interval ... loop: mov.i @1, }lure mov.i vbmb, >lure add.f inc, @-1 eloop: jmz.b loop, DROP ;lure.B is dropped at DROP spl clr, DROP prep: sub.b @-1, WACK ;WACK is clear ptr ;=== Initially Piltdown was to have been an N-shot and scan-free [the first versions to make 94nop used a QB]. However, the size of loop + check + attack + reset proved too large/complicated [for me] so it became a 1-Shot instead. Given that one knows the target location I think this better anyway as the S/S/D clear _should_ handle papers nicely [_if_ found soon enough]. My use of the (a) version of the lure dates back to the N-shot days as repeated hits of the mov.b lure don't invalidate the target pointer as do repeated sub.b's, however the latter can save one instruction in some cases. The initial version (with QB) made the 94nop in Aug '02 being my first non-gifted hill-entry but sadly the break-through came on replacing the QB with a QS, first as "Quilt" using the Q3 from KafuFFle [J. Metcalf] and then later as "QUI*T", "Quest" etc. when I switched to a disappointing Q4 based on Reepicheep's engine but with constants generated so as to not scan to-be bombed locations. Since then the nature of the hill has changed such that even stronger versions have struggled/failed to get on. Below is a spruced-up variant. Some hill submissions can be found at http://home.pipeline.com/~corewar/publish/ pbt@waknuk:~/bench/94nop> rtst 40-pilt.red jun03 1000 y Piltdown (2003) vs Behemot : 406/480/114 133 Piltdown (2003) vs Return of Vanqui: 382/489/129 127 Piltdown (2003) vs Son of Vain : 262/461/277 106 Piltdown (2003) vs Thunderstrike : 344/514/142 117 Piltdown (2003) vs Pixie : 309/567/124 105 Piltdown (2003) vs Jaguar : 299/351/350 124 Piltdown (2003) vs Candy II : 281/593/126 96 Piltdown (2003) vs Quicksilver : 333/596/ 71 107 Piltdown (2003) vs Digitalis 2002 : 427/469/104 138 Piltdown (2003) vs G2 : 553/406/ 41 170 Piltdown (2003) vs Willow : 577/371/ 52 178 Piltdown (2003) vs Recon 2 : 481/380/139 158 Piltdown (2003) vs pre75-z47a : 437/459/104 141 Piltdown (2003) vs Silver Talon 1.2: 513/386/101 164 Piltdown (2003) vs nPaper II : 360/510/130 121 Piltdown (2003) vs Revenge of the P: 336/445/219 122 Piltdown (2003) vs Wipe Uncle : 256/513/231 99 Piltdown (2003) vs Dawn : 158/437/405 87 Piltdown (2003) vs Reepicheep : 417/496/ 87 133 Piltdown (2003) vs Numb : 388/514/ 98 126 Piltdown (2003) vs Velvet Glove : 175/402/423 94 Piltdown (2003) vs SilKing : 220/412/368 102 Piltdown (2003) vs myVamp5.4 : 469/496/ 35 144 Result for Piltdown (2003) using [jun03] over 1000 = 126.17 In other words it has a similar profile to a vampire and isn't strong enough. In particular it is weaker than hoped-for vs paper given the strong clears used [Quiz & Geist] because (like CIA) it can take too long to react to a hit and the bombs themselves don't slow the paper. It is also susceptible like vamps to paper destroying the WATCH location. I've tried numerous tactics, amongst them: airbag [5 & 2 proc]; self-splitting; clearing from within the loop; clearing from a separate loop; boot; re-ordering; different B-bombs; using the A field of the DJN as the trigger ... Can someone breathe life into it? ;redcode-94nop ;name Piltdown (2003) ;author Philip Thorne ;strategy 20020824 First hill appreance [with QB] ;strategy 20030706 Piltdown 1-Shot Bomber + QS ;strategy Cleaned-up for publiction. ;kill Piltdown ;bench jun03=127.17#1000 w=151#100 for CORESIZE==8000 ;assert (CORESIZE==8000) ;assert (MAXLENGTH==100) && (MINDISTANCE==100) ;assert (MAXCYCLES==80000) ;assert (MAXPROCESSES==8000) rof for CORESIZE==55440 ;assert (CORESIZE==55440) ;assert (MAXPROCESSES>=8) ;assert (MAXCYCLES==500000) ;assert (MAXLENGTH==200) && (MINDISTANCE==200) rof for CORESIZE==8000 STEP EQU (1256) ;mod-8 rof for CORESIZE==55440 STEP EQU (-24184) ;mod-8 rof MSIZ EQU (8) MSPACE EQU for MSIZ EQU dat 0, 0 EQU rof MFILL EQU for MSIZ-(CURLINE%MSIZ) EQU dat 0, 0 EQU rof DROP EQU (lure-4000-STEP) WATCH EQU (lure+STEP) WACK EQU cptr ;assert ((STEP%(MSIZ)) == 0) ;assert ((CURLINE%MSIZ) == 0) lure: mov.b #(2*STEP), *(WATCH-(2*STEP)) vbmb: djn.f -(MSIZ), <6 ; MFILL ;assert ((CURLINE%MSIZ) == 0) dat 0, 0 loop: mov.i @1, }lure ;A==lure mov.i vbmb, >lure add.f inc, @-1 ;B==lure eloop: jmz.b loop, DROP ;misses WATCH overruns spl clr, DROP prep: sub.b @-1, WACK MFILL ;assert ((CURLINE%MSIZ) == 0) MSPACE; MSPACE; MSPACE; ;assert ((CURLINE%MSIZ) == 0) ;Basic clear is per Geist [nice S/D switch] with tweakings. ;Previous clear was Quiz-based. No real diff in results. dat 0, 0 dat 0, 0 cptr: dat 3333, (WATCH-WACK-1) dat 0, 0 dat 0, 0 dat 0, 0 bptr: dat 1, (eclr-cptr+3) ;B incr for dec prot. dptr: spl #cptr+70, (eclr-cptr+3) ; ;assert ((CURLINE%MSIZ) == 0) dat 0, 0 ;vbmb lands here clr: inc: spl #(STEP-1), }(-STEP-1) mov *bptr, >cptr mov *bptr, >cptr eclr: djn.f -2, }dptr MFILL ;assert ((CURLINE%MSIZ) == 0) MSPACE ;-- dat 1, qA qTab1: dat 1, qB dat 0,0 dat 0,0 bBoot: start: mov.a #(DROP-WATCH), WATCH mov.i <3333, start jmp loop, {0 qX equ 6612 ;Optimised to miss bombs (MSIZ) qA equ 3762 qB equ 2253 qC equ 1965 qD equ 456 qE equ 6947 qF equ 1199 qStep equ 7 ;Weighted towards liklihood qTime equ 16 ;of hitting late in warrior qOff equ 32 ;body due to QS's. qBomb dat {qOff , qF qGo sne qPtr+qX*qE , qPtr+qX*qE+qE seq