home *** CD-ROM | disk | FTP | other *** search
- CRUtils - CROBOTS (TM) Ms-DOS & Linux Utilities ver.2.04
- Copyright (C) 1999 Maurizio Camangi
- Bug-report, E-Mail: <joshua@ascu.unian.it>
- Data ultimo rilascio : 30-aug-1999
-
- Questo pacchetto (CRUTILS.ZIP) contiene i file :
- BENCH.BAT,SGNIPS.EXE,BENCH.R
- ALLTEST.BAT,BEST.BAT
- CR
- SOUND.EXE
- CRUTILS.EXE
- crutils
- crutils.pp
- COPYING
- README.Linux
-
- Legalese
- --------
-
- CRUtils comes with ABSOLUTELY NO WARRANTY; for details read COPYING file.
- This is free software, and you are welcome to redistribute it
- under certain conditions; read COPYING file for details.
-
- NOTA BENE:
- Tom Poindexter ha tutti i diritti d'autore sul programma CROBOTS.EXE (NON
- incluso nel pacchetto CRUTILS.ZIP).
-
- 1- Il file di <enter> CR.
-
- Il file CR contiene soltanto il carattere CR (quello corrispondente
- al tasto return). Indirizzandolo in input a CROBOTS.EXE si evita di
- dover premere il tasto <return> ad ogni richiesta del programma
- CROBOTS stesso. E` indispensabile nel caso di esecuzione multipla
- del programma CROBOTS.EXE (ex : files batch, tornei ... )
- poiche' e` praticamente impossibile premere ogni volta che ci
- viene richiesto il tasto <enter>!.
- Il modo per evitare questo spiacevole inconveniente e` eseguire
- il programma ridirigendo il file di <enter>.
- Ex : c:\crobots\crobots <cr -m100 -l200000 robot1.r robot2.r >result.log
- ^^^
-
- 2- Il programma BENCH.BAT e SGNIPS.EXE.
-
- La procedura batch BENCH.BAT serve per valutare in modo approssimato
- la velocita` del vostro PC in termini di SGNips (da non confondere
- con i Mips!! :) ). La procedura non fa altro che lanciare il programma
- CROBOTS.EXE in modo da eseguire 100,200 o 500 match tra 4 crobots BENCH.R
- con il limite di 200000 cicli per match. Prima e dopo l'esecuzione di
- CROBOTS.EXE si creano due files .LOG che recano come attributi la data
- e l'orario della loro creazione. Il programma SGNIPS.EXE non fa
- altro che calcolare il tempo impiegato ad eseguire il test prelevando
- la data dai files .LOG e calcolare di conseguenza la velocita` del
- PC.
-
- Essendo la velocita` di esecuzione e quindi la durata del test
- dipendente dalla classe (nonche' dalla velocita` di clock) del
- processore e` necessario specificare nella variabile d'ambiente
- CPUID con il comando del DOS "SET", il tipo di CPU posseduta
- (vedere documentazione inclusa nel file batch). SGNIPS.EXE
- fornisce dunque la capacita` di calcolo del PC in termini di
- SGNips ... che non sono altro che cicli/sec. della CPU virtuale
- del programma CROBOTS (vedi la documentazione inclusa nel
- pacchetto CROBOTS.ZIP originale).
- Tale valore va tenuto a mente ed inserito ad ogni richiesta del
- programma
- CRUTILS.EXE. E` sufficiente eseguire il test BENCH.BAT una sola
- volta a meno di una modifica software e/o hardware del PC che
- influisca nelle prestazioni della CPU (ex: aggiunta/sostituzione
- TSR, DRIVERS particolari ).
-
- BENCH.R e` un crobot che termina qualsiasi match in parita`, per
- cui alla fine e` possibile sapere con certezza il numero di cicli
- calcolati da CROBOTS.EXE. Gli SGNips calcolati sono in ogni caso
- una STIMA, affetta da errore, per cui in caso di necessita` e`
- possibile ripetere il test sostituendo il robot BENCH.R con un
- altro che concluda egualmente i match SEMPRE in PARITA`!
- NOTA: Il programma SGNIPS.EXE va utilizzato SOLO all'interno del file
- batch BENCH.BAT.
-
- 3- Il programma CRUTILS.EXE/crutils.
-
- Tale eseguibile contiene tre separate routine richiamabili al lancio
- del programma, inserendo il numero associato all'utility desiderata.
- L'eseguibile 'crutils' e` stato compilato con il pacchetto
- FreePascal sotto Linux, ed e` quindi progettato per girare sotto
- questo sistema operativo. Entrambe le versioni Ms-DOS e Linux sono
- identiche tranne per alcune feature aggiuntive presenti nella
- versione Linux, descritte nel documento README.Linux.
-
- Il file crutils.pp e` i file sorgente per le piattaforme Ms-DOS
- (Turbo Pascal 6/7) e Linux (FreePascal).
- Sebbene la versione binaria per Linux ('crutils', ottenuta
- compilando il sorgente 'crutils.pp') sia piu` recente di quella
- rilasciata per Ms-DOS (CRUTILS.EXE) e` possibile ricompilare il
- sorgente con il Borland/Turbo Pascal 6.0 o 7.0 e riallineare la
- versione Ms-DOS con quella Linux.
-
- Utility n.1 : Crobots batch file Creator.
-
- Tale utility e` stata scritta per creare automaticamente files batch
- con i parametri da passare di volta in volta a CROBOTS.EXE, in modo
- da poter creare tornei, test, senza problemi.
-
- Una volta scelta l'utility viene richiesto il numero di SGNips
- calcolati dal PC posseduto. Tale valore e` reperibile eseguendo il
- test BENCH.BAT, e serve ad effettuare una STIMA sul tempo di esecuzione
- del file batch generato.
-
- Viene poi chiesto il numero di crobots da utilizzare per creare il file
- batch finale. Questi crobots verranno passati come parametri al programma
- CROBOTS.EXE in modo da coprire tutte le permutazioni possibili
- (metodo del "girone all'italiana").
-
- NOTA: Nessuna modifica viene eseguita sull'ordine in cui vengono
- passati come parametri i vari crobots al programma CROBOTS.
- Pertanto i match sono ordinati in modo NON casuale a meno
- di non utilizzare l'opzione relativa alla generazione di
- un "torneo standard" descritta di seguito presente nel
- solo eseguibile per Linux.
-
- Viene poi richiesto il numero di crobots da far combattere
- contemporaneamente in ogni singolo incontro (da 2 a 4).
-
- Viene poi richiesto il numero di iterazioni da effettuare per
- ogni singolo incontro tra 2,3 o 4 robots.
- Il mumero di default e` 100, e viene usato nel caso in cui alla richiesta
- si prema <enter> o si inserisca un valore non valido.
-
- Viene poi richiesto il numero di cicli massimo per ogni singolo match.
- Anche qui il valore di default e` 200000, e viene usato nel caso in cui
- alla richiesta si prema <enter> o si inserisca un valore non valido.
-
- NEW : Se si vuole generare un file di batch per un torneo standard e`
- sufficiente rispondere "S" alla domanda che verra` posta dopo l'inserimento
- del numero di partecipanti. Per default verranno utilizzati i valori
- di 200000 cicli per incontro, 4 crobots in simultanea per incontro e
- verra` automaticamente calcolato il numero di iterazioni da effettuare
- (se il numero di crobots lo consente) affinche' ciascun crobots incontri
- un altro crobots ALMENO in 1000 incontri.
-
- N.B. solo per la versione Linux: Il numero massimo di robots
- partecipanti e` posto a 24. Gli incontri verranno generati in
- ordine pseudo-casuale per ottenere una certa uniformita` di
- risultati nello svolgimento del torneo stesso.
-
- Si chiede poi se i risultati di ogni incontro debbano essere salvati
- sul file di report di default "log\crobots.log" o su di un file a piacere.
-
- A questo punto e` possibile inserire i nomi dei crobots sia in modo
- manuale (uno alla volta), sia in modo automatico (ricerca dei files .R
- nella directory specificata).
-
- Nel caso in cui i crobots vengano inseriti in modo Automatico
- (di default, e` sufficiente premere "a", <enter> o una qualsiasi lettera
- diversa da "m") viene chiesto di specificare il path dove cercare i robots.
-
- IMPORTANTE: Se la directory e` diversa da quella di CROBOTS.EXE
- bisogna terminare il path con '\' altrimenti i crobots non verranno trovati !
- (ex : se il path e` c:\crobots\src bisogna specificare c:\crobots\src\
- o \crobots\src\ se il drive corrente e` c: ), altrimenti e` sufficiente
- premere <enter>.
- Tale path puo` essere o non essere passato come parametro insieme ai crobots
- all'eseguibile CROBOTS.EXE.
-
- Nel caso in cui i crobots vengano inseriti in modo Manuale e` necessario
- ricordarsi di inserire il path se i crobots non risiedono nella stessa
- directory di CROBOTS.EXE.
-
- IMPORTANTE: Da questa versione in poi i nomi dei crobots devono essere
- inseriti in modo "LOWERCASE" ! Questa scelta e` stata fatta per avere la
- compatibilita` con i nome file utilizzati dai sistemi UNIX (ex: Linux).
-
- A questo punto il programma calcola tutte le combinazioni possibili
- ( num_robots!/(num_match!*(num_crobots - num_match)!) ) e quindi tutti i
- match da disputare (numeroincontri*numeromatchperincontro).
-
- Viene fornita anche una STIMA sul tempo di esecuzione degli incontri.
- Questo valore viene calcolato in base al numero di incontri e match da
- disputare, in base ad una stima statistica sui cicli da calcolare e in
- base agli SGNips calcolati dal PC stesso.
-
- ATTENZIONE: Ne' il tempo di esecuzione dei vari incontri tra crobots reali
- ne' i cicli impiegati, sono calcolabili in modo deterministico per cui
- tale stima e` valida per orientarsi sull'ordine di grandezza del tempo
- di esecuzione del file batch generato.
-
- NOTA: Se lo si ritiene necessario e` possibile modificare il test BENCH.R
- per ottenere il valore degli SGNips piu` vicino alla realta`.
-
- E` possibile a questo punto salvare sul file 'start' tutti i
- comandi del tipo
- crobots -m match -l cicli robot1 ... <cr >>file_report
- vederli su video o uscire.
-
- NOTA: Per utilizzare il file 'start', generato con la versione per
- Linux, sotto Ms-DOS, rinominare il file in 'START.BAT' e seguire
- le indicazioni elencate nella nota in appendice a questo
- documento.
-
- Utility n.2 : Crobots LOG file Parser.
-
- Questa utiltiy serve per calcolare i punti accumulati dai crobots
- nei vari scontri disputati e stilare una classifica finale, comprensiva
- di tutti i dati statistici, nonche' di poter salvare questi dati su
- file di testo compatibile con il formato testo CSV di Microsoft Excel e
- ora anche in formato testo HTML (Netscape, Internet Explorer ... etc.).
-
- All'inizio e` necessario inserire i nomi dei crobots in modo manuale o
- automatico, con le stesse modalita` dell'utility (vedere la modalita`
- di inserimento del path di ricerca nella nota relativa all'utility n.1).
-
- Il programma non accetta nomi di crobots identici anche se trovati in
- path differenti.
-
- E` poi necessario inserire il nome e l'ubicazione del file di report
- che deve avere obbligatoriamente estensione .LOG. Tale report
- e` ottenibile ridiregendo come output su file con il simbolo ">":
- ex: c:\crobots\crobots ... [vari parametri] ... >report.log
- ^^^^^^^^^^^
- o per incontri multipli il simbolo ">>".
-
- ATTENZIONE: Da questa versione in poi, per compatibilita` verso i sistemi
- UNIX, affinche' il programma funzioni correttamente
- e` necessario che i nomi dei crobots siano stati precedentemente
- passati come parametri al programma CROBOTS in modo "LOWERCASE"
- estensione ".r" inclusa (perche' tali devono apparire nel file di report!):
- ex: crobots ... robot1.r robot2.r ... <-- Va bene.
- ex: crobots ... ROBOT1.R ROBOT2.R ... <-- NO!
- ^^^^^^^^ ^^^^^^^^
- ex: crobots ... Robot1.r Robot2.r ... <-- NO!
- ^ ^
- NOTA: Se il file batch che contiene i comandi per l'esecuzione dei vari
- incontri e` stato creato con l'utility n.1 tale regola
- e` automaticamente rispettata!
-
- Viene poi fornita la classifica relativa ai crobots inseriti e al
- file di report utilizzato, con la possibilita` di salvarla su file
- di testo non formattato con nome e path del file di report ed
- estensione .TXT. E` poi possibile salvare la classifica in un file
- di testo CSV compatibile Microsoft Excel e un altro file in formato HTML;
- in entrambi i casi il programma richiede path e nome del file da salvare.
-
- Utility n.3 : Cycles Counter.
-
- Tale mini-utility legge i files di report di CROBOTS e calcola
- il numero totale di match disputati e la media cicli tenuta per
- ogni singolo match. Viene poi riportata la media cicli del singolo
- file e di tutti i files elaborati fino a quel momento.
-
- 4- I files batch ALLTEST.BAT e BEST.BAT
-
- Questi files batch dai nomi alquanto espliciti sono un semplice
- esempio dell'utilizzo dell'utility n.1 del programma CRUTILS.EXE,
- e permettono di testare in modo abbastanza esauriente l'efficienza del
- proprio crobot. E` sufficiente eseguire al prompt dei comandi
- ALLTEST (oppure BEST) nomerobot (senza estensione).
-
- IMPORTANTE: Affinche' dopo il test sia possibile fare il parsing dei
- files LOG con il programma CRUTILS.EXE e` necessario passare come parametri
- ai file batch ALLTEST e BENCH i nomi dei crobots in modo "LOWERCASE".
-
- Il crobot da testare e i vari crobots avversari sono distribuiti
- in directory differenti che ognuno puo` modificare a piacimento.
- I dati finali vengono salvati su files .log che possono
- essere in seguito analizzati con l'utility n.2 del programma CRUTILS.EXE.
-
- 5- Il programma SOUND.EXE
-
- Tale "stupido" programma fa squillare l'altoparlante del PC
- finche' non viene premuto un tasto. Utile da mettere come
- ultimo comando da eseguire nei files batch generati da CRUTILS.EXE
- in modo da poter essere avvertiti al termine di tutti i match.
-
- 6- Appendice: compatibilita` UNIX/Linux
-
- Se volete utilizzare CRUTILS.EXE con i file di log generati dagli
- scripts Linux e` necessario convertire i caratteri di fine riga LF
- in CR+LF con programmi del tipo 'todos <infile >outfile'.
-
- NOTA BENE: Tutti gli eseguibili .EXE sono stati compilati in Real Mode 80286
- e NON possono essere eseguiti su PC di classe XT.
- Non sono per niente protetti :( per cui, o inserite i dati
- giusti o creapano miseramente! Tutto cio` per merito della
- mia proverbiale pigrizia ;->.
-
- I file batch creati con CRUTILS.EXE possono essere convertiti
- in script UNIX cambiando la "\" con la "/" e "%1.r" in "$1" o
- "$1.r" e *viceversa*.
- Fate attenzione, sotto UNIX, alla distinzione
- tra lettere maiuscole e minuscole nell'uso di file e
- programmi, non necessaria sotto MS-DOS; e` semplicemente
- possibile, sotto S.O. Linux, utilizzare il file binario
- (linkato staticamente) ELF-i386 'crutils'.
-
- Maurizio "Joshua" Camangi :^)
- joshua@ascu.unian.it
-
- SGNIPS SPARAPAUS
-