Informazioni risultanti dal confronto di WD95.COM (italian 2^8 compo) con X.COM
(128 byte russa) a cura di *PaN!*.

Dal confronto visivo tra le due demo si comprende la similitudine dell'algoritmo
usato dalle due demo per la realizzazione dell'effetto fuoco.

Da un rapido confronto del disassemblato balza all'occhio la somiglianza delle
seguenti porzioni di codice:

*** CROSS1.COM ***  *** WD95.COM ***

(a)
        mov    al,[bx]                  mov    al,[bx]
        cmp    al,C0                    cmp    al,D0
        jb     @@1                      jb     @@1
        dec    ax                       dec    ax
        mov    [bx+01],al               mov    [bx+0140],al
        mov    [bx-01],al               mov    [bx-0140],al
        mov    [bx+0140],al             mov    [bx+01],al
        mov    [bx-0140],al             mov    [bx-01],al
(b)
        mov    si,FD80
        test   dh,80
        jne    @@2
        add    si,0002
@@2:
        mov    [bx+si],al

(c)
@@1:                            @@1:
        mov    al,es:[bx]               mov    al,es:[bx]
        or     [bx],al                  or     [bx],al
        add    bx,dx                    add    bx,cx
        inc    dx                       inc    cx

Da notare le sezioni (a) e (c), identiche, se non per il fatto che nel confronto
situato alla seconda linea della sezione (a) il codice originale (cross1.com)
differisce da quello del partecipante alla competizione (WD95.com) per una
costante, che nel caso specifico sembra servire a 'ridurre' la dimensione delle
esplosioni (tralaltro, molto belle in cross1.com). Ovviamente il coder ha
cercato di mascherare modificando il codice a cui si e' "ispiratato" scambiando
l'ordine di qualche istruzione nella sezione (a) (che, assolutamente, non cambia
il risultato) o cangiando il registro DX in CX nella sezione (c), e omettendo
completamente il codice della sezione (b) (che, a prima vista, pare essere il
responsabile della particolare disposizione "diagonale" della fiamma nella intro
russa).


Note personali di *PaN!*:

Sono stato accusato recentemente di ottimizzare male le mie intro (no, non sto
intendendo te, Technolord... tu almeno mi hai aiutato dandomi validi consigli
=)... vi basti sapere che non sono l'unico:

1) Riguardiamo WD95:

cs:015E A840           test   al,40
cs:0160 7400           je     0162
cs:0162 33C0           xor    ax,ax
cs:0164 EE             out    dx,al

C'e' qualcuno in grado di spiegarmi il significato di questo frammento di codice
? =)
Per sicurezza ho tracciato tutte le esecuzioni di tale istruzione: Non una volta
quel je viene modificato... quindi non si tratta nemmeno di una forma astrusa di
codice automodificante =)


2)Esaminiamo FLOOD

Ma sopratutto... c'e' qualcuno in grado di spiegarmi perche' esistono PRESUNTI
coder che NON conoscono l'utilizzo corretto del TASM ? Invito tutti i presenti a
guardarsi il BELLISSIMO disassemblato di FLOOD.COM, ed a notare che il coder NON
conoscesse l'utilizzo del parametro /m del tasm... mi direte: "Ma bravo... e
koo253.zip che abbiamo trovato su UNINA, il tuo koo's.com da 253 bytes, fa la
stessa cosa"... ebbene: Tuttora non so COME sia arrivato li' quella versione di
koo's ne' CHI l'abbia messa... sta il fatto che quella versione NON e' una
release UFFICIALE di koo's.com, in quanto PRIMO risulta priva dell'ormai famoso
"koo's.nfo" che ha sempre affiancato le release ufficiali e SECONDO l'archivio
ZIP ha un nome storpiato, che io, membro e fondatore dei KOo'S non avrei mai
potuto dare.


----------------------^-------------------------------
      __  _           | FidoNet : 2:331/341.87
  _\/_|_) _\|\ |_\/_  | EuroNet : 230:1001/201.87
   /\ |  (_|| \| /\   | IDN     : 78:3904/1.87
                      | InterNet: ppan@freenet.hut.fi
----------------------v-------------------------------
