A little more about 'smart' bombing attack after qscan.
I found this by mistake (a mutation!) doing a cut and paste when I got
the two mov statements out of order in my attack code:
ptr mov bm ,*tgt
mov bm ,@[EMAIL PROTECTED]
add.ab #6 ,ptr
Suddenly I was getting 2-3 points improvement in scores against other
qscanners :-)
Another improvement was to use { instead of *:
ptr mov bm ,{tgt
Even better was doing:
ptr mov bm ,{tgt
mov bm ,>ptr
jmn.f ptr ,>ptr
It seems the more 'smart' bombing the better :-)
A simplified model of a qscanner looks like:
..............
... 15-20 lines of boot code
...
..
.. empty space
..
...
... 30-50 lines of scan/decoder/attack
...............
If your qscan finds the boot code you are home free, just bomb small
and you should get the kill. But if you find the scan block it's not
so simple.
Dat-bombing the scan code will rarely get a win, you have to catch the
opponent very early, and many of those instructions (the jmp's) are
not executed so there is no value in bombing them. If you use a
standard attack pattern with two dat-series separated by 85 locations,
you have to chose one side of the scan block to receive the second
series, but your opponent may have moved the boot block to the other
end of the program.
The smart way to attack a scan block is to use its a-values as
pointers and bomb through those. All those jmp statements point to
the decoder, and in a standard q4 scan, half the a-values point
directly to the boot block. You might say your opponent has put out
signs saying "here I am, bomb here!" :-)
P. Kline


|