Vampire Style (Earlier)

Vampire warriors, rather than throw the DAT bombs, they throw JMP pointers into the core. These pointers point to a placed trap. Once an enemy process step on one of those pointers, it is immediately transfered to the trap and forced to do the slave works for vampire warriors.

Earlier incarnation of vampires worked like below:

;name Vampire 1 const EQU 2365 loc MOV ptr, ptr ; throw JMP pointer to core ADD #const, ptr ; update pointer SUB #const, loc ; update location JMP loc ; loop back ptr JMP @0, trap ; the pointer weapon trap SPL 1, -100 ; this is where the pointer points to MOV bomb, <-1 ; core-clear JMP trap bomb DAT #0 This warrior throws pointers one for every 5 instructions (modulo 5). The constant has been chosen to work well with modulo 5. Note that the next pointer and the next location are updated by the same constant but reversed in sign.

The trap here simply forces all processes in it to accumulate more processes and to execute core-clear. The standard self-splitting is not used here to allow the slavers executing self-destruct once they finish core-clear.

Vampire Style (Modern)

Modern vampires use more effective procedure: ;name Vampire 2 const EQU 2365 SPL 0 ; self splitting vamp MOV ptr, @ptr ; throw pointer ADD data, ptr ; update pointer DJN vamp, <2339 ; loop back + non-lethal attack ptr JMP trap, ptr ; pointer to... trap SPL 1, -100 ; ...here MOV data, <-1 JMP -2 data DAT #const, #-const The only changes here are the main component (vampire) and the pointer structure. Pointer is now updated at once. With this change, it permits self-splitting mechanism for harder shell (protection). Another improvement is that the vampire throws pointers faster than before. The gained speed is approximately 30%.

Samples of vampire warriors are: Sucker, PitTrap, Twilight Pits, and many others.