
           ----------------------------------------------------------
           XRK Extra RedCode Kit v1.50 - (C) 1992-2002 Marco Pontello
           ----------------------------------------------------------


    Questo file e` dedicato a chi ha gia` una certa esperienza di Core
    War e vuol farsi velocemente un'idea di quelle che sono le
    caratteristiche e le peculiarita` di questo particolare ambiente di
    sviluppo.

    Facciamo dunque una veloce panoramica, tanto per non perdere troppo
    tempo in chiacchiere; diciamo una specie di guided-tour!


    Immagino che se leggete questo .TXT avrete gia` provveduto all'unzip
    del pacchetto! Bene. Come prima cosa, procuratevi il sorgente del
    vostro guerriero preferito, o comunque uno che conoscete bene.

    Ammettendo che il suddetto si chiami Pippo.RED, provvediamo ad
    assemblarlo con XRA.

    C:\XRK> xra pippo

    Nel caso nel sorgente sia presente un qualche commento contenente una
    stringa tipo "by Pinco Pallino", oppure "author Pinco Pallino", Pinco
    Pallino sara` automaticamente assunto come autore del programma appena
    compilato, e registrato assieme al codice oggetto risultante.
    In caso contrario, XRA provvede a richiederlo esplicitamente.

    In questo modo, piu` avanti, durante uno scontro o un torneo, sara`
    sempre possibile risalire all'autore di un particolare programma.

    Se nel sorgente dovessero essere presenti degli errori XRA provvede a
    visualizzare una dopo l'altra tutte le linee erronee, con l'
    indicazione del tipo d'errore riscontrato e la relativa posizione.

    XRA riconosce anche particolari espressioni, racchiuse tra parentesi
    quadre, interpretandole come riferimenti ad una locazione
    relativamente alla locazione d'inizio del programma.
    Praticamente si puo` scrivere:

            ...
    Start   MOV     A, [1000]
            MOV     B, [1001]
            SPL     [1000]
            ...

    Anziche`:

            ...
    Start   MOV     A, (Start+1000)
            MOV     B, (Start+1001)
            SPL     (Start+1000)
            ...


    Ora ci ritroviamo con un bel Pippo.RBJ, corrispondente al guerriero
    assemblato e pronta per una simulazione.
    Provvediamo, dunque:

    C:\XRK> xrs pippo

    La simulazione parte con la visualizzazione del Core in formato
    128x64, con il prode piazzato al centro della matrice, e con i cicli
    di clock che si susseguono a velocita` bradipea.
    Per accelerare la simulazione, e` sufficente tenere premuto il tasto
    [SHIFT] di destra; premendo lo [SHIFT] di sinistra, invece, si passa
    allo Step-Mode.
    In questa modalita` vengono mostrate, nella parte passa dello schermo,
    tutte le istruzioni appena eseguito da ogni task; la posizione dei
    relativi Program Counter viene visualizzata anche graficamente,
    direttamente sul Core.
    Premendo un tasto qualsiasi, e` possibile avanzare di un ciclo di
    clock per volta.

    Con [ENTER], si attiva invece il cursore di Inspect; nella parte bassa
    dello schermo verra` visualizzato il contenuto dei 5 campi della
    locazione da esso puntata; per spostare il cursore si usano i tasti
    omonimi.

    Interrompiamo la simulazione con [ESC], e proviamo il valore di Pippo
    contro, ad esempio, Mice; optiamo per un Match di 100 Rounds.

    C:\XRK> XRS Pippo Mice /R:100

    Questo per una (veloce) simulazione in text-mode, con i soli
    risultati degli scontri. Mentre:

    C:\XRK> XRS Pippo Mice /R:100 /G

    Per una quasi altrettanto veloce, ma molto piu` coreografica
    simulazione in grafica; oltre allo scontro corrente, rimangono
    visualizzate anche le situazioni del Core negli ultimi 3 scontri, con
    un pregevole effetto stroboscopico!

    Da notare che, di default, l'allocazione dei programmi nel Core non
    e` casuale, ma ottimizzata (per ulteriore dettagli a riguardo, vedere
    il file Manual.TXT, nella sezione dedicata a XRS). Cio` risulta
    abbastanza evidente, visto che riprovando lo scontro di cui prima
    varie volte, si otterranno sempre gli stessi risultati!

    Per i puristi che preferiscono l'allocazione standard, ovvero random,
    e` sufficente aggiungere lo switch /S. A titolo informativo, provate
    un po' di scontri Dwarf vs Dwarf con o senza allocazione ottimizzata!


    Passiamo ora ad un torneo vero e proprio. XRC, il gestore dei tornei,
    sfrutta il Playback System per evitare di dover risimulare scontri di
    cui gia` si conoscono i risultati; in questo modo, si ottiene una
    drammatica riduzione dei tempi di MARSing (!), specialmente durante
    le fasi di test di un programma, contro una serie di programmi gia`
    noti.
    Il pacchetto di XRK gia` contiene il file Playback.XRD con i
    risultati del torneo gia` svolto tra tutti i guerrieri forniti come
    esempio. Potete dare un'occhiata al report dettagliato e analitico
    delle risultanze, contenuto nel file Results.TXT generato da XRC.

    Per provare Pippo in torneo, contro tutta la serie di guerrieri di
    inclusi nel pacchetto, e` sufficente lanciare XRC:

    C:\XRK> xrc /l

    Lo switch /L indica ad XRC di prelevare i nominativi di tutti i
    concorrenti dalla Playlist di default, ovvero il file Playlist.XRD.
    E` sufficente confermare tutti i concorrenti, a mano a mano che
    vengono presentati, con [ENTER]. Da notare che l'esistenza e la
    correttezza formale dei vari contendenti indicati viene rilevata gia`
    in questo momento.
    Alla richiesta dell'ultimo concorrente (vuoto), indicare Pippo.
    Ulteriore invio a vuoto, e il torneo comincia.

    Durante la simulazione, vengono visualizzati i dati statistici
    principali per ogni concorrente, ovvero percentuale di rounds vinti,
    persi e pareggiati.
    La classifica viene aggiornata alla fine di ogni Match, come pure la
    previsione sul tempo rimanente per terminare il torneo.

    Come si potra` vedere, verranno effettivamente calcolati/simulati solo
    gli scontri che riguardano il nuovo arrivato, Pippo, mentre gli altri (
    gia` noti) saranno direttamente ottenuti in tempo 0 attraverso il
    Playback System.


    Se si hanno a disposizione piu` PC collegati in rete (di ogni tipo; e'
    sufficente che ci sia una directory condivisa accessibile a tutte le
    macchine) si puo` sfruttare la possibilita` di XRC di ripartire il
    carico computazionale della simulazione sui vari PC, mostrando
    contemporaneamente la classifica aggiornata su tutti i relativi
    display.

    E` sufficente, nella macchina "master", aggiungere lo switch
    "/NET:MASTER"; negli altri PC, invece, si lancera` semplicemente XRC
    con il solo switch "/NET:SLAVE".
    Tutti i parametri caratteristici del torneo (contendenti, numero di
    Rounds, allocazione, etc.) saranno gestiti solo dal Master, e da
    questo passati anche a tutti gli Slave.

    In qualsiasi momento del torneo, altri Slave possono aggiungersi,
    oppure qualche Slave puo` uscire e smettere di prestare la sua opera.

    A fine torneo, le macchine Slave attive in quel momento entrano in
    Stand-By, in attesa di eventuali ulteriori istruzioni da parte del
    Master. In questo modo e` possibile provvedere una sola volta a
    lanciare XRC in modalita` Slave sui vari PC, e poi rimanere ad
    operare sul solo Master.


    Il tutto, detto molto velocemente; ulteriori dettagli e maggiori info
    li trovate nel file Manual.TXT, dove vengono descritti uno per uno
    tutti i vari moduli che compongono XRK, tutte le opzioni supportate
    e tutto il resto.

