;redcode-94 ;assert CORESIZE == 8000 ;author Kurt Franke ;name Stepping Stone ;kill Stepping Stone ;strategy Quick scan -> Vampire (version 9h) ;components (to help Planar) : ; quickscan, boot, vamp, scan, stun, clear, pspace(brainwash) ;; - - - - - - - - - - - boot parameters - - - - - - - - - - - - - - - - ;; reference address for boot distances REF equ (vamp-3) ;; first define the places things will go BVAMP equ (3+282*10+REF) BSTEP equ (6+295*10+REF) BJUMP equ (1+298*10+REF) BCLEAR equ (4+367*10+REF) BPIT equ (5+67*10+REF) ;; ^ ;; +---- don't change this column of numbers ;; they are magic to avoid self-bombing ;; now define constants for use in the code ;; (these are to be used when refering to a ;; line within that block of code) CVAMP equ (BVAMP-vamp) CCLEAR equ (BCLEAR-dbomb2+space) CTARGET equ (BVAMP-vamp+target) ADJUST equ (CCLEAR-CTARGET) FIRST equ 0 INC equ 110 ;; mod 10 step for mod 5 vamp/scan COUNT equ 8*5 ;; - - - - - - - - - - - the vampire code - - - - - - - - - - - - - - - vamp add.f $vamp+6, $(BJUMP-CVAMP) ;; incr will be at vamp+6 mov.i @0, @(BJUMP-CVAMP) jmz.a *target, *(BJUMP-CVAMP) mov.i @0, *(BJUMP-CVAMP) ;; a-field needs to be 0 target djn vamp, #COUNT jmp (CCLEAR-CVAMP) step jmp @0, BPIT-BSTEP ;; a-field needs to be 0 jbomb jmp @BSTEP-BJUMP-FIRST, $FIRST ;; indirect jump to pit CPTR equ (dbomb2-1) dbomb2 dat <2667, <2*2667+1 dbomb dat <-15, #10 space spl #0, #10 ;; a-field needs to be 0 clear mov @cloop, >CPTR mov @cloop, >CPTR cloop djn.b $clear, {space incr dat $-INC, $INC pit mov.a #ADJUST, $CTARGET-BPIT spl #0, $0 ;; a-field needs to be 0 mov 2, >1 stp #0, $BCLEAR-BPIT+36 ;; - - - - - - - - - - - - - boot code - - - - - - - - - - - - - - - - - - pboot mov $pit+3, BPIT+3 for 3 mov {pboot, qerase jmp BPIT ;; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - end start