1;redcode-94nop verbose
2;author Lukasz Grabun
3;name Vanquisher II
4;strategy I name it so for Christoph's sake
5;strategy q^4 -> suicidial stone + two independent dclears
6;strategy slightly different from published version
7;assert 1
8
9	org	qGo
10
11bOff	equ	19
12bDist	equ	15
13bStep	equ	159
14bAway	equ	4000
15
16cOff	equ	-15
17cGate	equ	(cTop-4)
18cAway	equ	(bAway+cOff)
19bSpl	equ	(cOff+bMov)
20
21dOff	equ	cOff-4301
22dAway	equ	(bAway+dOff)
23
24bBoot	mov	bIncen		, bOff+bAway-4-CURLINE
25	mov	bSpare		, bAway-CURLINE
26bSrc	spl	2		, bStart+5
27bDest	spl	2		, bAway-CURLINE
28cSrc	spl	1		, cStart+4
29	mov	<bSrc		, <bDest
30cBoot	mov	<cSrc		, <cDest
31	mov	<dSrc		, <dDest
32	djn	>bDest		, #5
33cDest	jmp	bAway-CURLINE-4	, cAway-CURLINE
34
35bStart	add	#bStep		, bPtr
36bMov	mov	bOff		, @bPtr
37bPtr	mov	>bEvac		, @2-bDist
38	jmz.b	bStart		, <bEvac
39bEvac	jmz.b	bSpl		, bSpl
40;only difference is here
41bSpare	jmz.b	dOff-5		, dOff-5
42
43cTop	spl	1		, #-15
44cStart	spl	#-bDist+1	, #0
45	mov	cBmb		, >cGate
46	djn.f	-1		, >cGate
47cBmb	dat	>5335		, 2-cGate
48for 5
49	dat	0		, 0
50rof
51bIncen	mov	bDist		, }bDist
52for 31
53	dat	0		, 0
54rof
55qf 	equ 	qKil
56qs 	equ 	200
57qd 	equ 	4000
58qi 	equ 	7
59qr 	equ 	8
60
61qBmb	dat   	{qi*qr-10	, {1
62qGo  	seq   	qd+qf+qs	, qf+qs      ; 1
63     	jmp   	qSki		, {qd+qf+qs+qi+2
64     	sne   	qd+qf+5*qs	, qf+5*qs    ; B+1
65     	seq   	qf+4*qs		, {qTab      ; B
66	jmp   	qFas		, }qTab
67     	sne   	qd+qf+8*qs	, qf+8*qs    ; A
68     	seq   	qf+7*qs		, {qTab-1    ; A-1
69     	jmp   	qFas		, {qFas
70	sne   	qd+qf+10*qs	, qf+10*qs   ; C
71     	seq   	qf+9*qs		, {qTab+1    ; C-1
72	jmp   	qFas		, }qFas
73	seq   	qd+qf+2*qs	, qf+2*qs    ; B-2
74	jmp   	qFas		, {qTab
75	seq   	qd+qf+6*qs	, qf+6*qs    ; A-2
76	djn.a 	qFas		, {qFas
77	seq   	qd+qf+3*qs	, qf+3*qs    ; B-1
78        jmp   	qFas		, {qd+qf+3*qs+qi+2
79	sne   	qd+qf+14*qs	, qf+14*qs   ; E+1
80	seq   	qf+13*qs	, <qTab      ; E
81	jmp   	qSlo		, >qTab
82	sne   	qd+qf+17*qs	, qf+17*qs   ; D
83	seq   	qf+16*qs	, <qTab-1    ; D-1
84	jmp   	qSlo		, {qSlo
85	seq   	qd+qf+11*qs	, qf+11*qs   ; E-2
86	jmp   	qSlo		, <qTab
87	seq   	qd+qf+15*qs	, qf+15*qs   ; D-2
88	djn.b 	qSlo		, {qSlo
89	sne   	qd+qf+12*qs	, qf+12*qs   ; E-1
90	jmz   	bBoot		, qd+qf+12*qs-qi     ; Free Scan ;-)
91qSlo  	mov.ba 	qTab		, qTab
92qFas  	mul.ab 	qTab		, qKil
93qSki  	sne   	qBmb-1		, @qKil
94      	add   	#qd		, qKil
95qLoo  	mov.i  	qBmb		, @qKil
96qKil  	mov.i  	qBmb		, *qs
97      	sub.ab 	#qi		, qKil
98      	djn    	qLoo		, #qr
99dDest  	jmp    	bBoot		, dAway-CURLINE
100     	dat   	5408		, 7217       ; A*qs =  8*qs ,D*qs = 17*qs
101qTab  	dat   	4804		, 6613       ; B*qs =  4*qs ,E*qs = 13*qs
102dSrc   	dat   	5810		, cStart+5   ; C*qs = 10*qs ,F unused
103
104