QL Toolbox '98 Collection TidyAsm v0.30 - Tidy Assembly Language Source Files di Adrian Ives Ho sviluppato questa piccola utility per manipolare i sorgenti in linguaggio assembly prodotti dal disassember IDIS della Digital Precision. Dite pure che sono un abitudinario, ma a me piacciono i miei sorgenti cosi' come sono, il che significa scritti in minuscolo (in modo tale che possa leggerli senza farmi venire il mal di testa) e con i TAB come separatori tra i campi, in modo tale da risparmiare spazi (utilizzando un editor come QD che espande e comprime i TAB automaticamente). Se TidyAsm trova una serie di direttive DC.B e gli argomenti di queste sono caratteri stampabili, allora li converte in stringhe per renderli piu' leggibili. Se questo formato non vi piace allora selezionate tutti i file TidyAsm in QPAC2, fate DO su uno di essi, selezionate Delete e poi scegliete All! L'interfaccia utente segue lo stesso standard delle altre utility nel mio QL Toolbox '98 collection (DirList, MakeDirs, ListNames, Find etc.). Source ------ Selezionate il file da convertire. Facendo DO sull'etichetta o sul campo compare una finestra File Select standard. Un click sul campo consente di modificarne direttamente il contenuto. Target ------ Selezionate il file che conterra' il risultato della conversione. Facendo DO sull'etichetta o sul campo compare una finestra File Select standard. Un click sul campo consente di modificarne direttamente il contenuto. Lasciando il campo vuoto, il risultato viene inviato alla finestra di output. Param ----- Non e' utilizzato nella versione corrente del programma (lo sara' prossimamente...) To Scrap -------- Invia il risultato della conversione direttamente allo Scrap da dove puo' essere incollato in un editor che lo gestisce, come QD. (Notate pero' che QD non e' in grado di espandere i TAB) Delete ------ Selezionando questa opzione il file sorgente verra' cancellato al termine dell'operazione. (State attenti!) Tidy ---- Questa opzione e' abilitata solo quando viene fornito un nome di file sorgente valido nel campo Source. Selezionandola si ottiene la conversione del file e il risultato viene inviato al Target specificato. Durante l'elaborazione, il pulsante Tidy diventa una finestra di stato che indica la linea corrente. Modifica dei campi ------------------ Modificando un campo, la maggior parte dei tasti standard del QDOS funzionano come ci si aspetta. Ma ci sono alcuni tasti addizionali che vale la pena conoscere: [SHIFT]+[SPACE] (Il tasto INS della tastiera del PC) passa dalla modalita' di inserimento a quella di sovrascrittura e viceversa. [CTRL]+[S] inserisce il contenuto dello Scrap alla posizione corrente del cursore. Fate attenzione, lo Scrap puo' contenere grosse quantita' di dati! [CTRL]+[SHIFT]+[S] copia il contenuto corrente del buffer di edit nello Scrap, sovrascrivendo qualunque cosa eventualmente in esso contenuta. [CTRL]+[SHIFT]+[H] copia il contenuto corrente del buffer di edit nel buffer di HotKey System II Stuffer. [CTRL]+[SHIFT]+[F] chiama la finestra di dialogo per la selezione dei caratteri delle Menu Extension, permettendo di selezionare un carattere inserendolo alla posizione corrente del cursore. Linea di comando ---------------- TidyAsm accetta dei parametri sulla linea di comando nel seguente formato: Source Target Non si puo' omettere il Source se si vuole specificare il Target. Gli switch possono comparire in qualunque punto della linea di comando ed hanno i seguenti significati: /X Se sono state fornite sufficienti informazioni sulla mlinea di comando, esegue il comando Find e alla fine esce. /B Usato insieme a /X, causa l'esecuzione del programma completamente in background. In questa modalita' il programma non mostra alcuna finestra di dialogo e assume come YES tutte le risposte ad eventuali richieste. /W Insieme a /X, causa la visualizzazione di una finestra di ShLines alla fine dell'operazione. /S Invia l'output allo Scrap. /N Numera le righe del file. /0 Ignora ogni canale eventualmente passato (vedi sotto). Questa funzione e' utile soltanto nel caso che il programma sia stato lanciato da una shell che abbia impostato automaticamente i tre canali stdin, stdout e stderr. Si puo' anche passare un singolo canale a TidyAsm. Nel qual caso l'output viene inviato ad esso. Quando viene fornito un canale, il campo Target deve contenerne l'identificativo di tipo Long Word in formato esadecimale. Se vengono passati tre canali, questi vengono interpretati come stdin, stdout e stderr e il programma assume di essere stato lanciato da una shell tipo Unix e si comporta come una semplice utility a linea di comando. In questo caso gli switch /X e /B vengono automaticamente impostati. Esempio ------- EX 'TidyAsm_obj',#1;'Blurggh_asm NiceAndTidy_asm /x /b' Riformatta l'orribilmente non formattato file Blurggh_asm nel file NiceAndTidy_asm - facendo tutto in background. Configurazione -------------- Alcune limitate configurazioni possono essere effettuate attraverso i programmi Config Level 1 o Level 2. Ad oggi e' supportato un unico elemento di configurazione per impostare il valore di default del parametro (attualmente non utilizzato). Disclaimer ---------- Questo programma non e' stato provato sotto ogni possibile configurazione ed ambiente operativo. Sono sicuro che ci sono ancora alcuni insidiosi bug nascosti in esso, pertanto apprezzerei molto qualsiasi comunicazione al riguardo - specialmente se trovate problemi con TidyAsm (be', in effetti anche se non li trovate). Requisiti --------- Le Menu Extension di Jochen Merz e il Toolkit II. Il file ShLinesRT_obj incluso nelle librerie di runtime di QLiberator. Storico delle modifiche ----------------------- 0.30 01/03/1998 Prima versione Termini della licenza d'uso --------------------------- Si ha il permesso di utilizzare e distribuire questo software. I termini della licenza sono riportati sotto. Se viene regolarmente riportato il nome dell'autore, e se tale nome viene incluso in ogni documentazione allegata, stampata o elettronica che sia ... 1) Questo programma puo' essere distribuito liberamente. 2) Questo programma e la sua documentazione puo' essere incorporato come parte di un altro pacchetto software, a patto che non ne rappresenti la parte sostanziale e che, unitamente ad altri programmi forniti dall'autore alle stesse condizioni, non ne rappresenti la parte sostanziale. 3) Gli eseguibili possono essere modificati o corretti, se necessario, per farli girare sotto ambienti operativi diversi. In questo caso, pero', si deve allegare documentazione di tali modifiche in forma elettronica o stampata. Non e' consentito far pagare questo software piu' del ragionevole costo dei supporti di memorizzazione o per la trasmissione, per facilitare la sua distribuzione. L'autore non da' alcuna garanzia sul funzionamento del programma o sulla correttezza della documentazione. Il programma viene fornito cosi' com'e'. E' responsabilita' dell'utente stabilire se il programma e' adatto e sicuro a girare nel suo ambiente operativo. L'autore non accetta alcuna responsabilita' su eventuale perdita o corruzione di dati risultante dall'uso del programma. L'autore fara' del suo meglio per correggere eventuali problemi ad esso comunicati ma non accetta alcun obbligo a farlo. L'autore puo' essere contattato via e-mail all'indirizzo riportato alla fine del presente documento. Adrian.D.Ives ADIves@aol.com 01/03/1998 Traduzione di Enrico Maria Giordano e.m.giordano@emagsoftware.it 03/06/2002