@database ShellScr.guide @author Kyzer/CSG @$VER: ShellScr.guide 1.6 (15.09.99) @remark you can read this in a text viewer, if you need to. @REMARK: Traduzione italiana a cura di Mario Dell'Oca e Francesco Mancuso @node main "Documentazione di ShellScr v1.6" @{u}ShellScr v1.6@{uu} @{" " link intro} Introduzione @{" " link usage} Utilizzo @{" " link options} Parametri di ShellScr @{" " link history} Cronologia di ShellScr @{" " link glossary} Glossario dei termini importanti @{" " link credits} Ringraziamenti ShellScr è un programma per aprire una shell a piena schermata su un proprio schermo pubblico. Copyright (C) 1997-1999 Kyzer/CSG Questo programma è freeware; puoi redistribuirlo e/o modificarlo rispettando i termini della GNU General Public License come pubblicati dalla Free Software Foundation; è applicabile la versione 2 della licenza, o (a tuo piacimento) qualsiasi versione successiva. Questo programma è distribuito sperando che possa risultare utile, ma SENZA ALCUNA GARANZIA; persino senza la garanzia implicita di COMMERCIABILITÀ o ADATTABILITÀ A UNO SCOPO PARTICOLARE. Consulta la GNU General Public License per ulteriori dettagli. Assieme a questo programma dovresti aver ricevuto una copia della GNU General Public License; se così non fosse, scrivi alla Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. @{"Come contattare l'autore" link credits} @endnode @node intro "Introduzione" Anziché usare una shell in una finestra e rischiare di ingombrare il tuo Workbench, perché non fare in modo che la shell si apra su un suo schermo? ShellScr è un programma che apre un nuovo schermo pubblico e su di esso apre una shell a piena schermata. Dopo che tutte le finestre su tale schermo pubblico si sono chiuse, inclusa la stessa shell, lo schermo si chiude. ShellScr può anche avviare una shell usando un file diverso dal solito S:Shell-Startup, per cui in un certo modo puoi usarlo come alternativa a IconX. @{"Come utilizzare ShellScr" link usage} @endnode @node usage "Utilizzo" @{b}Requisiti:@{ub} @{b}---------@{ub} ShellScr per funzionare richiede il Workbench 2 (v37) o successivo. Per usare fonti diverse da topaz, devi avere a disposizione la diskfont.library. Le finestre ASL di scelta file utilizzabili per selezionare i fonti e i modi schermo richiedono almeno la versione Workbench 2.1 della asl.library (v38) o un suo sostituto/rimpiazzo, come ReqTools e ReqPatch. @{b}Distribuzione:@{ub} @{b}--------------@{ub} Per favore passa ad altri l'archivio completo come l'hai ricevuto, con il codice sorgente, le icone di esempio e questa guida. Grazie. @{b}Installazione:@{ub} @{b}--------------@{ub} Avvia semplicemente il programma di installazione. @{b}Avvio di ShellScr:@{ub} @{b}------------------@{ub} Puoi avviare quante copie desideri di ShellScr. Il programma è di tipo "puro" e può essere reso residente. Per avviare ShellScr, fai doppio click sulla sua icona, o inserisci "ShellScr" in una shell già aperta. In questo modo avrai una nuova shell su uno schermo proprio. Questo schermo diventa quello predefinito, e molti programmi apriranno le loro finestre su di esso, anziché sul Workbench. Se selezioni col tasto Maiuscole premuto un file o una directory dal Workbench, e poi fai partire ShellScr, avvierai la shell in quella directory. Sarà così anche se selezioni un file o una directory, e poi avvii ShellScr su tale directory con un programma di 'caricamento' come "ToolsDaemon" o "ToolManager". Puoi chiudere la shell quando desideri, tramite CTRL-\\, o inserendo "EndShell" al prompt della shell. Lo schermo comunque si chiuderà solo quando tutte le finestre aperte su di esso saranno state chiuse. In genere la shell è l'unica finestra, per cui lo schermo si chiude quando la shell si chiude. Vedi @{"Parametri ShellScr" link options} per conoscere come personalizzare schermo e shell. @endnode @node options "Parametri ShellScr" Puoi modificare la modalità di lavoro di ShellScr tramite i seguenti parametri. Puoi impostarli dalla shell, dai parametri dell'icona del programma ShellScr, da quelli di una icona il cui programma associato è ShellScr, da quelli di una icona o cassetto sottoposto a selezione multipla all'avvio di ShellScr, o dai paramentri di una icona selezionata all'avvio di ShellScr come comando WB da ToolsDaemon o ToolManager, o programmi similari di 'caricamento'. Parametri schermo @{" " link PUBNAME} PUBNAME @{" " link MODEID} MODEID @{" " link DEPTH} DEPTH @{" " link FONT} FONT @{" " link AUTOSCROLL} AUTOSCROLL @{" " link SHANGHAI} SHANGHAI @{" " link TITLE} TITLE @{" " link NOTITLE} NOTITLE Parametri shell @{" " link CONSPEC} CONSPEC (WINDOW) @{" " link COMMANDFILE} COMMANDFILE (FROM) @{" " link STACKSIZE} STACKSIZE @endnode @node PUBNAME "Parametro PUBNAME" WB: PUBNAME Shell: PUBNAME=NAME È il nome pubblico che ShellScr attribuirà allo schermo creato. Il nome pubblico predefinito è SHELL_XXXX, dove XXXX è un codice identificativo unico per quella particolare shell. NON USARE questo parametro a meno che non sia strettamente necessario, perché quando apri una shell con un nome, non potrai aprire un'altra shell con tale nome nella stessa sessione di lavoro. Per favore, dai una occhiata a MultiCX, che ha una opzione per creare un nome 'magico' per lo schermo pubblico in primo piano, qualunque esso sia. Se desideri impostare il testo sulla barra del titolo dello schermo, per favore usa il parametro @{"TITLE" link TITLE}. @endnode @node MODEID "Parametro MODEID" WB: MODEID Shell: MODEID=ID È l'identificativo (ModeID) del modo schermo che intendi usare. Specifica il tipo di schermo e la risoluzione da usare per lo schermo di ShellScr. Puoi indicare il modo schermo in una delle seguenti modalità: - come numero decimale (compatibile con i precedenti modeid di ShellScr) - come numero esadecimale, iniziante con '$' o '0x', es. "0x29004" - come nome proprio di un modo schermo, es. "PAL:Alta ris.". - come punto interrogativo, "?", o stringa vuota, "", nel qual caso si aprirà una finestra ASL di scelta file in cui potrai scegliere il modo schermo. Puoi avere l'elenco dei nomi propri dei modi schermo tramite Screenmode delle preferenze di Amiga, o tramite la finestra ASL di scelta dei modi schermo. Fai attenzione a come scrivi il nome proprio del modo schermo, perché il controllo distingue tra lettere maiuscole e minuscole: "PAL:Alta ris." è corretto, mentre "PAL:alta ris." non sarà accettato. Se non indichi alcun ModeID, o ne specifichi uno non valido, sarà utilizzato il modo schermo predefinito (di solito quello del Workbench). Vedi anche il parametro @{"DEPTH" link DEPTH}, per impostare il numero di colori sullo schermo prescelto. @endnode @node DEPTH "Parametro DEPTH" WB: DEPTH Shell: DEPTH/N È un numero intero che indica quanti bitplane desideri per lo schermo, il cui valore è compreso tra 1 e 4, o tra 1 e 8 sulle macchine provviste di chipset AGA o scheda grafica. Se possiedi una scheda grafica, potresti anche scegliere uno schermo con profondità 16 bit (hicolor) o 24 bit (truecolor). Maggiore è la profondità usata, maggiore è la quantità di memoria richiesta dallo schermo. Il valore predefinito è sempre 2 bitplane (4 colori). Se usi MagicWB, potresti desiderare uno schermo con profondità di 3 bitplane per sfruttare gli 8 colori MWB, ma la maggior parte degli utenti di solito usa solo 2 bitplane per una shell! Se tramite il parametro @{"MODEID" link MODEID} fai aprire la finestra di scelta dei modi schermo, puoi scegliere la profondità dello stesso da là. I colori dello schermo prescelto saranno quelli ereditati dallo schermo predefinito. @endnode @node FONT "Parametro FONT" WB: FONT Shell: FONT/K Ti permette di scegliere un fonte a larghezza fissa per lo schermo. Devi solo indicare il nome e il corpo del fonte, "XEN/9" per esempio. Se vuoi usare un fonte in corpo 8, non devi nemmeno indicare il corpo, ma scrivere solo "XEN" o un altro nome. Se indichi "" o "?" per il fonte, si aprirà una finestra ASL per la scelta dei fonti, da cui potrai scegliere tipo e corpo desiderato. Le finestre delle shell di solito 'ereditano' solo un fonte a larghezza fissa dallo schermo su cui si aprono. Non c'è alcuna ragione per impedirti in modo preventivo di scegliere un fonte proporzionale, ma ShellScr mostrerà un messaggio di avvertimento se fai ciò, e scoprirai che la shell non usa tale fonte, se non per il solo titolo dello schermo. ShellScr è in grado di usare un fonte predefinito. Se lo schermo predefinito usa un fonte a larghezza fissa, il programma lo userà. In caso contrario, ShellScr utilizzerà il fonte predefinito di sistema, scelto tramite il programma Font delle Preferences. @endnode @node AUTOSCROLL "Parametro AUTOSCROLL" WB: AUTOSCROLL Shell: AUTOSCROLL/S Con questo parametro abiliti lo scorrimento automatico per lo schermo. Ciò significa che se trascini lo schermo al di fuori della parte visibile della schermata, lo puoi far tornare di nuovo visualizzato semplicemente spostando il mouse. @endnode @node SHANGHAI "Parametro SHANGHAI" WB: SHANGHAI Shell: SHANGHAI/S Prima dell'introduzione della versione 2 del sistema operativo di Amiga, un programma aveva solo due opzioni per aprire una finestra. Poteva aprirla sul proprio schermo privato, oppure sullo schermo del Workbench. A partire dalla versione 2 del sistema operativo, le finestre si aprono sullo schermo predefinito - ma per questioni di compatibilità, i vecchi programmi aprono finestre sullo schermo del Workbench. Amiga mette a disposizione una speciale opzione globale per gli schermi pubblici, chiamata modo "Shanghai". Se è attivata, i vecchi programmi apriranno le finestre sullo schermo predefinito proprio come quelli più recenti. Specificando questo parametro rendi attivo il modo Shanghai. @endnode @node TITLE "Parametro TITLE" WB: TITLE Shell: SCREENTITLE=TITLE È il testo che comparirà sulla barra del titolo dello schermo. Questo parametro ti permette di avere una barra del titolo, dato che la shell che aprirai non ne avrà di per sè una. Il testo predefinito che compare sulla barra del titolo è 'AmigaShell'. Per rimuovere la barra del titolo, vedi il parametro @{"NOTITLE" link NOTITLE}. @endnode @node NOTITLE "Parametro NOTITLE" WB: NOTITLE Shell: NOTITLE=HIDETITLE/S Con questo parametro puoi specificare che lo schermo non abbia alcuna barra del titolo, in modo da ottenere tutto lo spazio possibile sullo schermo. Il @{"calcolo delle dimensioni della finestra" link sizing} ne tiene conto. Nota che la normale finestra CON: ha un aspetto piuttosto brutto con questo parametro! Il suo utilizzo migliore è riservato a gestori come VNC: che usano realmente l'intero schermo. @endnode @node CONSPEC "Parametro CONSPEC (WINDOW)" WB: CONSPEC Shell: CONSPEC=WINDOW È di gran lunga il parametro più tecnico di ShellScr. Non siete obbligati a usarlo se non volete farlo! Indica le specifiche della finestra di console da aprire sullo schermo pubblico. Dovrebbe includere due argomenti "%s" che ShellScr rimpiazzerà con determinati valori. Il primo "%s" sarà sostituito dalle coordinate e dalle dimensioni della finestra, nel formato "sinistro/alto/larghezza/altezza", ad es. "0/3/640/253" su uno schermo di 640x256. Il secondo "%s" sarà sostituito dal nome dello schermo pubblico che stai usando. La finestra dovrebbe essere del tipo di sfondo, senza bordi, accessori e titolo. Ad esempio, come impostazioni predefinite si ha "CON:%s//BACKDROP/NOBORDER/SCREEN%s". Se usi il pacchetto ViNCEd, una buona scelta potrebbe essere la seguente: VNC:%s//SCREEN%s/BACKDROP/NOBORDER/NOCLOSE/NOSIZE/NODRAG/NODEPTH/ NOPROPX/NOPROPY/NOBUTTONS/NOICONIFY/SHELL/MENU Potresti leggere le informazioni sul @{"calcolo delle dimensioni della finestra" link sizing}. @endnode @node COMMANDFILE "Parametro COMMANDFILE (FROM)" WB: COMMANDFILE Shell: COMMANDFILE=FROM Ti permette di specificare uno script da eseguire ad ogni avvio di ShellScr. La shell in genere esegue S:Shell-Startup, ma con questa opzione potrai decidere quale script eseguire all'avvio, proprio come il parametro 'FROM' di NewShell (infatti, il meccanismo è identico). Anche IconX agisce in questo modo, a parte alcune piccole differenze. Pertanto, hai a disposizione molte possibilità di combinare scherzi, come dimostra uno degli esempi forniti. @endnode @node STACKSIZE "Parametro STACKSIZE" WB: STACKSIZE Shell: STACKSIZE=STACK/N In genere, la nuova shell eredita le dimensioni del suo stack da ShellScr (come da impostazione predefinita, si ignora l'ovvio comando 'Stack' nella shell di Amiga, che puoi piazzare nel tuo script S:shell-startup per aumentare in modo semplice le dimensioni dello stack). Allora, per aumentare la dimensione dello stack della shell, devi specificare uno stack maggiore per ShellScr, che necessita solo di 1 Kb? Non proprio, perché con questo parametro puoi lasciare lo stack di ShellScr così com'è, aumentando nel contempo lo stack della shell. Puoi specificare la dimensione dello stack della nuova shell in byte, che sono arrotondati ai 4 byte più vicini. La dimensione minima dello stack della shell è pari a 1600 byte (1,5 Kb), quella massima è limitata solo dalla memoria a disposizione. La dimensione predefinita dello stack della nuova shell è pari a 4096 byte (4 Kb). @endnode @node history "Cronologia di ShellScr" 1.0: Primo rilascio 1.1: Aggiunta dei parametri @{"PUBNAME" link PUBNAME}, @{"MODEID" link MODEID}, @{"DEPTH" link DEPTH}, @{"TITLE" link TITLE} e @{"CONSPEC" link CONSPEC}. Uso di System() anziché Execute(). Sorgente leggermente riordinato. 1.2: Alcuni controlli in più. Aggiunta del parametro @{"NOTITLE" link NOTITLE}. Migliorato il @{"calcolo delle dimensioni della finestra" link sizing} Directory corrente e percorso ora impostati correttamente da Workbench. 1.3: Scansione dei parametri dell'icona. Uso dei colori dello schermo predefinito. Documentazione riordinata. 1.4: Finestre di scelta per modi schermo e fonti. Aggiunta dei parametri @{"FONT" link FONT} e @{"COMMANDFILE" link COMMANDFILE}. Modifica del conspec predefinito per farlo funzionare correttamente. Migliore spiegazione degli errori, in particolare "Impossibile aprire lo schermo". Modifica della scansione dei parametri. In sostanza, directory e icone senza file associato causavano blocchi/malfunzionamenti/memoria alterata... ora non più. ShellScr ora può essere residente. Comparsa di una finestra di avvertimento se ShellScr non riesce a chiudere subito il suo schermo. 1.4b: Tentata correzione di alcuni errori. Corretto sicuramente args.m per evitare problemi con Enforcer. Eliminate le false chiamate nel caso in cui la asl.library non si fosse aperta. Alcune correzioni nella scansione di schermi e fonti. 1.5: Aggiunti i parametri @{"STACKSIZE" link STACKSIZE}, @{"AUTOSCROLL" link AUTOSCROLL} e @{"SHANGHAI" link SHANGHAI}. Ora si può impostare la profondità e lo scorrimento automatico dalla finestra di scelta del modo schermo. La chiusura della finestra di scelta modo schermo senza effettuare alcuna selezione ora impedisce l'avvio del programma. La finestra di avvertimento di ritardata chiusura dello schermo ora dispone di un pulsante per annullare l'operazione. Il programma imposta sè come schermo pubblico predefinito all'avvio. Aggiunto il riconoscimento del modo schermo tramite il suo 'nome reale'. Eliminato il blocco che si verificava quando il comando NewShell non aveva esito positivo. Messaggio di errore quando il comando NewShell non ha esito positivo. Eliminati errori relativi alla selezione dei fonti. Varie migliorie, modifiche ed altre cose dimenticate in precedenza. 1.6: Eliminato un @{"errore ben noto" link sources}. Aggiunta la localizzazione. Aggiunto uno script di installazione. I fonti si possono indicare nel formato 'miofonte.24'. Eliminata la finestra di avvertimento per la chiusura ritardata dello schermo, dato che era molto difficile visualizzarla. Ora si può inviare a ShellScr un CTRL-C per ritentare la chiusura, nel caso in cui il meccanismo di Intuition non avesse esito positivo. La asl.library ora si apre solo se è realmente necessario. @{" Sviluppi futuri " link future} @endnode @node future "Sviluppi futuri per ShellScr" L'autore non ha altre idee da inserire nel programma. Se proprio lo desideri, l'autore eliminerà caratteristiche che non ti piacciono, non desideri, non necessiti. Il buon vecchio scrsh del resto era poco più grande di 1 Kb, se lo ricordi (nonché 'pieno di errori e codificato in modo non corretto' -Ed.) Qualunque suggerimento è benvenuto. @{"Mandalo a me." link credits} @endnode @node sources "Note sul sorgente" Il makefile è progettato per girare solo sulla mia macchina, e non creerà alcun ShellScr. Dato che sono presenti tutti i moduli compilati, ciò non dovrebbe costituire un problema; basta immettere 'ec opti ShellScr.e'. Sono presenti tutti i moduli e i loro sorgenti. Essi sono tutti disponibili nell'archivio dell'autore su Aminet, 'dev/e/kyz.lha'. In sostanza, puoi usare qualunque modulo, in forma originale o da te modificata, a patto che tu citi l'autore. I moduli assembler utilizzano i parametri globali di E, grazie al file include generato da eglobs.e L'autore non azzera tutte le stringhe e le liste create, ma lascia tale compito al codice di avvio. Ciò rende il codice in uscita più compatto e il sorgente più semplice, e quasi controbilancia la memoria sprecata durante l'esecuzione del programma. @{b}Il malefico errore:@{ub} Era un errore di off-by-one nella routine the clr(), che azzerava il primo byte di un indirizzo che seguiva la struttura args. L'autore non riusciva a vederlo sulla sua macchina dotata di EC020 (24bit), ma altri l'hanno scovato. L'autore si scusa per ciò. @endnode @node sizing "Calcolo delle dimensioni della finestra" Il calcolo delle dimensioni della finestra di ShellScr avviene come segue: Per prima cosa, la larghezza della finestra è sempre pari alla intera larghezza dello schermo. Poi, se ti piace la normale finestra CON: predefinita, e non indichi un @{"CONSPEC" link CONSPEC} alternativo, l'altezza della finestra sarà pari a (altezza dello schermo - 3), per il fatto che CON: ha un aspetto migliore con queste impostazioni, essendo la sua inutilizzabile barra del titolo coperta dalla barra del titolo dello schermo. Se usi un @{"CONSPEC" link CONSPEC} personalizzato, ShellScr non sfrutta tale assunto, ma calcola l'altezza come (altezza dello schermo - altezza della barra del titolo). Se specifichi il parametro @{"NOTITLE" link NOTITLE}, l'altezza della finestra della shell sarà pari all'altezza totale dello schermo. @endnode @node glossary "Glossario dei termini principali" @{b}Schermata@{ub} L'immagine mostrata dal tuo Amiga sulla TV o monitor. @{b}Schermo@{ub} Un'area grafica che è visualizzata sulla schermata. Gli schermi possono essere trascinati dentro e fuori dalla schermata, e sistemati davanti o dietro altri schermi. Puoi avere tanti schermi aperti quanta memoria hai per loro. @{b}Schermo Workbench@{ub} È lo schermo più importante di Amiga. È il primo schermo che vedi all'avvio, e di solito rimane lo schermo che le applicazioni usano quando non sfruttano il proprio schermo personalizzato. Lo schermo Workbench è di tipo pubblico, e dall'avvio è lo schermo predefinito. @{b}Schermo proprio@{ub} È lo schermo che una applicazione crea per se stessa. Nessuna altra applicazione può aprire (in modo legale) una finestra su di esso. @{b}Schermo pubblico@{ub} Uno schermo che ogni applicazione può utilizzare. Ha un nome (il nome dello schermo Workbench è 'Workbench') e le applicazioni possono far riferimento ad esso indicandone il nome esatto quando aprono le proprie finestre. Se invece non indicano alcun nome, lo schermo che apriranno sarà lo schermo predefinito. @{b}Schermo predefinito@{ub} Di solito è lo schermo del Workbench, ma ciò può essere cambiato dalle applicazioni, o dall'utente tramite programmi appositi. Qualunque schermo pubblico può diventare lo schermo predefinito. ShellScr prende i valori di partenza per molti suoi parametri dallo schermo predefinito. Per esempio, se non non specifichi un parametro @{"ID" link MODEID}, ShellScr aprirà lo stesso tipo di schermo come schermo predefinito. Lo schermo predefinito è usato per permettere l'apertura delle finestre quando l'applicazione non specifica alcun altro schermo. C'è un'eccezione a questa regola - per soli scopi di compatibilità, i vecchi applicativi apriranno sempre le loro finestre sullo schermo del Workbench. Puoi disattivare questa compatibilità tramite il parametro @{"Shanghai mode" link SHANGHAI}. @{b}Stack@{ub} L'area di memoria che ogni applicazione riceve per immagazzinare dati temporanei. Le applicazioni UNIX sono famose per l'impiego di stack molto ampi. @endnode @node credits "Ringraziamenti" ShellScr è stato tratto dal programma in assembler 'scrsh' di Kyzer/CSG. ShellScr è stato scritto da Kyzer/CSG in Amiga E 3.3a, basandosi sul sorgente di scrsh.asm di Kyzer/CSG, sul sorgente di clonescreen.c del RKM, e sul sorgente di dospath.library di Stefan Becker. Non ha però alcuna somiglianza con nessuno di essi. La traduzione di tutti le parti di ShellScr in linguaggi diversi dall'originale è stata effettuata da @{"Amiga Translators Organisation" link ATO.readme/main}. @{b}I migliori auguri alle seguenti persone:@{ub} (DE) Walter Haidinger e deJoker che hanno richiesto il parametro @{"COMMANDFILE" link COMMANDFILE}. (AU) Frank Bunton, che ha richiesto migliorie per i colori. (DE) Thomas Richter, per aver 'sistemato' WBLoad, e per ViNCEd! (NL) Wouter van Oortmerssen, per il linguaggio E. (DE) Frank Wille, per PhxAss. (US) Free Software Foundation, per la licenza GNU e GNU make. @{b}Ringraziamenti:@{ub} IconX è © Amiga International (l'ho detto...) MultiCX è © Martin Berndt. PubChange è © Steve Koren. ReqTools e ReqPatch sono © di Nico François, Magnus Holmgren e Dave Jones. ToolManager è © Stefan Becker ToolsDaemon è © Nico François ViNCEd e VNC: sono © Thomas Richter. XEN è © Martin Huttenloher @{b}Come contattare l'autore:@{ub} Kyzer/CSG, 49 Fairview Road, AB22 8ZG, Scotland. Email: kyzer@4u.net http://zap.to/kyz @endnode