Guerriers

Alien IV

RND #14, $-1
ADD #1, $-2
MOV $-3, $-4
SUB #111, $-5
CMP @-5, @-6
JMP $-5
MOV #14, $-7
MOV #-97, $-9
MOV @-9, @-10
SUB #1, $-11
DJZ $2, $-11
JMP $-3
FORK $-12
JMP $-125


Alien III

:DAT :0 DAT qui contient l'adresse de la ligne du virus ami
:DAT :1 DAT qui contient l'adresse de la ligne correpondante dans ce virus
RND #30, $-1 :2
ADD #1, $-2 :3 Choisit au hasard une ligne et l'enregistre
MOV $-3, $-4 :4
SUB #223, $-5 :5 Enregistre la valeur de la ligne du virus ami devant
CMP @-6, @-5 :6
JMP $7 :7 Si ça correspond, passe a l'ami loin
MOV #-193, $-8 :8 Sinon, enregistrement de la valeur de la ligne où copier
MOV #30, $-8 :9 Enregistrement de la ligne à copier
MOV @-9, @-10 :10 Recopiage de la ligne
SUB #1, $-11 :11
DJZ $7, $-11 :12 Mise à jour des deux DAT (si le deuxième est à zéro, c'est fini => JMP 7)
JMP $-3 :13 Sinon, continue
ADD #448, $-14 :14 Mise à jour du DAT pour le copain suivant
CMP @-15, @-14 :15 Vérification pour le virus ami suivant
JMP $-14 :16 Retour au début (pas de problème)
MOV #255, $-17 :17 Mise à jour de l'adresse où recopier la ligne
JMP $-9 :18 Retour à la suite du programme pour recopier
ADD #29, $-19 :19 On change la valeur DAT pour qu'il pointe vers l'avant dernière ligne du virus recopié
CMP @-20, $11 :20 Si on a un MOV 0 1 à cet endroit, il ne faut pas se reproduire. Le virus se suicide pour tuer le Rouleau Compresseur
JMP $4 :21 Va au suicide
SUB #28, $-22 :22 Sinon, rechange le pointeur vers le début de la copie
FORK $-21 :23 Créé un nouveau processus au début
JMP @-24 :24 Va au début du virus recopié
MOV $5, $3 :25 Voir explication du suicide
FORK $2 :26
FORK $1 :27
DAT #-666 :28
JMP $-1 :29
MOV $-27, $-28 :30
MOV $0, $1 :31

:Principe du suicide
:Balance des DAT sur le premier DAT
:MOV DAT2 vers DAT1
:JMP -1
:Pour que le MOV 0 1 ne passe pas au travers, on fait se faire reproduire le
processus deux fois
:Enfin, pour tuer le tueur frénétique de MOV 0 1, j'ai mis au point un système qui consiste à mettre un DAT devant le JMP, et le DAT n'est remplacé que si le tueur se suicide. Dès qu'un de ses copains comprend qu'il est devenu fou, il se recopie chez lui et lui balance un DAT -666 qui le laisse sans voix ...


Alien II

RND #30, $-1
ADD #1, $-2
MOV $-3, $-4
ADD #225, $-5
CMP @-6, @-5
JMP $-5
SUB #224, $-8
CMP @-9, @-8
JMP $-2
SUB $-10, $-11
ADD #30, $-12
MOV #30, $-12
MOV @-13, @-14
SUB #1, $-15
DJZ $2, $-15
JMP $-3
ADD #29, $-18
CMP @-19, $12
JMP $4
SUB #28, $-21
FORK @-22
JMP $-21
MOV $6, $4
FORK $4
FORK $3
JMP $1
DAT #666
JMP $-1
MOV $-29, $-28
MOV $0, $1


Alien I

RND #30, $-1
ADD #1, $-2
MOV $-3, $-4
SUB #415, $-5
CMP @-6, @-5
JMP $-5
MOV #-385, $-8
MOV #666, @-9
SUB #1, $-10
CMP #-415, $-11
JMP $2
JMP $-4
MOV #-385, $-14
MOV #30, $-14
MOV @-15, @-16
SUB #1, $-17
DJZ $2, $-17
JMP $-3
CMP $-406, $11
JMP $3
FORK $-436
JMP $-21
FORK $-10
FORK $1
FORK $1
MOV $3, $2
MOV #0, $-28
DAT #0
JMP $-1
MOV $0, $1


Le Blob

RND #2000, $-666 : choisit un endroit pour se recopier
ADD #1, $-667 : Mise à jour de l'endroit où copier
ADD #1, $-3
MOD #8, $-4 : Mise à jour de l'adresse à copier
MOV @-5, @-670 : Recopie
FORK $-4 : Se reproduit et saute au début du code
JMP @-672 : va vers ce qui a été recopié
: cette petite bestiole se recopie et donne vie à ce qu'il vient de copier sans réfléchir à savoir s'il a fini de se recopier.
: il est assez dangereux parce qu'il balance un dat (première ligne) qui lui sert pour savoir où se recopier


Le Frénétique

RND #2038, $8
MOV #8 , $-2
ADD #-1, $6
MOV @-4, @5
ADD #-1, $-5
JMG -3, $-6
FORK @2
JMP $-7


Le Lance grenade

FORK $0
RND #2048, $3
MOV #666, @2
JMP $-2


Le Dévoreurs d'âmes

FORK $0
JMP $-1
: Son but est d'inhiber le jeu en se multipliant. Ainsi, le jeu atteint rapidement les 64 processus à partir desquels, on ne peut en ajouter d'autres.


La Mule

FORK $0
: Fabrique bêtement des processus :)


Le Sniper

KILL
JMP $-1


La Horde de trolls

KILL
FORK $-1
FORK $-2
FORK $-3
FORK $-4
FORK $-5
JMP $-6


La Horde de trolls b

KILL
FORK $0
FORK $0
FORK $0
FORK $0
FORK $0
JMP $-6


Double Rouleau

: Placez ce premier rouleau à une adresse quelconque:
FORK $10
MOV $0, $10
MOV $0, $10
MOV $0, $10
MOV $0, $10
MOV $0, $10
MOV $0, $10
MOV $0, $10
MOV $0, $10
MOV $0, $10
MOV $0, $10