; Armada5
; Cristian Ghezzi - Lissone - 2/7/91
;

add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1                             

; *******************************************************************

jmppos        equ 68         ; Distance between warriors
jmpneg        equ -68

sjump         equ 2048       ; Where to copy

; Initial jump: generator+warrior is moved
start      mov #stot       Sale  
           add #sjump      offset
Sloop      mov <Sale       <offset
           jmn Sloop       Sale  
           add #1          offset
           spl @offset
           add #sjump      offset
           jmp start

Stot       equ 26                       ; Instructions to copy+1
Sale       dat             Stot

; Generator: make a flood of warriors in two directions
; 16+2 instructions
genera     mov #Wtot       count
           mov #400        offset ; initial distance
           mov positiv     cambia
GloopA     mov <count      <offset
           jmn GloopA      count
           add #1          offset
           spl             @offset
           mov #Wtot       count
           mov #-200       offset
           mov negativ     cambia
GloopB     mov <count      <offset
           jmn GloopB      count
           add #1          offset
           spl             @offset
           djn genera      totwarrior
totwarrior dat             4

positiv  mov #jmppos 5
negativ  mov #jmpneg 5

Wtot   equ 7; Number of instruction to copy+1

; Warrior:
; 8 instructions
count   dat #0
        mov #Wtot       count
cambia  mov #jmppos     offset
loop2   mov <count      <offset
        jmn loop2       count
        add #1          offset
        jmp @offset
offset  dat #0

add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1

add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
add #6 -1
