                        The Sprite   Editor

          Scritto da Scott Lamb
          (c) Copyright 1986 Scott Lamb

    Come Caricare il Programma

          Il programma SpritED si puo' caricare da Workbench, premendo due
          volte l'icona SpritED, oppure dal CLI digitando SpritED (se e'
          contenuto nella directory corrente).

          Il programma puo' essere lanciato in multitasking, in questo modo
          potrete editare due coppie di sprite alla volta. Ogni coppia di
          sprites (FOREGROUND e BACKGROUND) ha il proprio schermo di edit,
          tuttavia entrambi gli sprites possono essere visualizzati su 
          tutti e due gli schermi.


    The Sprite Editor

          Lo SPRITE EDITOR vi permettera' di modificare uno sprite a
          doppia larghezza, 32 pixels di larghezza per 21 scanlines
          di altezza, quindi un totale di 672 pixels per immagine.
          Perche' queste dimensioni ?  Solitamente, 16 bits sono 
          troppo pochi per la maggior parte delle immagini, percio'
          unendo 2 sprites si ottiene una risoluzione di 32 bits.
          Le 21 scanlines corripondono all'altezza del sprite del
          Commodore 64. In questo modo e' possibile fare delle 
          conversioni dal C64. Riconosco che la cosa e' arbitraria;
          infatti lo sprite dell'Amiga puo' essere tutta la lunghezza
          dello schermo, ma dovevo tirare una linea in qualche punto.
          Se vi occorre creare degli sprites con piu' di 21 scanlines
          d'altezza, usate entrambi i programmi e posizionate uno degli
          sprite sopra o sotto l'altro (vedi il menu'  'Placement' 
          di Posizionamento). Da soli dovrete, poi, unire i dati dei
          2 sprites.

          Ogni  meta' sprite  (Sinistro  e  Destro)  viene immagazzinato 
          in una struttura normale di dati con 2 words all'inizio fissate
          in x0000, seguita da 2 words per  ognuna  delle 21 scanlines
          che contengono i valori dei colori, e 2 words finali fissate
          in x0000. I dati riguardanti la meta' sinistra dello sprite
          precedono i dati riguardanti la meta' destra dello sprite.
          (vedi DATA FILES)

          Appena inizia il programma (e dopo il messaggio commerciale),
          vi verra' chiesto quale sprite volete modificare: lo sprite di
          FOREGROUND o quello di BACKGROUND.
          Con FOREGROUND si puo' editare uno sprite di doppia larghezza
          utilizzando gli sprites hardware n.2 e n.3. Con BACKGROUND si
          puo' editare uno sprite di doppia larghezza utilizzando gli 
          sprites hardware n.4 e n.5. Lo sprite FOREGROUND ha la priorita'
          sullo sprite BACKGROUND percio', quando entrambi vengono 
          sovrimpressi  sullo stesso  schermo, si vedra' lo sprite di
          FOREGROUND, ma non lo sprite di BACKGROUND.

          Il  requester FOREGROUND/BACKGROUND appare solamente se entrambi
          gli sprites sono disponibili. Se si sta gia' eseguendo SpritED
          ed ed ha uno sprite allocato, oppure se e' in corso un'altra
          applicazione che ha uno sprite allocato, allora il programma
          per default assumera' l'altro sprite come disponibile. Qualora
          non ci fossero sprites disponibili il programma ci avvertira'.

          Oltre a permettere a 2 diversi sprites di passarsi l'uno sopra
          l'altro, e' possibile creare degli sprites di 6 colori sovrap-
          ponendo i colori dello sprite di FOREGROUND ai colori dello 
          sprite di BACKGROUND. Questa operazione si puo' fare quando
          SpritED si esegue in multitasking su 2 schermi. Sia FOREGROUND
          che BACKGROUND sono in grado di contenere 100 sprites doppia 
          larghezza in ognuno dei 5 singoli files.


    Una Seconda Occasione

          Tutte le volte che sceglierete un'azione potenzialmente 
          pericolosa (Load a file, Save a file, Quit/Exit, Copy Sprite,
          ecc.) vi verra' chiesto se siete proprio sicuri di volere
          fare quello che avete richiesto. Avrete cosi la possibilita'
          di  cambiare  idea. In questo modo, magari vi risparmierete 
          di perdere ore ed ore di lavoro per sbaglio. Tuttavia,
          registrate spesso il vostro lavoro.


    Lo Schermo SPRITE EDITOR

          Lo schermo dello sprite editor e' diviso come segue:

             (1) EDITING GRID (griglia di editing con 672 quadratini)
             (2) IMAGE TABLE (tabella degli sprite con 100 quadratini)
             (3) COLOR TABLE (tavola dei colori con 4 quadratini)
             (4) COLOR CHOICE TABLE (Palette dei colori con 32 quadratini)


    Menu

          Il MENU' PROJECT  vi propone 3 categorie di scelta:

          (1) PROJECT
              
              [a] PICK FILE __ Scegliete tra i seguenti files quale
                                file dovra' essere il file attivo
         
                                BACKGROUND           FOREGROUND
                      [1]        sprite_1b           sprite_1f
                      [2]        sprite_2b           sprite_2f
                      [3]        sprite_3b           sprite_3f
                      [4]        sprite_4b           sprite_4f
                      [5]        sprite_5b           sprite_5f
                         
                          [_#b e' la priorita' di background]
                          [_#f e' la priorita' di foreground]


         
              [b] SET DRIVE __ Stabilisce il device corrente come segue:
         
                         [1]        df0:   (Disk drive interno)
                         [2]        df1:   (Disk drive esterno)
                         [3]        ram:   (disco RAM)
                         [4]        dh0:   (Hard disk drive)

              [c] LOAD FILE __ Carica uno file dati di sprite nella 
                               tabella degli sprite.

              [d] SAVE FILE __ Salva la tabella degli sprite in un file
                               dati.

              [e] QUIT/EXIT __ Per terminare o uscire dell'Editor.


          (2) Menu MODE

              [a] DISPLAY   __ Il DISPLAY MODE vi permette di vedere gli
                               sprites che sono nella tabella degli sprite
                               senza doverli visualizzare nella griglia di
                               editing. Tutte le opzioni del menu SPRITE,
                               escluso COPY SPRITE, vengono disattivate.

              [b] EDITING   __ EDITING MODE vi permette di modificare gli
                               sprite che sono nella griglia di editing,
                               scegliendo un colore o cambiando un colore.
                               Tutte le opzioni del menu SPRITE, escluso
                               COPY SPRITE, vengono attivate.

              [c] ERASE     __ Nel modo DISPLAY: potete cancellare la 
                               griglia di editing senza cancellare lo
                               sprite corrente.
         
                               Nel modo EDITING: potete cancellare sia la
                               griglia di editing che lo sprite corrente
                               marcato nella tabella degli sprite.



          (3) Menu SPRITE

              [a] FLIP VERT. _ lo sprite nella griglia di editing verra'
                               invertito verticalmente.

              [b] FLIP HORZ. _ lo sprite nella griglia di editing verra'
                               invertito orizzontalmente.

              [c] SHIFT RIGHT_ lo sprite nella griglia di editing verra'
                               spostato di un pixel a destra.

              [d] SHIFT LEFT _ lo sprite nella griglia di editing verra'
                               spostato di un pixel a sinistra.

              [e] SHIFT UP   _ lo sprite nella griglia di editing verra'
                               spostato in su di una linea.
         
              [f] SHIFT DOWN _ lo sprite nella griglia di editing verra'
                               spostato in giu' di una linea.

              [g] COPY SPRITE_ lo sprite nella griglia di editing verra'
                               copiato nello sprite corrente.


          (3) Menu PLACEMENT (di POSIZIONAMENTO)

              [a] UP (su)
              [b] CENTER (centro)
              [c] DOWN (giu')
          Queste tre opzioni del menu' vi permettono di cambiare la
          posizione verticale dello sprite. Questa funzione torna utile
          quando usate piu' sprite contemporaneamente.
         
         
    Come si usa SpritED

          Scegliete uno dei nomi dei files sprite_n# come file corrente.
          Potete iniziare ad editare una serie di sprite, oppure potete
          caricare gli sprites che sono stati precedentemente salvati
          nel file.


    Controllo Mouse

          Tutti gli editors sprite sono controllati dal mouse. Posizionando
          il cursore del mouse in un quadrato di una delle griglie dello
          schermo e premendo il pulsante sinistro, verra' eseguita  la
          funzione che avete richiesto.

    La Tabella degli SPRITE

          La tabella sprite vi permette di indicare il numero di un
          particolare sprite da modificare o visualizzare. Dopo aver
          scelto uno sprite con il mouse, i dati conservati in quello
          sprite venrranno trasferiti nella struttura dello sprite 
          attivo e verranno visualizzati. Verranno traferiti, inoltre,
          anche sulla griglia di editing se siete nel modo editing.
          Per evidenziarlo, verra' disegnato un quadrato attorno allo
          sprite prescelto. Gli sprite sono disposti come segue:

                          0  1  2  3  4  5  6  7  8  9
                        |--|--|--|--|--|--|--|--|--|--|
                   000__|00|01|02|03|04|05|06|07|08|09|
                   010__|10|11|12|13|14|15|16|17|18|19|
                   020__|20|21|22|23|24|25|26|27|28|29|
                   030__|30|31|32|33|34|35|36|37|38|39|
                   040__|40|41|42|43|44|45|46|47|48|49|
                   050__|50|51|52|53|54|55|56|57|58|59|
                   060__|60|61|62|63|64|65|66|67|68|69|
                   070__|70|71|72|73|74|75|76|77|78|79|
                   080__|80|81|82|83|84|85|86|87|88|89|
                   090__|90|91|92|93|94|95|96|97|98|99|

    Come Modificare un Sprite

          I quattro quadrati sotto alla griglia di editing sono i colori
          che avete a disposizione. Il colore attivo e' circondato da un
          quadrato. Il primo colore e' trasparente quando viene usato in
          uno sprite quindi, non significa niente per lo sprite.

          Per cambiare il colore attivo (quello che ha un quadrato attorno),
          clickate semplicemente uno dei 32 colori disponibili nella griglia
          palette. Il colore che avete scelto verra' trasferito come colore
          attivo. Noterete che 4 colori della palette sono evidenziati da un
          rettangolino viola; questi sono i registri colore effettivamente
          utilizzati dalla coppia di sprites. Per ripristinare il colore
          corrente al colore originale, clickate il colore corrispondente 
          nel rettangolino viola.


    Come Disegnare un'Immagine Sprite

          Per disegnare uno sprite, scegliete dal menu la voce EDITING.
          Scegliete poi, un colore (uno dei quattro). Infine, indicate
          semplicemente un quadrato appartenente alla griglia di editing
          e tenete premuto il pulsante sinistro del mouse. Finche' viene
          premuto tale pulsante e finche' muovete lentamente il mouse, i
          quadrati verranno inondati con il colore che avete scelto, si
          illuminera' il bit corrispondente nella struttura sprite e
          l'intero sprite sara' copiato in modo che lo si possa salvare
          sotto qualsiasi dei 5 nomi dei files (FOREGROUND e BACKGROUND)
          quando avrete terminato.


    Come Copiare un Sprite

          Per copiare dalla tabella degli sprite, uno sprite da una
          posizione all'altra, occorre:

               (1) Essere in modo EDITING
               (2) Selezionare uno sprite dalla tabella in modo che la
                   griglia di editing mostri lo sprite.
               (3) Selezionare il modo DISPLAY
               (4) Scegliere in quale nuovo sprite volete copiare lo
                   sprite corrente
               (5) Selezionare COPY SPRITE dal menu.


    La Struttura dei Dati Sprite

          Gli sprites vengono salvati in una struttura dati standard.
          Ognuno dei 100 sprites di un file richiede 92 bytes/46 words
          per uno sprite doppia larghezza. Le prime 23 words descrivono
          la meta' sinistra del doppio sprite (sprite hardware n.1)
          mentre le rimanenti 23 words descrivono la meta' destra del
          doppio sprite (sprite hardware n.2). 
          La struttura dello sprite e' come segue:

               Meta' Sinistra dello sprite

  La prima coppia di words (x0000,x0000) sono i bytes di controllo posizione
  Le 21 coppie di words successive (xnnnn,xnnnn) sono i dati delle 21 linee
  L'ultima coppia di words (x0000,x0000) sono il campo sprite successivo



               Meta' Destra di sprite

  La prima coppia di words (x0000,x0000) sono ibytes di controllo posizione
  Le 21 coppie di words successive (xnnnn,xnnnn) sono idati delle 21 linee
  L'ultima coppia di words (x0000,x0000) sono il campo sprite successivo


       I bytes di controllo posizione ed i bytes campo sprite successivo
       sono settati a 0 nella struttura del file.
         

    SPRITE EDITOR - Le Parole Descrittive dei Colori Sprite

          La prima word di una coppia di dati si chiama (word di ordine
          alto) e la seconda word della coppia di dati si chiama (word 
          di ordine basso). Le coppie di numeri binari creati da 1 bit
          nella (word di ordine alto) con il bit corrispondente nella
          (word di ordine basso) indicano i numeri dei registri colore
          usati dallo sprite. La tabella seguente vi mostra la relazione
          tra le coppie di numeri binari ed i numeri dei registri colore


               Numero   Coppia di sprite Hardware       colore
               Binari  0 & 1  2 & 3  4 & 5  6 & 7       sprite

                 00     16     20     24     28        trasparente
                 01     17     21     25     29         colore 1
                 10     18     22     26     30         colore 2
                 11     19     23     27     31         colore 3

          Si utilizzano gli sprites 0 & 1 per il cursore del mouse.
          Si utilizzano gli sprites 2 & 3 come sprites di FOREGROUND.
          Si utilizzano gli sprites 4 & 5 come sprites di BACKGROUND.

          Per priorita' di sprite,(cioe' quello che si vedra' davanti agli
          altri sprites), s'intende che gli sprites hardware con  numero
          inferiori hanno sempre una priorita' maggiore degli sprite
          hardware con numero superiore.


    Usando SpritED in multitasking

          Se  il  vostro  Amiga e' dotato di almeno 512K RAM, potrete
          eseguire SpritED due volte,uno per lo sprite di FOREGROUND e
          l'altro per lo sprite di BACKGROUND. Posizionate come schermo
          corrente il task con lo sprite di FOREGROUND cosi da evere
          dietro lo schermo dello sprite di BACKGROUND; lavorate con
          entrambi gli editors. In questo modo, i sei colori sprite 
          che creerete saranno disponibili per entrambi i programmi
          allo stesso tempo.

          

    Riferimenti

          Per una descrizione completa degli sprites hardware dell'Amiga,
          leggete Amiga ROM Kernal Manual Vol.1 e l'Amiga Hardware Manual.


    Se Avete Bisogno di Aiuto

          Se avete bisogno d'aiuto o se avete delle domande riguaradanti
          questo programma (oppure se volete mandarmi $10.00 per il
          programma, se ritenete che valga questo prezzo), il mio 
          indirizzo e':
         
                                     Scott Lamb
                                     205C Heights Lane
                                     Fort Worth, TX 76112
         
                                     Tel. (817) 496-9220

                    o lasciatemi un messaggio presso la rete FIDO:

                                     TRACK ][ FIDO BBS
                                     (NET 130, NODE 6)



 __________________________BUON DIVERTIMENTO !!!!!!!________________________
