[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

CUX

Versione 4.0

Dynamica s.r.l. Milano

Gennaio 2000
Copyright (C) 1988-2000 Dynamica s.r.l, Milano Questa è la documentazione della versione 4.0 di Cux ed è parte integrante del prodotto. È vietata la riproduzione, anche parziale, con qualsiasi mezzo effettuata, compresa la fotocopia, anche ad uso didattico, se non autorizzata. A questo documento e al programma che lo accompagna si applicano senza distinzione di sorta le clausole riportate nella Licenza d'uso. Cux è prodotto da:
Dynamica s.r.l.
Piazza Emilia, 5
20129 MILANO

Licenza d'uso

Il presente programma, inclusa la documentazione tecnica che lo accompagna, è concesso in uso dalla Dynamica s.r.l. alle condizioni che seguono.

Il mancato invio alla DYNAMICA s.r.l. - Piazza Emilia n. 5 - 20129 Milano - del modulo allegato, debitamente firmato, importa l'automatica risoluzione della concessione in uso del presente programma.

Il programma non può essere né installato né usato contemporaneamente su più elaboratori. Ogni installazione del programma richiede una nuova copia ottenibile dalla Dynamica s.r.l. o da un suo distributore/rivenditore autorizzato.

Il dischetto (o supporto magnetico atto allo scopo) contenente il programma può essere riprodotto in copia soltanto per tutelare i dati in esso contenuti, contro perdite e deterioramenti. Il diritto di utilizzazione non è trasmissibile né cedibile a terzi salvo autorizzazione della Dynamica s.r.l. che risulti da atto scritto. Le stesse restrizioni si applicano alla documentazione tecnica, sia essa stampata su carta sia memorizzata su supporto magnetico.

Qualsiasi atto od omissione in violazione dei diritti d'autore e/o di privativa sul programma di cui la DYNAMICA s.r.l. è titolare esclusiva, ivi inclusa la riproduzione non autorizzata del programma e l'alienazione e/o l'acquisizione, anche gratuite, di copie non autorizzate dello stesso, sarà perseguita legalmente ai sensi della legge, 22 Aprile n. 633, cos`ì come modificata dal D.L. 29 Dicembre 1992 n. 518.

La violazione delle clausole che precedono comporta automaticamente la risoluzione, senza preavviso, del diritto di utilizzo sia del software sia della documentazione e conseguentemente annulla ogni diritto alla partecipazione a qualsiasi forma di aggiornamento del programma.

L'assistenza tecnica sarà fornita ai soli possessori di copie originali del programma, nei limiti e nei termini da stabilirsi sulla base degli accordi contrattuali complementari alla fornitura del programma effettuata sia a mezzo distributori/rivenditori sia direttamente.

Le nuove versioni del programma potranno essere richieste dagli utenti già in possesso del programma ad un prezzo di favore. Tale richiesta dovrà pervenire alla Dynamica s.r.l. nei tempi e nei modi da essa prestabiliti.

La Dynamica s.r.l. garantisce che il materiale da essa fornito si trova nelle migliori condizioni di impiego e si obbliga a sostituire le parti eventualmente difettose previa loro restituzione e a fronte di richiesta per iscritto da effettuarsi entro 7 gg. dal verificarsi del difetto.

È esclusa qualunque altra responsabilità da parte della Dynamica s.r.l. per ogni altro danno, diretto o indiretto, conseguente all'impiego degli oggetti forniti (ivi inclusi programmi, supporti magnetici e documentazione) che sia diverso o più ampio della sostituzione del materiale stesso, ai sensi del paragrafo che precede.

La Dynamica s.r.l. non assicura l'idoneità del materiale fornito per impieghi specifici o con programmi particolari, salvo esplicito impegno scritto.

In ogni caso, al presente accordo si applicano le norme vigenti nella nazione in cui il programma è stato acquistato.

Salvo diversa deroga di competenza stabilita in specifico contratto, per controversie ove la Dynamica s.r.l. sia convenuta è competente il Foro di Milano.

Nelle controversie promosse dalla Dynamica s.r.l., alla stessa è data facoltà di ricorrere sia al proprio Foro sia a quello dell'utente, a propria insindacabile scelta.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1. Introduzione

Funzione primaria del pacchetto di comunicazione Cux (Communication Utility eXtended) è di consentire la realizzazione di sistemi di comunicazione operanti attraverso linee commutate o dedicate asincrone (ad esempio RS232 o X28).

Cux può essere usato sia in modo interattivo presentando un prompt di comando sia in modo batch eseguendo un programma memorizzato in un file. In ambedue i casi si hanno a disposizione i medesimi comandi. Inoltre molte delle operazioni condotte da Cux possono essere direttamente impostate dalla linea di comando.

Progettato per la massima semplicità d'uso, Cux richiede peraltro un periodo di studio e prove al fine di poter sfruttare al meglio tutte le sue capacità. L'approccio consigliato è quello di mettere in opera in primo luogo una connessione locale (tra due computer) via seriale RS232 con cui sperimentare i diversi comandi, in seguito aggiungere gli eventuali modem e, dopo essersi accertati del corretto funzionamento dell'installazione, procedere alla realizzazione dell'applicazione in cui il programma dovrà operare.

Un'applicazione per Cux è composta da un insieme di script (o file batch in MsDos) e di programmi Cux. Un programma Cux è un insieme di file contenenti comandi.

La realizzazione di applicazioni telematiche con Cux richiede, oltre allo studio del programma stesso, una profonda analisi dell'organizzazione di tutto il servizio che si intende realizzare. Inoltre occorre che il sistemista proceda ad uno studio delle componenti di base dei servizi telematici e dei sistemi hardware e software coinvolti.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.1 Caratteristiche di Cux 3.8

La nuova release 3.8 di Cux presenta alcune novità importanti che ne fanno uno strumento di comunicazione se possibile ancor più duttile e versatile: il notevole ampliamento del linguaggio, la possibilità di eseguire comandi remoti in ambiente MsDos e l'introduzione di un motore fax sono sicuramente gli aspetti più evidenti delle novità apportate al pacchetto.

Per quanto riguarda il linguaggio, occorre sottolineare in primo luogo l'introduzione di variabili e macro: la visibilità delle variabili di environment, l'introduzione di variabili predefinite e la possibilità per l'utente di definire nuove variabili, costituiscono ora un punto di forza del pacchetto, permettendo la creazione di applicazioni automatizzate generalizzabili e personalizzabili in maniera semplice ed efficace. L'uso delle macro, inoltre, semplifica ulteriormente le poche operazioni manuali richieste nelle applicazioni automatizzate cos`ì prodotte.
Altro aspetto rilevante delle modifiche apportate al linguaggio è dato dall'ampliamento dei comandi: da quelli di sistema (più che raddoppiati) a quelli per il controllo dell'elaborazione batch (praticamente raddoppiati). Ma anche la classe dei comandi per la gestione dei protocolli è stata ampliata, aumentando di circa un terzo i comandi disponibili ed introducendo la gestione diretta interna di altri protocolli, quali Kermit e Zmodem.

Ancora, la possibilità di eseguire comandi remoti in ambiente MsDos rappresenta un'ulteriore adeguamento di Cux alle aspettative di un completo prodotto di comunicazione.
Ma attenzione: il supporto all'esecuzione di comandi remoti in ambiente MsDos rappresenta un add on da richiedere esplicitamente in quanto non viene fornito col pacchetto base.

Altro add on importante ` il modulo FAX, ovvero il motore fax per la ricezione e la spedizione di fax in formato G3 sia in alta sia in bassa risoluzione. Anche tale modulo è da richiedere esplicitamente in quanto non fa parte del pacchetto base.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.2 Usi di Cux in MsDos

Il sistema operativo MsDos è un sistema intrinsecamente monotasking e perciò tutti gli usi di Cux sono strettamente legati al fatto che il programma operante è anche l'unico ad avere l'intero controllo del sistema. In generale il quadro operativo su una stazione MsDos vede Cux attivo in risposta o in chiamata, e a seguito della connessione è possibile eseguire in successione i diversi comandi (si veda Uso di Cux in modalità batch) trasferendo momentaneamente il controllo ad applicazioni esterne per processare (o preparare) file da inviare o ricevere. Un caso particolare è rappresentato dal comando `REMOTE' che consente la ridirezione della linea di comando propria dell'MsDos; anche in questo caso il controllo viene trasferito al sistema operativo, salvo il fatto che Cux resta operante per ciò che riguarda la gestione della linea di comunicazione. L'uso previsto, e consigliato, è che le stazioni MsDos vengano utilizzate al più come satelliti (eventualmente remoti) di sistemi Unix/Xenix in quanto questi ultimi consentono un miglior sfruttamento del programma facendolo, per esempio, operare su più linee contemporaneamente. Nulla vieta comunque di usare Cux come strumento per collegare tra loro sistemi MsDos per il trasferimento di file. Discorso a parte merita invece l'eventuale uso di Cux con sistemi di windowing e gestione delle sessioni.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.3 Usi di Cux in Unix/Xenix

La disponibilità di un sistema con capacità di operare in modo multitasking amplia notevolmente le possibilità e le varianti di messa a punto di servizi con il prodotto. Inoltre Cux è perfettamente allineato con le caratteristiche di modularità possedute da tutti i programmi che compongono la base operativa della famiglia di sistemi operativi Unix/Xenix. Ad esempio Cux risulta perfettamente integrabile nel sistema di stampa (spooler), può essere incluso nelle tabelle temporali di cron o può essere attivato


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1.4 Usi di base

Accesso a banche dati o a login remoti.
Cux è dotato di una capacità di emulazione terminale limitata e basata su quella disponibile con il sistema su cui operate: sotto MsDos via `ansi.sys', sotto Unix/Xenix attraverso l'emulazione del terminale da cui si opera. Grazie ai comandi di ricezione selettiva ed invio di stringhe `RSTRING' e `STRING' è possibile realizzare sistemi completamente automatizzati di accesso. Durante la sessione di lavoro è sempre possibile operare trasferimenti di file. Un caso particolare è costituito dagli usi per assistenza remota per cui sono previsti alcuni comandi che permettono l'accesso al sistema remoto con attivazione da parte dell'utente (`REMOTE').
Trasmissione e Ricezione file.
Sia il sistema operativo MsDos che la famiglia di sistemi Unix/Xenix utilizzano il file quale oggetto minimale per gestire, referenziare e manipolare aggregati di dati. Cux è nato proprio allo scopo di poter scambiare file con elevata certezza di integrità. Oltre ai protocolli propri il programma dispone di comandi (`SPAWN') che permettono di aggiungerne altri liberamente definibili dall'utente. Fino ad oggi Cux è stato impiegato con successo nello scambio di dati di elevata importanza economica o informativa.

A partire dagli usi di base sopra elencati è possibile costruire combinazioni complesse di operazioni. All'utente che non ha mai avuto esperienze con programmi di comunicazione si ricorda però che Cux è solo il componente di base necessario alla realizzazione di servizi. La progettazione, l'implementazione e la manutenzione di sistemi informativi complessi richiede un'opera di pianificazione e studio che va ben oltre la conoscenza del prodotto. L'approccio sicuramente più profiquo è quello di dedicare particolare attenzione allo studio pratico del problema, con una adeguata sperimentazione del pacchetto.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2. Uso rapido di Cux

La procedura di installazione di Cux è quella standard dei prodotti Dynamica, ovvero richiede di estrarre i dati dal supporto e di eseguire un programma di inizializzazione e configurazione, in questo caso denominato `init.cux'. Tale procedura è automatizzata tanto per gli ambienti MsDos e Os/2, quanto per quelle versioni dell'ambiente Unix/Xenix in cui sia disponibile il programma di sistema `custom'.

Per maggiori informazioni sulla procedura di installazione si veda il capitolo Installazione nelle appendici.

Ad installazione avvenuta digitare al prompt del sistema operativo utilizzato il seguente comando seguito da un <ENTER>:
 
        cux
Vi verrà cos`ì presentato il prompt di comando:
 
        CUX>
A questo punto potete utilizzare il programma in maniera interattiva: se digiterete il comando `STAT' seguito da un <ENTER> otterrete la visualizzazione dello stato iniziale di startup; il comando `HELP' visualizzerà la lista dei comandi disponibili più una breve descrizione; il comando `INIT' vi permetterà di caricare un tipo di modem (ad esempio `HAYES_COMP'), mentre il comando `EXIT' vi consentirà di terminare il programma tornando al prompt del sistema operativo.

Per maggiori dettagli sull'uso del programma Cux e sui suoi comandi si vedano i capitoli Opzioni sulla linea di comando e Comandi.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3. Opzioni sulla linea di comando

Cux può essere chiamato scrivendo dopo il nome una serie di parametri. In questo modo è possibile alterare il comportamento di default del programma (consultate la sezione `Default' di questo capitolo). È consigliabile, qualora una certa configurazione debba essere ripetuta molte volte, produrre dei file batch in cui sia codificata in modo opportuno e definitivo la linea di comando completa di opzioni.

Oppure, ma solo a partire dalla versione 3.8 del prodotto, esiste la possibilità di elencare le opzioni desiderate nel file `cux.arg' il quale deve essere situato o nella directory `/etc/default' o nella directory corrente (quella dalla quale viene lanciato Cux). La sintassi di tale file richiede che le opzioni siano elencate una per riga e senza spazi tra l'identificativo dell'opzione e il parametro, oppure su due righe, e in tal caso su una riga deve comparire l'identificativo dell'opzione e sulla riga seguente il valore dell'opzione alla quale l'identificativo si riferisce. Sono ammesse eventuali linee di commento, le quali però devono obbligatoriamente iniziare con il carattere `#'. Il file `cux.arg' non può contenere più di 100 righe, a parte le righe di commento che non hanno limiti. Questo significa che adottando il primo formato (opzioni su una riga) possono essere impostate al più 100 opzioni, mentre adottando il secondo formato ne possono essere impostate al più 50.
I seguenti due esempi sono equivalenti ed illustrano la possibilità di utilizzare indifferentemente uno dei due formati indicati:
 
Esempio 1

# impostazione linea
-prtty00
# impostazione baud
-bd19200
# impostazione lunghezza record
-LE1024
# impostazione finestratura
-WI32
# impostazione ritardo interpacchetto
-PK1
# impostazione protocollo
-ptZMODEM
# impostazione modem
-moHAYES_COMP
# impostazione numero telefonico
-nu1234567890
 
Esempio 2

# impostazione linea
-pr
tty00
# impostazione baud
-bd
19200
# impostazione lunghezza record
-LE
1024
# impostazione finestratura
-WI
32
# impostazione ritardo interpacchetto
-PK
1
# impostazione protocollo
-pt
ZMODEM
# impostazione modem
-mo
HAYES_COMP
# impostazione numero telefonico
-nu
1234567890
Attenzione: le opzioni presenti nel file `cux.arg' sono prioritarie rispetto alle opzioni passate sulla linea di comando. Questo significa che se ad esempio nel file `cux.arg' è presente l'impostazione dei baud a 19200 e si invoca Cux passando sulla linea di comando l'opzione `-bd4800' verranno impostati i baud a 19200 e non a 4800 !

A partire dalla versione 4.0 è possibile indicare con l'opzione `-ARG' un file generico, non necessariamente di nome `cux.arg' e non necessariamente posto nella directory `/etc/default' o nella directory corrente. In questo caso non deve essere specificata nessun'altra opzione.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.1 Uso e significato delle opzioni

Sulla linea di comando è possibile specificare una serie di opzioni che permettono di configurare il programma per il tipo di connessione desiderata. Queste opzioni si possono dividere nelle seguenti tre classi:

Nei paragrafi che seguono tratteremo in maniera dettagliata queste tre classi di opzioni.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.1.1 Modalità operativa

Le opzioni disponibili per questa classe sono esclusive; ciò significa che è possibile dare sulla linea comando una e solamente una tra le opzioni che sono descritte qui di seguito:

-aa
Specificando questa opzione il programma si predispone per rispondere ad un modem chiamante (autoanswer).
-adNumero
Specificando questa opzione il programma si collega via modem al numero telefonico specificato.
-ca
Grazie a questa opzione il programma si collegherà con un altro programma chiamante per comunicare via computer con l'altro utente; sul video apparirà ciò che l'altro utente sta scrivendo.
-cc
Linea diretta via seriale senza modem.
-cdNumero
Specificando questa opzione il programma si collegherà via modem con un host e si comporterà come un terminale remoto.
-fcFile
Se viene specificata questa opzione, il programma non entrerà immediatamente in modo comandi bens`ì andrà ad eseguire i comandi descritti in File; solo al termine di queste operazioni entrerà in modo comandi (per maggiori chiarimenti consultare il capitolo Comandi).
-ma
In questo caso la connessione della linea con il modem chiamante è già stata effettuata manualmente dall'utente, il quale deve essere sicuro che l'emittente che sta chiamando trasferirà dati via modem. Questa opzione si ricollega all'esempio descritto nell'opzione successiva, poiché prima di mettere in atto la connessione descritta occorre che i due interlocutori si accordino su quale dei due assumerà il ruolo di modem chiamante (specificando l'opzione `-md') e quale invece di modem chiamato (specificando, appunto, questa opzione).
-md
In questo caso la chiamata del numero è manuale; questo significa che la connessione è stata effettuata direttamente dall'utente il quale è sicuro che il ricevente sia collegato e pronto a ricevere dati via modem. L'opzione è particolarmente utile quando due interlocutori, già connessi via telefono, debbano, nel corso di una telefonata, scambiarsi dati via computer. In pratica il modem può operare sulla stessa linea telefonica senza interruzione della linea stessa.

Le opzioni `-aa', `-ad', `-cc', `-ma' e `-md' devono venire obbligatoriamente utilizzate con una delle opzioni descritte nella sezione `Trasmissione immediata'.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.1.2 Trasmissione immediata

Le opzioni disponibili per questa classe sono esclusive; ciò significa che è possibile dare sulla linea comando una e solamente una tra le opzioni che sono descritte qui di seguito:

-frFile
Specifica il nome da dare al file ricevuto.
-ftFile
Specifica il nome del file da spedire.
-xrFile
Specifica il path completo dei file da ricevere.
-xtFiles
Specifica il nome dei file da spedire.

Cux riconosce i due metacaratteri `*' e `?', ma in ambiente Unix/Xenix è necessario che siano posti tra i doppi apici (`"'), come nell'esempio riportato qui sotto.
 
       cux -xt"*.c"
Omettendo gli apici l'espansione dei metacaratteri verrà invece effettuata dal processore di comandi in uso.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.1.3 Opzioni di configurazione

-ARGFile
Indica di leggere le opzioni di configurazione dal file File.
-bN
Specifica la lunghezza, in bit, del dato. Valori validi per N sono 5, 6, 7 e 8. Il default è 8.
-bdBaud
Specifica il baud rate. Sono valori validi:
50, 75, 110, 134, 150, 200, 300, 600, 1200, 1800, 2400, 4800, 9600, 19200 e 38400.
Solo per ambiente MsDos vengono considerati validi anche i seguenti valori:
2000, 3600, 7200, 23040, 28800, 57600, 115200.
Per Os/2 sono considerati validi solo questi valori:
110, 150, 300, 600, 1200, 2400, 4800, 9600, 19200.
Il default è 9600.
-diVideo
Imposta il tipo di emulazione (Unix/Xenix) o il tipo di scheda video (MsDos). Se non viene specificata tale opzione Cux desume il tipo di video utilizzato dalle variabili di environment `DYNA' e `TERM'. Se queste variabili non sono definite viene effettuata una ricerca automatica nel file `dynatype'. Se anche tale ricerca non ha successo viene impostata per default l'emulazione `DUMB'. Per maggiori informazioni consultate le appendici Il file Dynacap e L'enviroment.
-ecN
Abilita/disabilita l'eco dei caratteri sullo schermo. N può essere uno dei due numeri 0 o 1: se N è uguale a 0 l'eco è disabilitato, mentre se è uguale a 1 l'eco è abilitato. L'impostazione di quest'opzione è utile quando l'host o il programma a cui si è collegati non effettua l'eco dei caratteri battuti in interattivo (half-duplex). Per default l'eco è disabilitato (N=0).
-fsFile
Specifica il nome del file da utilizzare per tenere memoria di tutte le operazioni eseguite in conversazionale. Se File viene omesso il nome del file sarà per default `cux.txt'.
-lfN
Abilita/disabilita il linefeed automatico. N può essere uno dei due numeri 0 o 1: se N è uguale a 0 il linefeed automatico è disabilitato, mentre se è uguale a 1 è abilitato. Questa opzione è utile quando l'host o il programma a cui si è collegati in interattivo ad ogni pressione del tasto <return> rimanda l'eco di un carriage return riportando il cursore all'inizio della riga. Abilitando invece l'opzione `-lf' il cursore verrà posizionato all'inizio della riga successiva. Per default il linefedd automatico è disabilitato (N=0).
-loLogfile
Se specificata, questa opzione attiva il log file delle transazioni eseguite. Se viene specificato Logfile, questo sarà il nome del file contenente l'output di log. Per maggiori informazioni consultate il comando `LOG' nel capitolo Comandi e l'appendice Il file di log.
-luByte
Assume significato solo in ambiente MsDos e imposta le dimensioni in byte del buffer di input di comunicazione. Byte può essere un qualsiasi valore compreso tra 128 e 10000. Per default Byte=2048.
-l2Byte
Assume significato solo in ambiente MsDos e imposta le dimensioni in byte del buffer di output di comunicazione. Byte può essere un qualsiasi valore compreso tra 128 e 10000. Per default Byte=2048. Se Byte è inferiore a 128, il buffer non viene utilizzato e l'output sulla linea di comunicazione funziona in polling invece che ad interrupt.
-moModem
Definisce il tipo di modem utilizzato. Se l'opzione è omessa il programma ricerca il tipo di modem dalla variabile di environment `MODM'; se anche questa variabile non è definita allora il programma assume come tipo lo standard Hayes. Per maggiori informazioni consultate le appendici Il file Modmcap e L'environment.
-mu
Specificando questa opzione il programma dopo il copyright non produrrà nessun output sullo schermo. Questo è utile quando si utilizza Cux in programmi batch.
-nuNumero
Indica il numero telefonico da chiamare. È possibile specificare l'eventuale prefisso nel seguente modo:
 
       prefisso/numero
Se il tempo di commutazione delle centraline telefoniche è elevato ed è causa di errori o timeout in fase di collegamento, si consiglia di inserire tra ogni cifra del numero il carattere `/' che introduce sul modem un ritardo (allo scopo consultare il manuale del modem da voi utilizzato) nella composizione del numero successivo al `/' stesso.
-pParità
Specifica il tipo di parità. I parametri validi sono i seguenti:
 
       n  nessuna (default)
       e  even
       o  odd
       m  mark
       s  space
Per default non è abilitata alcuna parità (Parità=n).
-prPorta
Permette di specificare la porta di comunicazione. Se Porta vale `CLOSE' il programma parte non utilizzando alcuna porta. Se tale opzione viene omessa dalla versione 4.0 il programma parte non utilizzando alcuna porta, come se fosse stato invocato con l'opzione `-prCLOSE'. Con le versioni precedenti alla 4.0 programma utilizza la prima porta trovata libera tra quelle abilitate nel file sercap. Con l'opzione `-prAUTO' si ottiene il vecchio comportamento forzandone la ricerca.
-ptProtocollo
Permette di definire il tipo di protocollo da utilizzare per trasferire file. I parametri validi sono i seguenti:
CUXTXT
Protocollo Cuxtxt (default)
CUXBIN
Protocollo Cuxbin
CUXENC
Protocollo Cuxenc
XMODEM
Protocollo Xmodem
XMODEMC
Protocollo Xmodem con controllo CRC.
XMODEM1K
Protocollo Xmodem con blocco di 1024 byte.
XMODEM1KC
Protocollo Xmodem con blocco di 1024 byte e controllo CRC.
YMODEM
Protocollo Ymodem.
YMODEM1K
Protocollo Ymodem con blocco di 1024 byte.
YMODEMC
Protocollo Ymodem con controllo del CRC.
YMODEM1KC
Protocollo Ymodem con blocco di 1024 byte e controllo CRC.
ZMODEM
Protocollo Zmodem.
KERMIT
Protocollo Kermit.
XON
Protocollo handshake di Xon/Xoff abilitato.
XOFF
Protocollo handshake di Xon/Xoff disabilitato.
(Per maggiori informazioni consultare l'appendice Protocolli supportati).
-rm
Cancella in progressione i file spediti correttamente.
-stN
Specifica il numero di bit di stop: N può valere 1 o 2. Il default è 1.
-un
Normalmente Cux cancella tutti quei file che sono arrivati incompleti o errati. Specificando questa opzione tali file verranno mantenuti nella forma in cui sono arrivati. Si sconsiglia l'uso di questa opzione se non strettamente necessaria.
-Bl
Assume significato solo in ambiente Unix/Xenix e impone di effettuare una open bloccante della linea di comunicazione. L'esecuzione si sblocca non appena viene rilevata la portante. Attenzione che tale opzione è disponibile solo nella versione 3.8 di Cux: a partire dalla versione 3.8a quest'opzione è stata sostituita dalla capability `Ob' nel file `sercap' (cfr.).
-Bz
Se presente indica di eliminare, in modalità conversazionale, i caratteri nulli provenienti dalla linea.
-CK
Disabilita i test sui numeri telefonici e non converte i separatori in virgole secondo lo standard Hayes. Utile con l'impiego di pacchetti di rete che richiedono di specificare il numero internet come indirizzo dell'host al posto del numero telefonico.
-CR
Se specificata, questa opzione comunica al programma che i file batch da utilizzare (specificati eventualmente dall'opzione `-fc') sono crittografati.
-DT
Assume significato solo in ambiente Unix/Xenix e indica di usare come linea seriale standard input e standard output. Inoltre abilita automaticamente il mute (cfr. opzione `-mu' e il comando `MUTE'). Utile se il Cux deve essere lanciato da `inetd' per eseguire uno script (cfr. opzione `-fc').
-EC
A partire dalla release 3.8, Cux garantisce che in caso di file transfer il valore di ogni byte di controllo di un pacchetto abbia un valore diverso da ogni possibile valore assunto dai byte delimitatori del pacchetto stesso. Questa caratteristica elimina la possibilità, per quanto remota, di conflitti a livello di trasporto dovuti alla impredicibilità intrinseca dei valori che assumeranno alcuni particolari byte di controllo. Di conseguenza, per garantire la compatibilità con le versioni precedenti di Cux è indispensabile specificare tale opzione la quale indica di non utilizzare questa nuova feature.
-EX
Forza l'uscita dal programma in caso di terminazione dell'esecuzione batch. In tal caso il programma ritorna con codice di errore 4.
-II
Abilita lo swap sul comando `SYSTEM' con blocco degli interrupt.
Per la sua esecuzione Cux utilizza circa 420k di memoria, con la conseguenza che, ad ogni uscita temporanea sulla shell di sistema, la memoria disponibile sarà 420k in meno della memoria totale esistente. Specificando l'opzione `-II' è però possibile recuperare questi 420k di memoria attraverso l'abilitazione di un meccanismo di swapping che fa uso di particolari routines dovute a R. Brown, il quale ha posto come unica condizione per l'uso di tali routines l'inserimento della seguente frase: "This product uses the SPAWNO routines by Ralf Brown to minimize memory use while shelling to DOS and running other programs." L'impiego di tale opzione ha tuttavia due controindicazioni, vale a dire:
  1. il problema della velocità dello swapping (si veda a questo proposito l'uso della variabile `SWAPDIR' nel capidolo L'Environment dell'appendice `Common Features');
  2. il problema del tipo di memoria usata per lo swapping (si veda a questo proposito l'uso della variabile `SWAPTYPES' nel capidolo L'Environment dell'appendice `Common Features');
  3. il problema del blocco degli interrupt di seriale, poiché se è in corso dell'I/O sulla linea di comunicazione al momento dell'uscita sulla shell di sistema, questo andrà perso.
-JS
Abilita jumpscroll su sistemi grafici.
-KCtx_start,tx_stop,rx_start,rx_stop
Imposta i caratteri di start e stop per il protocollo Kermit. tx_start, tx_stop, rx_start e rx_stop rappresentano il valore decimale rispettivamente dei caratteri di inizio e fine trasmissione e di inizio e fine ricezione. Tali caratteri si possono omettere in modo progressivo a partire dal fondo.
-KK
Normalizza i nomi di file nel caso di trasferimento con protocollo Kermit.
-LERecord
Imposta la lunghezza del record in fase di trasmissione dati (cfr. il comando `LENREK'). Record può assumere un qualsiasi valore numerico compreso tra 32 e 1024 inclusi. Per default Record=128.
-LN
Assume significato solo in ambiente Unix/Xenix e impone di non rispettare i link tra file in fase di ricezione.
-LPPrinter
Permette di indicare un device di stampa (Printer) diverso dal default (`PRN:' per MsDos e `lp' per Unix/Xenix) e una stampante o un programma di stampa diverso da `PRINT' per Windows (ad es. su rete `\\server\printer').

-MY
Comunica al programma di utilizzare come linea di comunicazione la stessa linea su cui si è agganciati come terminale. Questa opzione abilita automaticamente il comando `MUTE' (Per maggiori informazioni consultare il capitolo Comandi). Attenzione che in ambiente MsDos tale opzione può essere utilizzata soltanto col comando `REMOTE' attivo.
-NL
In ambiente MsDos abilita la possibilità di utilizzare per i file nomi più lunghi di 14 caratteri. In ambiente Unix/Xenix/Windows, invece disabilita tale possibilità.
-NT
Non usa file temporanei in ricezione.
-PKMillisec
Imposta l'intervallo di attesa (espresso in millisecondi) tra la trasmissione di due pacchetti successivi con protocolli finestrati (cfr. comando `PKDELAY'). Per default Millisec=0.
-SA
Abilita il file di log per il salvataggio dei comandi inviati al modem e relative risposte (cfr. comando `CMDSAVE'). Tale opzione è accettata solo se è stato attivato anche il log generale (cfr. opzione `-lo' e comando `LOG'). Il file prodotto avrà lo stesso nome del file di log generale ma estensione `.SAV'.
-SD
Abilita la scrittura della data nella visualizzazione delle istruzioni decodificate attivata tramite il comando `SHOW' (cfr.).
-TITick
Imposta il numero di tick per il refresh video automatico durante l'esecuzione del comando `REMOTE' in ambiente MsDos. Per default ha valore 18, cioè 1 secondo. Il minimo impostabile è 9, il massimo 180. Il refresh manuale può essere invece effettuato tramite il carattere associato alla capability `E4' (cfr. Il file modmcap).
-TSString
Imposta la stringa per i file transfer (cfr. comando `STAR').
-WIFinestra
Imposta le dimensioni della finestra in fase di trasmissione dati (cfr. il comando `WINDOW'). Finestra può assumere un qualsiasi valore numerico compreso tra 0 e 128 inclusi. Per default Finestra=0.
-WO
Riporta le dimensioni della finestra al valore originario in caso di modifica in fase di ricezione dati. Cux infatti eredita le dimensioni della finestra impostate dal trasmettitore. Specificando quest'opzione il valore della finestra viene invece riportato al valore originario.
-XX
Assume significato solo in ambiente Unix/Xenix e disabilita il protocollo Xon/Xoff che per default è abilitato. La gestione del controllo di flusso (handshake) non è relativa alla linea di comunicazione sulla quale Cux è operativo, bens`ì al terminale sul quale il programma è in modalità interattiva.
-ZZ
Abilita la messaggistica e l'help in lingua inglese.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.2 Default

Per default il programma assume uno stato equivalente alla sua chiamata con i seguenti parametri:
 
       cux -bd9600 -b8 -st1 -pn -ec0 -lf0 -ptcuxtxt
Ciò equivale a dire al programma di definire le seguenti combinazioni:

-bd9600
Baud rate a 9600 baud/sec.
-b8
Dimensioni del dato a 8 bit.
-st1
Numero di stop bit uguale a 1.
-pn
Parity none (nessuna).
-ec0
Echo disabilitato.
-lf0
Line feed automatico disabilitato.
-ptcuxtxt
Protocollo utilizzato Cuxtxt.

Inoltre, se possibile, vengono determinati in maniera automatica la porta di comunicazione, il tipo della scheda video e il tipo di modem utilizzato.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.3 Stati di uscita del programma

Il programma ritorna un errorlevel uguale a zero se termina correttamente, uguale a uno in caso di errore di chiamata, uguale a quattro in caso di terminazione forzata di un file batch (cfr. opzione `-EX') e uguale a 5 in caso di errore di esecuzione di un batch (cfr. le istruzioni `GOTO', `GOTONUM' e `JUMP' nel capitolo Comandi). Inoltre è possibile specificare da modo comandi o in un file batch un diverso livello di errore grazie ai comandi `BYE', `EXIT' e `QUIT' (cfr. il capitolo Comandi).


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4. Comandi

In questo capitolo vengono spiegati tutti i comandi del Cux che possono venire specificati in interattivo o in un file batch. Quando si lavora interattivamente si avrà un prompt come nell'esempio che segue e si dovrà digitare i comandi manualmente.
 
       CUX>
Per un miglior uso interattivo dei comandi consigliamo di consultare l'appendice Barre.

Attenzione: a partire dalla release 3.8, il linguaggio di Cux dispone anche di variabili e macro.
Pertanto, in tutto il presente capitolo, ogniqualvolta ci si riferisce a comandi o a parametri di comandi, si sottintende la possibilità che si tratti di variabili o di macro alle quali è stato assegnato come valore quello, rispettivamente, di un comando o di un parametro.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.1 Formato delle spiegazioni

Ogni comando di questo capitolo verrà spiegato utilizzando il seguente formato:

Ogni esempio avrà il seguente formato:
 
       CUX> COMANDO                 ( Commento                           )
Tutti i comandi di questo capitolo avranno esempi di uso in interattivo. Per gli esempi di utilizzo di comandi in file batch occorre consultare il capitolo Uso di Cux in modalità batch.

In ambienti Unix/Xenix è possibile utilizzare il metacarattere tilde (`~') con lo stesso significato del processore di comandi `csh' o `ksh'. Con questo metacarattere è possibile omettere la `home-directory' dell'utente che sta utilizzando il programma. Cos`ì ad esempio:
 
       # cd /u/utente/prova/prova2
equivale a scrivere
 
       # cd ~/prova/prova2
nel caso l'utente `utente' abbia la `home-directory' in `/u/utente'.

Attenzione: tutti i comandi sono stati scritti in maiuscolo per motivi estetici, ma in realtà l'uso del maiuscolo o del minuscolo è indifferente nella digitazione dei comandi, delle variabili e delle macro.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.2 Classi di comandi

I comandi di Cux possono essere raggruppati nelle seguenti classi:

Comandi generali
Sono comandi di carattere generale, i quali possono essere utilizzati in vari ambiti operativi. Fanno parte di questa classe `EXIT' e `MUTE'.
Controllo linea di comunicazione
Sono comandi dedicati alla configurazione della linea di comunicazione utilizzata. Fanno parte di questa classe `BAUD' e `BIT'.
Controllo linea modem
Sono comandi che consentono di operare sulla linea di comunicazione in congiunzione con un modem o un apparato esterno di comunicazione. Fanno parte di questa classe `ANSWER' e `INIT'.
Conversazionale
Sono comandi che consentono la configurazione e l'uso di Cux per essere utilizzato come terminale virtuale. Fanno parte di questa classe `CONV' e `STDOUT'.
Protocolli
Sono comandi che consentono la configurazione e l'uso di Cux per effettuare trasferimenti di file. Fanno parte di questa classe `PROTOC' e `SEND'.
Comandi di sistema
Sono comandi che permettono di operare sul sistema operativo utilizzato. Possono essere utilizzati per uscite temporanee sulla shell di sistema o per lanciare programmi dall'interno di Cux stesso. Fanno parte di questa classe `SYSTEM' e `SPAWN'.
Comandi di controllo per file batch
Sono comandi che permettono di operare in modalità batch, consentendo il controllo degli stati di terminazione delle operazioni e il trasferimento del controllo, anche condizionale, ad altri programmi Cux. Fanno parte di questa classe `BATCH' e `IFER'.
Comandi di gestione fax
Sono i comandi che implementano il motore fax fornito con il Cux 3.8 e permettono di ricevere e spedire fax in formato G3, di controllare se la connessione è avvenuta con un fax e di impostare il modem in modalità fax. Fanno parte di questa classe `RECFAX' e `SENDFAX'.
Comandi di gestione voice
Sono i comandi che implementano la gestione della modalità voice introdotta a partire dalla versione 4.0 di Cux. Fanno parte di questa classe `RECVOICE' e `SENDVOICE'.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.3 Comandi generali


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

BYE

Il comando `BYE' è identico ai comandi `EXIT' e `QUIT'.
 
       CUX> BYE                    ( Termina il programma                )


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

EXIT

Il comando `EXIT' termina le operazioni e, se specificato in un file batch, termina il file batch e anche il programma. È possibile specificare il tipo di errorlevel indicando il numero dopo il comando. Se non viene specificato nessun numero, tale comando rende un errorlevel uguale a zero.
 
       CUX> EXIT 2                  ( Termina il programma               )
In questo esempio il programma renderà come errorlevel il valore due.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

FILE

Seleziona il file da trasmettere, ricevere, cancellare o utilizzare per salvare la trasmissione conversazionale, altrimenti nei comandi dove è richiesto un nome di file viene utilizzato il nome di default (`cux.txt').
 
       CUX> PROTOC CUXENC       ( Definisce il protocollo                )
       CUX> FILE cux386.exe     ( Cambia il nome file di default         )
       CUX> REC                 ( Riceve cux386.exe                      )
Occorre prestare attenzione all'uso di questo comando perché se dopo il primo `REC' ne eseguiamo un altro senza cambiare il nome in `FILE', il vecchio file verrà sovrascritto dal nuovo.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

HELP

Specificando questo comando verrà mostrato sullo schermo l'elenco dei comandi disponibili con una breve spiegazione del comando. È possibile scrivere semplicemente `?' al posto di `HELP'.
 
       CUX> HELP                    ( Richiesta di aiuto                 )
      
       Elenco dei comandi disponibili

        ALINE : Risposta manuale
       ANSWER : Risposta automatica
         :             :
        XSEND : Invio di più file
  
       Battere <enter> per continuare

       CUX>
La visualizzazione dell'elenco dei comandi può essere interrotta per mezzo del tasto <DEL>.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

LOG

Abilita o disabilita la generazione dei file di log. Questi file hanno come nome di default `cuxlog.RTX'. L'abilitazione si ottiene facendo seguire a `LOG' il parametro `ON', mentre la disabilitazione si ottiene facendo seguire il parametro `OFF'. È anche possibile scegliere il nome del file di log mettendone il nome al posto del parametro `ON', come nell'esempio che segue:
 
       CUX> LOG ON          ( Abilita la generazione del file di log     )
       ..........           ( con nome `cuxlog.RTX'                      )
       CUX> LOG OFF         ( Disabilita la generazione del file di log  ) 
       ..........
       CUX> LOG infos       ( Abilita la generazione del file di log     )
       ..........           ( con nome `infos.RTX'                       )
Come si può vedere, l'abilitazione della generazione dei file di log è automatica se si imposta il nome del file di log. Non è invece possibile cambiare il nome del file di log attraverso il comando `FILE'. Attenzione: l'estesione del file di log è forzata a `.RTX'.

Per la struttura del file di log si veda l'appendice Il file di log.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

MUTE

Elimina l'eco dei comandi a video e tutte le segnalazioni. Questo comando è utile quando si lavora in modalità batch per non visualizzare tutta la sequenza delle operazioni.
 
       CUX> MUTE ON                 ( Abilita il mute                    ) 
       CUX> REC                     ( Riceve un file                     )
       CUX> MUTE OFF                ( Disabilita il mute                 )
       CUX> EXIT                    ( Termina il programma               )
Naturalmente se si lavora in interattivo i comandi digitati verrano tutti visualizzati, mentre non verranno visualizzati eventuali messaggi di errore o di termine corretto delle operazioni. Fanno eccezione i comandi `STAT', `WORD' e `HELP' che permettono di ottenere ugualmente l'output a video anche con il `MUTE' abilitato.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

PROMPT

Imposta il prompt del programma alla stringa passata come parametro. Per default il prompt è la stringa:
 
       CUX>
Il nuovo valore da assegnare segue le regole del comando `STRING' (cfr.) sui caratteri ammessi.
 
       CUX> PROMPT "CUX:$HOST> "       ( Imposta il nuovo prompt         )
       CUX:AIX> 
In questo esempio si suppone che la variabile `HOST' sia definita e valga `AIX', ad indicare per esempio il nome della macchina sulla quale è in esecuzione il programma.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

QUIT

Il comando `QUIT' è identico ai comandi `BYE' e `EXIT'.
 
       CUX> QUIT                    ( Termina il programma               )
In questo esempio il programma renderà come errorlevel il valore di default (zero).


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

SHOW

Ammette come parametro uno dei due valori `ON' e `OFF' (default). Se impostato a `ON' abilita la visualizzazione delle istruzioni decodificate, le quali vengono visualizzate su standard error. L'abilitazione della visualizzazione si ottiene facendo seguire a `SHOW' il parametro `ON', mentre la disabilitazione della visualizzazione si ottiene facendo seguire il parametro `OFF'. Da sottolineare che tale visualizzazione è indipendente dall'abilitazione dell'eco dei comandi a video (cfr. comando `MUTE'), nel senso che è possibile abilitarla anche se il programma è in modalità muta.

Se è stata specificata l'opzione `-SD' (cfr. capitolo Opzioni) viene visualizzata anche la data e l'ora accanto ad ogni istruzione.
 
       CUX> MUTE ON     ( Disabilita l'eco dei comandi a video           )
       CUX> SHOW ON     ( Abilita l'eco delle istruzioni decodificate    )
       ..........


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

STAT

Visualizza lo stato del programma. L'output del comando è il seguente:
 
CUX> BAUD 19200              ( Definisce il baud rate                    )
CUX> PROTOC cuxbin           ( Specifica il protocollo                   )
CUX> FILE prova.txt          ( Specifica il nome del file                )
CUX> REPEAT 1                ( Numero di ritrasmissioni                  )
CUX> STAT                    ( Visualizza lo stato del programma         )
 
Cux: stato del programma - Versione 3.8

Cuxpath:
File:    prova.txt
Log:     cuxlog
Protocollo:    CUXBIN              Porta:  ttyF00  AutoLf:   OFF   Cmdsave: OFF
Lunghezza record:    128           Baud:    19200  Autosave: OFF   Dtr:     OFF
Window:                0           Parity:   NONE  CrLf:     OFF   Interr:  ON 
Pkdelay:               0           Bit:         8  Duplex:   FULL  Mute:    OFF
Ctrl-X:                3           Stop:        1  Echo:     OFF   Newcux:  ON 
Ritrasmissioni:        1           CtsRts:    OFF  Print:    OFF   Show:    OFF
Convers.nibble:      OFF           Buffer:   2048  Stdout:   OFF   Crypt:   OFF
Path Ymodem:         OFF
Padchar:               0   Debug:       0   Modem:    HAYES
Padnum:                0   Log:       OFF   Numero:
Trasm.delay:           0   Errore:      0   Registri:  12
Trasm.trasparente:   OFF   Return:      0   Ring:       1
                           Tabulat:     8   Modemctl: OFF
Contatore:             0   Timeout:   OFF   Connesso: OFF
CUX>


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

WORD

Questo comando riporta a video le stringhe assegnate alle capability di gestione del modem correntemente impostato. La prima colonna corrisponde alla capability definita nel file `modmcap', mentre l'ultima corrisponde al valore associato alla capability in questione. Per maggiori informazioni consigliamo di consultare l'appendice Il file Modmcap.
 
       CUX> WORD
      
       Elenco parametri di configurazione (HAYES)

        Ok = OK
        M0 = CONNECT
        M3 = CONNECT 300
        :  :   :
        :  :   :
        E1 = 315
        E2 = 323
        E3 = 324
        E4 = 12
       CUX> 
La visualizzazione dell'elenco dei comandi può essere interrotta per mezzo del tasto <DEL>.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

WRLOG

Permette di aggiungere una riga nel file di log corrente passando i tre parametri necessari: stato, numero e stringa.

 
       CUX> WRLOG O 345 "stringa di prova"
       .......... 
Per maggiori informazioni sui file di log e sul loro formato si veda l'opzione `-lo', il comando `LOG' e l'appendice Il file di log.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.4 Controllo linea di comunicazione


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

BAUD

Specifica il baud rate. Sono valori validi:

50, 75, 110, 134, 150, 200, 300, 600, 1200, 1800, 2400, 4800, 9600, 19200, 38400.

Solo per Unix/Linux sono supportati anche i seguenti valori:

57600, 115200, 230400.

Solo per ambiente MsDos sono considerati validi anche i seguenti valori:

2000, 3600, 7200, 23040, 28800, 57600, 115200.

Per Os/2 sono considerati validi solo questi valori:

110, 150, 300, 600, 1200, 2400, 4800, 9600, 19200.

 
       CUX> BAUD 19200        ( Definisce il baud rate                   )
       CUX> PARITY none       ( Specifica il tipo di parità              )
       CUX> BIT 8             ( Numero di bit per parola                 )
       CUX> PORT tty2g        ( Porta di comunicazione da usare          )
       CUX> CONV              ( Entra in conversazionale                 )
       ..........
       CUX> EXIT              ( Termine operazioni                       )


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

BIT

Definisce il numero di bit per la word. Modificatori validi sono i seguenti:
 
       5    Caratteri da 0 a 31
       6    Caratteri da 0 a 63 
       7    Caratteri ASCII da 0 a 127
       8    Caratteri da 0 a 255
L'uso dei protocolli Xmodem e Ymodem forza la trasmissione a otto bit (cfr. l'appendice Protocolli).
 
       CUX> BIT 7             ( Specifica le dimensioni della word       )
       CUX> PROTOC YMODEM     ( Definisce il tipo di protocollo          )
       CUX> SEND              ( Spedisce un file                         )
Come vedete nell'esempio sopra descritto il protocollo Ymodem forza la word a otto bit, e se vogliamo entrare in conversazionale con un altro programma dobbiamo rispecificare le dimensioni della word. Se prima di lanciare il comando `SEND' avessimo digitato `BIT 7' la trasmissione del file sarebbe risultata errata.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

BREAK

Invia un break sulla linea, come nel seguente esempio:
 
       CUX> BIT 8                    ( Definisce la word                 )
       CUX> PARITY NONE              ( Definisce il tipo di parità       )
       CUX> BAUD 9600                ( Specifica il baud rate            )
       CUX> PORT tty2g               ( Specifica la porta da utilizzare  )
       CUX> BREAK                    ( Manda un break sulla linea        )
       ..........


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

BYPASS

Apre la linea di comunicazione indicata come parametro, mettendola in bypass con la linea correntemente aperta. Sostanzialmente il comando permette di realizzare un passante grazie al quale è possibile trasferire i dati in arrivo dalla linea principale alla linea in bypass, e i dati in arrivo dalla linea in bypass alla linea principale.

Se è abilitata la produzione del file di log (cfr. comando `LOG') vengono salvati in tale file tutti i dati trasferiti, prefiggendoli con `<' o `>', a seconda della linea di provenienza. Se i dati non sono caratteri ASCII visualizzabili vengono scritti gli equivalenti valori esadecimali.

È possibile interrompere il passante per mezzo del tasto <DEL> o tramite l'istruzione `TRAP'.
 
       CUX> PORT tty2f               ( Specifica la porta da utilizzare  )
       CUX> BYPASS tty2g             ( Specifica la seconda porta        )
       ..........
In questo esempio tutti i dati provenienti dalla linea `tty2f' verranno inviati alla linea `tty2g' e tutti i dati in arrivo dalla linea `tty2g' verranno inviati alla linea `tty2f'.

Attenzione: tale comando imposta il flag di errore (cfr. i comandi `IFER' e `IFNOER') in caso di errore nell'apertura della linea o in caso di caduta di portante ma solo se è abilitato il controllo della portante stessa (cfr. il comando `MODEMCTL'.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

CLEAR

Il comando `CLEAR' reinizializza il buffer di seriale eliminando tutti i caratteri eventualmente presenti. Si consiglia di usare questa opzione qualora durante delle operazioni di trasferimento di dati vi fossero delle difficoltà dovute a disturbi di linea.
 
       ..........
       CUX> PROTOC XMODEM           ( Protocollo da utilizzare           )
       CUX> CLEAR                   ( Pulizia del buffer di seriale      )
       CUX> FILE pippo.txt          ( Imposta il file                    )
       CUX> SEND                    ( Lo spedisce                        )
       ..........
Attenzione: lo stato di uscita di questo comando influisce sul valore del flag di errore (cfr. i comandi `IFER' e `IFNOER').


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

CLOSE

Chiude la porta correntemente aperta. Per impostare una nuova porta occorre utilizzare il comando `PORT'.
 
       CUX> PORT tty00           ( Imposta la porta da utilizzare        )
       CUX> CONV                 ( Entra in conversazionale              )
       .......... 
       CUX> CLOSE                ( Chiude la porta corrente              )
       CUX> PORT tty01           ( Imposta una nuova porta da utilizzare )
       CUX> FILE pippo.txt       ( Imposta il file                       )
       CUX> SEND                 ( Lo spedisce                           )
       .......... 
Attenzione: lo stato di uscita di questo comando influisce sul valore del flag di errore (cfr. i comandi `IFER' e `IFNOER').


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

CTS

Abilita o disabilita il protocollo di handshake hardware Cts/Rts.
 
       CUX> CTS ON                  ( Abilita il protocollo Cts/Rts      )
       ..........
       CUX> CTS OFF                 ( Disabilita il protocollo Cts/Rts   )
       ..........
Per maggiori informazioni consultare l'appendice Protocolli.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

DUMP

Il comando `DUMP', disponibile solo per ambiente MsDos, permette di visualizzare sullo schermo il contenuto del buffer di comunicazione in formato ASCII, mentre i caratteri speciali vengono visualizzati con i simboli standard (ad esempio <NUL> per lo 0).
 
       CUX> DUMP               ( Visualizza il buffer di comunicazione   )
       .........


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

DUMPOLD

Il comando `DUMPOLD', disponibile solo per ambiente MsDos, permette di visualizzare sullo schermo il contenuto del buffer di comunicazione già scaricato nell'identico formato del comando `DUMP'.
 
       CUX> DUMPOLD            ( Visualizza il buffer di comunicazione   )
       ..........


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

MAXBUF

Specifica le dimensioni in byte del buffer di input di comunicazione, e può essere un qualsiasi valore compreso tra 128 e 65535. Deve però essere almeno il doppio della lunghezza del record del protocollo scelto (cfr. comando `LENREK').
I seguenti protocolli forzano la lunghezza del record a 1024 byte, e di conseguenza occorre impostare `MAXBUF' ad almeno 2048 byte (che corrisponde al default):

XMODEM1K
Protocollo Xmodem con blocco di 1024 byte.
YMODEM1K
Protocollo Ymodem con blocco di 1024 byte.
XMODEM1KC
Protocollo Xmodem con blocco di 1024 byte e controllo CRC.
YMODEM1KC
Protocollo Ymodem con blocco di 1024 byte e controllo CRC.
 
       CUX> LENREK 512              ( Specifica la lunghezza del record  )
       CUX> PROTOC XMODEM1K         ( Definisce il tipo di protocollo    )
       CUX> MAXBUF 127              ( Definisce le dimensioni del buffer )

       Buffer sottodimensionato rispetto al record
       Lunghezza buffer non accettabile

       CUX> MAXBUF 1024             ( Definisce le dimensioni del buffer )

       Buffer sottodimensionato rispetto al record

       CUX> MAXBUF 2048             ( Definisce le dimensioni del buffer )
       CUX> SEND                    ( Spedisce un file                   )
       .........
Come si può vedere dall'esempio, nonostante sia stata definita la lunghezza del record a 512 byte non viene accettata la dimensione del buffer pari a 1024 byte, poiché il protocollo Xmodem-1k forza la lunghezza del record a 1024 byte. Per ulteriori informazioni riguardo ai protocolli consultate l'appendice Protocolli.

Nel caso di linee Tcp/Ip imposta il buffer associato alla socket aperta.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

PARITY

Specifica la parità. Valori validi sono:

 
       CUX> BIT 8
       CUX> PARITY NONE      ( Definisce il tipo di parità               )
       ..........
       CUX> PARITY MARK      ( Definisce il tipo di parità               )
       Errore di Ioctl
       CUX> BIT 7            ( Specifica le dimensioni della word        )
       CUX> PARITY MARK      ( Definisce il tipo di parità               )
       ..........


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

PORT

Seleziona la porta di comunicazione indicata come parametro fra quelle elencate ed abilitate nel file `sercap'.
 
       CUX> PORT COM1                ( Seleziona la porta da utilizzare  )
       ........
A partire dalla versione 3.8a Cux permette di accedere anche ai servizi di rete tramite le socket.

Le socket sono sostanzialmente un'interfaccia per i programmi applicativi al livello di trasporto di una rete che utilizza la suite di protocolli Tcp/Ip.

Tramite le socket è quindi possibile realizzare connessioni e comunicazioni non seriali ma di rete. Una delle caratteristiche di tali comunicazioni è l'implementazione di uno schema rigido in cui ogni estremo della connessione può assumere solo uno di due modi operativi prefissati, server o client, ciascuno caratterizzato dall'esecuzione di una ben precisa serie di operazioni. Si parla perciò di processo server o processo client a seconda della modalità operativa della connessione stabilita dal processo in questione. Un processo server opera in ascolto su un canale di comunicazione, accettando richieste quando queste sono rilevate. Un processo client si connette con un processo server su un canale di comunicazione noto a priori.

N.B: occorre precisare una differenza di terminologia che può ingenerare confusione: mentre in questo manuale si usano indifferentemente i termini porta e linea per indicare una linea di comunicazione quale definita nel file `sercap', nel mondo del networking si intende generalmente per port l'indirizzo numerico, ovvero un identificativo, di un servizio di rete.

Per effettuare una connessione di rete via socket occorre dunque:

  1. Utilizzare una porta configurata opportunamente nel file `sercap'. A tale scopo si rimanda al capitolo Il file sercap nelle Appendici.
  2. Specificare la modalità della connessione, se server o client. Nel primo caso occorre specificare solo un servizio (port) mentre nel secondo caso occorre specificare un servizio e una macchina (host), quest'ultima tramite il suo nome di rete o il suo indirizzo internet. Entrambi questi parametri sono facoltativi: se omessi vengono impostati quelli definiti nel file `sercap' relativi alla porta selezionata (cfr. capability `Nm' e `So' nel capitolo Il file sercap nelle Appendici).

Nel seguente esempio si vuole effettuare una connessione di rete via socket in modo client collegandosi con l'host il cui indirizzo internet è 172.16.1.1 sul servizio (port) 3005. Si noti l'utilizzo della porta `sercap' `TCP_C'.
 
       CUX> PORT TCP_C 3005 172.16.1.1
       ........
Nel seguente esempio si vuole invece aprire una connessione di rete via socket in modo server sul servizio (port) 3005. Si noti qui l'utilizzo della porta `sercap' `TCP_S'.
 
       CUX> PORT TCP_S 3005
       ........
A partire dalla versione 4.0 Cux implementa internamente il protocollo telnet. Questo significa che è possibile collegarsi alla porta 23 (porta standard per il servizio telnet) e gestire direttamente la connessione. Ovviamente in tal caso la porta utilizzata da Cux deve essere configurata in modo client.
 
       CUX> PORT TCP_C 23
       ........
Attenzione: lo stato di uscita di questo comando influisce sul valore del flag di errore (cfr. i comandi `IFER' e `IFNOER').


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

RSTRING

Attende una stringa sulla linea di comunicazione (tipicamente inviata con il comando `STRING') visualizzandola a video. Il comando può essere opzionalmente seguito da uno o due parametri, per indicare un tempo massimo di attesa (espresso in secondi) e/o una stringa specifica da attendere. Al ritorno del comando la variabile predefinita `WORD' conterrà la stringa ricevuta.

Inoltre, la stringa da attendere, se indicata, può essere racchiusa tra una coppia di doppi apici `"'. Se la stringa non viene racchiusa tra una coppia di doppi apici il programma assume implicitamente che la stringa sia terminata dal carattere `CR'. Se invece la stringa da attendere viene racchiusa tra una coppia di doppi apici il programma attende esattamente la stringa specificata, senza il carattere terminatore `CR'. In questo secondo caso se la stringa termina con un `CR', tale carattere deve essere esplicitamente specificato all'interno della stringa stessa. Se sono usati i doppi apici sono infatti ammessi anche dei caratteri speciali, tra i quali appunto il `CR'. Per la sintassi della stringa tra apici vedere il comando `STRING'.

Il comando senza parametri determina l'entrata nello stato di ricezione illimitata di una stringa qualsiasi, purché tuttavia terminata dal carattere `CR'. In tal caso il comando ritorna solo se e quando viene ricevuto il carattere `CR'.
 
       CUX> RSTRING         ( Attesa illimitata di una stringa qualsiasi )
Se è presente un solo parametro ed è numerico il programma assume che si tratti di un tempo di attesa, e in tal caso il comando ritorna solo dopo la ricezione di una stringa qualsiasi (ma terminata con `CR') oppure dopo il tempo di attesa specificato. Se invece l'unico parametro presente non è numerico oppure è numerico ma è racchiuso tra una coppia di doppi apici il programma assume che si tratti di una stringa specifica da attendere, e in tal caso il comando ritorna solo se e quando viene ricevuta la stringa specificata.
 
       CUX> RSTRING 10   ( Attesa di 10 secondi di una stringa qualsiasi )
       CUX> RSTRING ok   ( Attesa illimitata della stringa 'ok\r'        )
       CUX> RSTRING "10" ( Attesa illimitata della stringa '10'          )
Se sono presenti due parametri il primo deve essere numerico, ad indicare il tempo di attesa, mentre il secondo viene assunto come la stringa da attendere.
 
       CUX> RSTRING 10 ok   ( Attesa di 10 secondi della stringa 'ok\r'  )
       CUX> RSTRING 10 "10" ( Attesa di 10 secondi della stringa '10'    )
A partire dalla release 3.8 di Cux è stata introdotta la ricezione multivia: è cioè possibile indicare più stringhe, purché separate dalla virgola `,'. In questo caso il comando, se non ritorna per timeout, ritorna solo se e quando viene riconosciuta una tra le stringhe indicate. Al ritorno del comando la variabile predefinita `WHICH' conterrà il numero relativo alla posizione della stringa riconosciuta (1 per la prima stringa, 2 per la seconda e cos`ì via) mentre la variabile predefinita `WORD' conterrà la stringa ricevuta. Nel seguente esempio si suppone di ricevere la stringa ricezione:
 
       CUX> RSTRING esempio,di,ricezione,multivia
       ricezione
       CUX> MESG $WHICH
       3
       CUX> MESG $WORD
       ricezione
Se è indicato un tempo massimo di attesa e il comando ritorna perché questo è stato superato, viene impostato il flag di errore (cfr. i comandi `IFER' e `IFNOER') e il flag di timeout (cfr. i comandi `IFOUT' e `IFNOOUT').

Se è stato disabilitato l'eco a video dei comandi (cfr. il comando `MUTE'), il comando `RSTRING' non visualizza i dati ricevuti. Tuttavia se viene attivata la modalità di salvataggio tutto ciò che viene ricevuto fino al ritorno del comando viene salvato su file (cfr. il comando `SAVE').

A partire dalla versione 3.8b il comando `RSTRING' risente anche dell'impostazione dell'eco locale (cfr. il comando `ECHO'): se questo è abilitato (`ECHO'=`on'), il comando `RSTRING' scrive sulla linea di comunicazione ogni carattere ricevuto dalla linea stessa.

A partire dalla versione 4.0 di Cux tale comando può terminare con errore, quindi impostando il flag di errore (cfr. i comandi `IFER' e `IFNOER'), anche in caso di caduta di portante.

In ogni caso e qualsiasi sia la forma con cui è usato il comando, è possibile terminare l'attesa in interattivo premendo il tasto <DEL>. In tal caso il comando ritorna con il flag di errore impostato (cfr. i comandi `IFER' e `IFNOER').

Altra possibiltà per l'interruzione dell'attesa è data dalla ricezione di un segnale debitamente intercettato (cfr. comando `TRAP').


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

STOP

Questo comando permette di impostare il numero di bit di stop. I valori accettabili sono 1 (default) o 2.
 
       CUX> STOP 2                ( Imposta i bit di stop                )
       ..........
Se si utilizza coma parità `MARK' o `SPACE' la somma dei bit di stop e dei bit della word (cfr. comando `BIT') non deve essere superiore a otto.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

STRING

Con questo comando viene mandata una stringa terminata da un `CR' sulla linea di comunicazione. Se la stringa è racchiusa tra doppi apici (`"') sono ammessi i seguenti caratteri speciali:
 
       \r        CR
       \n        LF
       \b        BACKSPACE
       \g        BELL
       \l        FORMFEED
       \\        \
       \"        "
       \OOO      caratteri speciali, dove OOO rappresenta qualunque
                 numero ottale.
Inoltre se la stringa è racchiusa tra doppi apici il `CR' finale è inviato solo se specificato esplicitamente.
 
       CUX> STRING "In questo caso il 'CR' viene inviato \r"
       CUX> 


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

UNGET

Mette nel buffer di comunicazione il carattere indicato come parametro o un `NUL' se non è indicato alcun parametro. È possibile indicare come parametro anche un carattere speciale, nel qual caso sono seguite le stesse regole del comando `STRING' (cfr.) sui caratteri ammessi. Nel seguente esempio si suppone di ricevere dalla linea come primo carattere una `A':
 
       CUX> RSTRING "A","B","C","D"
       CUX> GOTONUM L_ERR,L_A,L_B,L_C,L_D
       ..........
       CUX> LABEL L_A
       CUX> UNGET "A"
       CUX> CALL batch_a
       ..........
L'esecuzione salta quindi all'etichetta denominata `L_A' in cui viene rimesso nel buffer di comunicazione il carattere `A' e viene poi chiamato il batch `batch_a'.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

XOFF

Sblocca l'Xon/Xoff sulla linea in input, ovvero simula l'arrivo dalla linea di comunicazione del carattere di Xon che in genere è il carattere <CTRL><Q>.
 
       ..........
       CUX> XOFF
       ..........
Per maggiori spiegazioni si rimanda al paragrafo Protocollo Xon/Xoff nell'appendice Protocolli.

Attenzione: lo stato di uscita di questo comando influisce sul valore del flag di errore (cfr. i comandi `IFER' e `IFNOER').


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

XRSTRING

Il comando `XRSTRING' è simile al comando `RSTRING' con la differenza fondamentale che invece di attendere la ricezione di una stringa inviata via `STRING' attende la ricezione di un blocco di dati inviato dal comando `XSTRING'.

I parametri accettati da questo comando sono due: il primo indica il tempo massimo (espresso in secondi) entro il quale deve giungere la stringa attesa (superato questo tempo il comando uscirà impostando il flag di timeout); il secondo rappresenta la stringa attesa. Entrambi i parametri sono opzionali; unica attenzione va prestata al timeout che, se presente, deve essere il primo parametro specificato.

Se la stringa attesa viene passata al comando racchiusa tra doppi apici, il comando non si aspetta il carattere `CR' di terminazione. Tale carattere, in questo caso, dovrebbe essere specificato esplicitamente all'interno della stringa (cfr. `STRING').

È possibile terminare l'attesa di ricezione in interattivo tramite il tasto <DEL>.

Mentre la condizione per un'uscita corretta del comando `RSTRING' è la ricezione di una qualunque sottostringa non vuota della stringa indicata come parametro, la condizione per un'uscita corretta del comando `XRSTRING' è la ricezione di una sottostringa iniziale non vuota della stringa specificata. Ad esempio, la seguente ricezione via `RSTRING' riesce:
 
       Sistema remoto
       CUX> STRING "A-UNO-B"

       Sistema locale
       CUX> RSTRING "UNO"
mentre la seguente ricezione via `XRSTRING' fallisce:
 
       Sistema remoto
       CUX> XSTRING "A-UNO-B"

       Sistema locale
       CUX> XRSTRING "UNO"
Riesce invece la seguente ricezione via `XRSTRING':
 
       Sistema remoto
       CUX> XSTRING "UNO-B"

       Sistema locale
       CUX> XRSTRING "UNO"
Un'altra differenza rispetto al comando `RSTRING' è data dal fatto che il comando `XRSTRING' non produce nessun output a video. È comunque possibile salvare ciò che si è ricevuto grazie al comando `SAVE'.

Il comando `XRSTRING' risulta utile qualora si voglia costruire un meccanismo di identificazione equivalente al login in ambienti Unix/Xenix. Quello che segue è un tipico esempio di utilizzo di tale comando.
 
       ......
       CUX> FILE xrstring.txt           ( Inizializzazione file          )
       CUX> SAVE ON                     ( Inizio memorizzazione su file  )
       CUX> XRSTRING 60                 ( Attende una stringa            )
       CUX> SAVE OFF                    ( Termine salvataggio su file    )
       CUX> IFOUT BATCH TERMINE.CUX     ( Per timeout esegue un batch    )
       ......
Attenzione: il timeout passato come parametro, per assumere significato, deve avere un valore minimo di 20 secondi. Qualora si indicasse un timeout minore del valore minimo si attenderà ugualmente per 20 secondi prima di terminare con un eventuale segnalazione di errore. Lo stesso discorso vale anche per i multipli di 20 secondi.

Attenzione: lo stato di uscita del comando `XRSTRING' influisce sul valore del flag di errore (cfr. i comandi `IFER' e `IFNOER') se viene interrotto tramite il tasto <DEL>, e influisce sul valore del flag di timeout (cfr. i comandi `IFOUT' e `IFNOOUT') se esce per timeout.

È anche possibile che l'attesa venga interrotta dalla ricezione di un segnale debitamente intercettato (cfr. comando `TRAP').

Analogamente al comando `RSTRING', a partire dalla release 3.8 di Cux è stata introdotta la ricezione multivia anche per il comando `XRSTRING', con sintassi e modalità del tutto analoghe a quelle descritte nel caso del comando `RSTRING'.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

XSTRING

Con questo comando viene mandata una stringa terminata da un `CR' sulla linea di comunicazione. A differenza del comando `STRING' non viene trasmessa come stringa ma come blocco controllato di dati. Questo significa che mentre il comando `STRING' si cura di inviare una stringa, il comando `XSTRING' si cura che la stringa inviata venga ricevuta. In altri termini, il comando `STRING' ritorna dopo aver inviato la stringa sulla linea di comunicazione, mentre il comando `XSTRING' ritorna solo dopo che la stringa è stata ricevuta.

I parametri accettati da questo comando sono due: il primo indica il tempo massimo (specificato in secondi) entro il quale si dovrà riuscire ad inviare la stringa (superato questo tempo il comando uscirà con errore); il secondo rappresenta la stringa da inviare. Entrambi i parametri sono opzionali; unica attenzione va prestata al timeout che, se presente, deve essere il primo parametro specificato. Inoltre vi è una limitazione sulla lunghezza della stringa che non può superare i 128 caratteri.

Se la stringa da inviare viene passata al comando racchiusa tra doppi apici, non sarà terminata automaticamente dal carattere `CR'. Tale carattere, in questo caso, dovrebbe essere specificato esplicitamente all'interno della stringa (cfr. `STRING').
 
       ......
       CUX> XSTRING 60 "START"         ( Invia la stringa 'START'.       )
                                       ( Il comando deve avere           )
                                       ( successo entro 60 secondi.      )
       CUX> IFER GOTO ERRORE           ( Su errore salta alla label.     )
       CUX> CONV                       ( Entra in conversazionale.       )
       ......
Attenzione: il timeout passato come parametro, per assumere significato, deve avere un valore di almeno 35 secondi; qualora si indicasse un timeout minore del valore minimo si attenderà ugualmente per 35 secondi prima di terminare con un'eventuale segnalazione di errore. Lo stesso discorso vale anche per i multipli di 35 secondi.

Attenzione: lo stato di uscita del comando `XSTRING' influisce sul valore del flag di errore (cfr. i comandi `IFER' e `IFNOER') se viene interrotto tramite il tasto <DEL>, e influisce sul valore del flag di timeout (cfr. i comandi `IFOUT' e `IFNOOUT') se esce per timeout.

Come nel caso del comando `XRSTRING', anche nel caso del comando `XSTRING' è possibile che l'attesa venga interrotta dalla ricezione di un segnale debitamente intercettato (cfr. comando `TRAP').


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.5 Controllo linea modem


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

ALINE

Connette la linea in risposta (answer) senza attendere gli squilli: in pratica esce dalla modalità comandi per entrare in modalità dati e attende che si connetta un modem.
 
       CUX> BAUD 9600                 ( Definisce il baud rate           )
       CUX> PORT ttya2                ( Definisce la porta da utilizzare )
       CUX> HANGUP ON                 ( Aggancia la linea telefonica     )
       CUX> MESG ABBASSARE RICEVITORE ( Messaggio                        )
       CUX> ALINE                     ( Si connette con la linea         )
       ..........
       CUX> REC pippo                 ( Riceve il file 'pippo'           )
       ..........
       CUX> ASK ALZARE RICEVITORE E BATTERE ENTER ( Richiesta input      )
       CUX> COMMAND                   ( Ritorna in modalità comandi      )
       CUX> HANGUP OFF                ( Sgancia la linea telefonica      )
       ..........
In questo esempio si era già collegati a voce con un interlocutore, il quale vuole spedire un file; si dovrà allora specificare la velocità di trasmissione e la porta; successivamente, dopo aver specificato il comando `HANGUP ON', abbassare la cornetta e digitare il comando `ALINE'. Al termine delle operazioni volendo riprendere la conversazione telefonica si dovrà, prima di dare il comando `COMMAND', alzare la cornetta.

Se il comando è preceduto dal comando `RESETFAX' può agganciare anche un fax.

Se il comando è preceduto dal comando `RESETVOICE' alza la linea.

Se viene riconosciuta una delle stringhe previste assegna alla variabile predefinita `WHICH' il numero corrispondente e ne lascia copia nella variabile predefinita `WORD'. Per l'elenco delle stringhe previste e dei numeri corrispondenti vedere il comando `DIAL'.

Vedere anche l'opzione `-ma' nel capitolo Opzioni sulla linea di comando.

Attenzione: lo stato di uscita di questo comando influisce sul valore del flag di errore (cfr. i comandi `IFER' e `IFNOER'), del flag di riconoscimento di connessione fax (cfr. il comando `IFFAX') e del flag di riconoscimento di connessione voice (cfr. il comando `IFVOICE').


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

ANSWER

Attende una chiamata da parte di un altro modem. La risposta automatica avverrà dopo `n' squilli, dove `n' è il valore associato al comando `RING'.
 
       CUX> RING 4                  ( Specifica il numero di squilli     )
       CUX> ANSWER                  ( Attende una chiamata               )
       .........
       CUX> COMMAND                 ( Ritorna in modalità comandi        )
       CUX> NOANSWER                ( Termina l'autoanswer               )
       ..........
È possibile anche indicare un tempo massimo di attesa, espresso in secondi, e se entro tale tempo non avviene una chiamata il comando esce con errore.
 
       .........
       CUX> ANSWER 120          ( Attende una chiamata entro 120 secondi )
       .........
Se il comando è preceduto dall'istruzione `RESETFAX' può agganciare anche un fax (cfr. la capability `Af' del file `modmcap').

Se il comando è preceduto dall'istruzione `RESETVOICE' alza la linea.

Se è riconosciuta una delle stringhe previste viene assegnata alla variabile predefinita `WHICH' il numero corrispondente e alla variabile predefinita `WORD' la stringa corrispondente. Per l'elenco delle stringhe previste e dei numeri corrispondenti si veda il comando `DIAL'.

Vedere anche l'opzione `-aa' nel capitolo Opzioni sulla linea di comando.

Attenzione: lo stato di uscita di questo comando influisce sul valore del flag di errore (cfr. i comandi `IFER' e `IFNOER'), del flag di timeout (cfr. i comandi `IFOUT' e `IFNOOUT'), del flag di riconoscimento di connessione fax (cfr. il comando `IFFAX') e del flag di riconoscimento di connessione voice (cfr. il comando `IFVOICE').


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

CMDSAVE

Ammette come parametro uno dei due valori `ON' e `OFF' (default). Se impostato a `ON' abilita la produzione di un file di log per il salvataggio dei comandi inviati per la negoziazione TELNET (dalla versione 4.0) o al modem e relative risposte, mentre se impostato a `OFF' la produzione di tale file di log è disabilitata. L'abilitazione si ottiene facendo seguire a `CMDSAVE' il parametro `ON', mentre la disabilitazione si ottiene facendo seguire il parametro `OFF'.

Attenzione che l'abilitazione è accettata solo se è abilitato anche il file di log generale (cfr. opzione `-lo' e comando `LOG'). Il file di log cos`ì prodotto ha estensione `.SAV' e nome uguale al nome del file di log generale che ha estensione `RTX'.
 
       .......... 
       CUX> CMDSAVE ON      ( Abilita il log del colloquio col modem     )
       .......... 
La funzionalità di questo comando è del tutto analoga a quella dell'opzione `-SA' (cfr.).


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

COMMAND

Il comando `COMMAND' permette di passare dalla modalità dati alla modalità comandi.
 
       CUX> DIAL 1234567             ( Chiama il numero specificato      )
       ..........
       CUX> COMMAND                  ( Ritorna in modalità comandi       )
       CUX> IFER COMMAND             ( In caso di errore riprova         )
       CUX> HANGUP OFF               ( Sgancia la linea telefonica       )
       CUX> IFER HANGUP OFF          ( In caso di errore riprova         )
       CUX> EXIT                     ( Termina il programma              )
In questo esempio prima entriamo in modalità dati per collegarci con un numero telefonico poi, dopo aver svolto eventuali operazioni in modalità dati, se vogliamo rientrare in modalità comandi è necessario digitare il comando `COMMAND'. Tale comando occorre normalmente utilizzarlo dopo i comandi `ALINE', `ANSWER', `DIAL', `DLINE'.

Attenzione: lo stato di uscita di questo comando influisce sul valore del flag di errore (cfr. i comandi `IFER' e `IFNOER').


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

DIAL

Chiama il numero passato come parametro o, se non è specificato alcun parametro, chiama il numero impostato precedentemente tramite il comando `NUMBER'. Se però il comando è usato senza parametri e se non è stato precedentemente impostato alcun numero per mezzo del comando `NUMBER', il comando `DIAL' ritorna con errore.
 
       CUX> NUMBER 5555555          ( Specifica il numero telefonico     )
       CUX> DIAL                    ( Chiama il numero di NUMBER         )
       ..........
       CUX> DIAL 55555666           ( Chiama il numero scelto            )
       ..........
Se viene indicato un numero come parametro non viene modificato il numero specificato per mezzo del comando `NUMBER' (è possibile vedere tale numero tramite il comando `STAT').

Se preceduto dal comando `RESETFAX' può chiamare anche un fax.

Se preceduto dal comando `RESETVOICE' chiama a voce ed esce per cornetta alzata dal capo opposto della linea.

A partire dalla versione 4.0 è stata introdotta la possibilità di effettuare chiamate multinumero, ovvero di specifire più numeri da chiamare in successione fino a quando uno di questi risulti libero. Per maggiori dettagli si veda il comando `NUMBER'.

Se la linea è occupata esce subito, altrimenti tenta di chiamare per il numero di volte previsto (cfr. capability `Nm' nel file `modmcap').

Il file `modmcap' permette di assegnare le stringhe di risposta prodotte dal modem a specifiche capability. Tali stringhe possono riguardare sia il tipo di connessione effettuata sia un eventuale errore riscontrato dal modem. In entrambi i casi il comando `DIAL' assegna alla variabile predefinita `WORD' la stringa corrispondente all'evento occorso. Solo invece nel caso di connessione effettuata correttamente assegna alla variabile predefinita `WHICH' il numero corrispondente alla stringa riconosciuta (nei casi di errore la variabile `WHICH' non viene modificata). Le stringhe di connessione, infatti, sono numerate progressivamente da 0 a 28 ed ognuna è associata ad una particolare capability. Per un elenco completo di tali capability si rimanda alla sezione Guida di riferimento dell'appendice Il file modmcap.

Nel caso ad esempio di linea occupata, il comando `DIAL' esce subito assegnando alla variabile predefinita `WORD' la stringa associata alla capability `Bu' definita nel file `modmcap', tipicamente la stringa `BUSY'. O ancora, nel caso di un modem configurato per linee americane, in cui il modem attende il cosiddetto dial tone, il comando `DIAL' esce assegnando alla variabile predefinita `WORD' la stringa associata alla capability `Li' definita nel file `modmcap', tipicamente la stringa `NO DIAL TONE'.

Nel caso invece di una connessione effettuata correttamente a 9600 baud, il comando `DIAL' assegna alla variabile `WORD' la stringa `CONNECT 9600' e alla variabile `WHICH' il valore `7'.

Di seguito è riportata la definizione delle stringhe di connessione nel caso di modem di tipo HAYES. È importante sottolineare che il numero di riferimento è costante, ovvero indica l'n-esima risposta, mentre la stringa corrispondente è relativa al modem caricato e può quindi variare con esso.

  1. CONNECT
  2. CONNECT 300
  3. CONNECT 600
  4. CONNECT 1200
  5. CONNECT 2400
  6. CONNECT 4800
  7. CONNECT 9600
  8. CONNECT 19200
  9. CONNECT 14400
  10. CONNECT 28800
  11. CONNECT 300 MNP
  12. CONNECT 1200 MNP
  13. CONNECT 2400 MNP
  14. CONNECT 38400
  15. CONNECT 48000
  16. CONNECT 57600
  17. CONNECT 64000
  18. CONNECT 76800
  19. CONNECT 115200
  20. CONNECT 12000
  21. CONNECT 7200
  22. CONNECT PEP UUCP
  23. CONNECT PEP KERMIT
  24. CONNECT PEP XMODEM
  25. CONNECT PEP
  26. CONNECT FAX
  27. CONNECT VOICE
  28. CONNECT 1200/75
  29. NO CARRIER
  30. ERROR
  31. ABORTED
  32. NO ANSWER
  33. NO DIAL TONE
  34. BUSY
  35. TIME OUT
  36. TRYING TO CONNECT
  37. +FHNG:
Vedere anche l'opzione `-cd' nel capitolo Opzioni sulla linea di comando.

Attenzione: lo stato di uscita di questo comando influisce sul valore del flag di errore (cfr. i comandi `IFER' e `IFNOER') e del flag di riconoscimento di connessione fax (cfr. il comando `IFFAX').


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

DLINE

Permette di connettere la linea in originate senza dover comporre il numero, presupponendo che vi sia già la linea attiva (cfr. il comando `ALINE').
 
       CUX> HANGUP ON                   ( Aggancia la linea              )
       CUX> MESG ABBASSARE RICEVITORE   ( Messaggio                      )
       CUX> DLINE                       ( Si connette in originate         )
       CUX> SEND prova.tex              ( Spedisce il file specificato   )
       ..........
       CUX> ASK ALZARE IL RICEVITORE E BATTERE ENTER ( Richiesta input   )
       CUX> COMMAND                     ( Ritorna in modalità comandi    )
       CUX> HANGUP OFF                  ( Sgancia la linea telefonica    )
In questo esempio due persone stanno parlando via telefono quando una decide di trasmettere un file dati con il modem: specifica allora la porta di comunicazione di uscita, la velocità del proprio modem, digita il comando `HANGUP ON' (e solo a questo punto può abbassare la cornetta) e si connette in originate (comando `DLINE') entrando automaticamente in modalità dati. A questo punto possono venire svolte tutte le operazioni relative a questa modalità come trasmissione e ricezione di file, sempre che dall'altra parte della linea telefonica sia pronto un altro Cux in attesa (con il comando `ALINE').

Se il comando è preceduto dal comando `RESETFAX' può agganciare anche un fax.

Se il comando è preceduto dal comando `RESETVOICE' alza la linea.

Se viene riconosciuta una delle stringhe previste assegna alla variabile predefinita `WHICH' il numero corrispondente e ne lascia copia nella variabile predefinita `WORD'. Per l'elenco delle stringhe previste e dei numeri corrispondenti vedere il comando `DIAL'.

Vedere anche l'opzione `-md' nel capitolo Opzioni sulla linea di comando.

Attenzione: lo stato di uscita di questo comando influisce sul valore del flag di errore (cfr. i comandi `IFER' e `IFNOER') e del flag di riconoscimento di connessione fax (cfr. il comando `IFFAX').


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

HANGUP

Il comando `HANGUP' permette di agganciare o sganciare la linea telefonica.

A partire dalla versione 4.0 di Cux, il comportamento di tale comando è stato leggermente modificato: se era stato dato in precedenza uno tra i comando `RESETFAX' o `RESETVOICE', il comando `HANGUP' non riporta il modem allo stato normale: per fare ciò bisogna usare il comando `RESETDATA' (cfr).
 
       CUX> HANGUP ON               ( Aggancia la linea telefonica       )
       CUX> ALINE                   ( Si connette in risposta            )
       ..........
       CUX> COMMAND                 ( Ritorna in modalità comandi        )
       CUX> HANGUP OFF              ( Sgancia la linea telefonica        )
Attenzione: lo stato di uscita di questo comando influisce sul valore del flag di errore (cfr. i comandi `IFER' e `IFNOER').


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

INIT

Il comando `INIT' viene utilizzato per caricare i parametri del modem. Se specificato senza nessun parametro considererà come modem utilizzato quello definito dalla variabile di environment `MODM', se tale variabile è definita, altrimenti è possibile definire il tipo di modem da utilizzare specificandolo come parametro. Naturalmente il tipo di modem deve essere tra quelli compresi nel file `modmcap'.
 
       CUX> INIT               ( Carica i parametri del modem di default )
       Caricato: HAYES
       CUX> INIT 1200CT        ( Carica i parametri del modem scelto     )
       Caricato: 1200CT
       CUX> RESET              ( Inizializza il modem                    ) 
Nell'esempio il primo modem di cui vengono caricati i parametri è quello di default cioè quello specificato nella variabile di environment `MODM' (vedere anche le appendici Il file Modmcap e L'environment), successivamente carichiamo i parametri di un modem Smarteam 1200; infine con il comando `RESET' viene inizializzato il tipo di modem scelto.

Se nella descrizione del modem caricato è presente la capability booleana `Nu' tutti i comandi di gestione del modem vengono ignorati, nel senso che escono (ritornano) immediatamente con il flag di errore azzerato come se fossero stati accettati dal modem, anche se in tal caso al modem non viene inviato nessun comando (cfr. Il file Modmcap).


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

MDIAL

Chiama il numero specificato dal comando `NUMBER' o passato come parametro per connettersi in fonia (non trasmette dati).
 
       CUX> NUMBER 123456789          ( Specifica il numero telefonico   )
       CUX> MDIAL                     ( Si connette in fonia             )
       CUX> ASK ALZARE RICEVITORE E BATTERE ENTER    ( Richiesta input   )
       CUX> HANGUP OFF                ( Sgancia la linea                 )
Dopo il comando `MDIAL' si può sollevare il ricevitore. Per parlare senza interferenze del modem occorre digitare il comando `HANGUP OFF'.

Attenzione: lo stato di uscita di questo comando influisce sul valore del flag di errore (cfr. i comandi `IFER' e `IFNOER').


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

MODEMCTL

Abilita controllo della portante durante l'esecuzione dei comandi `CONV', `REMOTE' e `SPAWN'. Ammette come parametro uno dei due valori (`ON') e (`OFF').

Se il controllo della portante è abilitato (`MODEMCTL ON'), in ambiente Unix/Xenix la caduta della portante durante l'esecuzione di una delle suddette istruzioni determina l'uscita dell'istruzione in questione con il flag di errore impostato (cfr. i comandi `IFER' e `IFNOER').

Attenzione: dopo l'esecuzione dei comandi `CONV', `REMOTE' e `SPAWN' e/o dopo esser caduta di portante, il comando viene riportato nello stato di default `OFF'.

In ambiente MsDos il comando `MODEMCTL' assume significato solo in coppia con i comandi `CONV' e `REMOTE', nel senso che con controllo di portante abilitato (`MODEMCTL ON') la caduta della portante durante l'esecuzione del comando `CONV' determina l'uscita dal conversazionale con il flag di errore impostato (cfr. i comandi `IFER' e `IFNOER'), mentre la caduta della portante durante l'esecuzione del comando `REMOTE' provoca un boot della macchina. In entrambi i casi viene anche modificato il valore di tale comando, il quale è automaticamente riportato a `OFF'.

Se invece il controllo della portante è disabilitato (`MODEMCTL OFF'), la caduta della portante non ha alcun effetto su tali istruzioni.
 
       CUX> MODEMCTL ON            ( Abilita il controllo della portante )
       CUX> CONV                   ( Entra in conversazionale            )
       CUX> IFER GOTO RICHIAMA     ( Se cade la portante richiama        )
Attenzione: per un corretto funzionamento il device utilizzato deve gestire il contollo modem, deve cioè sentire un'eventuale caduta di portante e segnalarla al processo (in tal caso al Cux) che è associato alla linea. Inoltre occorre anche che il cavo abbia un controllo modem corretto (allo scopo si vedano le appendici Il file Sercap e Cavi e connessioni RS232).


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

NOANSWER

Impedisce le operazioni di autoanswer che generalmente iniziano con il comando `ANSWER'. È obbligatorio, per poter utilizzare questo comando, essere in modalità comandi. Se si è invece in modalità dati occorre prima specificare l'istruzione `COMMAND'. Il comando `ANSWER' può essere utilizzato indipendentemente dal comando `ANSWER' se il modem soddisfa almeno una delle seguenti condizioni:

 
       CUX> RING 4                  ( Specifica il numero di squilli     )
       CUX> ANSWER                  ( Attende una chiamata               )
       .........
       CUX> COMMAND                 ( Ritorna in modalità comandi        )
       CUX> NOANSWER                ( Impedisce l'autoanswer             ) 
       ..........
Attenzione: lo stato di uscita di questo comando influisce sul valore del flag di errore (cfr. i comandi `IFER' e `IFNOER').


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

NUMBER

Seleziona il numero telefonico da chiamare (cfr. anche i comandi `DIAL' e `MDIAL'). Nel numero è possibile introdurre dei caratteri di ritardo a patto che facciano parte dei seguenti:
 
       / , ( ) - .
Il valore può essere programmato con il registro `S8' nella configurazione del modem (cfr. l'appendice Il file Modmcap). In ogni caso tutti i caratteri vengono trasformati in maniera trasparente in virgole (,) in modo che possano essere comprese dai modem standard Hayes.
 
       CUX> NUMBER 1234567            ( Specifica il numero da chiamare  )
       CUX> NUMBER 1,2,3,4,5,6,7      ( Specifica il numero da chiamare  )
       CUX> NUMBER 1/2,3(4)5-6.7      ( Specifica il numero da chiamare  )
       CUX> DIAL                      ( Chiama il numero scelto          )
       ..........
A partire dalla versione 4.0 è possibile specificare un elenco di numeri separati dal carattere `|': in tal caso qualora il primo numero risulti occupato verrà automaticamente tentato il secondo e cos`ì via fino a quando un numero risulti libero oppure siano stati tentati tutti i numeri nell'elenco.
 
       CUX> NUMBER 1234567|7654321    ( Specifica i numeri da chiamare   )
       CUX> DIAL                      ( Chiama uno tra i numeri indicati )
       ..........
All'interno del numero si possono inserire anche i seguenti caratteri:
 
       P T W R N @ !
i quali assumono dei significati particolari a seconda del modem impiegato (a questo riguardo occorre consultare il manuale del modem da voi utilizzato); solitamente sono standard solo i caratteri `T' (tone) e `P' (pulse) che indicano rispettivamente la composizione del numero a toni e ad impulsi. Un tipico uso di questi due caratteri è quando si utilizzano dei centralini interni che effettuano la comunicazione a toni mentre la rete telefonica esterna è a impulsi. Si può, quindi, ovviare a questo problema operando come nell'esempio che segue:
 
       ..........
       CUX> NUMBER T13/P1234567       ( Specifica il numero da chiamare  )
       CUX> DIAL                      ( Chiama il numero scelto          )
       ..........
Nell'esempio viene prima composto il numero 13 del centralino a toni, quindi viene effettuata una pausa, e infine il resto del numero viene composto ad impulsi.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

NUMREG

Imposta il numero di registri del modem. Per default il numero di registri è 12 (che è anche il minimo per i modem Hayes e compatibili), mentre il massimo è 255 e dipende dal tipo di modem utilizzato.
 
       CUX> NUMREG 256                 ( Specifica il numero di registri )
       Numero di registri non accettabile 
       CUX> NUMREG 255                 ( Specifica il numero di registri )
       ..........


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

REG

Il comando `REG' permette di visualizzare su video il contenuto dei registri del modem utilizzato.
 
       CUX> REG                       ( Mostra il contenuto dei registri )
       Registro  0 =  0.
       Registro  1 =  0.
       Registro  2 = 43.
       Registro  3 = 13.
       Registro  4 = 10. 
       Registro  5 =  8.
       Registro  6 =  3.
       Registro  7 = 50.
       Registro  8 =  2.
       Registro  9 =  0.
       Registro 10 = 50.
       Registro 11 = 70.
       CUX>
Per il significato dei registri standard consultate l'appendice Il file Modmcap e il manuale del vostro modem.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

RESET

Inizializza il modem utilizzato; questo comando vi segnalerà l'errore se il tipo di modem che voi utilizzate è diverso da quello inizializzato con il comando `INIT' o da quello contenuto dalla variabile di environment `MODM' (a tale proposito si veda anche la capability modmcap `Re').
 
       CUX> INIT HAYES             ( Carica i parametri del modem scelto )
       CUX> RESET                  ( Inizializza il modem                )
       Comando non accettato dal modem.
       CUX> INIT HAYES_COMP        ( Carica i parametri del modem scelto )
       CUX> RESET                  ( Inizializza il modem scelto         )
       Modem inizializzato.
Attenzione: lo stato di uscita di questo comando influisce sul valore del flag di errore (cfr. i comandi `IFER' e `IFNOER').


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

RESETDATA

Inizializza il modem utilizzato in modalità dati (a tale proposito si veda anche la capability modmcap `Td'.
 
       CUX> INIT HAYES_VOICE       ( Carica i parametri del modem scelto )
       CUX> RESETDATA              ( Inizializza il modem scelto         )
       Modem inizializzato.
Attenzione: lo stato di uscita di questo comando influisce sul valore del flag di errore (cfr. i comandi `IFER' e `IFNOER').


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

RING

Definisce il numero di squilli (minimo uno) da attendere prima di rispondere ad una chiamata.
 
       CUX> RING 0                     ( Definisce il numero di squilli  )
       Numero di squilli non accettabile. 
       CUX> RING 1                     ( Definisce il numero di squilli  )
       CUX> ANSWER                     ( Entra in autoanswer             )
       ..........
       CUX> COMMAND                    ( Ritorna in modalità comandi     )
       CUX> NOANSWER                   ( Esce dall'autoanswer            )


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.6 Conversazionale


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

AUTOLF

Attiva o disattiva il linefeed automatico. Questo comando è utile quando l'host o il programma a cui si è collegati in interattivo ad ogni pressione del tasto <ENTER> rimanda l'eco di un carriage return riportando il cursore sempre all'inizio della riga. Specificando il comando `AUTOLF ON' il cursore sarà posizionato all'inizio della riga successiva. È possibile specificare il linefeed automatico sulla linea comando, utilizzando l'opzione `-lf' (Vedere il capitolo Opzioni sulla linea di comando).
 
       CUX> AUTOLF OFF              ( Disabilita il linefeed automatico  )
       ..........


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

BOTTON

Abilita (ON) o disabilita (OFF) la visibilità dei bottoni di default abilitata.

Comando disponibile solo per le versioni per ambienti grafici.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

CONV

Entra in modalità conversazionale. Questo significa che, a seconda delle inizializzazioni operate prima di questo comando, ci si potrà collegare, via modem o via seriale diretta, con un altro programma o con un host. Se ci si collega con un host il programma si comporterà come un terminale remoto; mentre se ci si collega con un altro programma si potrà comunicare con un altro utente. In questo caso, in generale, vedrete apparire sul video ciò che l'altro utente sta scrivendo e non quello che scriverete voi. Questo comando richiama le funzionalità delle opzioni `-cd' e `-ca' descritte nel capitolo Opzioni sulla linea di comando. Durante la modalità conversazionale è possibile utilizzare i seguenti tasti con il seguente significato:
 
   F1      Uscita dal conversazionale.
   F9      Disattivazione autosave.
   F10     Attivazione autosave.
   CTRL-L  Refresh video (solo per `REMOTE' in MsDos).
I tasti sopra citati sono quelli di default, ma possono venire modificati cambiandoli opportunamente nel file `modmcap' (cfr. a proposito nell'appendice Il file Modmcap il paragrafo Capability Cux).

È anche possibile salvare tutto ciò che voi eseguite mentre operate in conversazionale utilizzando i comandi `FILE' e `SAVE'.

Il comando `CONV' può essere opzionalmente seguito da una stringa di caratteri (per la sintassi cfr. il comando `STRING'), ed in tal caso la ricezione di tale stringa dalla linea di comunicazione determina l'uscita automatica dal conversazionale.
 
       CUX> PARITY NONE            ( Specifica il tipo di parità         )
       CUX> BIT 8                  ( Definisce il numero di bit          )
       CUX> BAUD 9600              ( Definisce il baud-rate              )
       CUX> PORT tty1a             ( Specifica la porta utilizzabile     )
       CUX> FILE conver.txt        ( Specifica il file di default        )
       CUX> SAVE ON                ( Entra in autosave                   )
       CUX> MODEMCTL ON            ( Abilita il controllo della portante )
       CUX> CONV "fine"            ( Entra in conversazionale, dal quale )
       ..........                  ( esce alla ricezione della stringa   )
       ..........                  ( 'fine'                              )
       ..........
Il comando ritorna impostando la variabile predefinita `WHICH' ad uno dei due valori 1 o 0 a seconda che l'uscita dal conversazionale sia stata determinata rispettivamente dalla ricezione della stringa specificata o per mezzo del tasto di uscita dal conversazionale.

Attenzione: lo stato di uscita di questo comando influisce sul valore del flag di errore solo se il comando `MODEMCTL' viene posto a `ON', indicando in tal caso la caduta della portante (cfr. i comandi `IFER' e `IFNOER').


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

CRLF

Questo comando viene usato da tutti i protocolli ad eccezione di Cuxbin e Cuxenc ed è utile per il trasferimento di file tra ambienti diversi. Il comando `CRLF' ha un comportamento differente a seconda del sistema operativo utilizzato. In MsDos attiva o disattiva (default) la conversione `CR-LF' in `LF' in trasmissione e `LF' in `CR-LF' in ricezione; mentre in Unix/Xenix esegue il procedimento inverso.
 
       ..........
       CUX> CRLF ON                  ( Attiva la conversione CR-LF       )
       CUX> SEND                     ( Spedisce il file di default       )
       ..........
       CUX> CRLF OFF                 ( Disattiva la conversione CR-LF    )
       ..........


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

DYNATERM

Tale comando, disponibile solo in ambiente MsDos, permette di chiamare l'emulatore di terminale Dynaterm in modo automatico. È possibile specificare dei parametri, i quali devono essere dati nella sintassi prevista dal programma Dynaterm. In ogni caso vengono passati per default all'emulatore i seguenti parametri: -m -q5 -l -b -d -s -p -z [-u] [-x] [-C] [-E] [-L] [-N] [-P] [-U] -k -g [-j] -o. Alla fine dell'esecuzione dell'emulatore la variabile predefinita `RETURN' conterrà il codice di uscita.
 
       CUX> DYNATERM                    ( Invoca l'emulatore             )
       ..........
Attenzione: lo stato di uscita di questo comando influisce sul valore del flag di errore (cfr. i comandi `IFER' e `IFNOER').


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

DUPLEX

Attiva l'half o il full duplex e ammette come parametro una delle due stringhe `HALF' o `FULL'. Se si specifica il comando `DUPLEX HALF' si abilita automaticamente l'eco locale (cfr. comando `ECHO') mentre non è vero il viceversa.
 
       CUX> DUPLEX HALF              ( Attiva l'half-duplex              )
       ..........
       CUX> DUPLEX FULL              ( Attiva il full-duplex             )
       CUX> ECHO OFF                 ( Disattiva l'eco locale            )


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

ECHO

Ammette come parametro uno dei due valori `ON' e `OFF' (default). Se impostato a `ON' attiva l'eco dei caratteri digitati a video, mentre se impostato a `OFF' l'eco dei caratteri digitati è disattivato. L'attivazione di questo comando è utile quando l'host o il programma a cui si è collegati non effettua l'eco dei caratteri battuti in interattivo, e normalmente questo avviene quando si è in half-duplex.
 
       CUX> ECHO ON                  ( Attiva l'eco dei caratteri        )
       ..........
       CUX> ECHO OFF                 ( Disattiva l'eco dei caratteri     )
A partire dalla versione 3.8b l'abilitazione dell'eco locale ha un effetto collaterale sul comando `RSTRING' (cfr.), nel senso che, qualora venga abilitato (`ECHO'=`on'), ogni carattere ricevuto dalla linea di comunicazione per mezzo dell'istruzione `RSTRING' viene scritto sulla linea stessa.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

LOADBTN

Carica nuovi bottoni indicando, come unico parametro, il file di descrizione, per esempio:
 
       CUX> LOADBTN modem       ( carica un ste di bottoni               )

Il comando cercherà il file indicato nella directory corrente e nella directory ETC

Comando disponibile solo per le versioni per ambienti grafici.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

PRINT

Se attivato questo comando stampa tutte le operazioni eseguite durante il conversazionale. In ambiente MsDos questa stampa viene eseguita in tempo reale, mentre in ambiente Unix/Xenix viene eseguita solo dopo aver digitato il comando `PRINT OFF' inviando i dati allo spooler di sistema. Nel caso in cui si esca da Cux ciò verrà eseguito automaticamente.
 
       CUX> PARITY NONE         ( Specifica il tipo di parità            )
       CUX> BIT 8               ( Definisce le dimensioni del dato       )
       CUX> BAUD 9600           ( Specifica il baud-rate                 )
       CUX> PORT tty1a          ( Definisce la porta da utilizzare       )
       CUX> PRINT ON            ( Attiva la stampa delle operazioni      )
       CUX> CONV                ( Entra in conversazionale               )
       ..........
       CUX> PRINT OFF           ( Disattiva la stampa                    )


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

RESIZE

Ridimensiona la finestra e necessita come parametri obbligatori il numero di colonne e il numero di righe.
 
       ..........
       CUX> RESIZE 40 25        ( Dimezza la larghezza della finestra    )
       ..........
       CUX> RESIZE 80 25        ( Finestra di dimensioni standard        )

Comando disponibile solo per le versioni per ambienti grafici.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

SAVE

Permette, se attivato, di salvare tutte le operazioni eseguite durante il conversazionale e tutti i dati ricevuti dalla linea di comunicazione tramite i comandi `RSTRING' e `XRSTRING'.
 
       ..........
       CUX> FILE prova.txt             ( Definisce il file di default    )
       CUX> SAVE ON                    ( Attiva l'autosave               )
       CUX> CONV                       ( Entra in conversazionale        )
       ..........
       CUX> SAVE OFF                   ( Disattiva l'autosave            )


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

STDOUT

Se attivato, questo comando permette di ottenere un output trasparente su standard output. Questo significa che eventuali sequenze di escape vengono interpretate dal terminale e non da Cux come avviene quando questa opzione viene disattivata (`STDOUT OFF').
 
       ..........
       CUX> STDOUT ON                 ( Attiva l'output trasparente      )
       CUX> CONV                      ( Entra in conversazionale         )
       ..........
       CUX> STDOUT OFF                ( Disattiva l'output trasparente   )
In ambienti Unix/Xenix premendo i tasti di funzione vengono restituite le stringhe di escape previste per quel terminale, mentre in MsDos vengono restituite, in modo fisso, le seguenti:
 
       F1      <ESC>[M      S_F1    <ESC>[Y      BS        <BACKSPACE>
       F2      <ESC>[N      S_F2    <ESC>[:      LEFT      <ESC>[D
       F3      <ESC>[O      S_F3    <ESC>[a      RIGHT     <ESC>[C
       F4      <ESC>[P      S_F4    <ESC>[b      INS       <ESC>[L
       F5      <ESC>[Q      S_F5    <ESC>[c      DEL       <RUBOUT>
       F6      <ESC>[R      S_F6    <ESC>[d      HOME      <ESC>[H
       F7      <ESC>[S      S_F7    <ESC>[e      END       <ESC>[F
       F8      <ESC>[T      S_F8    <ESC>[f      PGUP      <ESC>[I
       F9      <ESC>[U      S_F9    <ESC>[g      PGDN      <ESC>[G
       F10     <ESC>[V      S_F10   <ESC>[h      UP        <ESC>[A
       F11     <ESC>[W      S_F11   <ESC>[i      DOWN      <ESC>[B
       F12     <ESC>[X      S_F12   <ESC>[j      C_LEFT    <ESC>[W
       C_F1    <ESC>[k      A_F1    <ESC>[`      C_RIGHT   <ESC>[X
       C_F2    <ESC>[l      A_F2    <ESC>[~      C_HOME    <ESC>[u
       C_F3    <ESC>[m      A_F3    <ESC>[%      C_END     <ESC>[v
       C_F4    <ESC>[n      A_F4    <ESC>[(      C_PGUP    <ESC>[i
       C_F5    <ESC>[o      A_F5    <ESC>[#      C_PGDN    <ESC>[j
       C_F6    <ESC>[p      A_F6    <ESC>[$      A_1       <ESC>[x
       C_F7    <ESC>[q      A_F7    <ESC>[;      A_2       <ESC>[y
       C_F8    <ESC>[r      A_F8    <ESC>[.      A_3       <ESC>[z
       C_F9    <ESC>[s      A_F9    <ESC>[+      A_4       <ESC>[@
       C_F10   <ESC>[t      A_F10   <ESC>[*      A_5       <ESC>[[
       C_F11   <ESC>[u      A_F11   <ESC>[)      A_6       <ESC>[\
       C_F12   <ESC>[v      A_F12   <ESC>[}      A_7       <ESC>[]
       S_TAB   <ESC>[Z                           A_8       <ESC>[^
       A_MINUS <ESC>[`                           A_9       <ESC>[_
       A_PLUS  <ESC>[{                           A_0       <ESC>[w


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

TAB

Comando per settare di quanti spazzi a destra deve spostarsi il cursore alla ricezione del carattere `TAB' che di default sono 8.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.7 Protocolli


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

CPJ

Comando per ricezione e trasmissione ordini e mancanti con protocollo proprietario. Ha come parametri obbligatori il file da inviare e il file da ricevere e come opzionali:

NCDATA
nessun controllo sull'ultimo campo del record dati;
NCEND
nessun controllo sul record finale;
NCOFF
nessun controllo sulle offerte;
NCHEAD
nessun controllo sull'header;
NCRIS
nessun controllo sui record di risposta;
NCCODE
nessun controllo sui codici farmaceutici;
NCSEQ
nessun controllo sulla sequenza logica dei record;
NCUUU
conferma la disponibilità.
Come ultimo parametro si può aggiungere il massimo timeout di attesa che per default è 10 secondi e può essere variato tra 5 secondi e 240 secondi.

Se si vuole ricevere le AAAAA in testa conviene usera un `RSTRING' con opportuno timeout prima del comando `CPJ'.

Il comando da la possibilità di effettuare un controllo sulla riuscita della trasmissione modificando il valore della variabile `WHICH':
 
0 non è stato spedito l'ordine;
1 non è arrivato il mancante;
2 le transazioni sono andate a buon fine;
3 la richiesta di disponibilità non è stata terminata, ma il file è stato ricevuto.

Col comando `DELTRANS' si stabilisce il delay tra un record e l'altro nella fase di invio dell'ordine.

Abbinandolo al comando `CMDSAVE' si può salvare l'intero transito della linea nell'usuale file .SAV se il log è abilitato è consigliato disabilitare protocollo xon/xoff.

Attenzione: setta il flag di errore (cfr. i comandi `IFER' e `IFNOER').

N.B.: il comando è disponibile solo su specifica richiesta.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

CPJREC

Comando per la ricezione ordini con protocollo proprietario. Ha come parametro obbligatorio il file da ricevere e come opzionali gli stessi del comando `CPJ' con in più:

NCACK
evita un ACK di troppo a conferma del record di chiusura;
NCCLEAN
ripulirsce la linea fino al primo CRLF o 4 secondi di attesa;
NCDUP
elimina i record doppi consecutivi.

Se si vuole inviare le AAAAA in testa conviene usare un `STRING'.

Nella variabile `WORD' è presente il record di testa dal quale è possibile ricavarne i dati del chiamante.

Attenzione: setta il flag di errore (cfr. i comandi `IFER' e `IFNOER').

N.B.: il comando è disponibile solo su specifica richiesta.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

CPJSEND

Comando per l'invio mancanti con protocollo proprietario. Ha come parametro obbligatorio il file da inviare e come opzionali gli stessi del comando `CPJ' con in più:

NCSKIP
se il file non contiene la prima riga in quanto uguale a quella del comando `CPJREC';
PDELAY=nn
delay tra le stringhe fittizie in attesa di mancante (default 20).

Il comando modifica il valore della variabile `WHICH' che se vale:
 
1 richiesta di disponibilità affermativa.

Nella variabile `WORD' deve essere messa la stringa da inviare per esempio `900'.

Attenzione: setta il flag di errore (cfr. i comandi `IFER' e `IFNOER').

N.B.: il comando è disponibile solo su specifica richiesta.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

CTRLX

Nel caso di file-transfer con uno tra i protocolli Xmodem o Ymodem tale comando permette di definire il numero di <CTRL><X> necessari per interrompere il protocollo; questo valore è usato internamente in quanto nell'uso di Cux il carattere di `ABORT' è comunque il <DEL>, che per default produrrà un numero di 3 <CTRL><X> inviati sulla linea.
 
       CUX> CTRLX 3                    ( Specifica il numero di ctrl-x   )
        .........


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

DELTRANS

Il comando `DELTRANS' permette di specificare il ritardo in tick di sistema tra un carattere e l'altro trasmessi sulla linea dal comando `TRANSMIT' nello stato di `TRANSPARENT ON'. Valori accettabili vanno da 0 a 255 (Vedere la variabile `HZ' nell'appendice L'environment); l'unità di misura è il diciottesimo di secondo. Nello stato di `TRANSPARENT OFF' il valore specificato viene invece utilizzato come ritardo interlinea.
 
       CUX> DELTRANS 2               ( Specifica il ritardo              )
       ..........
Attenzione: a partire dalla versione 3.8b il comando `DELTRANS' è stato modificato, nel senso di esprimere un ritardo non più tra due successivi caratteri ma tra due successivi blocchi di caratteri, dove il blocco è determinato dal comando `LENREK'.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

LENREK

Il comando `LENREK' permette di definire la lunghezza del record durante le fasi di trasmissione dei file. La lunghezza in questione corrisponde al numero di byte da trasferire in ogni blocco e per default è definito a 128, mentre i valori selezionabili variano da 32 a 8192. Nel caso di utilizzo di pseudo-tty si consiglia di impostare le dimensioni del record a 128 byte, mentre nel caso di utilizzo di socket le dimensioni consigliate sono di 8192 byte.

Attenzione: il protocollo Kermit non può utilizzare record di lunghezza superiore a 91 byte. Qualunque valore maggiore di 91 assegnato al record viene riportato comunque al valore massimo accettabile.

Attenzione: i seguenti protocolli forzano la lunghezza del record a 1024 byte:

XMODEM1K
Protocollo Xmodem con blocco di 1024 byte.
YMODEM1K
Protocollo Ymodem con blocco di 1024 byte.
XMODEM1KC
Protocollo Xmodem con blocco di 1024 byte e controllo CRC.
YMODEM1KC
Protocollo Ymodem con blocco di 1024 byte e controllo CRC.
 
       CUX> PROTOC CUXENC             ( Specifica il tipo di protocollo  )
       CUX> LENREK 512                ( Definisce lunghezza record       )
       CUX> MAXBUF 1024               ( Definisce dimensioni del buffer  )
       CUX> DIAL 555,5555             ( Chiama il numero scelto          )
       CUX> SEND prova.bin            ( Spedisce il file scelto          )
       CUX> MAXBUF 2048               ( Definisce dimensioni del buffer  )
       CUX> PROTOC XMODEM1KC          ( Specifica il tipo di protocollo  )
       ..........
       CUX> COMMAND                   ( Ritorna in modalità comandi      )

Attenzione: sino alla versione 3.8b la lunghezza massima del record era di 1024 byte.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

LOWERNAME

Tale comando permette di minuscolizzare i path dei nomi di file in fase di ricezione.
 
       CUX> LOWERNAME          ( Minuscolizza i pathname                 )
       CUX> XREC /usr/tmp/     ( Riceve i file                           )
       ..........


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

MAX_K

Imposta il massimo valore in Kbyte di file trasmissibili per ogni singolo comando `XSEND' o ricevibili per ogni singolo comando `XREC' ma solo su protocolli Cux. Per default vale 0, ad indicare che non esistono limiti.
 
       CUX> PROTOC CUXENC      ( Imposta il protocollo per file transfer )
       CUX> MAX_K 50           ( Imposta il massimo valore in 50 Kbyte   )
       CUX> XSEND /usr/tmp/    ( Trasmette i file                        )
       ..........


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

NEWCUX

Ammette come parametro uno dei due valori `ON' e `OFF'. Se impostato a `OFF' forza Cux ad usare protocolli compatibili con le versioni precedenti alla 3.8, mentre se impostato a `ON' permette di utilizzare il nuovo metodo di codifica dei dati.

A partire dalla versione 3.8, infatti, Cux garantisce che in caso di file transfer il valore di ogni byte di controllo di un pacchetto abbia un valore diverso da ogni possibile valore assunto dai byte delimitatori del pacchetto stesso. Questa caratteristica elimina la possibilità, per quanto remota, di conflitti a livello di trasporto dovuti alla impredicibilità intrinseca dei valori che assumeranno alcuni particolari byte di controllo.

Di conseguenza, per garantire la compatibilità con le versioni precedenti di Cux è indispensabile impostare a `OFF' tale opzione la quale indica di non utilizzare questa nuova feature.
 
       CUX> NEWCUX OFF        ( Forza la compatibilità sui file          )
                              ( transfer con le versioni precedenti      )
       .......... 
La funzionalità di questo comando è del tutto analoga a quella dell'opzione `-EC' (cfr.).

Attenzione però che tale comando assume significato solamente in relazione ai protocolli Cux.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

NIBBLE

Abilita o disabilita (default) la trasmissione di file binari con protocolli Xmodem e Ymodem spezzando ogni byte in due parti (che vengono chiamate appunto nibble); l'uso di questo meccanismo implica il raddoppio del tempo di trasmissione.
 
       CUX> PROTOC XMODEM             ( Specifica il tipo di protocollo  )
       CUX> NIBBLE ON                 ( Abilita trasmissione binari      )
       CUX> SEND pippo.exe            ( Trasmette il file scelto         )
       ..........
       CUX> NIBBLE OFF                ( Disabilita trasmissione binari   )
       CUX> SEND pippo.txt            ( Trasmette il file scelto         )
Attenzione: l'uso di tale comando ha significato solo per file transfer con protocolli Xmodem e Ymodem.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

OOB

Questo comando assume significato solo su linee Tcp/Ip e permette di inviare il carattere indicato come parametro come dato out-of-band. Valori accettabili per il carattere vanno da 0 a 255.
 
       CUX> OOB 32               ( Invia come out-of-band uno spazio     )
       .......... 


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

PADCHAR

Imposta il carattere di padding e può essere un qualunque valore della tavola ASCII compreso tra 0 e 127 inclusi. Per default assume valore 0. L'uso di un carattere di padding e la possibilità di definire tale carattere in modo parametrico è impiegata dal protocollo Kermit nella fase iniziale di contrattazione (cfr. la sezione Controllo delle operazioni relativa al protocollo Kermit nell'appendice Protocolli).
 
       CUX> PADCHAR 32 ( Imposta come carattere di padding lo spazio     )
       .......... 


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

PADNUM

Imposta il numero di caratteri di padding e può essere un qualsiasi numero compreso tra 0 e 999 inclusi. Per default assume valore 0. Anche tale comando, come già il comando `PADCHAR' (cfr.), trova impiego con il protocollo Kermit, il quale prevede la possibilità di definire parametricamente nella fase di contrattazione iniziale il numero dei caratteri di padding (cfr. la sezione Controllo delle operazioni relativa al protocollo Kermit nell'appendice Protocolli).
 
       CUX> PADNUM 16     ( Imposta il numero di caratteri di padding    )
       .......... 


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

PATH

Abilita o disabilita la trasmissione del path completo dei file trasferiti con uno tra i protocolli Ymodem, Zmodem e Kermit; se abilitata sulla macchina ricevente verrano create le directory opportune. Per default la trasmissione del path è disabilitata.
 
       CUX> PROTOC YMODEM             ( Specifica il tipo di protocollo  )
       CUX> PATH ON                   ( Abilita trasmissione del path    )
       CUX> SEND /u/utente/pippo.txt  ( Trasmette il file scelto         )
       CUX> PATH OFF                  ( Disabilita trasmissione del path )


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

PKDELAY

Aggiunge un ritardo espresso in millisecondi al termine della trasmissione di un singolo pacchetto di una window al fine di evitare una collisione tra pacchetti quando si utilizzano protocolli finestrati (cfr. il comando `WINDOW'). Il ritardo desiderato deve essere indicato come parametro e può essere un qualsiasi valore numerico compreso tra 0 (default) e 128 inclusi.
 
       CUX> WINDOW 128               ( Numero di pacchetti per window    )
       CUX> PKDELAY 1                ( Imposta il ritardo tra pacchetti  )


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

PROTOC

Definisce il tipo di protocollo. Valori accettabili sono i seguenti:

CUXTXT
Protocollo Cuxtxt (default).
CUXBIN
Protocollo Cuxbin.
CUXENC
Protocollo Cuxenc.
XMODEM
Protocollo Xmodem.
XMODEMC
Protocollo Xmodem con controllo CRC.
XMODEM1K
Protocollo Xmodem con blocco di 1024 byte.
XMODEM1KC
Protocollo Xmodem con blocco di 1024 byte e controllo CRC.
YMODEM
Protocollo Ymodem.
YMODEM1K
Protocollo Ymodem con blocco di 1024 byte.
YMODEMC
Protocollo Ymodem con controllo del CRC.
YMODEM1KC
Protocollo Ymodem con blocco di 1024 byte e controllo CRC.
ZMODEM
Protocollo Zmodem.
KERMIT
Protocollo Kermit.
XON
Protocollo di handshake Xon/Xoff abilitato.
XOFF
Protocollo di handshake Xon/Xoff disabilitato.
 
       CUX> PROTOC XON               ( Specifica il tipo di protocollo   )
       CUX> CONV                     ( Entra in conversazionale          )
       ..........
       CUX> PROTOC XOFF              ( Disabilita il protocollo Xon      )
       ..........

Se viene abilitato il protocollo di handshake Xon/Xoff per mezzo del comando
 
       CUX> PROTOC XON
allora viene automaticamente disabilitato qualsiasi altro protocollo per file-transfer eventualmente abilitato in precedenza. Attenzione però che in tal caso eventuali operazioni di `REC', `SEND', `XREC' e `XSEND' vengono effettuate automaticamente con protocollo Cuxenc.

Se invece il protocollo di handshake Xon/Xoff viene disabilitato per mezzo del comando
 
       CUX> PROTOC XOFF
allora viene automaticamente impostato il protocollo di file-transfer al valore di default Cuxtxt.

L'utilizzo del protocollo di handshake Xon/Xoff è raccomandato qualora si voglia utilizzare Cux come emulatore di terminale, poiché la selezione di altri tipi di protocolli quasi sicuramente produrrebbe perdita di caratteri sulla linea di comunicazione.

Se nella trasmissione di file viene utilizzato uno dei protocolli Cux (Cuxtxt, Cuxbin o Cuxenc) è del tutto indifferente per il ricevitore quale protocollo utilizzare, purché faccia parte di uno dei tre protocolli appena citati.

Inoltre il protocollo Zmodem riconosce e si adegua ai protocolli Ymodem e Xmodem, mentre il protocollo Ymodem riconosce e si adegua al protocollo Xmodem. È quindi possibile per il trasmettitore specificare ad esempio il protocollo Xmodem e per il ricevitore specificare uno tra i protocolli Zmodem o Ymodem: in tal caso il ricevitore si adeguerà automaticamente al protocollo Xmodem scelto dal trasmettitore. Un discorso del tutto analogo vale nel caso in cui il trasmettitore specifichi il protocollo Ymodem e il ricevitore il protocollo Zmodem: in tal caso il ricevitore si adeguerà automaticamente al protocollo Ymodem scelto dal trasmettitore.

Infine, se si utilizzano altre combinazioni di protocolli deve esserci invece una completa concordanza tra il protocollo utilizzato dal trasmettitore e quello utilizzato dal ricevitore (Vedere i comandi `REC', `XREC', `SEND' e `XSEND').


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

REC

Questo comando permette di ricevere un file; è possibile specificare il nome del file da assegnare al file ricevuto definendolo come parametro oppure utilizzando il nome specificato dal comando `FILE'. È anche possibile assegnare come nome un path completo, purché tutte le directory specificate esistano.
 
       CUX> PROTOC XMODEM           ( Specifica il tipo di protocollo    )
       CUX> REC /usr/pippo.txt      ( Riceve il file scelto              )
Il file-transfer può essere interrotto dalla ricezione di un segnale opportunamente intercettato (cfr. comando `TRAP'), ma solo se viene utilizzato uno dei protocolli Cux.

Attenzione: lo stato di uscita di questo comando influisce sul valore del flag di errore (cfr. i comandi `IFER' e `IFNOER').


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

REPEAT

Il comando `REPEAT' permette di definire il numero di ripetizioni, in caso di errore, del trasferimento di un blocco di dati. Nel caso in cui l'errore persista per tutte le ripetizioni definite, la trasmissione viene interrotta e viene segnalato l'errore.
 
       CUX> REPEAT 3                 ( Definisce il numero ripetizioni   )
       CUX> PROTOC CUXENC            ( Specifica il tipo di protocollo   )
       CUX> SEND pippo.txt           ( Trasmette il file scelto          )
       Errore di trasmissione
       CUX> 
Attenzione: a partire dalla release 3.8 tale comando influisce anche sulla sincronizzazione, vale a dire sul timeout di aggancio iniziale, dei protocolli Cux. In altri termini influisce sul tempo in cui ad esempio un comando `XREC' attende l'inizio di una ricezione di file prima di uscire con errore (a tale proposito si veda anche la capability `Rt' nel capitolo dedicato a Il file modmcap).


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

SEND

Questo comando permette di trasmettere un file scelto. È possibile specificare il nome del file da trasmettere definendolo come parametro oppure utilizzando il nome specificato dal comando `FILE'. È anche possibile assegnare come nome un path completo purché tutte le directory (e il file) esistano.
 
       CUX> PORT COM1            ( Imposta la porta                      )
       CUX> BAUD 19200           ( Specifica il baud rate                )
       CUX> BIT 8                ( Dimensioni della word                 )
       CUX> PARITY NONE          ( Definisce il tipo di parità           )
       CUX> PROTOC CUXENC        ( Specifica il tipo di protocollo       )
       CUX> SEND prova.exe       ( Trasmette il file                     )
       ..........
Il file-transfer può essere interrotto dalla ricezione di un segnale opportunamente intercettato (cfr. comando `TRAP'), ma solo se viene utilizzato uno dei protocolli Cux.

Attenzione: lo stato di uscita di questo comando influisce sul valore del flag di errore (cfr. i comandi `IFER' e `IFNOER').


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

STAR

Seguito da un'arbitraria stringa di caratteri, permette di selezionare il messaggio da visualizzare in caso di file transfer. Normalmente Cux visualizza durante un file transfer una serie di caratteri `*' proporzionale al numero di pacchetti di dati inviati o ricevuti. La visualizzazione di tali asterischi è comunque disattivata se l'eco dei comandi a video è stato inibito (cfr. comando `MUTE'). La stringa selezionata tramite il comando `STAR' verrà invece visualizzata anche se l'eco dei comandi a video è stato disabilitato e sostituisce gli usuali `*'. Il comando senza alcun parametro riporta alla situazione di default con la visualizzazione degli asterischi.
 
       CUX> MUTE ON                ( Disabilita l'eco dei comandi        )
       CUX> STAR File-transfer...  ( Seleziona la stringa                )
       CUX> XREC .                 ( Riceve i file                       )
       File-transfer...
       CUX>
La funzionalità di questo comando è del tutto analoga a quella dell'opzione `-TS' (cfr.).


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

TRANSMIT

Il comando `TRANSMIT' permette di inviare un file ASCII sulla linea di comunicazione; si presuppone che a ricevere il file vi sia un programma in attesa del file trasmesso (se sulla linea di comunicazione vi è un Cux in conversazionale vedrete scorrere il file sullo schermo). È possibile specificare il nome del file da trasmettere definendolo come parametro oppure utilizzando il nome specificato dal comando `FILE'. Il funzionamento di tale comando dipende anche dai comandi `TRANSPARENT' e `DELTRANS'.

A partire dalla versione 4.0 tale comando è stato modificato in modo da visualizzare una stringa di caratteri che permetta di tracciare l'avanzamento del trasferimento dei dati (cfr. comando `STAR').
 
       CUX> PARITY NONE            ( Specifica il tipo di parità         )
       CUX> BIT 8                  ( Definisce le dimensioni del dato    )
       CUX> PROTOC XON             ( Specifica il tipo di protocollo     )
       CUX> FILE prova.txt         ( Specifica il file di default        )
       CUX> TRANSMIT               ( Trasferisce il file                 )
Per evitare perdite di caratteri e garantire un corretto funzionamento del comando si consiglia di impostare il protocollo di handshake Xon/Xoff (cfr. comando `PROTOC'). Occorre tuttavia prestare attenzione al fatto che il file da trasmettere contenga esclusivamente caratteri ASCII, dal momento che l'eventuale occorrenza del carattere di Xoff (in genere <CTRL><S>) determinerebbe il blocco del trasferimento in attesa di un successivo carattere di Xon (in genere <CTRL><Q>) che tuttavia non può arrivare (a questo proposito si veda però il comando `XOFF'). Se il file dovesse contenere anche caratteri non-ASCII si può utilizzare, se possibile, il protocollo di handshake hardware Cts/Rts. Attenzione: lo stato di uscita di questo comando e la mancanza del file da trasmettere influiscono sul valore del flag di errore (cfr. i comandi `IFER' e `IFNOER').


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

TRANSPARENT

Il comando `TRANSPARENT' permette di definire la modalità di trasmissione utilizzata dal comando `TRANSMIT'. Le modalità disponibili sono le seguenti:

Trasmissione a caratteri
Selezionabile digitando `TRANSPARENT ON'; utile quando a ricevere sia un programma che deve interpretare il file trasferito.
Trasmissione a righe
Selezionabile digitando `TRANSPARENT OFF' (default); utile quando a ricevere sia un programma che viene utilizzato solitamente con utenti interattivi (BBS o banche dati). In questa modalità ad ogni fine riga viene aggiunto un `CR'.
 
       CUX> BIT 8                   ( Definisce le dimensioni del dato   )
       CUX> PROTOC XON              ( Specifica il tipo di protocollo    )
       CUX> FILE prova.txt          ( Specifica il file di default       )
       CUX> TRANSPARENT ON          ( Attiva trasmissione a caratteri    )
       CUX> DELTRANS 3              ( Introduce un ritardo               )
       CUX> TRANSMIT                ( Trasferisce il file                )
       ...........
Attenzione: a partire dalla versione 3.8b il comando `TRANSPARENT' è stato modificato: impostato a `ON' seleziona non più la tramsissione a caratteri ma la trasmissione a blocchi, dove la dimensione del singolo blocco è impostata tramite il comando `LENREK' (cfr. i comandi `DELTRANS' e `LENREK').


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

UNLINK

Ammette come parametro uno dei due valori `ON' e `OFF' (default). Se impostato a `ON' forza Cux a cancellare in progressione i file spediti correttamente, mentre se impostato a `OFF' i file spediti correttamente non vengono rimossi. L'attivazione della rimozione automatica si ottiene facendo seguire a `UNLINK' il parametro `ON', mentre la disabilitazione della rimozione automatica si ottiene facendo seguire il parametro `OFF'.
 
       CUX> UNLINK ON     ( Forza Cux a rimuovere i file                 )
       CUX> XSEND .       ( spediti correttamente                        )
       .......... 
La funzionalità di questo comando è del tutto analoga a quella dell'opzione `-rm' (cfr.).


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

UPPERNAME

Tale comando permette di maiuscolizzare i path dei nomi di file in fase di ricezione.
 
       CUX> UPPERNAME          ( Maiuscolizza i pathname                 )
       CUX> XREC /usr/tmp/     ( Riceve i file                           )
       ..........


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

WINDOW

Solitamente i protocolli Cux spediscono un singolo pacchetto di una lunghezza prefissata dal comando `LENREK', e per ognuno di essi attendono la risposta in relazione all'esito del trasferimento del pacchetto. Purtroppo questo meccanismo, su modem half-duplex molto veloci o su reti a commutazione di pacchetto, provoca delle attese che vanno ad influire sul tempo di trasmissione, mentre l'ideale sarebbe trasferire molti pacchetti ed avere una singola risposta sull'esito del trasferimento. È stato cos`ì introdotto il comando `WINDOW' che permette di specificare il numero di pacchetti (finestra) che si vogliono trasferire prima di ricevere la risposta. Il comando ha la sintassi:
 
        window finestra
dove finestra deve essere un numero intero compreso tra 0 e 128 inclusi.

Ciò che rende maggiormente interessante il comando `WINDOW' è la sua interazione con il comando `LENREK': grazie infatti ad una corretta inizializzazione dei parametri associati ai due comandi è possibile ottenere transfer-rate decisamente migliori. Occorre tuttavia cercare, in maniera del tutto sperimentale, le giuste dimensioni della finestra con pacchetti più lunghi possibile.

Un altro comando che interagisce con il comando `WINDOW' è il comando `PKDELAY', il quale viene utilizzato per ridurre al minimo i rischi di collisione tra pacchetti, tipici quando si imposta una lunghezza di pacchetto troppo ampia rispetto ai limiti del sistema.

Nell'esempio che segue abbiamo voluto indicare dei valori tipici qualora si utilizzino dei modem con velocità superiori a 9600 baud:
 
       CUX> WINDOW 32               ( Numero di pacchetti per window     )
       CUX> LENREK 256              ( Lunghezza di un singolo pacchetto  )
       CUX> PKDELAY 0               ( Ritardo in ms tra pacchetti        ) 
       ...........
Attenzione: fino alla release 3.7 di Cux, nel caso di trasmissione monofile sia il ricevitore che il trasmettitore devono aver definito la stessa dimensione della finestra, mentre nella trasmissione multifile è il trasmettitore a decidere le dimensioni e a comunicarle al ricevitore.
A partire invece dalla release 3.8 di Cux, sia nel caso della trasmissione monofile sia nel caso della trasmissione multifile è sempre il trasmettitore a decidere le dimensioni della finestra e a comunicarle al ricevitore.

Con il comando:
 
       CUX> WINDOW 0                ( Numero di pacchetti per window     )
si torna alla modalità di default di una risposta per ogni singolo pacchetto, disabilitando cioè la finestratura.

Occorre tuttavia sottolineare che non ogni protocollo permette la finestratura nel trasferimento dei pacchetti. Tra i protocolli implementati in Cux, oltre a quelli proprietari Cuxtxt, Cuxbin e Cuxenc, solamente il protocollo Zmodem offre questa possibilità (cfr. la sezione dedicata ai protocolli Cux e al protocollo Zmodem nell'appendice Protocolli). Di conseguenza solo per questi protocolli ha senso specificare una finestra diversa da zero.

Attenzione: questo comando è stato introdotto con la versione 3.7 di Cux e il suo utilizzo con versioni precedenti del programma provoca degli errori di trasmissione.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

XREC

Riceve più file trasmessi tramite l'istruzione `XSEND'. Il comando `XREC' può essere opzionalemnte seguito da un parametro che indica la directory in cui porre i file ricevuti. Se non è specificato alcun parametro i file ricevuti verranno posti nella stessa directory dalla quale sono stati trasmessi. Eventuali directory inesistenti verranno opportunamente create.
 
       ..........                   
       CUX> PROTOC YMODEM    ( Specifica il tipo di protocollo           )
       CUX> XREC /usr/tmp    ( Riceve i file nella directory /usr/tmp    )
       ..........                   
Il file-transfer può essere interrotto dalla ricezione di un segnale opportunamente intercettato (cfr. comando `TRAP'), ma solo se viene utilizzato uno dei protocolli Cux.

Attenzione: lo stato di uscita di questo comando influisce sul valore del flag di errore (cfr. i comandi `IFER' e `IFNOER').


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

XSEND

Permette di inviare più file; la selezione dei file può essere effettuata utilizzando uno o più pattern in cui sono ammessi anche i metacaratteri asterisco (`*') e punto interrogativo (`?').
 
       CUX> PROTOC CUXENC           ( Specifica il tipo di protocollo    )
       CUX> XSEND \usr\bin\*.exe    ( Spedisce i file scelti             )
Il file-transfer può essere interrotto dalla ricezione di un segnale opportunamente intercettato (cfr. comando `TRAP'), ma solo se viene utilizzato uno dei protocolli Cux.

Attenzione: lo stato di uscita di questo comando influisce sul valore del flag di errore (cfr. i comandi `IFER' e `IFNOER').


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.8 Comandi di sistema


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

BOOT

Questo comando, attivo solo in ambiente MsDos, permette di effettuare un boot a freddo della macchina.
 
       CUX> BOOT                     ( Effettua un boot                  )
       ..........
Attenzione: la caduta della portante durante l'esecuzione del comando `REMOTE' determina un boot della macchina, ma solo se è stato precedentemente impostato il controllo modem per mezzo del comando `MODEMCTL ON'.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

CAT

Visualizza il file specificato come parametro. È possibile interrompere la visualizzazione del file per mezzo del tasto <DEL>.
 
       CUX> CAT pippo.txt          ( Visualizza il file pippo.txt        )
       ..........

Dalla versione 4.0 il comando può essere interrotto per mezzo del tasto <DEL> o dalla ricezione di un segnale debitamente intercettato (cfr. comando `TRAP').


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

CD

Cambia la directory corrente a quella indicata come parametro. Se la directory non esiste oppure (in ambiente Unix/Xenix) esiste ma non si hanno i permessi opportuni per permetterne l'accesso viene impostato il flag di errore.
 
       CUX> CD ..                  ( Cambia la directory corrente        )
       CUX>
Attenzione: lo stato di uscita di questo comando influisce sul valore del flag di errore (cfr. i comandi `IFER' e `IFNOER').


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

CHROOT

Questo comando, attivo solo in ambiente Unix/Xenix, permette di cambiare la directory root. Se non si hanno i permessi opportuni per permettere l'operazione viene impostato il flag di errore.
 
       CUX> CHROOT /tmp    ( Imposta la nuova root directory a /tmp      )
       .......... 
Attenzione: lo stato di uscita di questo comando influisce sul valore del flag di errore (cfr. i comandi `IFER' e `IFNOER').


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

CLS

Pulisce lo schermo.
 
       CUX> CLS                      ( Pulisce lo schermo                  )
       CUX>


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

CMP

Confronta due file, specificati come parametri, per determinare se sono uguali. Se i due file sono diversi viene impostato il flag di errore, altrimenti il flag di errore viene azzerato. Tramite questo comando possono essere confrontati sia file di testo sia file binari.
 
       CUX> CMP pippo.txt pluto.txt  ( Confronta il file pippo.txt       )
       ..........                    ( con il file pluto.txt.            )
       CUX> IFER GOTO DIFFERENTI     ( Se sono diversi salta alla        )
       ..........                    ( etichetta DIFFERENTI.             )
Attenzione: lo stato di uscita di questo comando influisce sul valore del flag di errore (cfr. i comandi `IFER' e `IFNOER').


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

COPY

Copia di file. Tale comando permette di copiare un file su un altro file o di copiare più file in una directory.
 
       CUX> COPY file1 file2         ( Copia il file file1 in file2      )
       ..........
       CUX> COPY f* /tmp             ( Copia tutti i file che iniziano   )
       ..........                    ( con f nella directory /tmp)

Dalla versione 4.0 il comando può essere interrotto per mezzo del tasto <DEL> o dalla ricezione di un segnale debitamente intercettato (cfr. comando `TRAP').

Attenzione: lo stato di uscita di questo comando influisce sul valore del flag di errore (cfr. i comandi `IFER' e `IFNOER').


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

DIR

Elenca i file indicati come parametro. Se non è specificato alcun parametro elenca il contenuto della directory corrente.
 
       CUX> DIR /etc                 ( Elenca la directory /etc          )
       ..........
       CUX> DIR /etc/h*              ( Elenca i file che iniziano con h  )
       ..........                    ( nella directory /etc              )
       CUX> DIR                      ( Elenca la directory corrente      )
       ..........


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

DISPLAY

Tale comando, disponibile solo in ambiente MsDos, permette di abilitare o disabilitare il display locale con il comando `REMOTE'. Ammette come parametro uno dei due valori `ON' e `OFF' (default). Se impostato a `ON' sulla macchina locale non viene visualizzato lo svolgimento della sessione remota, mentre se impostato a `OFF' lo svolgimento della sessione remota viene visualizzato.

Se impostato a `ON' viene forzato ad `ON' anche il comando `KEYBOARD'
 
       CUX> DISPLAY ON           ( Abilita il video remoto               )


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

DRIVE

Questo comando, attivo solo in ambiente MsDos, permette di cambiare il drive corrente. Il nuovo drive da impostare deve essere passato come parametro e può essere opzionalmente seguito dal carattere `:'.
 
       ..........
       CUX> DRIVE A:       ( Imposta come drive corrente il drive A:     )
       CUX> PWD            ( Visualizza la directory corrente            )
       A:\
       CUX> DRIVE C        ( Imposta come drive corrente il drive C:     )
       ..........


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

ERASE

Cancella il file indicato come parametro o, se nessun file viene specificato, cancella il file di default (cfr. comando `FILE'). È possibile utilizzare, nel nome del file, i metacaratteri asterisco (`*') e punto interrogativo (`?'), specificando in tal modo un pattern che può indicare un insieme di file.
 
       CUX> SYSTEM ls            ( Esegue il comando Unix 'ls'           )
       pluto.doc
       pippo.txt
       cux.txt
       CUX> ERASE                ( Cancella il file di default           )
       CUX> SYSTEM ls            ( Esegue il comando Unix 'ls'           )
       pluto.doc
       pippo.txt
       CUX> ERASE *.txt          ( Cancella i file con estensione 'txt'  )
       CUX> SYSTEM ls            ( Esegue il comando Unix 'ls'           )
       pluto.doc
       ..........


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

EXIST

Il seguente comando effettua un test sull'esistenza del file specificato come parametro.

È possibile utilizzare, nel nome del file, i metacaratteri asterisco (`*') e punto interrogativo (`?'), specificando in tal modo un pattern che può indicare un insieme di file.

È possibile inoltre specificare come parametro anche `.' o `..', col significato di controllare l'esistenza di almeno un file nella directory corrente o nella directory padre rispettivamente.

Se il file o i file indicati esistono il flag di errore viene azzerato, mentre se il file o i file indicati non esistono il flag di errore viene impostato.
 
       CUX> EXIST pippo.txt   ( Testa l'esistenza del file pippo.txt     )
       CUX> IFER GOTO NOFILE  ( Se il file non esiste salta alla         )
       ..........             ( etichetta NOFILE                         )
 
       CUX> EXIST pippo.*     ( Testa l'esistenza di un file di nome     )
                              ( pippo con qualsiasi estensione.          )
       CUX> IFER GOTO NOFILE  ( Se non esiste alcun file con tale nome   )
       ..........             ( salta alla etichetta NOFILE.             )
 
       CUX> EXIST .           ( Testa l'esistenza di almeno un file.     )
       CUX> IFER GOTO NOFILE  ( Se non esiste nessun file salta alla     )
       ..........             ( etichetta NOFILE.                        )
Attenzione: lo stato di uscita di questo comando influisce sul valore del flag di errore (cfr. i comandi `IFER' e `IFNOER').


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

FDIR

Elenca i file indicati come secondo parametro e mette l'output del comando nel file indicato come primo parametro. Se non è specificato alcun parametro elenca il contenuto della directory corrente.
 
       CUX> FDIR /tmp/outfile /etc   ( Elenca la directory /etc e mette  )
       ..........                    ( l'output nel file /tmp/outfile    )
       CUX> FDIR /tmp/outfile        ( Elenca la directory corrente e    )
       ..........                    ( mette l'output in /tmp/outfile    )


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

KEYBOARD

Tale comando, disponibile solo in ambiente MsDos, permette di abilitare o disabilitare la tastiera della macchina locale con il comando `REMOTE'. Ammette come parametro uno dei due valori `ON' e `OFF' (default). Se impostato a `ON' la tastiera della macchina locale viene disabilitata, mentre se impostato a `OFF' la tastiera della macchina locale rimane abilitata.

Tale comando viene forzato ad `ON' se il comando `DISPLAY' è impostato ad `ON'.
 
       CUX> KEYBOARD ON       ( Abilita la tastiera rmeota               )
       ..........


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

ICONIFY

Il seguente comando, disponibile solo in ambienti grafici, permette di iconificare e deiconificare la finestra in cui è in esecuzione il programma. Se il programma è iconificato il comando lo deiconifica, altrimenti lo iconifica.
 
       CUX> ICONIFY           ( Iconifica il programma                   )
       CUX> CALL FILE         ( Esegue il batch indicato                 )
       CUX> ICONIFY           ( Deiconifica il programma                 )


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

KILL

Invia kill (segnali) ad un processo. Ha come primo parametro il tipo di kill che si vuole inviare (cfr. `TRAP') e come secondo il pid del processo (cfr. i comandi `PS' e `SETPGRP'). Comando non disponibile solo per l'ambiente MsDos.

I tipi di kill vanno distinti per sistemi operativi. Per gli ambienti Unix/Xenix sono disponibili:
 
ZERO (verifica l'esistenza del processo)
KILL (termina il processo)
ILL
TRAP
ABRT (o IOT)
EMT
BUS
SEGV
SYS
PIPE
TERM
USR1
USR2
Per gli ambienti Windows95/98/NT sono possibili solo:
 
ZERO (verifica l'esistenza del processo)
KILL (termina il processo)

Per esempio:
 
       CUX> KILL KILL 100            ( Uccide il processo con pid 100     )
       CUX> KILL ZERO 100            ( Test di esistenza sel processo 100 )
       CUX> KILL TERM 100            ( Invia un TERM al processo 100    )
Attenzione: lo stato di uscita di questo comando influisce sul valore del flag di errore (cfr. i comandi `IFER' e `IFNOER').


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

MKDIR

Crea la directory passata come parametro. Se la directory esiste già oppure (in ambiente Unix/Xenix) non esiste ma non si hanno i permessi opportuni per permetterne la creazione, viene impostato il flag di errore.
 
       CUX> MKDIR /usr/tmp/           ( Crea la directory /usr/tmp       )
       ..........          
Attenzione: lo stato di uscita di questo comando influisce sul valore del flag di errore (cfr. i comandi `IFER' e `IFNOER').


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

MOVE

Sposta e/o ridenomina file.
 
       CUX> MOVE file1 file2         ( Ridenomina il file file1 in file2 )
       ..........
       CUX> MOVE f* /tmp             ( Sposta tutti i file che iniziano  )
       ..........                    ( con f nella directory /tmp)

Dalla versione 4.0 il comando può essere interrotto per mezzo del tasto <DEL> o dalla ricezione di un segnale debitamente intercettato (cfr. comando `TRAP').

Attenzione: lo stato di uscita di questo comando influisce sul valore del flag di errore (cfr. i comandi `IFER' e `IFNOER').


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

PAGE

Visualizza file di testo a schermate di 20 righe seguite da una pausa. Per visualizzare la schermata successiva occorre battere il tasto <ENTER>. È possibile interrompere la visualizzazione del file per mezzo del tasto <DEL> seguito da <ENTER>.
 
       CUX> PAGE help.txt          ( Visualizza il file help.txt         )

Dalla versione 4.0 il comando può essere interrotto per mezzo del tasto <DEL> o dalla ricezione di un segnale debitamente intercettato (cfr. comando `TRAP').


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

PASSWD

Il comando richiede due parametri, che rappresentano nell'ordine utente e password, e verifica la correttezza di tale coppia di stringhe con riferimento al file `cuxpwd', il quale ha lo stesso formato del file `/etc/passwd' di sistema. Il comando imposta la variabile `WORD' alla password crittografata, la quale viene generata anche se non esistente, e la variabile `FROM' a tutta la riga letta dal file `cuxpwd'.

Il file `cuxpwd' viene cercato nella directory indicata dalla variabile di environment `ETC'.
 
       CUX> PASSWD demo demo123  ( Verifica che l'utente demo abbia      )
       ..........                ( come passord la stringa demo123       )
       ..........
Attenzione: lo stato di uscita di questo comando influisce sul valore del flag di errore (cfr. i comandi `IFER' e `IFNOER').


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

PS

Elenca i processi correntemente attivi. Se è specificato un paramentro questo viene preso come il nome di un file in cui scrivere l'output del comando. Comando non disponibile solo per l'ambiente MsDos.
 
       CUX> PS /usr/tmp/proc    ( Scrive l'elenco dei processi sul file  )
       ..........               ( /usr/tmp/proc                          )
       CUX> PS                  ( Scrive l'elenco dei processi a video   )
       ..........


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

PWD

Visualizza il path della directory corrente.
 
       CUX> PWD                 ( Visualizza la directory corrente       )
       /usr/utente
       CUX> CD prove            ( Cambia directory                       )
       CUX> PWD                 ( Visualizza la directory corrente       )
       /usr/utente/prove  
In ambiente MsDos è disponibile anche il comando `DRIVE' per spostarsi sui diversi drive disponibili, e il comando `PWD' visualizza anche il nome del drive.
 
       CUX> DRIVE A:            ( Imposta il drive corrente ad A:        )
       CUX> PWD                 ( Visualizza la directory corrente       )
       A:/
       CUX> CD prove            ( Cambia directory                       )
       CUX> PWD                 ( Visualizza la directory corrente       )
       A:/prove


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

REMOTE

Comando per l'esecuzione remota di programmi interattivi. In sostanza, questo comando permette ad un utente che lavora su un'altra macchina di lavorare sulla vostra. È possibile eseguire un applicativo oppure concedere l'utilizzo in interattivo della vostra macchina e l'esecuzione continua finché non termina il processo oppure (ma solo in ambiente Unix/Xenix) finché non la interrompete premendo il tasto <DEL>. In questo modo chi è in ricezione si vedrà apparire il prompt della shell della vostra macchina.

Se il comando `REMOTE' non è seguito da alcun parametro viene eseguita la shell di default (`command.com' in MsDos o la shell indicata dalla variabile di environment `SHELL' in Unix/Xenix). Se invece è seguito da un parametro verrà eseguito il programma indicato dal parametro specificato.

In ambiente Unix/Xenix il comando da lanciare può essere opzionalmente preceduto dalla durata massima, espressa in minuti, dell'esecuzione del comando stesso.
 
       CUX> BAUD 19200         ( Definisce il baud-rate                  )
       CUX> PORT tty2g         ( Specifica la porta                      )
       CUX> REMOTE 20 sh       ( Esegue una shell per 20 minuti          ) 
       ..........              ( per l'utente remoto                     )
In questo esempio vi collegate con la porta `tty2g' e lanciate in esecuzione la shell di sistema per un tempo massimo di 20 minuti.

A differenza di altri prodotti, che permettono l'esecuzione remota solo tra due PC MsDos, Cux permette di operare in situazioni eterogenee in cui i sistemi comunicanti possono essere indifferenemente due PC MsDos, due host Unix/Xenix o un PC MsDos e un host Unix/Xenix. In tale situazione si è reso necessario ricorrere ad un trattamento uniforme del video e della tastiera, in modo da rendere trasparenti le differenze tra un PC e un terminale ai programmi che devono utilizzare l'esecuzione remota offerta da Cux. Da qui la decisione di trattare anche un PC come un terminale.

In ambiente MsDos, quindi, il comando da lanciare può essere opzionalmente preceduto dal tipo di terminale da emulare, purché racchiuso tra una coppia di apici semplici (`''). Se tale parametro viene omesso verrà impostata per default l'emulazione `ansico' (per l'elenco delle emulazioni possibili si veda il file `dynacap.xen' fornito col dischetto di installazione. Per maggiori spiegazioni consultare la parte Unix/Xenix dell'appendice Il file dynacap). Non è invece possibile specificare un tempo massimo per l'esecuzione remota.
 
       CUX> REMOTE 'dynaco' command   ( Esegue il command.com            ) 
       ..........                     ( con emulazione dynaco            )
Sempre in ambiente MsDos occorre sottolineare l'esistenza di un meccanismo di refresh automatico a tempo del video, il cui intervallo può essere modificato tramite l'opzione `-TI' (cfr. il capitolo Opzioni). È inoltre disponibile un carattere, definito dalla capability `modmcap' `E4' e per default <CTRL><L>, per effettuare il refresh manuale.

Nel caso occorra utilizzare tasti non disponibili (si pensi ad esempio ad un terminale Hazeltine non dotato dei tasti funzione) sarà necessario comporre manualmente le sequenze di caratteri corrispondenti. Ad esempio nel caso di un'emulazione ansi, al tasto di funzione `F1' corrisponde la sequenza <ESC><O><P>. Saranno quindi da digitare in successione i tre caratteri visti, avendo l'accortezza di rispettare i tempi definiti dalla variabile di environment `DYNAESC' nel caso tale variabile sia definita (cfr. l'appendice L'environment).

Sempre in ambiente MsDos, l'esecuzione di tale comando determina la creazione nella directory indicata dalla variabile di environment `ETC' del file `cuxrem.adr' contenente gli indirizzi degli interrupt di tastiera, video e seriale, nonchè il nome della porta utilizzata. Tale file è indispensabile nel caso si voglia lanciare un Cux con l'opzione `-MY', tipicamente per effettuare del file-transfer utilizzando la stessa linea di comunicazione usata per stabilire la connessione tra due macchine (per maggiori spiegazioni sull'uso di tale opzione si veda il capitolo Il Cux come server remoto). Attenzione a non rimuovere e/o manomettere tale file, dal momento che una sua eventuale modifica, anche casuale, può compromettere l'uso corretto del programma, con conseguenze impredicibili.

Se il programma eseguito termina con un codice di errore diverso da zero l'istruzione `REMOTE' ritorna con il flag di errore impostato. Inoltre, al termine dell'esecuzione remota la variabile predefinita `RETURN' contiene il codice di uscita del comando remoto eseguito.

Attenzione: lo stato di uscita di questo comando influisce sul valore del flag di errore (cfr. i comandi `IFER' e `IFNOER'). Inoltre, ma solo in ambiente Unix/Xenix, lo stato di uscita del comando influisce anche sul valore del flag di timeout (cfr. i comandi `IFOUT' e `IFNOOUT').

Attenzione: in ambiente MsDos la caduta di portante durante l'esecuzione di tale comando e con il controllo di portante abilitato (cfr. comando `MODEMCTL') determina un reboot della macchina su cui è in esecuzione il comando `REMOTE'.

A partire dalla versione 4.0 è possibile utilizzare tale comando anche su linee Tcp/Ip.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

RENAME

Ridenomina il file passato come primo parametro con il nome passato come secondo parametro. In ambiente Unix/Xenix se non si hanno i permessi opportuni per permettere l'operazione viene impostato il flag di errore.
 
       CUX> RENAME file.txt pluto.txt   ( Rinomina file.txt in pluto.txt )
Attenzione: lo stato di uscita di questo comando influisce sul valore del flag di errore (cfr. i comandi `IFER' e `IFNOER').


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

RMDIR

Rimuove la directory passata come parametro. Se la directory non esiste oppure (in ambiente Unix/Xenix) esiste ma non si hanno i permessi opportuni per permetterne la rimozione viene impostato il flag di errore.
 
       CUX> RMDIR /usr/tmp           ( Rimuove la directory /usr/tmp     )
       ..........          
Attenzione: lo stato di uscita di questo comando influisce sul valore del flag di errore (cfr. i comandi `IFER' e `IFNOER').


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

RSYSTEM

Tale comando è del tutto equivalente al comando `SYSTEM' (cfr.) ad eccezione del fatto che su sistemi grafici ridirige l'input e l'output del programma nella finestra del programma stesso.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

SETPGRP

Questo comando, non disponibile solo in ambiente MsDos, permette di eseguire un processo in modo asincrono (background) rispetto al Cux in esecuzione, ovvero senza che il Cux ne attenda la terminazione. Il processo lanciato viene posto in un suo proprio gruppo di processi e la variabile predefinita `PIDCHILD' contiene il pid (cfr. comando `PS') dell'ultimo processo eseguito per mezzo del comando `SETPGRP'.

Attenzione che non è possibile utilizzare metacaratteri o simboli di ridirezione dell'I/O o di pipe che non verrebbero interpretati ma passati direttamente al programma specificato !
 
       CUX> SETPGRP script1        ( Esegue il comando indicato          )
       CUX> LET pid1 $PIDCHILE     ( Ne salva il pid                     )
       CUX> SETPGRP script2        ( Esegue il comando indicato          )
       CUX> LET pid2 $PIDCHILE     ( Ne salva il pid                     )
       ..........          
Attenzione: lo stato di uscita di questo comando influisce sul valore del flag di errore (cfr. i comandi `IFER' e `IFNOER').


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

SHELL

Esce momentaneamente dal programma e ritorna al sistema operativo. Per rientrare nel programma occorre digitare `exit'. È anche possibile digitare `!!' al posto di `SHELL'.
 
       ..........
       CUX> SHELL                                   ( Esce dal programma )
       Battere 'exit' per rientrare nel programma.
       C:> dir
       ..........
       C:> exit 2
       CUX> !!                                      ( Esce dal programma )
       Battere 'exit' per rientrare nel programma.
       ..........
Al rientro nel programma la variabile predefinita `RETURN' conterrà il codice di uscita del programma di sistema eseguito, che nell'esempio precedente è 2.

Attenzione: lo stato di uscita di questo comando influisce sul valore del flag di errore (cfr. i comandi `IFER' e `IFNOER').


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

SPAWN

Questo comando è simile al comando `REMOTE' con la differenza che il suo utilizzo è rivolto a programmi che non necessitano di un controllo interattivo. Un suo tipico uso è rappresentato dalla trasmissione di file con protocolli esterni. Richiede un parametro, ovvero il nome del comando da eseguire. In ambiente Unix/Xenix il nome del comando può essere opzionalmente preceduto da un timeout espresso in minuti, timeout oltre il quale il processo lanciato viene terminato forzatamente.

A partire dalla release 3.8 il comando `SPAWN' assume significato anche in ambiente MsDos, dove rende disponibile a programmi esterni la gestione della linea di comunicazione effettuata dal Cux. A tale scopo serve ricordare che sono supportate esclusivamente le chiamate standard dell'interrupt 14 del BIOS (initialize, write, read, getstatus). Per maggiori spiegazioni si rimanda ai manuali e al Technical reference dell'MsDos.

Qui di seguito viene riportato un esempio d'uso del comando `SPAWN' in ambiente Unix/Xenix. Tale esempio descrive l'utilizzo del protocollo Zmodem come protocollo esterno.
 
       CUX> CONV                     ( Entra in conversazionale          )
       sz pippo.txt
       CUX> SPAWN 20 rz              ( Esegue il comando rz              )  
                                     ( con un timeout di 20 minuti       )
       rz ready. To begin transfer, type "sz file" to your modem program
       Incoming: pippo.txt 8704 4767120520 100644
       Receveing pippo.txt BIN w
       CUX>
Al termine dell'esecuzione la variabile predefinita `RETURN' conterrà il codice di uscita del programma eseguito.

Attenzione: lo stato di uscita di questo comando influisce sul valore del flag di errore (cfr. i comandi `IFER' e `IFNOER'). Inoltre, ma solo in ambiente Unix/Xenix, lo stato di uscita del comando influisce anche sul valore del flag di timeout (cfr. i comandi `IFOUT' e `IFNOOUT').

A partire dalla versione 4.0 è possibile utilizzare tale comando anche su linee Tcp/Ip.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

SPOOLER

Gestione spooler di stampa. Nella versione per Windows95/98/NT, se non indicati parametri, fornisce l'elenco delle stampanti. Il primo parametro è il file da stampare, mentre il secondo la stampante. Se omesso questo parametro il file fiene dirottato sulla stampante di default.

Attenzione: lo stato di uscita di questo comando influisce sul valore del flag di errore (cfr. i comandi `IFER' e `IFNOER').


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

SYSTEM

Permette di eseguire un comando del sistema operativo utilizzato. Se non è seguito da alcun parametro si comporta come il comando `SHELL' (cfr.) lanciando la shell del sistema operativo utilizzato. Altrimenti il primo parametro indica il comando di sistema da eseguire e ogni altro parametro presente oltre al nome del comando viene passato come argomento al comando di sistema in questione. Al termine dell'esecuzione del comando indicato il controllo ritorna al Cux e la variabile predefinita `RETURN' contiene il codice di ritorno (errorlevel) del comando di sistema eseguito. È anche possibile digitare `!' al posto di `SYSTEM'.
 
       CUX> SYSTEM ls                                ( Elenco directory  )
       pippo.txt
       CUX> SYSTEM echo Prima prova > prova.txt      ( Crea un file      )
       CUX> CAT prova.txt                            ( Lo visualizza     )
       Prima prova
       CUX> ! ls                                     ( Elenco directory  )
       prova.txt
       pippo.txt
       CUX> ! exit 2
       CUX> MESG $RETURN
       2
       CUX>
Attenzione: lo stato di uscita di questo comando influisce sul valore del flag di errore (cfr. i comandi `IFER' e `IFNOER').


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

TOUCH

Crea il file vuoto passato come parametro. Attenzione che se il file esiste già il contenuto originario viene perso. Inoltre, in ambiente Unix/Xenix, se non si hanno i permessi opportuni per permetterne la creazione viene impostato il flag di errore.
 
       CUX> TOUCH prova.txt           ( Crea il file prova.txt vuoto     )
Attenzione: lo stato di uscita di questo comando influisce sul valore del flag di errore (cfr. i comandi `IFER' e `IFNOER').


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

USER

Questo comando, attivo solo in ambiente Unix/Xenix, permette di cambiare utente, passando a quello del parametro specificato, il quale deve essere una stringa alfanumerica corrispondente ad un utente conosciuto dal sistema. Per eseguire il comando occorre tuttavia essere root o comunque avere privilegi equivalenti.
 
       CUX> USER demo                  ( Imposta lo user-id              )

Attenzione: lo stato di uscita di questo comando influisce sul valore del flag di errore (cfr. i comandi `IFER' e `IFNOER').


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.9 Comandi di controllo per file batch


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

ASK

Visualizza la stringa data come parametro e attende una stringa come risposta (terminata da un <ENTER> o da un `\n'). La stringa digitata come risposta viene assegnata alla variabile `WORD'. Inoltre, se la stringa è un numero il suo valore verrà posto nel contatore interno, il quale altrimenti viene azzerato.

La stringa da visualizzare può essere opzionalmente preceduta da un timeout, espresso in secondi. In tal caso se l'istruzione esce per timeout, ovvero se non viene digitata nessuna stringa entro il tempo specificato come timeout, viene impostato il flag di errore (cfr. i comandi `IFER' e `IFNOER') e il flag di timeout (cfr. i comandi `IFOUT' e `IFNOOUT').

Se non viene specificato alcun timeout, l'attesa della stringa di risposta si intende infinita.

Se la stringa data è racchiusa tra doppi apici (`"') sono ammessi i soliti caratteri speciali (cfr. comando `STRING').
 
       CUX> ASK 5 <Enter> per continuare     ( Attende una risposta      )
       <Enter> per continuare                ( per non più di 5 secondi  )
       ...........
       CUX> IFOUT GOTO ERRTIMEOUT            ( In caso di timeout salta  )
                                             ( alla routine opportuna    )

Attenzione: nel caso CUX lavori in modalità HALF DUPLEX il comando `ASK' visualizzerà a video `*' in sostituzione dei caratteri digitati.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

BATCH

Questo comando, speculare all'opzione `-fc', permette di eseguire una serie di istruzioni del Cux contenute in un file, detto appunto batch, il quale deve essere specificato come parametro. Il file indicato viene cercato inizialmente nella directory corrente e, se tale ricerca non ha successo, viene cercato nella directory specificata dalla variabile di environment `CUXPATH', se tale variabile è definita. Se il file specificato non esiste viene tentata la ricerca del file con lo stesso nome ma con estensione `.cux', e ancora prima nella directory corrente e successivamente nella eventuale directory indicata dalla variabile `CUXPATH'.

Il comando ritorna con il flag di errore impostato se tutti questi tentativi di ricerca non hanno successo, oppure se il file esiste e viene trovato ma contiene errori sintattici che ne precludono l'esecuzione, oppure ancora se è attiva la lettura di file di comandi crittografati e il file che si vuole eseguire non è crittografato.

Al termine delle istruzioni contenute nel file si può ritornare al Cux o al sistema operativo: questa differenza è dovuta alla possibilità di terminare un file di comandi con l'istruzione `END' o con una tra le istruzionii `BYE', `EXIT' o `QUIT'. È anche possibile digitare `@' al posto di `BATCH'.
 
       CUX> BATCH prova.cux    ( Esegue il file batch scelto             )
       ..........
Durante l'esecuzione di un file batch è possibile evitare la visualizzazione di un comando mettendogli come prefisso il carattere `#'. Se ad esempio un file batch contiene l'istruzione
 
       CUX> #MUTE ON           ( Disabilita l'eco dei comandi a video    )
il comando in questione non viene visualizzato.

Per ulteriori informazioni sull'uso dei file batch si rimanda alla spiegazione relativa alla variabile di environment `CUXPATH' contenuta nell'appendice L'environment.

Attenzione: lo stato di uscita di questo comando influisce sul valore del flag di errore (cfr. i comandi `IFER' e `IFNOER').


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

CALL

Trasferisce l'elaborazione al sottoprogramma Cux indicato come parametro. Il ritorno al chiamante si ottiene col comando `RETURN'. La ricerca del file da eseguire avviene secondo le stesse regole riportate a proposito del comando `BATCH'.

Come per il comando `BATCH', il comando ritorna con il flag di errore impostato se i tentativi di ricerca del file da eseguire non hanno successo, oppure se il file esiste e viene trovato ma contiene errori sintattici che ne precludono l'esecuzione, oppure ancora se è attiva la lettura di file di comandi crittografati e il file che si vuole eseguire non è crittografato.

Inoltre, al ritorno dal sottoprogramma la variabile predefinita `RETURN' conterrà il codice di ritorno del sottoprogramma eseguito.

Da sottolineare che tale comando preserva lo stato del contatore interno.
 
       CUX> CALL prova.cux          ( Esegue il file batch scelto        )
       CUX> IFER GOTO errore
       ............
       CUX> LABEL errore
       ............
Per ulteriori informazioni riguardo all'uso dei file batch si rimanda alla spiegazione relativa alla variabile di environment `CUXPATH' contenuta nell'appendice L'environment.

Attenzione: lo stato di uscita di questo comando influisce sul valore del flag di errore (cfr. i comandi `IFER' e `IFNOER').


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

COM

Dopo aver specificato questo comando è possibile digitare una serie di informazioni di commento che non verrano interpretate dal Cux. Questo comando è utile nei file batch per inserire delle annotazioni sulle operazioni che verranno eseguite.
 
       CUX> COM Esempio di commento
       ...........
Sottolineiamo che le informazioni di commento devono essere tutte sulla riga che inizia con l'istruzione `COM'. Nel caso si vogliano inserire commenti che non possono essere contenuti tutti nella stessa riga occorrerà inserire più righe di commento, come nel seguente esempio:
 
       CUX> COM Esempio di commento
       CUX> COM suddiviso in due righe
       ...........


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

COMPARE

Confronta lessicograficamente due stringhe e assegna alla variabile predefinita `WHICH' il valore codificato dell'esito del confronto, ovvero uno tra i valori 0, 1 e 2, a seconda che la prima stringa risulti lessicograficamente uguale, maggiore o minore della seconda. Da sottolineare che una o entrambe le stringhe possono essere variabili. In tal caso il confronto sarà effettuato con il contenuto della variabile o delle variabili.
 
       CUX> LET A bello
       CUX> COMPARE $A ballo
       CUX> MESG $WHICH
       1
       CUX> COMPARE $A bullo
       CUX> MESG $WHICH
       2
       CUX> COMPARE $A bello
       CUX> MESG $WHICH
       0
       ..........


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

COMPAREN

Confronta algebricamente due stringhe numeriche e assegna alla variabile predefinita `WHICH' il valore codificato dell'esito del confronto, ovvero uno tra i valori 0, 1 e 2, a seconda che la prima stringa risulti algebricamente uguale, maggiore o minore della seconda. Ogni stringa non numerica assume il valore numerico 0 (zero). Da sottolineare che una o entrambe le stringhe possono essere variabili. In tal caso il confronto sarà effettuato con il contenuto della variabile o delle variabili.
 
       CUX> LET A 10
       CUX> COMPAREN $A 20
       CUX> MESG $WHICH
       2
       CUX> COMPAREN -10 pippo
       CUX> MESG $WHICH
       1
       ..........


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

COMPUTE

Calcola un'espressione algebrica assegnando il valore alla variabile specificata, secondo la sintassi:
 
       compute var expr
Il comando deve cioè essere seguito dalla variabile nella quale memorizzare il risultato del calcolo (var) e dall'espressione algebrica da calcolare (expr). Nel caso l'espressione da calcolare expr non sia algebricamente corretta (ad esempio `3 / 0') viene impostato il flag di errore. Sono ammesse le seguenti operazioni:

Sono inoltre ammessi come separatori le parentesi tonde `(' e `)'. Da sottolineare che sia la variabile sia una o più sottoespressioni dell'espressione da calcolare possono essere variabili. In tal caso il calcolo sarà effettuato con il contenuto della variabile o delle variabili, e il risultato sarà assegnato al contenuto della variabile. Inoltre, occorre prestare attenzione al fatto che tutti i simboli che occorrono nell'espressione da calcolare devono essere separati da uno o più spazi.
 
       CUX> LET A 10
       CUX> COMPUTE VAR ( $A + 5 ) * 2
       CUX> MESG $VAR
       30
       CUX> LET VAR X
       CUX> COMPUTE $VAR ( $A + 5 ) * 2
       CUX> MESG $X
       30
Attenzione: lo stato di uscita di questo comando influisce sul valore del flag di errore (cfr. i comandi `IFER' e `IFNOER').


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

CRYPT

Ammette come parametro uno dei due valori `ON' e `OFF' (default). Se impostato a `ON' abilita l'esecuzione esclusivamente di batch crittografati, mentre se impostato a `OFF' possono essere eseguiti solamente batch non crittografati. Se è impostato a `ON' il programma segnala come errore ogni tentativo di eseguire un batch non crittografato. Se invece il comando è impostato a `OFF' il risultato di un tentativo di eseguire un batch crittografato non è predicibile, dal momento che il programma tenterà comunque di eseguire il batch riga per riga; il risultato più probabile è la visualizzazione del messaggio di errore `Comando sconosciuto!' alla lettura di ogni riga del batch in questione, anche se non è da escludere la probabilità (per quanto remota) che il risultato della crittografazione venga a corrispondere ad un comando o ad una macro dotata di senso, nel qual caso la riga del batch verrà eseguita!
 
       CUX> CRYPT ON              ( Abilita la crittografazione          )
Per la crittografazione dei file di comandi deve essere usato il programma `cuxcrypt' fornito col dischetto di installazione del prodotto. Tale programma ha la seguente sintassi:
 
      cuxcrypt sorgente destinazione
ovvero legge in input un file di comandi in chiaro (`sorgente') e scrive in output un file di comandi crittografato (`destinazione'). Da sottolineare che possono essere crittografati esclusivamente file di tipo ASCII, ovvero nei sorgenti da crittografare non possono essere presneti caratteri con codice ASCII minore di 32. Il metodo di crittografazione adottato utilizza un algoritmo di conversione dei caratteri che si automodifica in continuazione ottenendo in uscita un file ASCII completamente diverso, ma visualizzabile su un terminale video.

Attenzione: possono essere crittografati solo sorgenti di dimensioni non superiori ai 64 Kbyte.

Il programma `cuxcrypt' deve essere usato in congiunzione con l'opzione `-CR' al lancio del Cux, oppure, in alternativa, con il comando `CRYPT'.

Se si vuole impiegare un file di comandi crittografato occorre procedere quindi secondo i seguenti passi:

  1. Creare il file di comandi (ad esempio `prova.cux') con un qualsiasi programma editor.
  2. Crittografare il file con il programma `cuxcrypt' producendo ad esempio il file `prova.cry':
     
           cuxcrypt < prova.cux > prova.cry
    
  3. Lanciare Cux con la seguente linea di comando:
     
           cux -CR -fc prova.cry
    
    Oppure, alternativamente, lanciare Cux e dal prompt del programma dare i seguenti comandi:
     
           CUX> CRYPT ON
           CUX> CALL prova.cry
    


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

DEBUG

Introduce un ritardo in secondi tra l'esecuzione dei comandi; in questo modo è possibile controllare l'esecuzione di ogni singolo comando di un file batch per trovare eventuali errori in fase di debugging.
 
       CUX> DEBUG 5               ( Introduce un ritardo di 5 secondi    )
       ............
       CUX> DIAL
       connect (2400)
       CUX> CONV
       ...........


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

DECCOUNT

Decrementa il contatore interno; se dopo questa operazione il contatore è uguale a zero viene cambiato il valore del flag di errore.
 
       ..........
       CUX> SETCOUNT 5                  ( Inizializza il contatore       )
       CUX> LABEL TENTATIVO             ( Definisce la label TENTATIVO   )
       CUX> DIAL                        ( Effettua una chiama            )
       CUX> IFNOER BATCH conv.cux       ( In caso di successo esegue     )
                                        ( il batch conv.cux              )
       CUX> DECCOUNT                    ( Decrementa il contatore        )
       CUX> IFNOER GOTO TENTATIVO       ( Se contatore diverso da zero   )
                                        ( torna a TENTATIVO              )
       CUX> COMMAND                     ( Torna in modalità comandi      )
       CUX> HANGUP OFF                  ( Sgancia la linea               )
       CUX> EXIT                        ( Esce da Cux                    )
Attenzione: lo stato di uscita di questo comando influisce sul valore del flag di errore (cfr. i comandi `IFER' e `IFNOER').


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

DELAY

Il comando `DELAY' permette di introdurre un ritardo del numero di secondi indicato come parametro. Il massimo ritardo specificabile è 100000000.
 
       CUX> PROTOC CUXENC        ( Specifica il tipo di protocollo       )
       CUX> SEND pippo.exe       ( Trasmette il file                     )
       CUX> DELAY 15             ( Introduce un ritardo di 15 secondi    )
       CUX> SEND pippo.com       ( Trasmette il file                     )
       ..........


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

DOSPATH

Converte tutti i caratteri `/' (slash) occorrenti nella variabile indicata come parametro in caratteri `\' (backslash).
 
       CUX> LET VAR /usr/varie/tmp         ( Imposta la variabile        )
       CUX> DOSPATH VAR                    ( La converte                 )
       CUX> MESG $VAR                      ( La visualizza convertita    )
       \usr\varie\tmp
       ..........


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

END

Termina il file batch e ritorna al prompt del Cux.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

GET

Legge dal file indicato come primo parametro e assegna alla variabile indicata come secondo parametro la riga indicata come terzo parametro. La numerazione delle righe inizia da 1. Il file deve essere di tipo sequenziale a righe di caratteri terminate da newline. Il comando imposta il flag di errore se il file o la riga non esistono. Se ad esempio il file `pippo' contiene le righe
 
       prima riga di prova
       seconda riga di prova
       prima terza di prova
per caricare nella variabile `VAR' il contenuto della seconda riga occorre dare il seguente comando:
 
       CUX> GET pippo VAR 2                     ( Legge la riga indicata )
       CUX> MESG $VAR                           ( La visualizza          )
       seconda riga di prova
Attenzione: lo stato di uscita di questo comando influisce sul valore del flag di errore (cfr. i comandi `IFER' e `IFNOER').


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

GOTO

Istruzione di salto ad una label (cfr. comando `LABEL'). Il comando deve essere seguito dal nome dell'etichetta a partire dalla quale dovrà continuare l'esecuzione del batch. Se l'etichetta specificata non esiste il programma termina con errorlevel 5.
 
       CUX> GOTO ETICHETTA
       ...........
       CUX> LABEL ETICHETTA
       CUX> MESG "Sono alla label ETICHETTA"
       Sono alla label ETICHETTA
       ..........


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

GOTONUM

Comando di salto condizionato ad una label, a seconda del valore della variabile predefinita `WHICH'. Il comando deve essere seguito dai nomi delle etichette, separati solo dalla virgola: il flusso dei comandi salterà alla prima etichetta se `WHICH' vale 0, alla seconda etichetta se `WHICH' vale 1, e cos`ì di seguito.

Dalla versione 4.0 se `WHICH' ha un valore superiore al numero delle etichette specificate salterà alla etichetta `GOTOERROR'. Se l'etichetta puntata da `GOTONUM' non esiste il programma termina con errorlevel 5.

 
       CUX> LET WHICH 1        ( Imposta la variabile WHICH              )
       CUX> GOTONUM OK,NONE    ( Istruzione di salto condizionale        )
       ..........
       CUX> LABEL NONE         ( In tal caso salta alla label NONE       )
       ..........
Tale comando trova un'importante applicazione in combinazione con la ricezione di stringhe multivia (cfr. comandi `RSTRING' e `XRSTRING'). I comandi `RSTRING' e `XRSTRING' impostano le variabili predefinite `WHICH' e `WORD' in base alla stringa ricevuta (`WORD' contiene la stringa ricevuta mentre `WHICH' contiene il numero relativo alla stringa ricevuta, ovvero 0 se non è riconosciuta alcuna delle stringhe indicate oppure 1 per la prima stringa, 2 per la seconda e cos`ì via). Avendo quindi l'accortezza di anteporre nel comando `GOTONUM' una label per la gestione del caso in cui non è stata riconosciuta alcuna stringa, è possibile costruire procedure di salto condizionato in base alla ricezione di una particolare stringa.
 
       ..........
       CUX> RSTRING "a","b","c","d","e"
       CUX> GOTONUM L_ERR,L_A,L_B,L_C,L_D,L_E
       ..........
In questo esempio il flusso delle istruzioni salterà all'etichetta relativa alla stringa ricevuta, ovvero salterà all'etichetta `L_ERR' se non viene ricevuta nessuna stringa tra quelle indicate, salterà all'etichetta `L_A' se viene ricevuta la stringa `a', salterà all'etichetta `L_B' se viene ricevuta la stringa `b', e cos`ì di seguito.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

IFER

Questo comando assume un significato solo in relazione alle istruzioni che hanno la possibilità di modificare il valore del flag di errore. Deve essere seguito da uno o più parametri che rappresentano il comando da eseguire nel caso il flag di errore sia impostato. L'istruzione `IFER' è utile per verificare lo stato di uscita di un comando, ma occorre fare attenzione che tra l'esecuzione del comando da controllare e l'esecuzione dell'istruzione `IFER' non vengano eseguiti altri comandi che possano modificare il valore del flag di errore.
 
       ..........
       CUX> SEND pippo.txt         ( Trasmette il file specificato       )
       CUX> IFER BATCH pluto.cux   ( Se vi è errore esegue il batch      )
       ..........


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

IFNOER

Questo comando assume un significato solo in relazione alle istruzioni che hanno la possibilità di modificare il valore del flag di errore. Deve essere seguito da uno o più parametri che rappresentano il comando da eseguire nel caso il flag di errore sia azzerato. Anche tale istruzione, come già l'istruzione `IFER', è utile per verificare lo stato di uscita di un comando, e anche in tal caso occorre fare attenzione che tra l'esecuzione del comando da controllare e l'esecuzione dell'istruzione `IFNOER' non vengano eseguiti altri comandi che possano modificare il valore del flag di errore.
 
       ..........
       CUX> SEND pippo.txt          ( Trasmette il file specificato      )
       CUX> IFNOER BATCH pluto.cux  ( Se non vi è errore esegue il batch )
       ..........


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

IFNOOUT

Questo comando assume un significato solo in relazione alle istruzioni che hanno la possibilità di modificare il valore del flag di timeout. Deve essere seguito da uno o più parametri che rappresentano il comando da eseguire nel caso il flag di timeout sia azzerato. L'istruzione `IFNOOUT' è utile per verificare lo stato di uscita di un comando, ma occorre fare attenzione che tra l'esecuzione del comando da controllare e l'esecuzione dell'istruzione `IFNOOUT' non vengano eseguiti altri comandi che possano modificare il valore del flag di timeout.
 
       ..........
       CUX> RSTRING 10 OK           ( Attende per 10 secondi la stringa  )
       CUX> IFNOOUT BATCH pluto.cux ( Se la riceve esegue il batch       )
       ..........


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

IFOUT

Questo comando assume un significato solo in relazione alle istruzioni che hanno la possibilità di modificare il valore del flag di timeout. Deve essere seguito da uno o più parametri che rappresentano il comando da eseguire nel caso il flag di timeout sia impostato. Anche tale istruzione, come già l'istruzione `IFNOOUT', è utile per verificare lo stato di uscita di un comando, e anche in tal caso occorre fare attenzione che tra l'esecuzione del comando da controllare e l'esecuzione dell'istruzione `IFOUT' non vengano eseguiti altri comandi che possano modificare il valore del flag di timeout.
 
       ..........
       CUX> RSTRING 10 OK           ( Attende per 10 secondi la stringa  )
       CUX> IFOUT BATCH pluto.cux   ( Se non la riceve esegue il batch   )
       ..........


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

INCCOUNT

Incrementa il contatore interno; se dopo questa operazione il contatore è uguale a zero viene impostato il flag di errore.
 
       CUX> PROTOC CUXTXT       ( Definisce il tipo di protocollo        )
       CUX> SETCOUNT -3         ( Inizializza il contatore interno       )
       CUX> LABEL START         ( Imposta l'etichetta di riferimento     )
       CUX> REC file.txt        ( Riceve un file di testo                )
       CUX> IFNOER GOTO OK      ( Se corretto salta alla label OK        )
       CUX> INCCOUNT            ( Incrementa il contatore                )
       CUX> IFNOER GOTO START   ( Se il contatore non vale 0 riprova     )
       CUX> GOTO ERR            ( Se invece vale 0 salta alla label ERR  )
       .............
Nell'esempio sopra descritto viene tentata per tre volte al massimo la ricezione di un file di testo.

Attenzione: lo stato di uscita di questo comando influisce sul valore del flag di errore (cfr. i comandi `IFER' e `IFNOER').


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

INTERRUPT

Ammette come parametro uno dei due valori `ON' (default) e `OFF'. Se impostato a `ON' abilita l'interruzione dei comandi in esecuzione per mezzo del tasto <DEL>, mentre se impostato a `OFF' l'interruzione dei comandi è disabilitata.
 
       CUX> INTERRUPT OFF           ( Disabilita l'interrompibilità      )
       ..........


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

JUMP

Istruzione di salto ad una label (cfr. comandi `GOTO' e `LABEL'). A differenza del comando `GOTO' ritorna al primo batch chiamato abbandonando tutte le `CALL'. Come il comando `GOTO' se l'etichetta specificata non esiste il programma termina con errorlevel 5.
 
       CUX> JUMP etichetta
       ...........
       CUX> LABEL etichetta
       CUX> MESG "Sono alla label etichetta"
       Sono alla label etichetta
       ..........


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

LABEL

Permette di definire un'etichetta di riferimento per i comandi di salto `GOTO', `GOTONUM' e `JUMP'.
 
       CUX> LABEL inizio
       ..........
       CUX> ANSWER 300
       CUX> IFNOER GOTO ricevi
       CUX> GOTO inizio
       CUX> LABEL ricevi
       CUX> REC file
       ..........


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

LET

Comando per la gestione di variabili. A partire dalla versione 3.8, il linguaggio di Cux è stato ampliato con l'introduzione delle variabili: oltre alla visibilità da programma delle variabili di environment, sono state introdotte delle variabili predefinite, alcune delle quali a sola lettura, e la possibilità per l'utente di definire nuove variabili.

Per quanto riguarda le variabili definite dall'utente, a seconda della sintassi con la quale è impiegato, il comando `LET' permette di (ri)definire una nuova variabile, oppure di annullare la definizione di una variabile definita dall'utente, oppure ancora di elencare tutte le variabili definite dall'utente durante un'esecuzione del programma.

Per definire una nuova variabile, o per ridefinirla, occorre usare il comando con la seguente sintassi:
 
       let name value
Il comando deve cioè essere seguito dal nome della variabile che si vuole definire (name) e dalla stringa di caratteri che si vuole assegnare alla variabile da definire (value). Il nome della variabile da definire (name) deve essere formato esclusivamente da lettere (a-z,A-Z), numeri (0-9) e dai due caratteri `-' e `_' in qualunque successione, e non viene fatta alcuna distinzione tra lettere maiuscole e minuscole. Il valore da assegnare (value) segue le regole del comando `STRING' (cfr.) sui caratteri ammessi, e ha invece significato la differenza tra lettere maiuscole e minuscole.

Possono essere definite al massimo 128 variabili, ognuna delle quali può contenere nella propria definizione al massimo 128 caratteri.

Le variabili definite sono globali ed esistono fino al termine dell'esecuzione del programma, a meno che non vengano esplicitamente rimosse per mezzo di una nuova assegnazione che non faccia seguire alcuna stringa al nome stesso della variabile, come nel seguente esempio:
 
       let name
Per elencare tutte le variabili definite occorre dare il comando non specificando alcun parametro:
 
       let
La visualizzazione dell'elenco delle variabili definite può essere interrotta per mezzo del tasto <DEL> seguito da <ENTER>.

Per richiamare una variabile occorre far precedere al nome della variabile il simbolo del dollaro ($):
 
       CUX> LET NOME Marco
       CUX> MESG Ciao, $NOME
       Ciao, Marco
Dall'interno del programma sono inoltre visibili tutte le variabili di environment, senza distinzione tra caratteri maiuscoli e minuscoli. Queste possono essere modificate, con effetto su eventuali programmi esterni lanciati tramite il comando `SYSTEM', ma non ne possono essere definite di nuove, dal momento che ogni nuova variabile definita viene assunta come variabile interna al Cux.
 
       CUX> MESG $TERM
       ansi
       CUX> LET TERM uno
       CUX> MESG $TERM $term
       uno uno
       CUX> LET term altro
       CUX> MESG $TERM $term
       altro altro
Nell'esempio si è assunto che all'atto del lancio di Cux la variabile di environment TERM fosse definita e uguale ad ansi.

Esistono inoltre delle variabili predefinite, di cui viene fornito l'elenco di seguito. Quelle marcate con R sono a sola lettura e pertanto non possono essere modificate.

CONNECT
Variabile numerica booleana che indica se si è in connessione (1) oppure no (0). Può assumere solamente uno dei due valori 0 o 1. Ogni valore numerico diverso da 0 e 1 assegnato a tale variabile viene riportato a 1, mentre ogni valore non numerico assegnato a tale variabile viene riportato a 0. Tale variabile viene automaticamente impostata a 1 ogni volta che viene stabilita una connessione. Inoltre, ma solo se è abilitato il controllo di portante (`MODEMCTL'=`on') e solo per MsDos, viene automaticamente impostata a 0 nel caso di caduta di portante nel corso di una connessione.
COUNTER
Valore numerico del contatore interno. Può assumere un qualsiasi valore numerico compreso tra -2147483648 e 2147483647. Viene impostato anche dal comando `ASK', qualora l'input sia numerico. È una variabile locale.
CUXPID (R)
Process-id del programma in esecuzione.
DAY (R)
Numero a 2 cifre del giorno corrente.
ENGLISH (R)
Variabile numerica booleana che indica se la lingua corrente del programma è l'italiano (0) o l'inglese (1).
ERROR
Variabile numerica booleana che indica il valore del flag di errore. Può assumere solamente uno dei due valori 0 o 1. Ogni valore numerico che viene assegnato a tale variabile diverso da 0 e 1 ma incluso nel range di un piccolo intero (short) privo di segno (0...65355) viene riportato a 1, mentre ogni valore non numerico o non incluso nel range suddetto viene riportato a 0.
FAX
Variabile numerica booleana che indica se l'ultima connessione era con un fax (1) oppure no (0). Può assumere solamente uno dei due valori 0 o 1. Ogni valore numerico diverso da 0 e 1 assegnato a tale variabile viene riportato a 1, mentre ogni valore non numerico viene riportato a 0.
FILE
Ultimo path o file immesso tramite il comando `FILE'.
FROM (R)
Stringa contenente l'identificativo dell'ultimo chiamante in caso di connessione Fax, ISDN e Tcp/Ip.
HOST (R)
Stringa contenente il nome della macchina locale e il suo indirizzo IP separati da `:', per esempio: dynagate2:195.31.186.195.
HOUR (R)
Numero a 2 cifre dell'ora corrente.
LINE (R)
Nome della linea corrente (ultima linea aperta tramite il comando `PORT') o `CLOSE' se la linea corrente è stata chiusa.
LOCALTIME
Indica la differenza con l'ora GMT in secondi.
MINUTE (R)
Numero a 2 cifre dei minuti correnti.
MODMTYPE (R)
Ultimo modem caricato tramite il comando `INIT'.
MONTH (R)
Numero a 2 cifre del mese corrente.
NUMBER
Ultimo numero assegnato tramite il comando `NUMBER'.
OPSYS (R)
Sistema operativo corrente. Tale variabile può assumere uno tra i seguenti valori: MSDOS, OS2, UNIX, UNIXR4, UNIXSCO, AIX, HPUX, SUN, LINUX o XENIX.
PIDCHILD (R)
Idenitifativo (pid) dell'ultimo processo lanciato tramite il comando `SETPGRP'.
PWD (R)
Directory corrente.
RELEASE (R)
Numero di release del programma in esecuzione.
RETURN
Ultimo ritorno da una delle istruzioni `CALL', `REMOTE', `SHELL' o `SPAWN'.
SECOND (R)
Numero a 2 cifre dei secondi correnti.
SERIAL (R)
Numero di serie del programma in esecuzione.
SUMMERTIME
Indica se c'è l'ora legale (1) o solare (0).
TIMEOUT
Variabile numerica booleana che indica il valore del flag di timeout. Può assumere solamente uno dei due valori 0 o 1. Ogni valore numerico diverso da 0 e 1 assegnato a tale variabile viene riportato a 1, mentre ogni valore non numerico viene riportato a 0.
VOICE
Variabile numerica booleana che indica se l'ultima connessione era voice (1) oppure no (0). Può assumere solamente uno dei due valori 0 o 1. Ogni valore numerico diverso da 0 e 1 assegnato a tale variabile viene riportato a 1, mentre ogni valore non numerico viene riportato a 0.
WHICH
Valore numerico dell'ultima stringa ricevuta tramite i comandi `ALINE', `ANSWER', `DIAL', `DLINE', `RSTRING' e `XRSTRING', nonché valore determinante per il salto condizionato del comando `GOTONUM'. Può assumere ogni valore numerico incluso nel range di un piccolo intero (short) con segno (-32768...32767). Ogni valore non numerico o non incluso nel range suddetto viene riportato a 0.
WORD
Ultima stringa ricevuta tramite i comandi `ALINE', `ANSWER', `ASK', `DIAL', `DLINE', `RSTRING' e `XRSTRING'.
YEAR (R)
Numero a 4 cifre dell'anno corrente.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

MACRO

Comando per la gestione di macro. A partire dalla versione 3.8, il linguaggio di Cux è stato ampliato con l'introduzione delle macro. A seconda della sintassi con la quale è impiegato, il comando permette di definire una macro, oppure di annullare la definizione di una macro, oppure ancora di elencare tutte le macro definite durante un'esecuzione del programma.

Per definire una macro occorre usare il comando con la seguente sintassi:
 
       macro name value
Il comando deve cioè essere seguito dal nome della macro che si vuole definire (name) e dalla stringa di caratteri che si vuole assegnare alla macro da definire (value). Il nome della macro da definire deve essere formato esclusivamente da lettere (a-z,A-Z), numeri (0-9) e dai due caratteri `-' e `_' in qualunque successione, e non viene fatta alcuna distinzione tra lettere maiuscole e minuscole. Il valore da assegnare segue le regole del comando `STRING' (cfr.) sui caratteri ammessi, e ha invece significato la differenza tra lettere maiuscole e minuscole.

Possono essere definite al massimo 128 macro, ognuna delle quali può contenere nella propria definizione al massimo 128 caratteri.

Le macro definite sono globali ed esistono fino al termine dell'esecuzione del programma, a meno che non vengano esplicitamente rimosse per mezzo di una nuova assegnazione che non faccia seguire alcuna stringa al nome stesso della macro, come nel seguente esempio:
 
       macro name
Per elencare tutte le macro definite occorre dare il comando non specificando alcun parametro:
 
       macro
La visualizzazione dell'elenco delle macro definite può essere interrotta per mezzo del tasto <DEL> seguito da <ENTER>.

Una macro può contenere nella propria definizione anche una o più variabili, le quali verranno espanse al momento dell'esecuzione della macro in questione:
 
       CUX> MACRO CHIAMA DIAL $NUMERO
Se la variabile `NUMERO' vale 12345678, il comando
 
       CUX> CHIAMA
verrà sostituito come segue:
 
       CUX> DIAL 12345678
Da notare la seguente differenza:
 
       CUX> MACRO N1 MESG $N
       CUX> MACRO N2 MESG \$N
       CUX> MACRO
               N1 = MESG 
               N2 = MESG $N
       CUX> LET N numero
       CUX> N1

       CUX> N2
       numero
dovuta alla presenza del carattere `\' nella definizione della macro N2. Tale carattere infatti fa s`ì che la macro N2 assuma nella sua definizione anche il carattere `$', cosa che invece non avviene nella definizione della macro N1. Come conseguenza, la macro N1 contiene il valore della variabile `$N' all'atto della definizione della macro N1, mentre la macro N2 contiene il valore della variabile `$N' all'atto della valutazione della macro N2.

Inoltre, una macro può essere richiamata con uno o più parametri. Se ad esempio è stata definita la macro
 
       CUX> MACRO CHIAMA DIAL
e la variabile `NUMERO' vale 12345678, il comando `CHIAMA $NUMERO' verrà sostituito come segue:
 
       CUX> DIAL 12345678

È inoltre possibile ricoprire un comando interno del Cux come nel seguente esempio:
 
       CUX> MACRO CONV MESG Comando momentaneamente disabilitato
Per riabilitare la funzionalità del comando ricoperto è sufficiente assegnare una macro nulla al comando stesso:
 
       CUX> MACRO CONV


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

MESG

Visualizza una stringa a video. Se la stringa è racchiusa tra doppi apici (`"') sono ammessi i soliti caratteri speciali (cfr. comando `STRING').
 
       CUX> MUTE ON
       CUX> MESG "\311\315\315\315\315\315\315\315\315\315\315"
       CUX> MESG "\315\315\315\315\315\315\315\315\315\315\315"
       CUX> MESG "\315\315\315\273\n"
       CUX> MESG "\272 Questo è un messaggio \272\n"
       CUX> MESG "\310\315\315\315\315\315\315\315\315\315\315"
       CUX> MESG "\315\315\315\315\315\315\315\315\315\315\315"
       CUX> MESG "\315\315\315\274\n"
Su video apparirà:
Attenzione: i messaggi da visualizzare devono essere tutti sulla riga che inizia con il comando `MESG'.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

PUT

Scrive in append al file indicato come primo parametro la stringa specificata. Valgono le regole del comando `STRING' (cfr.) sui caratteri ammessi. Il comando imposta il flag di errore se il file non si può scrivere.
 
       CUX> PUT pippo prima riga di prova   ( Scrive la stringa sul file )
       CUX> PUT pippo seconda riga di prova ( Scrive la stringa sul file )
       CUX> CAT pippo                       ( Visualizza il file         )
       prima riga di prova
       seconda riga di prova
       ..........
Attenzione: lo stato di uscita di questo comando influisce sul valore del flag di errore (cfr. i comandi `IFER' e `IFNOER').


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

RESERR

Tramite questo comando viene assegnato al flag di errore il valore di comando terminato correttamente (cfr. `IFER' e `IFNOER').
 
       CUX> RESERR                  ( Azzera il flag di errore           )
       ..........


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

RETURN

Ritorna per mezzo della variabile `RETURN' il codice di errore specificato come parametro alla procedura chiamante con il comando `CALL'. Ritorna `0' (zero) se non è specificato alcun parametro.

Attenzione: se la chiamata è stata effettuata con il comando `BATCH' tutti `RETURN' presenti nello script saranno ignorati.

In combinazione con i comandi `CALL', `IFER' e `IFNOER' permette di realizzare dei controlli sul ritorno da procedure batch, come nel seguente esempio.
 
       CUX> CALL batch.cux
       CUX> IFER RETURN 1
       CUX> RETURN 0
In questo modo, a seconda del ritorno del batch `batch.cux', viene passato al chiamante uno tra i due valori 0 o 1. Con l'introduzione delle variabili (in particolare della variabile predefinita `RETURN') è possibile realizzare lo stesso controllo in modo alternativo come nel seguente esempio:
 
       CUX> CALL batch.cux
       CUX> RETURN $RETURN
Da sottolineare che fino alla release 3.7 per mezzo del comando `RETURN' è possibile restituire solo uno tra i due valori 0 o 1, mentre a partire dalla release 3.8 è possibile restituire un qualsiasi valore numerico.

Attenzione: se la chiamata è stata effettuata con il comando `CALL', per le release precedenti alla 3.8 Cux il comando `RETURN' è equivalente al comando `EXIT'.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

SET

Legge la stringa indicata come primo parametro e la separa in campi in base al separatore specificato come secondo parametro. Tali campi vengono quindi assegnati, nell'ordine, alle variabili `$0', `$1', ... La variabile predefinita `WHICH' contiene il numero di campi in cui è stata separata la stringa data. Con il successivo comando `SET' vengono eliminate tutte le variabili numeriche del precedente comando e generate quelle nuove. Se la stringa da spezzare contiene degli spazi allora deve essere racchiusa tra una coppia di doppi apici `"'.
 
       CUX> ERASE pippo                     ( Rimuove il file            )
       CUX> PUT pippo prima riga di prova   ( Scrive la stringa sul file )
       CUX> GET pippo var 1                 ( Legge la riga indicata     )
       CUX> MESG $var                       ( La visualizza              )
       prima riga di prova
       CUX> SET "$var" " "                  ( Imposta le variabili       )
       CUX> LET
         VAR = prima riga di prova
           0 = prima
           1 = riga
           2 = di
           3 = prova
       ..........

Attenzione: lo stato di uscita di questo comando influisce sul valore del flag di errore (cfr. i comandi `IFER' e `IFNOER').


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

SETCOUNT

Imposta il contatore interno al valore indicato come parametro o lo riporta al default (che è zero) se non è indicato alcun valore. Il valore passato come parametro può essere un qualsiasi numero intero incluso tra -2147483648 e +2147483647.
 
       CUX> SETCOUNT 1               ( Imposta il contatore a 1          )


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

SETERR

Dando questo comando viene assegnato al flag di errore il valore di comando terminato in maniera errata (cfr. i comandi `IFER' e `IFNOER').
 
       CUX> SETERR                   ( Imposta il flag di errore         )


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

STRCHR

Ricerca, a partire da sinistra, la prima occorrenza di un carattere specificato in una stringa data e ne memorizza la posizione nella variabile predefinita `WHICH', secondo la sintassi:
 
       strchr c string
Il comando deve cioè essere seguito dal carattere da ricercare (c) e dalla stringa nella quale ricercare il carattere specificato (string). Se il carattere c non occorre nella stringa string viene assegnato alla variabile `WHICH' il valore 0. Da sottolineare che sia la stringa sia il carattere possono essere variabili. In tal caso la ricerca sarà effettuata sul contenuto della variabile o delle variabili. Inoltre, occorre prestare attenzione al fatto che la numerazione dei caratteri nelle stringhe inizia da 1.
 
       CUX> STRCHR a alfabeto
       CUX> MESG $WHICH
       1
       ..........


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

STRLEN

Calcola la lunghezza, ovvero il numero di caratteri di una stringa data e la memorizza nella variabile predefinita `WHICH'. Da sottolineare che la stringa può essere una variabile. In tal caso il calcolo sarà effettuato sul contenuto della variabile.
 
       CUX> STRLEN ciao
       CUX> MESG $WHICH
       4
       ..........


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

STRRCHR

Ricerca, a partire da destra, la prima occorrenza di un carattere specificato in una stringa data e ne memorizza la posizione nella variabile predefinita `WHICH', secondo la sintassi:
 
       strrchr c string
Il comando deve cioè essere seguito dal carattere da ricercare (c) e dalla stringa nella quale ricercare il carattere specificato (string). Se il carattere c non occorre nella stringa string viene assegnato alla variabile `WHICH' il valore 0. Da sottolineare che sia la stringa sia il carattere possono essere variabili. In tal caso la ricerca sarà effettuata sul contenuto della variabile o delle variabili. Inoltre, occorre prestare attenzione al fatto che la numerazione dei caratteri nelle stringhe inizia da 1.
 
       CUX> STRRCHR a alfabeto
       CUX> MESG $WHICH
       4
       ..........


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

STRSUB

Estrae una sottostringa da una stringa data e la memorizza nella variabile specificata, secondo la sintassi:
 
       strsub substring p n string
Il comando deve cioè essere seguito dalla variabile nella quale memorizzare la sottostringa estratta (substring), dalla posizione del primo carattere da estrarre dalla stringa data (p), dalla lunghezza in caratteri della sottostringa da estrarre (n) e dalla stringa dalla quale estrarre la sottostringa voluta (string). Da sottolineare che la stringa, la sottostringa, la posizione e la lunghezza possono essere variabili. In tal caso l'estrazione sarà effettuata seguendo il contenuto della variabile o delle variabili e il risultato dell'estrazione sarà assegnato al contenuto della variabile denotata da substring. Inoltre, occorre prestare attenzione al fatto che la numerazione dei caratteri nelle stringhe inizia da 1.
 
       CUX> STRSUB VAR1 1 4 alfabeto
       CUX> STRSUB VAR2 5 4 alfabeto
       CUX> MESG $VAR1
       alfa
       CUX> MESG $VAR2
       beto
       ..........


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

TRAP

Il comando permette di intercettare (trap) un determinato segnale (cfr. `KILL'), identificato da un nome, e di eseguire una specifica istruzione alla ricezione del segnale intercettato. Il comando deve essere seguito dal nome del segnale che si vuole intercettare e, opzionalmente, dall'istruzione che si vuole eseguire alla ricezione del segnale. Se non è specificato alcun comando dopo il nome del segnale, il segnale in questione viene ignorato. Non disponibile solo per ambienti MsDos.
 
       CUX> TRAP USR2               ( Ignora il segnale USR2             )
       CUX> TRAP TERM BATCH sig.cux ( Alla ricezione del segnale TERM    )
                                    ( esegue il batch `sig.cux'          )
Alla ricezione di un segnale intercettato, Cux determina l'uscita forzata dall'istruzione in esecuzione al momento, istruzione che pertanto può non essere completata correttamente.

Possono essere intercettati solamente i segnali identificati dai seguenti nomi:
 
       ILL
       TRAP
       IOT
       ABRT
       EMT
       BUS
       SEGV
       SYS
       PIPE
       TERM
       USR1
       USR2
Attenzione: sul sistema operativo Linux i segnali `EMT' e `SYS' non sono disponibili.

Inoltre, occorre sottolineare che i due nomi `IOT' e `ABRT' si riferiscono allo stesso segnale: esiste infatti una differenza nelle varie versioni dei sistemi Unix, a causa della quale lo stesso segnale viene identificato da nomi distinti. In particolare negli Unix System V R4 il segnale in questione è identificato dal nome `ABRT' mentre nelle altre versioni di Unix lo stesso segnale è identificato dal nome `IOT'. Si è quindi voluta offrire la possibilità di riferirsi al segnale con lo stesso nome con il quale il segnale è noto al sistema.

Attenzione però che i segnali `TERM', `USR1' e `USR2' sono utilizzati durante la modalità operativa conversazionale (cfr. comando `CONV') assumendo rispettivamente lo speciale significato di `termine conversazionale', `disattivazione autosave' e `attivazione autosave'. Fuori da tale modalità operativa si consiglia comunque di usare preferibilmente proprio i segnali `TERM', `USR1' e `USR2'.

 
       CUX> TRAP TERM GOTO TRAPPED  ( Alla ricezione del segnale TERM    )
                                    ( salta all'etichetta TRAPPED        )
       CUX> LET VAR 0               ( Imposta la variabile VAR a 0       )
       CUX> MESG $VAR               ( Ne visualizza il contenuto         )
       0
       CUX> COMPUTE VAR $VAR + 1    ( Incrementa la variabile VAR        )
       CUX> MESG $VAR               ( Ne visualizza il contenuto         )
       1
In questo esempio se il segnale TERM viene ricevuto durante l'istruzione `COMPUTE' non necessariamente la variabile `VAR' verrà incrementata correttamente. Se si vuole essere sicuri che certe porzioni di programma siano immuni dalla ricezione di segnali che ne possano compromettere la correttezza, occorre far precedere tali porzioni da opportune trap per ignorare il segnale, e di farle seguire da altrettante trap che ristabiliscano l'intercettazione del segnale, come mostra il seguente esempio:
 
       CUX> TRAP TERM GOTO TRAPPED  ( Alla ricezione del segnale TERM    )
                                    ( salta all'etichetta TRAPPED        )
       CUX> LET VAR 0               ( Imposta la variabile VAR a 0       )
       CUX> MESG $VAR               ( Ne visualizza il contenuto         )
       0
       CUX> TRAP TERM               ( Ignora il segnale TERM             )
       CUX> COMPUTE VAR $VAR + 1    ( Incrementa la variabile VAR        )
       CUX> TRAP TERM GOTO TRAPPED  ( Intercetta il segnale TERM         )
       CUX> MESG $VAR               ( Ne visualizza il contenuto         )
       1

A partire dalla versione 4.0, è disponibile lo pseudosegnale `CD' in ambiente Windows/95/98/NT e MsDos, generato internamente in seguito alla caduta della portante. È cos`ì possibile eseguire determinate istruzioni in caso di caduta di linea:
 
       CUX> TRAP CD GOTO NOCARRIER  ( Alla ricezione dello pseudosegnale )
                                    ( CD salta all'etichetta NOCARRIER   )
       ..........
Se l'istruzione in esecuzione lo prevede viene anche impostato il flag di errore (cfr. i comandi `IFER' e `IFNOER').


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

UNIXPATH

Converte tutti i caratteri `\' (backslash) occorrenti nella variabile indicata come parametro in caratteri `/' (slash).
 
       CUX> LET VAR \usr\varie\tmp         ( Imposta la variabile        )
       CUX> UNIXPATH VAR                   ( La converte                 )
       CUX> MESG $VAR                      ( La visualizza convertita    )
       /usr/varie/tmp
       ..........


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.10 Comandi di gestione fax


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

IDENFAX

Imposta la stringa di identificazione del modemfax, la quale deve essere racchiusa tra una coppia di doppi apici `"'. Vedere la capability `F8' nel file `modmcap'.
 
       CUX> IDENFAX "02/12345678"
       ...........


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

IFFAX

Esegue l'istruzione passata come parametro al comando se l'ultima connessione è stata con un modemfax.
 
       CUX> IFFAX GOTO SPEDISCI  ( Se la connessione è con un modemfax   )
       ...........               ( salta all'etichetta SPEDISCI          )


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

RECFAX

Riceve un fax in formato G3 salvandolo nel file indicato come parametro o nella variabile `FILE' se non è specificato alcun parametro. Il fax ricevuto viene salvato in file di una pagina fax ciascuno, ovvero ciascun file contiene una pagina del fax ricevuto. Mentre il nome del file può essere scelto, l'estensione del file viene impostata automaticamente in un numero a 3 cifre in modo da indicare, partendo da 0, il numero progressivo di pagina: sarà quindi `.NNN' dove `NNN' è il numero progressivo delle pagine.

Il comando imposta automaticamente la variabile predefinita `WORD' all'identificativo del fax remoto, se questo esiste, la variabile predefinita `WHICH' al tipo di risoluzione negoziata, valendo 0 o 1 a seconda che la risoluzione sia rispettivamente bassa o alta, e la variabile predefinita `RETURN' al numero di pagine ricevute correttamente.

Se nel file `modmcap' è presente la capability booleana `Rv' le pagine da spedire sono in modalità reverse.
 
       CUX> ANSWER              ( Attende una chiamata                   )
       CUX> IFFAX GOTO RICEVI   ( Se è chiamato da un fax salta          )
                                ( all'etichetta RICEVI                   ) 
       ...........
       CUX> LABEL RICEVI
       CUX> RECFAX ./pagfax     ( Riceve il fax nel file ./pagfax        )
       ...........
Nell'esempio, se il fax ricevuto è lungo 3 pagine, verranno creati i tre file:
 
       ./pagfax.000
       ./pagfax.001
       ./pagfax.002

Per informazioni sulla risoluzione del fax ricevuto si veda l'appendice Il file di log.

Attenzione: lo stato di uscita di questo comando influisce sul valore del flag di errore (cfr. i comandi `IFER' e `IFNOER').


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

RESETFAX

Inizializza il modem in modalità fax forzando la linea a 8 bit, con parità none e 1 bit di stop. Si consiglia inoltre di impostare una velocità di 19200 baud (cfr. comando `BAUD') e un blocco dati di 1024 byte (cfr. comando `LENREK').

Nell'impiego di tale comando vengono utilizzate le capability `Rf', `F8', `G0' e `G1' del file `modmcap'.

Attenzione: per utilizzare tale funzione il modem deve supportare la `CLASSE 2'.
 
       CUX> INIT MODEMFAX       ( Carica il modem opportuno              )
       CUX> RESETFAX            ( Lo inizializza                         )
       CUX> IFER GOTO ERRFAX    ( In caso di errore salta                )
                                ( all'etichetta ERRFAX                   ) 
       CUX> SENDFAX ./pagfax    ( Spedisce il fax ./pagfax               ) 
       ...........
Attenzione: lo stato di uscita di questo comando influisce sul valore del flag di errore (cfr. i comandi `IFER' e `IFNOER').


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

SENDFAX

Invia un fax. Le pagine di cui è formato il fax devono essere elencate, una per riga, nel file indicato come parametro o nel file indicato nella variabile `FILE' se non è specificato alcun parametro. In sostanza, il file deve rappresentare l'elenco delle pagine da spedire. Se il file contiene metacaratteri (ad esempio `*.fax') verranno spediti come un unico fax tutte le pagine elencate in tutti i file che corrispondono al pattern specificato.

Il comando imposta automaticamente la variabile predefinita `RETURN' al numero di pagine trasmesse correttamente.

Per ottimizzare la velocità di trasmissione si consiglia di impostare la lunghezza del record (cfr. comando `LENREK') a 1024 byte.

Le pagine da spedire devono essere in formato G3 e tutte alla medesima risoluzione: alta se la capability `G0' nel file `modmcap' ha il primo valore uguale a 1, bassa se uguale a 0.

Se nel file `modmcap' è presente la capability booleana `Rv' le pagine in ingresso al Cux sono in modalità reverse.

Nel seguente esempio, dopo aver opportunamente inizializzato il modem, si procede alla trasmissione del fax scelto.
 
       CUX> INIT MODEMFAX       ( Carica il modem MODEMFAX               )
       CUX> RESETFAX            ( Lo inizializza                         )
       CUX> IFER GOTO ERRFAX    ( In caso di errore salta                )
                                ( all'etichetta ERRFAX                   ) 
       CUX> SENDFAX ./pagfax    ( Spedisce il fax ./pagfax               ) 
       ...........
Se il file `./pagfax' contiene i seguenti file in formato G3
 
       ./pagina.000
       ./pagina.001
       ./pagina.002
il fax trasmesso sarà formato da 3 pagine, `./pagina.000', `./pagina.001' e `./pagina.002'.

Attenzione: lo stato di uscita di questo comando influisce sul valore del flag di errore (cfr. i comandi `IFER' e `IFNOER'.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.11 Comandi di gestione voice


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

IFVOICE

Esegue il comando indicato come parametro se l'ultima connessione era a voce.
 
       CUX> IFVOICE BATCH bat.cux ( Se connessione voice esegue il batch )
       ..........


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

RECVOICE

Riceve un file-voice salvandolo nel file indicato come parametro o nel file indicato dalla variabile `FILE' se non è indicato alcun parametro. Se il comando è seguito da un parametro numerico questo indica il numero massimo di secondi di durata del trasferimento (per default 60).

Poi può seguire un parametro che rappresenta un elenco di azioni che possono far terminare il trasferimento; in tal caso viene salvata nella variabile `WHICH' il codice dell'azione che ha determinato l'interruzione. Nel seguito viene riportato l'elenco delle possibili azioni, unitamente al codice e al valore impostato nella variabile `WHICH' (le azioni i cui codici sono `l', `L', `b', `s' e `q' sono sempre controllate):
 
     Which   Codice    Descrizione

       0               Nessuna azione
       1       1       DTMF 1
       2       2       DTMF 2
       3       3       DTMF 3
       4       4       DTMF 4
       5       5       DTMF 5
       6       6       DTMF 6
       7       7       DTMF 7
       8       8       DTMF 8
       9       9       DTMF 9
      10       0       DTMF 0
      11       A       Extended DTMF A
      12       B       Extended DTMF B
      13       C       Extended DTMF C
      14       D       Extended DTMF D
      15       *       Extended DTMF *
      16       #       Extended DTMF #
      17       o       Rx overrun
      18       c       Fax call
      19       e       Data call
      20       h       Local on-hook
      21       H       Local off-hook
      22       s       Silence
      23       q       Quiet
      24       $       Bong tone
      25       l       Remote hangup
      26       L       Remote hangup or other
      27       r       Ringback
      28       b       Busy
      29       d       Dial tone
      30       u       Tx underrun
      31       a       Data answer tone
      32       R       Ring
Ogni `<' visualizzato corrisponde a 1024 bytes salvati.
 
       CUX> RECVOICE file.rmd 60 l1   ( Salva in file.rmd per 60 secondi )
       ...........              ( Interrompre in caso di hangup remoto o )
       ...........              ( se riceve DTMF 1.                      )
Il file verrà salvato in formato rmd con compressione 2,9600 per gli Zyxel. Per convertirlo in formati più comuni (wav, au, voc) si possono usare i seguenti programmi:
 
       rmdtopvf -8 file.rmd file.pvf ( Conversione di transito in pvf    )
       pvftowav file.pvf file.wav    ( Conversione da pvf a wav          )
       pvftowav file.pvf file.au     ( Conversione da pvf a au           )
       pvftowav file.pvf file.voc    ( Conversione da pvf a voc          )

Attenzione: lo stato di uscita di questo comando influisce sul valore del flag di errore (cfr. i comandi `IFER' e `IFNOER').


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

RESETVOICE

Inizializza il modem in modalità voice forzando la linea a 8 bit, con parità none e 1 bit di stop. Si consiglia inoltre di impostare una velocità di almeno 19200 baud (cfr. comando `BAUD').

Nell'impiego di tale comando viene utilizzata la capability `Vc' (cfr.) del file `modmcap'.

Attenzione: per utilizzare tale funzione il modem deve supportare la `CLASSE 8'.
 
       CUX> INIT MODEMVOICE     ( Carica il modem opportuno              )
       CUX> RESETVOICE          ( Lo inizializza                         )
       CUX> IFER GOTO ERRVOICE  ( In caso di errore salta                )
                                ( all'etichetta ERRVOICE                 ) 
       CUX> SENDVOICE ./file    ( Spedisce il file ./file                ) 
       ...........
Attenzione: lo stato di uscita di questo comando influisce sul valore del flag di errore (cfr. i comandi `IFER' e `IFNOER').


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

SENDVOICE

Invia il file-voice indicato come parametro o il file specificato dalla variabile `FILE' se non è indicato alcun parametro. Poi può seguire un parametro che rappresenta un elenco di azioni che possono far terminare il trasferimento; in tal caso viene salvata nella variabile `WHICH' il codice dell'azione che ha determinato l'interruzione.

Per le azioni ammesse, i codici corrispondenti e i valore assegnati alla variabile `WHICH' si rimanda al comando `RECVOICE' (cfr). I comandi lLbsq sono sempre controllati.

Ogni `>' visualizzato corrisponde a 1024 bytes spediti.
 
       CUX> SENDVOICE file      ( Invia il file e interrompre in caso di )
       ...........              ( hangup remoto o se riceve DTMF 1.      )

Per ottenere, per sermpio, un file di tipo rmd con compressione 2,9600 da file @cite(wav), @cite(au) o @cite(voc) con:
 
        wavtopvf -8 file.wav file.pvf
        pvftormd ZyXEL_2864 2 file.pvf file.rmd

Attenzione: lo stato di uscita di questo comando influisce sul valore del flag di errore (cfr. i comandi `IFER' e `IFNOER').


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.12 Comandi per servizi Tcp/Ip

I comandi di questo gruppo, introdotto con la versione 4.0 di Cux, permettono di interagire con i server di specifici servizi Tcp/Ip. Ovviamente la porta utilizzata deve essere di tipo Tcp/Ip e deve essere configurata in modalità client.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

CUXSYNC

Comando per la sincronizzazione dell'ora di sistema avvelendosi di servizi TCP/IP o via modem.

La precisione del settaggio su linea modem è circa di un secondo, mentre su rete dipende dalla distanza della macchina che fornisce il servizio daytime e dai tempi ti propagazione su rete (WWW).

NB: questo comando può essere eseguito solo dall'amministratore di sistema (Administrator per WindowsNT o root per UNIX) quando il sistema operativo lo prevede.

Il formato standard dell'ora è: `yyyy-mm-dd hh:mm:ss stringa *CRLF'.

I parametri per i comando `CUXSYNC' per motificare il formato della data e dell'ora sono:

TCP
L'ora è nel formato del servizio daytime TCP/IP `dayweek month dd hh:mm:ss yyyyCRLF'.
UTC
L'ora è assoluta (Universal Time Clock) coincidente all'ora del meridiano 0.
USA
L'ora è nel formato usato negli Stati Uniti d'America `stringa yy-mm-dd hh:mm:ss stringa *CRLF' e richiede anche la presenza del parametro UTC.
TZ
Non tiene conto del TIMEZONE Msdos e Windows.
Esempio di sincronizzazione via rete:
 
       ...........
       CUX> log tempo
       CUX> port TCP_C 13 time.ien.it   ( Connessione al Public NTP Time   )
                                        ( Server del Istituto Galileo      )
                                        ( Ferraris di Torino 193.204.114.1 )
       CUX> cuxsync TCP
       CUX> close
       ...........
Esempi di sincronizzazione via modem di una macchina MsDos:
 
       ...........
       CUX> log tempo
       CUX> port COM2
       CUX> dial 166114615              ( Istituto Galileo Ferraris di     )
                                        ( Torino, servizio a pagamento     )
       CUX> cuxsync TZ
       CUX> command
       CUX> hangup
       CUX> close
       ...........
...verso un servizio di daytime statunitense:
 
       ...........
       CUX> log tempo
       CUX> port COM2
       CUX> dial 001/3034944774         ( Segnale orario statunitense      )
       CUX> cuxsync USA
       CUX> command
       CUX> hangup
       CUX> close
       ...........

Alcuni sistemi operativi per far si che la data e l'ora vengano salvate nell'orologio CMOS hanno bisogno dell'esecuzione di programmi specifici. Ciò è possibile renderlo automatico valorizzando la variabile di environment DYNACLOCK con la stringa di chiamata dell'esegiobile coi relativi parametri. Per esempio su Linux si può settare l'orologio CMOS col programma `clock -u -w' o `hwclock -u -w'.

Nel caso standard via modem e di quello USA, il comando si comporta come i protocolli di file transfer ed è possibile utilizzare il comando `RETRY' in caso di errori di trasmissione.

Attenzione: lo stato di uscita di questo comando influisce sul valore del flag di errore (cfr. i comandi `IFER' e `IFNOER')


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

FTP

Comando per usufruire del servizio FTP tramite un insieme di sottocomandi che vengono indicati come primo parametro.

I comandi disponibili sono:

FTP INTERN TIMEOUT nn
Timeout dei comandi FTP espresso in secondi (default 60 secondi).
FTP INTERN COMMOUT nn
Timeout del comando RCMD espresso in secondi (default -1 cioè infinito).
FTP INTERN INTERACT SsYy|Nn
Abilitazione del paginatore (default S).
FTP READHE
Visualizza la riga inviata dal server FTP subito dopo la connessione.
FTP SYST
Ritorna informazioni aggiuntive sul sistema (server).
FTP USER nomeuser
Vuole come parametro il nome dell'utente. Precede il comando FTP PASS.
FTP PASS passwd
Vuole come parametro la password dell'utente indicato precedentemente con il comando FTP USER.
FTP TYPE I|A|..
Setta il tipo di trasferimento file o binario (I) o ascii (A). Alcuni server implementano anche altre codifiche
FTP GET rem_nome [local_nome]
Preleva il file indicato come secondo parametro dal server FTP e opzionalmente lo salva con il nome indicato nel terzo.
FTP PUT local_nome [rem_nome]
Invia il file indicato come secondo parametro dal server FTP e opzionalmente lo salva con il nome indicato nel terzo.
FTP PWD
Come il comando UNIX pwd, visualizza la directory nella quale ci troviamo (parte server).
FTP CD nome_dir
Attua un cambiamento di directory (parte server).
FTP DIR [nome_dir]
Elenca i file e le directory visualizzandone dimensioni e data.
FTP LIST [nome_dir]
Elenca solo i nomi dei file e le directory.
FTP MKDIR nome_dir
Con i relativi permessi, crea una directory remota.
FTP RMDIR nome_dir
Con i relativi permessi, rimuove una directory remota.
FTP RCMD comm
Con i relativi permessi, fa esegue un comando al server.
FTP NOOP
Comando no operation per mantenere attiva la connessione FTP e riazzerare il timeout del server.
FTP DEL nome_file
Con i relativi permessi, cancella il file remoto.
FTP RENA nome_old nome_new
Con i relativi permessi, cambia il nome al file remoto.
FTP HELP
Elenca i comandi eseguibili sul server.
FTP SIZE nome_file
Ritorna dimensioni del file.
FTP SITE comm [param ...]
Permette di eseguire un subset di comandi del server. Per esempio: FTP SITE IDLE 7200 per aumentare il timeout del server a 7200 secondi.
FTP STAT [nome_file o meta]
Restituisce informazioni aggiuntive del sistema o del file indicato.
FTP ACCT account
Vuole come parametro la password dell'account.
FTP FREE comm [param ...]
Comando non standard per eseguire commandi senza l'apertura della linea dati(no datatransfer)
FTP QUIT
Comunica al server di chiudere la connessione.

Il comando modifica il valore della variabile `WHICH' e la variabile `CONNECT'. Se il valore della variabile `WHICH' è:
 
minore di 300 per operazione riuscita a buon fine,
compreso tra 300 e 400 l'operazione è riuscita ma non terminata (per
esempio USER che richiede la password),
compreso tra 400 e 600 errore ordinario FTP,
uguale a 800 operazione iterrotta dall'operatore,
uguale a 850 timeout interno raggiunto,
uguale a 900 chiusura connessione  dal server per timeout.
La variabile `CONNECT' è valorizzata a 0 o 1 a seconda che vi sia la linea attiva.

N.B.: genera log nel file .SAV (cfr. `CMDSAVE')

 
       CUX> port FTP 21 ftp.dynamica.it
                                ( Apre la connessione con il server FTP  )
                                ( ftp.dynamica.it sul servizio 80         )
       CUX> ftp USER anonymous  ( Invia nome utente                      )
       A>331 Guest login ok, send your complete e-mail address as password.

       CUX> ftp PASS mymail@mydom.it
       A>230-Welcome, archive user at dynalx !
       230-Max user:    10
       230-Actual user: 1
       230 Guest login ok, access restrictions apply.
       ..........
       ..........
       ..........
       CUX> ftp dir
       A>200 PORT command successful.
       C>150 Opening ASCII mode data connection for /bin/ls.
       226 Transfer complete.
       total 6
       drwxr-xr-x  15 root     root         1024 Apr 19 03:07 .
       drwxr-xr-x  15 root     root         1024 Apr 19 03:07 ..
       d--x--x--x   2 root     root         1024 Apr  2  1998 bin
       drwxr-xr-x   2 root     root         1024 Mar 30  1998 docs
       d--x--x--x   2 root     root         1024 Jan 15  1997 etc
       ..........
       ..........
       ..........
       CUX> ftp QUIT
       A>221 Goodbye.
       CUX> close

Attenzione: lo stato di uscita di questo comando influisce sul valore del flag di errore (cfr. i comandi `IFER' e `IFNOER').


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

HTTP

Tale comando permette di interagire con il server HTTP scelto. Necessita del comando `PORT' per aprire la connessione TCP con il server prescelto. Il comando ha le seguenti sintassi:
 
       http GET path fileout [SEC:n] [OVER] [INFO]
       http HEAD path fileout [SEC:n] [INFO]
       http POST path fileout stringa_parametri|filein [SEC:n] [INFO]

Il primo parametro è il l'azione da compiere:
 
      Comando      Descrizione
       `GET'      Preleva un file
       `HEAD'    Preleva la testata HTTP
       `POST'    Invia query al server HTTP

Il secondo parametro path è il nome del file da scaricare, completo di percorso del server HTTP (URL), per esempio: /download/cux/example.htm

Il terzo fileout è il nome del file in cui salvare il file ricevuto.

Per l'azione `POST' il quarto parametro è obbligatorio e deve essere o una stringa o un file che la contenga (filein).

Cux interpreta tale parametro come una stringa o come il nome di un file a seconda della presenza o meno dei doppi apici.

La stringa deve essere al massimo di 128 caratteri, rachiusa tra doppi apici `"') e deve indicare la query che si vuol inviare al server HTTP.

I rimanenti parametri opzionali sono:

SEC:n
Dove n indica il tempo di attesa, espresso in secondi, della risposta da parte del server HTTP e per default è di 15 secondi.
INFO
Lascia la testata descrittiva del protocollo HTTP in testa al file scaricato invece di salvarla nel file di log (cfr. comando `LOG'). In combinazione con l'azione `GET', inibisce il riprelievo di uno stesso file finchè sul server non ve ne sia una copia con data più recente. Attenzione: con l'azione `HEAD' in mancanza dell'opzione `INFO' fileout è vuoto.
OVER
In combinazione con l'azione `GET' e l'opzione `INFO', forza la sovrascrittura di fileout. In sua assenza la sovrascrittura avverrebbe solo se il file da scaricare fosse più recedente di quello già presente e indicato in fileout. Se il file non fosse mai stato prelevato, l'opzione verrà ignorata.

In caso di errore il comando `HTTP' ritorna uno tra i seguenti codici:
 
     Codice    Descrizione

       2       Errore inerente la linea di comunicazione.
       3       Errore inerente il file di input.
       4       Errore inerente il file di output.
       5       Errore inerente al sottocomando HTTP.
       6       Errore relativo all'header.
       7       Errore relativo al corpo del file.
       8       Errore ricezione codice. Pagina non ricevuta dal server.
       9       Errore segnalato dal server.

Per esempio:
 
       CUX> port TCP_C 80 www.dynamica.it
                                ( Apre la connessione con il server HTTP )
                                ( www.dynamica.it sul servizio 80         )
       CUX> http GET /index.htm index.htm SEC:180 OVER INFO
                                ( Scarica in modo forzato, il file       )
                                ( index.htm con la testata aspettando    )
                                ( massimo 3 minuti                       )
       CUX> close               ( Chiude la connessione                  )
       CUX> port TCP_C 80 www.dynamica.it
                                ( Riapre la connessione                  )
       ..........
       ..........
       ..........
       CUX> close               ( Richiude la connessione                )

Dopo ogni comando HTTP si DEVE chidere la connessione TCP con il server.

Se abilitato produce un file di log (cfr. comando `LOG').

Attenzione: lo stato di uscita di questo comando influisce sul valore del flag di errore (cfr. i comandi `IFER' e `IFNOER') e modifica il valore della variabile `WHICH'.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

LPD

Attiva il CUX per fare da server LPD (server di stampa) con la seguente sintassi:

LPD [S<nnn>][|N] [rootdir]

S<nnn>
Il comando LPD per evitare il collasso dei dischi, controlla che vi sempre spazio per scaricarvi il file da spampare. Questo parametro definisce il numero minimo di Kbyte da lasciare come margine di sicurezza sul disco.

Nota per chi ha anche lo scansore delle directory: tale spazio sul disco/filesystem non è garantito nel caso in cui i driver delle stampanti preprocessino i file da stampare generando a loro volta dei file intermedi sullo stesso disco/filesystem.

N
Se presente indica all'LPD di non eliminare i file dati ricevuti in una connessione dove non è stato trasmesso il file comandi a loro associato.
rootdir
Directory nella quale verrà generata una directory per ogni coda di stampa. Se omessa le n directory verranno generate nella dir corrente.

Attenzione: se specificata la directory deve già esistere. Il comando LPD genera soltanto le directory per le code di stampa.

Genera informazioni nel file di log standard CUX (cfr. comando `LOG').

Nota utenti Unix: Sotto unix per lanciare questo spooler sulla porta TCP 515 (porta ufficiale dell'LPD che è ad esso riservata) occorre che non sia già attivo uno server LPD di sistema ed essere root o avere il cux suiddato come tale.

Esempio d'uso, attiva la coda di stampa generando le directory delle code di stampa in /usr/local/myspool e dando un limite minimo di spazio da lasciare disponibile di 10Mb:
 
       CUX> PORT LPD 515
       CUX> LPD S10240 /usr/local/myspool
       ......
       ......
       ......
       [DEL]                <Per uscire dallo stato di server>
       CUX> CLOSE

Attenzione: lo stato di uscita di questo comando influisce sul valore del flag di errore (cfr. i comandi `IFER' e `IFNOER') e modifica il valore della variabile `WHICH'.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

LPR

Comando che permette di fare delle richieste ad un server LPD compresa quella di stampare uno o più file.

LPR [[-]opt1[|...[|[-]optn]..]] [<file> <file2> <file3> .. ]

DESCRIZIONE DI TUTTE LE OPZIONI:

H<nome_host|IP address>
Host dal quale viene fatta la richiesta
P<user_name|user_id>
User che fa la richiesta
J<job>
Nome del lavoro (per la bunner page).
C[classe]
Classe del lavoro (per la bunner page).
L<user_name>
Comando di stampa della bunner page; il parametro, se valorizzato, l'utente che fa la richiesta di stampa.
M<e-mail_address>
Se implementato dal server LPD invia una e-mail con esito della stampa all'indirizzo indicato.
I<n>
Numero caratteri di spostamento del bordo sinistro nella stampa.
T<title>
Titolo per i file di tipo pr.
W<n>
Indica al server LPD che il numero di colonne se è diverso dallo standard 80 colonne; indicato per stampe contabili a 132 colonne.
1<nome_file>
Nome del file per troff R font
2<nome_file>
Nome del file per troff I font
3<nome_file>
Nome del file per troff B font
4<nome_file>
Nome del file per troff S font
S<nome_stampante>
Nome della stampante
X<n>
Numero di copie
Y<type>
tipo di processamento per i file inviati; può essere:
`c'
processamento per file in formato CIF
`d'
processamento per file in formato DVI
`f'
processamento per file in formato ROW parzialm. filtrato
`g'
processamento per file in formato BUPL
`l'
processamento per file in formato ROW
`n'
processamento per file in formato DITROFF
`o'
processamento per file in formato PS
`p'
processamento per file in formato PR
`r'
processamento per file in formato CIF
`t'
processamento per file in formato TROFF
`v'
processamento per file in formato C/A/T
Z<n>
Comando lpr
`1' Restart
Sintassi: LPR Z1|S<nome stampante>

Descrizione: Sollecita la scansione di una coda di stampa da parte del server LPD.

Paramentri: L'unico parametro "S" è mandatorio.

`2' Send a printer-job
Sintassi: LPR Z2|S<nome stampante>[|<Altre opzioni>] <elenco file>

Descrizione: Manda verso un server LPD un printer-job composto da uno o piu' file da stampare.

Parametri: Gestisce tutte le opzioni tranne `F' e `B'.

`3' Status short
Sintassi: LPR Z3|S<nome stampante>[|<altre opzioni>] [<lista>]

Descrizione: Richiede una breve descrizione dello stato di una coda; se specificati utente o job-number la descrizione si limita ai job appartenenti all'utente indicato o con il tale job-number. L'output di tale comando può essere salvato su file (opt `F'), mandato a video in modo interattivo (opt `B') oppure in modo non interattivo (default).

Parametri: Il nome della stampante è mandatorio, <lista> è un elenco di utenti e/o job-number; le opzioni facoltative sono la `A' , la `F' e la `B' (la `F' ha priorita' sulla `B').

4 Status long
Sintassi: LPR Z4|S<nome stampante>[|<altre opzioni>] <lista> dove <lista> e un elenco di utenti e/o job-number.

Descrizione: Come sopra soltanto che descrive in modo più dettagliato ogni printer-job.

Parametri: Come "Status short".

5 Remove jobs
Sintassi: LPR Z5|S<nome stampante>[|<altre opzioni>] <lista> dove <lista> e un elenco di utenti e/o job-number

Descrizione: Come sopra soltanto che descrive in modo più dettagliato ogni printer-job.

Parametri: Come "Status short" con in più l'opzione P per forzare l'utente richiedente la rimozione (sarà necessario nel caso si debbano cancellare file non propri).

A<n>
Attesa in secondi della connessione verso il server.
Q
In mancanza di ACK da parte di risposta da parte del server viene segnalato l'errore nel file di log, se presente indica di interrompere il comando.
F<file_name>
File di output per gli status.
B
Output interattivo nel caso degli status e cancellazioni.
-[x]
Se la lettera di identificazione dell'opzione è preceduta da un `-' ne forza la disabilitazione.

Attenzione: le opzioni vengono processate da sinistra a destra; se la stessa opzione compare più volte sulla riga di comando il suo stato sarà quello impostato più a destra sulla linea di comando. Le varie opzioni vengono separate con un carattere `|'.

Attenzione: esiste una riga di opzioni di default che viene sempre anteposta a quella eventualmente specificata su riga di comando; tale default è: "Z2|A10|Yf|L|"

ESEMPI:

stampa di uno o più file:
 
       CUX> PORT LPR 515 <host>
       CUX> LPR S<nome_stampante> <file> [<file2> <file3> .. ]
       ......
       ......
       ......
       CUX> CLOSE
visione dello stato di una coda:
 
       CUX> PORT LPR 515 <host>
       CUX> LPR Z3|S<nome_stampante>
       ......
       ......
       ......
       CUX> CLOSE
visione dello stato particolareggiato dei printer-job dell'utente pippo
 
       CUX> PORT LPR 515 <host>
       CUX> LPR Z4|S<nome_stampante> pippo
       ......
       ......
       ......
       CUX> CLOSE
rimozione dei job dell'utente pluto da parte dell'utente pippo
 
       CUX> PORT LPR 515 <host>
       CUX> LPR Z5|Ppippo|S<nome_stampante> pluto
       ......
       ......
       ......
       CUX> CLOSE

Genera informazioni nel file di log standard CUX (cfr. comando `LOG').

Attenzione: lo stato di uscita di questo comando influisce sul valore del flag di errore (cfr. i comandi `IFER' e `IFNOER') e modifica il valore della variabile `WHICH'.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

POP3

Tale comando permette di scaricare una mailbox dal server POP3 scelto. Il comando ha la seguente sintassi:
 
       pop3 user password directory [del] [secX]
dove user indica l'utente cui si riferisce la mailbox, password è la password dell'utente user e directory indica la directory in cui scaricare la mailbox. Il parametro sec, se presente, indica il tempo di attesa, espresso in secondi, della risposta da parte del server e per default X=5. Infine, il parametro del, se presente, richiede di cancellare le mail dalla mailbox dopo averle scaricate.

In caso di errore il comando `POP3' ritorna uno tra i seguenti codici:
 
     Codice    Descrizione

       2       Errore inerente la linea di comunicazione.
       2       Errore durante l'apertura della linea di comunicazione
       3       Directory non accessibile
       4       Errore sulla transazione iniziale
       5       Errore sulla transazione USER
       6       Errore sulla transazione PASS
       7       Errore sulla transazione STAT
       8       Errore durante la ricezione della mail
       9       Errore sulla transazione DELE
      10       Errore sulla transazione QUIT
Attenzione: lo stato di uscita di questo comando influisce sul valore del flag di errore (cfr. i comandi `IFER' e `IFNOER').


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

SMTP

Tale comando permette di inviare una mail al server SMTP scelto. Il comando ha la seguente sintassi:
 
       smtp file
dove file è il file contenente la mail da inviare dal quale vengono estratti mittente e destinatari(o).

Il formato della mail è il seguente: l'header della mail (ovvero le righe iniziali del file che precedono la prima riga vuota) deve contenere:

  1. Un campo che inizi con la keyword `From:' o `Sender:', non importa se maiuscola o minuscola, seguita da un indirizzo nel formato RFC822:
     
           mailbox1[, mailbox2[, mailbox3[...]]]
    
    dove ogni mailbox può avere le due forme:
     
           local-part@domain
    
    oppure
     
           frase <local-part@domain>
    
  2. Un campo che inizi con una fra le keyword `To:' o `Resent-To:' o `cc:' o `Resent-cc:' o `bcc:' o `Resent-bcc:', non importa se maiuscola o minuscola, seguita da uno o più indirizzi nel formato RFC822:
     
           addr1[,addr2[,addr3[...]]] 
    
    dove ogni addr può essere o mailbox (cfr. la descrizione precedente al punto (1)) oppure group con la sintassi:
     
           frase :[mailbox1[,mailbox2[,mailbox3[...]]]];
    
    con mailbox come sopra.
  3. Una riga vuota contenente soltanto un `ENTER'.
  4. Il testo della mail.

Per `campo' si intende una riga dell'header della mail ed eventualmente le righe ad essa seguenti se incominciano con uno spazio o un `TAB'. In caso di errore il comando `SMTP' ritorna uno tra i seguenti codici:
 
     Codice    Descrizione

       2       Errore durante l'apertura della linea di comunicazione
       3       File non accessibile
       4       Errore nella ricerca del mittente
       5       Errore sulla transazione iniziale
       6       Errore sulla transazione HELO
       7       Errore sulla transazione MAIL
       8       Errore sulla transazione RCPT
       9       Errore sulla transazione DATA
      10       Errore durante la trasmissione della mail
      11       Errore sulla transazione QUIT
Attenzione: lo stato di uscita di questo comando influisce sul valore del flag di errore (cfr. i comandi `IFER' e `IFNOER').


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

5. Uso di Cux in modalità batch

Cux è un programma concepito per la massima facilità d'uso, sia in modalità interattiva, sia utilizzando il suo macro-linguaggio per lo sviluppo di file batch. In questo capitolo saranno presentati alcuni esempi di file di comandi uniti ad alcuni consigli pratici per la realizzazione di questi.

Un file di comandi per Cux è composto da righe in cui sono riportati comandi Cux (cfr. il capitolo Comandi). Chiamiamo un tale file programma.

Cux non richiede alcun particolare schema di denominazione dei file di programma. Per comodità dell'utente vengono riconosciuti come programmi tutti i file con estensione `.cux'; l'uso di questa estensione ne consente l'omissione durante il richiamo sia dalla linea di comando `-fc', sia dal prompt (o da una riga di programma) attraverso i comandi `BATCH' e `CALL'.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

5.1 Controllo del flusso

Un programma Cux è composto da una o più righe e ogni riga riporta un comando. Un programma Cux può trasferire il controllo ad un altro programma Cux (sottoprogramma) con la possibilità di scegliere se tornare al programma chiamante dopo l'esecuzione del sottoprogramma oppure no. Tale differenza è dovuta alla possibilità di scegliere tra l'uso dell'istruzione `BATCH' o dell'istruzione `CALL' per invocare il sottoprogramma.
 
batch prog.cux
Se tale riga compare in un file di comandi, il controllo viene trasferito al programma `prog.cux'. In questo esempio dopo il richiamo del nuovo programma non è più possibile ritornare al chiamante. L'unico modo per richiamare nuovamente il programma originario è di eseguire una nuova istruzione `BATCH'. Si supponga, per esempio, di avere due programmi Cux contenuti nei file `a.cux' e `b.cux' cos`ì formati:
 
a.cux:

batch b.cux

b.cux:

batch a.cux
Questi due programmi realizzano un ciclo (loop) infinito.

Molti comandi per la gestione delle operazioni possono terminare con uno stato di successo o con uno stato di fallimento. L'ultimo stato viene conservato fino a quando non viene eseguito un nuovo comando che lo modifica o fino a quando non viene data una tra le istruzioni `RESERR' o `SETERR'. Lo stato di terminazione di un comando può essere verificato con i comandi `IFER' e `IFNOER'. L'uso di questi ultimi due in combinazione con il comando `BATCH' consente la realizzazione di routines di programma strutturate:
 
prog.cux:

dial 154698
ifnoer batch connect.cux
batch prog.cux

connect.cux:

com una serie di operazioni
batch prog.cux
Lo schema appena presentato (che esemplifica la soluzione ad una vasta classe di problemi) esegue la chiamata di un numero. Se la chiamata ha successo si procede all'esecuzione del programma `connect.cux', in caso contrario (insuccesso) viene rieseguito il programma `prog.cux', il quale viene anche eseguito al termine di `connect.cux'.

Quello che segue è un altro esempio d'uso dei controlli di stato sui comandi:
 
ricevi.cux:

protoc cuxtxt
rec file
ifnoer batch ricevi.cux
protoc xmodem
rec file
batch ricevi.cux
In questo frammento di programma si risolve un problema legato all'adattamento di ricezione su protocolli diversi. In primo luogo si tenta di ricevere un file con il protocollo Cuxtxt. Se il trasferimento ha successo si ritorna ad uno stato di attesa, altrimenti si assegna un nuovo tipo di protocollo (Xmodem) e si ritorna in ricezione e al termine, comunque sia andata, si ricomincia da capo.

Un caso particolare di trasferimento di controllo si ha con il comando `SYSTEM'; con questo comando si trasferisce il controllo sul flusso di esecuzione al processore di comandi disponibile. Al termine il controllo ritornerà al Cux e lo stato di ritorno del comando rispecchierà la condizione di uscita dal comando specifico (errorlevel). Il concetto è ben esemplificato nel frammento riportato qui di seguito:
 
port COM1
rec file
ifnoer batch sendto.cux
end

sendto.cux:

system cux -cc -prCOM2 -ftfile
ifer batch errore.cux
system echo Successo
end

errore.cux:

system echo Fallimento
end
In questo esempio (in cui per comodità sono riportati nomi di dispositivi e comandi MsDos) si tenta di ricevere un file: se la ricezione ha successo il controllo viene trasferito al programma `sendto.cux' che a sua volta tenta un trasferimento su un'altra porta. Se quest'ultima operazione ha successo viene richiamato il comando MsDos `echo' per mandare a video la stringa `successo'; in caso di fallimento il controllo viene invece trasferito al programma `errore.cux' che a sua volta richiama il comando MsDos `echo' per visualizzare questa volta un messaggio di errore.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

5.2 Esempi di programmazione

In questa sezione vengono presentati alcuni esempi di programmi completi per Cux. Gli esempi sono spesso volutamente complicati per ragioni più didattiche che funzionali, in quanto hanno lo scopo di illustrare al lettore capacità intrinseche al programma. Esempio di autologin su un sistema Unix/Xenix con `csh'.
 
call.cux:

mute on
stdout on
protoc xon
init T1000DXONP
reset
number 157890
dial
ifnoer call logon
command
hangup off
quit

logon.cux:

rstring 5 "ogin:"
string utente
delay 1
rstring 5 "word:"
string password
delay 1
string setenv TERM ansi
rstring
string setenv DYNA ansibw
rstring
string clear
rstring
mute off
conv
return 
Ovviamente l'esempio può essere complicato a piacere, magari verificando l'effettivo funzionamento del comando `RESET'. È comunque consigliabile, nel caso di automazioni spinte, ricorrere a modem con correzione degli errori, con cui si otterrà una generale maggior affidabilità nelle operazioni e una maggior velocità operativa.

L'esempio che segue mostra invece come realizzare un'operazione ripetuta per un numero predefinito di volte. Si noti come il programma che segue dipenda, per la maggior parte, dalla disponibilità di componenti software quali quelli disponibili in Unix/Xenix.
 
inizio.cux:

system echo 0 > .cicli
batch routine.cux

routine.cux:

system test `cat .cicli` -lt 3
ifer batch fine.cux
send file
rec file
system expr `cat .cicli` + 1 > .cicli
batch routine.cux

fine.cux:

end
L'interesse maggiore di questo programma sta nella stretta interazione tra comandi Cux e programmi di sistema. Purtroppo il sistema operativo MsDos non è cos`ì ricco di comandi e modalità comode di invocazione; nulla vieta però di ricorrere all'ampio numero di tools disponibili di terza parte, anche se a partire dalla release 3.8 di Cux il ricorso a tali tools diventa comunque superfluo (cfr. più oltre).

L'esempio sopra proposto è molto banale ed è possibile trasformarlo nel seguente script solo con comandi per cux:
 
program.cux:

settcount 3
label trasmetti
send file
rec file
deccount
ifnoer goto trasmetti
end
Quello che segue è l'esempio di come costruire menu con il comando `ASK':
 
menu.cux:

mute on
stdout on
bit 8
parity none
stop 1
baud 38400

label menu_modem
mesg
mesg 1) Linea 19200 PEP
mesg
mesg 2) Linea 2400 mnp
mesg
mesg 3) uscita
mesg
ask "=====> "
deccount
ifer goto primo
deccount
ifer goto secondo
deccount
ifer exit
goto menu_modem

label primo
init T3000PEPX
number 111111
goto dopo
label secondo
init T3000V22B
number 222222
goto dopo
label dopo
reset
ifnoer goto doporeset
mesg Errore di reset !
exit 1
label doporeset
dial
ifnoer goto login
mesg Errore di dial !
exit 1
label login
conv
mute off
command 
hangup off
end
La parte iniziale dell'esempio è dedicata alle configurazioni della linea, compresa la velocità d'interfaccia con il modem.

Nella label `menu_modem' vengono visualizzate le opzioni per scegliere il tipo di configurazione modem da utilizzare. Il comando `ASK' riceve la risposta che equivale ad un `SETCOUNT n' dove `n' è il numero dato come risposta. Scegliendo la terza opzione si provoca l'uscita dal programma, mentre qualunque altra risposta ha l'effetto di tornare a visualizzare il menu.

Le label `primo' e `secondo' caricano i parametri relativi al modem scelto e chiamano il batch che caricherà il numero di telefono da utilizzare per le chiamate; l'utilizzo del comando `CALL' ha l'effetto di continuare l'esecuzione del batch corrente dal punto che era stato interrotto per chiamare l'altro batch. Le label `dopo' e `doporeset' inizializzano il tipo di modem scelto e chiamano il numero scelto. Se tutte le operazioni sono corrette, grazie alla label `login' si entra in conversazionale e se il ricevente ha una `getty' attiva si ottiene un login entrante. Le ultime operazioni riguardano lo sgancio della linea.

Lo stesso esempio può essere realizzato più semplicemente sfruttando le caratteristiche del linguaggio presenti nel Cux a partire dalla release 3.8. Sostanzialmente la differenza riguarda la creazione del menu e il ricorso all'istruzione `GOTONUM'.
 
label menu_modem
mesg
mesg 1) Linea 19200 PEP
mesg
mesg 2) Linea 2400 mnp
mesg
mesg 3) uscita
mesg
ask "=====> "
let which $counter
gotonum exit,primo,secondo,exit
Qui il comando `ASK' riceve la risposta numerica che viene memorizzata nella variabile predefinita `COUNTER'. Poiché l'istruzione `GOTONUM' è condizionata dal valore della variabile predefinita `WHICH', il valore della variabile `COUNTER' viene assegnato a quest'ultima. Su tale base viene poi operato il salto alla label opportuna. Presentiamo ora alcuni esempi in cui si possono evidenziare le caratteristiche peculiari della release 3.8 di Cux per la creazione di routine del tutto generalizzabili.

Nel seguente esempio si può vedere come realizzare una routine per controllare la definizione di una variabile:
 
testdef.cux:

compare $var
gotonum nulla,nonnulla,nonnulla

label nulla
return 1

label nonnulla
return 0
Tale routine ritorna un errorlevel di 0 o 1 a seconda che la variabile `VAR' sia definita o meno. Una simile routine può essere impiegata ad esempio per controllare la definizione di una variabile (sia `PROVA') nel modo che segue:
 
..........
let var $PROVA
call testdef
ifer goto undefined
..........
Il seguente esempio mostra invece come realizzare costrutti assimilabili al gosub del BASIC, ovvero salti con ritorno:
 
..........
let ritorno qui
goto label_gosub
label qui
..........

label label_gosub
com una serie di operazioni
goto $ritorno
Da notare come il ritorno possa essere impostato a qualsivoglia etichetta (purché ovviamente definita). Il codice compreso tra le righe `label label_gosub' e `goto $ritorno' realizza una routine interna che non richiede la chiamata ad un sottoprogramma esterno e nello stesso tempo permette di essere chiamata da punti differenti del programma.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

5.3 Programmi autonomi

Mediante l'uso di `script' (o `bat' per MsDos o `cmd' per Os/2) si possono realizzare nuovi comandi di sistema basati sul richiamo di Cux e di suoi programmi. Per comodità nell'organizzazione delle memorie di massa Cux consente la definizione di un `path' di ricerca dei file richiamati con il comando `BATCH' per mezzo della variabile di sistema `CUXPATH'. Qualora questa variabile sia stata assegnata si avrà che il file specificato come argomento al comando `BATCH' verrà cercato prima nella directory corrente e in seguito, se non trovato, nella directory assegnata a `CUXPATH'.

Nell'esempio che segue si esemplifica un semplice programma che chiama un numero telefonico specificato dalla linea di comando e invia un file verso un programma remoto di comunicazione che si suppone essere in attesa al numero chiamato.
 
Per MsDos: invia.bat

cux -ad%1 -ft%2 -cc

Per Unix/Xenix: invia

cux -ad$1 -ft$2 -cc
La sintassi di chiamata, al prompt del sistema, sarà
 
invia numero file
In questo esempio si è assunto che il protocollo d'invio fosse Cuxtxt. Volendo effettuare un invio con un protocollo pubblico come ad esempio Ymodem, si dovrà procedere come nell'esempio che segue:
 
Per MsDos: invia.bat

cux -ad%1 -ft%2 -ptymodem

Per Unix/Xenix: invia

cux -ad$1 -ft$2 -ptymodem
Si noti che, poiché Ymodem è un protocollo multifile, sarà possibile fornire non solo un nome intero ma uno o più pattern (cioè una sequenza di caratteri comprendente i due metacaratteri `?' e `*') di nomi di file. Cux espande autonomamente i pattern e di conseguenza in ambiente Unix/Xenix sarà necessario racchiuderli tra apici per evitare l'espansione operata dal processore di comandi (shell).

Spesso però il macro linguaggio di Cux non basta. Soprattutto nella realizzazione di applicazioni destinate all'utente finale. In tal caso Cux potrà essere richiamato come modulo di comunicazione da un programma che gestisca l'interfaccia utente. Grazie alla sua flessibilità d'uso Cux consente in genere un semplice adattamento a tutti quei programmi che prevedono l'uso di un servizio di comunicazione ausiliario.

Dynamica, dal canto suo, rende disponibili soluzioni e prodotti che forniscono soluzioni a problemi di automazione nelle comunicazioni. Un esempio è dato dal programma CuxTMT concepito allo scopo di consentire la realizzazione di concentratori di comunicazione per la ricezione/trasmissione di dati a gruppi di utenti.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

6. Il Cux come server remoto

L'uso di Cux come server per la trasmissione o la ricezione di file è una tipica situazione che capita a tutti coloro che usano il programma per connettersi ad una macchina remota in qualità di terminale per interagire con il suo prompt di comando e ricevere e trasmettere file senza dover sospendere la connessione.

Per ottenere questo servizio occorre che l'attività di terminale venga sostituita temporaneamente dall'attività di trasmissione file (da un punto di vista tecnico la cosa comporta un passaggio dalla gestione canonica della linea di comando ad una in cui non viene eseguito nessun controllo). A questa operazione provvede per intero Cux se eseguito con l'opzione `-MY' sulla macchina remota.

Per poter adempiere questo compito occorre la presenza di un host remoto con installato un gestore di protocollo di trasmissione conforme ad uno di quelli previsti per Cux o, ancora meglio, che sia installato il Cux stesso ma con una diversa licenza d'uso. Il chiamante locale deve naturalmente aver installato un Cux consono al sistema operativo.

Nel caso la macchina remota sia un sistema Unix/Xenix si assume inoltre che la connessione tra la macchina locale (d'utente) e la macchina remota sia già stata stabilita e che l'utente si trovi nello stato conversazionale del Cux locale e abbia già eseguito il login.

Infine, si assume il punto di vista locale, nel senso che i termini ricezione e trasmissione si intendono riferiti al Cux locale.

Per maggiori delucidazioni sull'uso di Cux si vedano comunque i capitoli Comandi e Opzioni.

N.B: per file di testo si intende un file contenente caratteri superiori al codice 32 ASCII ed inferiori al codice 127 ASCII e al più i caratteri `CR', `LF', `BELL' e `TAB'; qualunque file che contenga altri caratteri sarà considerato binario.

Per ricevere o trasmettere file dalla o alla macchina remota la prassi è sempre la stessa: in primo luogo occorre dare il comando sulla macchina remota e successivamente operare con la sequenza opportuna di comandi dal prompt del Cux operante sul sistema locale.

Per potere trasmettere più file occorre che il loro nome sia descrivibile con un pattern che includa i metacaratteri `*' e `?'. In ambiente Unix/Xenix occorre che tali metacaratteri siano posti tra apici semplici (`'') o doppi (`"') in modo che non vengano interpretati dalla shell correntemente in uso. È infatti Cux a prendersi cura di effettuare l'espansione del pattern, ma ciò non è obbligatorio. Al contrario, in ambiente MsDos l'interprete dei comandi non effettua l'espansione dei metacaratteri né la rimozione automatica degli apici, semplici o doppi. È quindi necessario che non vengano aggiunti apici che impedirebbero la corretta espansione da parte di Cux.

Per poter invece ricevere più file occorre specificare un path di destinazione, che se non esistente verrà opportunamente creato. Se non viene specificato alcun path si assume la directory corrente del Cux locale.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

6.1 Trasferimento file interattivo

Per trasferire uno o più file, al prompt della shell della macchina remota dare uno fra i comandi:
 
   1)    cux -MY -cc -ftfile -ptprotocollo

   2)    cux -MY -cc -xtpattern -ptprotocollo

   3)    cux -MY -cc -frfile -ptprotocollo

   4)    cux -MY -cc -xrpath -ptprotocollo
a seconda che si intenda ricevere (casi 1 e 2) o trasmettere (casi 3 e 4) uno (casi 1 e 3) o più (casi 2 e 4) file dalla macchina remota alla macchina locale.

protocollo dovrà valere cuxtxt o cuxenc a seconda che il file o i file da trasferire siano di testo o binari. Per compatibilità con versioni di Cux precedenti alla 3.6 usare il protocollo cuxbin al posto del protocollo cuxenc.

Uscire quindi dal conversazionale battendo <F1> (o l'equivalente ridefinito nel file `modmcap') e accedere al prompt di comando del Cux locale. Impostare lo stesso protocollo e dare il comando corrispondente:
 
       CUX> protoc protocollo
       CUX> rec file
       *********
nel caso di ricezione monofile, oppure
 
       CUX> protoc protocollo
       CUX> xrec path
       File: path/file1
       *********
       File: path/file2
       ************
       CUX>
nel caso di ricezione multifile, oppure
 
       CUX> protoc protocollo
       CUX> send file
       *********
nel caso di trasmissione monofile, o infine
 
       CUX> protoc protocollo
       CUX> xsend pattern
       File: file1
       *********
       File: file2
       ************
       CUX>
nel caso di trasmissione multifile.

Al termine della trasmissione è possibile ritornare in modo conversazionale tramite il comando `CONV'.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

6.2 Uso di Cux in modo automatico

Come sempre si consiglia all'utente di effettuare una serie di prove che gli consentano di raggiungere l'adeguata stabilità operativa, in seguito potrà essere utile creare degli script file che consentano l'automatizzazione delle operazioni che dovranno essere usate in condizioni critiche (es: sulla linea telefonica dove un minor tempo di connessione porta ad un risparmio economico).

Nell'esempio che segue viene riportato un tipico script che invoca il Cux per un invio in Ymodem accettando sulla propria riga di comando file indicati con i metacaratteri `*' e `?'.

In primo luogo vediamo il file di comandi per il Cux. Lo scopo di questo file è quello di configurare automaticamente il programma; nell'esempio in questione dapprima viene selezionato il protocollo da utilizzare, e in seguito viene spedito il file precedentemente specificato.
 
File sb.cux (file di comandi per Cux):

protoc ymodem
send
Il file che segue è uno script interpretato direttamente dalla shell del sistema operativo da voi utilizzato. Lo script non fa altro che chiamare il Cux passandogli come file da trasmettere l'argomento dato sulla linea di comando.
 
File `cuxsb' per Unix/Xenix:

cux -MY -ft$1 -fcsb


File `cuxsb' per MsDos:

cux -MY -ft%1 -fcsb
A questo punto non resta che eseguire la chiamata dello script di shell dal prompt del vostro sistema operativo, il quale richiama a sua volta il file batch del Cux:
 
cuxsb '*.cux'
in ambiene Unix/Xenix o
 
cuxsb *.cux
in ambiente MsDos.

Verranno cos`ì inviati tutti i file che hanno estensione `.cux'.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

7. Guida di Riferimento

Il seguente capitolo presenta un elenco completo delle opzioni e dei comandi di Cux.

Nelle descrizioni seguenti la notazione `(n)' nella colonna Opzioni rappresenta un numero decimale richiesto come parametro dell'opzione in questione, la notazione `(a)' sempre nella colonna Opzioni rappresenta dei caratteri ASCII richiesti come parametro dell'opzione in questione (in entrambi i casi le parentesi non devono essere digitate) e la notazione `auto' nella colonna Default indica l'impostazione automatica di un valore di defualt per quella opzione.

Se un comando viene digitato senza un valore che è atteso, il programma assumerà che gli è stato assegnato un valore nullo.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

7.1 Opzioni sulla linea di comando

 
Opz.    Parametro           Descrizione                                    Default

-aa                         Answer automatico
-aa                         Answer automatico
-ad(n)  [0-9][/,()-.]       Dial automatico del numero specificato
-b(n)   5,6,7,8             Specifica il numero di bit per la word         8                 
-bd(n)  Baud rate           Specifica il baud rate                         9600                  
-ca                         Answer conversazionale                     
-cc                         Connessione diretta per file transfer                     
-cd(n)  [0-9][/,()-.]       Dial conversazionale del numero specificato                    
-di(a)  Nome scheda video   Definisce il tipo di scheda video              auto                  
-ec(n)  0,1                 Abilita/disabilita l'eco locale                0
-fc(a)  File                Command mode batch
-fr(a)  File                Nome del file da ricevere
-fs(a)  File                Nome del file per autosave                     cux.txt
-ft(a)  File                Nome del file da trasmettere
-lf(n)  0,1                 Abilita/disabilita l'autolf                    0
-lo(n)                      Attivazione produzione logfile                 cuxlog
-lu(n)  128-10000           Imposta dimensioni buffer di input             2048
-l2(n)  0-10000             Imposta dimensioni buffer di output            2048
-ma                         Answer manuale
-md                         Dial manuale del numero
-mo(a)  Modem               Definisce il tipo di modem                     HAYES
-mu                         Programma muto                                 off                 
-nu(n)  [0-9][/,()-.]       Numero di telefono
-p(a)   e,o,m,s,n           Specifica il tipo di parità                    n
-pr(a)  Line                Specifica la linea di comunicazione            auto
-pt(a)  Protocollo          Specifica il protocollo                        cuxtxt
-rm                         Cancellati i file spediti correttamente        off
-st(n)  1,2                 Specifica il bit di stop                       1
-un                         Disabilita cancellazione file errati           off
-xr(a)  Path                Path di ricezione per Xrec
-xt(a)  Pattern             Insieme di file da trasmettere per Xsend
-Bl                         Open bloccante della linea                     off
-Bz                         Elimina i null provenienti dalla linea         off
-CK                         Disabilita i test sui numeri telefonici        off
-CR                         Uso file batch crittografati                   off
-DT                         Usa come seriale stdin e stdout                off
-EC                         Compatibilità con versioni precedenti a 3.8    off
-EX                         Uscita per terminazione batch                  off
-II                         Abilitazione swap su SYSTEM                    off
-KC(n)                      Imposta i caratteri per Kermit   
-KK                         Normalizza i nomi dei file per Kermit          off
-LE(n)  32-1024             Imposta la lunghezza del record                128
-LN                         Non rispetta i link in ricezione               off
-MY                         Usa come linea stdin e stdout                  off
-NL                         Abilitazione nomi lunghi                       off
-NT                         Non usa file temporanei in ricezione           off
-PK(n)  0-999               Imposta l'intervallo interpacchetto            0
-SA                         Abilita il salvataggio dei comandi modem       off
-SD                         Visualizza data e ora con SHOW                 off
-TI(n)  9-180               Imposta i tick per REMOTE sotto MsDos          18
-TS(a)                      Imposta la stringa per i file transfer 
-WI(n)  0-128               Imposta la finestratura                        0
-WO                         Riporta la finestratura al default             off
-XX                         Disabilita Xon/Xoff                            on
-ZZ                         Abilita la messaggistica in lingua inglese     off


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

7.2 Comandi

 
Comando     Parametro       Descrizione                                    Default

Aline                       Connette la linea in answer
Answer      Time            Attende una chiamata
Ask         Time, String    Mostra una stringa e attende una risposta
Autolf      on, off         Attiva/disattiva il linefeed automatico        off
Batch       File            Esegue un file batch
Baud        50-115200       Specifica il baud rate                         9600
Bit         5, 6, 7, 8      Definisce dimensioni word                      8
Boot                        Effettua un boot a freddo
Botton      on, off         Attiva/disattiva la visibilità dei bottoni     on
Break                       Invia un 'break' sulla linea di
                            comunicazione
Bye         Errorlevel      Termina le operazioni                          0
Bypass      Line            Realizza un passante
Call        File            Esegue un file batch e ritorna
Cat         File            Visualizza un file
Cd          Path            Cambia la directory corrente
Chroot      Path            Imposta la directory root
Clear                       Ripulisce il buffer di comunicazione
Close                       Chiude la linea corrente
Cls                         Pulisce lo scremo
Cmdsave     on, off         Abilita il log dei comandi modem               off
Cmp         File, File      Confronta due file
Com         String          Informazioni di commento
Command                     Ritorna in modalità comandi
Compare     String, String  Confronta le stringhe indicate
Comparen    Num, Num        Confronta i numeri indicati
Compute     Expr            Calcola l'espressione indicata
Conv        String          Entra in modalità conversazionale
Copy        File, File      Copia di un file
Cpj         File, File      Trasmette e riceve ordini e mancanti
Cpjrec      File            Ricezione degli ordini
Cpjsend     File            Invia i mancanti
Crlf        on, off         Conversione automatica dei cr-lf               off
Crypt       on, off         Abilita crittografazione batch                 off
Ctrlx       1-1000          Ctrl-x per interrompere un protocollo          3
Cts         on, off         Abilita/disabilita il protocollo Cts/Rts       off
Cuxsync     TCP, UTC,       Modifica l'orologio di sistema                 USA
            USA, TZ
Debug       0-9             Rallenta l'esecuzione dei comandi              0
Deccount                    Decrementa contatore interno
Delay       0-2147483647    Introduce un ritardo
Deltrans    0-255           Specifica il ritardo di trasmissione           0
Dial        [0-9][/,()-.]   Chiama il numero specificato
Dir         Path            Elenca i file e le directory del path indicato .
Display     on, off         Abilita il display remoto                      off
Dline                       Connessione in originate
Dospath     String          Converte slash in backslash
Drive       Drive           Imposta il drive corrente
Dump                        Visualizza il buffer di comunicazione
Dumpold                     Visualizza il buffer di comunicazione
Duplex      half, full      Attiva l'half o il fullduplex                  full
Dynaterm    Args            Attiva l'emulatore
Echo        on, off         Attiva/disattiva l'eco dei caratteri           off
End                         Termina il batch
Erase       File            Cancella il file indicato   cux.txt
Exist       Pattern         Controlla l'esistenza di uno o più file
Exit        Errorlevel      Termina le operazioni                          0
Fdir        FIle, Path      Salva su file indicado l'elenco dei file e dir
File        File            Seleziona il file di default                   cux.txt
Ftp         Comando         Suite di comandi per il servizio Tcp/Ip Ftp
Get         File, Var, Line Legge da file la riga indicata
Goto        Label           Salta alla label indicata
Gotonum     Label,...,Label Istruzione di salto condizionato
Hangup      on, off         Aggangia/sgancia la linea telefonica
Help                        Elenco comandi disponibili
Http        Comando         Suite di comandi per il servizio Tcp/Ip Http
Iconify                     Iconifica e deiconifica
Idenfax     String          Imposta l'identificativo del fax
Ifer        Command         Esegue il comando in caso di errore
Iffax       Command         Esegue il comando in caso di connessione fax
Ifnoer      Command         Esegue il comando se non vi è stato errore
Ifnoout     Command         Esegue il comando se non vi è stato timeout
Ifout       Command         Esegue il comando in caso di timeout
Ifvoice     Command         Esegue il comando nel caso 'voice'
Inccount                    Incrementa il contatore interno
Init        Modem           Reinizializza i parametri del modem            auto
Interrupt   on, off         Interrompibilità batch                         on
Jump        Label           Salta alla label indicata
Keyboard    on, off         Abilita la tastiera remota                     off
Kill        Segnale, PID    Invia segnali (KILL) ad un processo
Label       String          Identificativo sezione batch
Lenrek      32-1024         Definisce la lunghezza del record              128
Let         String, String  Definisce una variabile
Loadbtn     File            Carica nuovi bottoni
Log         File, on, off   Attiva la generazione dei file di log          off
Lowername                   Minuscolizza i path in ricezione
Lpd         Comando         Server Lpd
Lpr         Comando         Invia richieste di stampa ad un server Lpd
Macro       String, String  Definisce una macro
Max_k       0-100000        Imposta il massimo file-transfer in kbyte      0
Maxbuf      128-65535       Specifica le dimensioni del buffer             2048
Mdial       [0-9][/,()-.]   Chiama il numero specificato
Mesg        String          Visualizza la stringa sul video
Mkdir       Path            Crea la directory indicata
Modemctl    on, off         Abilita/disabilita il controllo della          off
                            portante
Move        File, File      Sposta e/o rinomina un file
Mute        on, off         Attiva l'eco dei comandi su video   off
Newcux      on, off         Compatibilità con versioni precedenti          on
                            alla 3.8
Nibble      on, off         Abilita/disabilita trasmissione binari         off
Noanswer                    Termina l'autoanswer
Number      [0-9][/,()-.]   Seleziona il numero telefonico
Numreg      0-255           Definisce il numero dei registri               12
Padchar     0-127           Definisce il carattere di padding              0
Padnum      0-999           Definisce il numero dei caratteri di padding   0
Page        File            Visualizza un file a pagine
Parity      Parity          Definisce il tipo di parità                    none
Passwd      User, Password  Verifica la validitá della password
Path        on, off         Attiva la trasmissione del path                off
Pkdelay     0-999           Ritardo interpacchetto in millisecondi         0
Pop3        usr,passwd,dir  Scarica mailbox via il servizio Tcp/Ip Pop3
Port        Line            Apre la linea corrente                         auto
Print       on, off         Stampa delle operazioni eseguite               off
Prompt      String          Imposta il prompt                              CUX>
Protoc      Protocol        Specifica il tipo di protocollo                cuxtxt
Ps          File            Elenca o scrive si file l'elenco dei  processi 
Put         File, String    Scrive su file la riga indicata
Pwd                         Visualizza la directory corrente
Quit        Errorlevel      Termina le operazioni                          0
Rec         File            Riceve un file
Recfax      File            Riceve un fax
Recvoice    File            Salva il file 'voice' ricevuto
Reg                         Mostra il contenuto dei registri del modem
Remote      Command         Esegue comandi in remoto   shell
Rename      File            Ridenomina il file indicato
Repeat      0-255           Definisce il numero di ripetizioni             3
Reserr                      Azzera il flag di errore
Reset                       Inizializza il modem
Resetdata                   Inizializza il modem in modalitá 'dati'
Resetfax                    Inizializza il modem in modalitá 'fax'
Resetvoice                  Inizializza il modem in modalitá 'voice'
Resize      x, y            Cambia le dimensioni della finestra
Return      Errorlevel      Ritorna al batch precedente                    0
Ring        1-254           Definisce il numero di squilli                 1
Rmdir       Path            Rimuove la directory indicata
Rstring     Time, String    Riceve una stringa dalla linea
Rsystem     Command         In grafica, segue un comando di sistema        shell
                            redirige tutto nella stessa finestra
Save        on, off         Salva le operazioni eseguite                   off
Send        File            Trasmette un file
Sendfax     File            Trasmette un fax
Sendvoice   File            Invia il file 'voice' al modem
Set         String, Sep.    Spezza in campi la stringa indicata
Setcount    +/- 2147483647  Inizializza il contatore al valore indicato
Seterr                      Imposta il flag di errore
Setpgrp     Command         Esegue un comando in modo asincrono
Shell                       Esce momentaneamente sul sistema
Show        on, off         Visualizza le istruzioni decodificate          off
Smtp        File            Invia mail al server Smtp
Spawn       Command         File-transfer con protocolli esterni
Spooler     Printer, File   Invia il file allo spooler di stampa
Star        String          Definisce la stringa per file transfer
Stat                        Stato del programma
Stdout      on, off         Output trasparente su stdout                   off
Stop        1, 2            Imposta il numero di bit di stop               1
Strchr      Char, String    Cerca (inizio) un carattere in una stringa
String      String          Invia una stringa sulla linea
Strlen      String          Calcola la lunghezza di una stringa
Strrchr     Char, String    Cerca (fondo) un carattere in una stringa
Strsub      Var, Pos, Num,  Estrae una sottostringa
            String
System      Command         Esegue un comando di sistema                   shell
Tab         Spaces          Setta lo spostamento del cursore ad ogni 'tab' 8
Touch       File            Crea vuoto il file indicato
Transmit    File            Invia un file ASCII sulla linea
Transparent on,off          Seleziona trasmissione trasparente             off
Trap        Signal, Command Intercetta un segnale
Unget       Char            Rimette un carattere nel buffer di linea
Unixpath    String          Converte backslash in slash
Unlink      on, off         Rimuove i file spediti correttamente           off
Uppername                   Maiuscolizza il nomr dei file in ricezione
User        Username        Cambia utente
Window      0-128           Imposta dimensioni finestra                    0
Word                        Mostra le risposte ammesse dal modem
Wrlog       Stat,Num,String Scrive nel log file corrente
Xoff                        Sblocca l'xon-xoff sulla linea in input
Xrec        Path            Riceve più file
Xrstring    Time, String    Riceve una stringa (blocco) dalla linea
Xsend       File            Trasmette più file
Xstring     Time, String    Invia una stringa (blocco) sulla linea


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

7.3 Variabili interne

 
Nome          Tipo          Descrizione

CONNECT       booleana      Viene impostata a da 0 a 1 ogni volta che viene
                            stabilita una connessione. 
                            Solo per MsDos: se è stato abilitato il controllo
                            di portante (`MODEMCTL'=`on') viene automaticamente
                            impostata a 0 nel caso di caduta di portante nel 
                            corso di una connessione.
COUNTER       numerico      Range: -2147483648 e 2147483647. Viene impostato anche
                            dal comando `ASK', qualora l'input sia numerico.
                            È una variabile locale.
CUXPID *      numerico      Process-id del programma in esecuzione.
DAY *         numerico      Numero a 2 cifre del giorno corrente.
ENGLISH *     booleana      Indica la lingua: italiano (0) o inglese (1).
ERROR         booleana      Flag di errore (0/1). Ogni valore da 0 a 65355 viene
                            portato a 1, ogni valore non incluso nel range o non
                            numerico viene riportato a 0.
FAX           booleana      Vale 1 se l'ultima connessione era con un fax.
FILE          stringa       Ultimo path o file immesso tramite il comando `FILE'.
FROM *        stringa       Contiene l'identificativo dell'ultimo chiamante in
                            caso di connessione Fax, ISDN e Tcp/Ip.
HOST *        stringa       Nome della macchina locale più
                            il suo indirizzo IP separati da `:'.
HOUR *        numerico      Numero a 2 cifre dell'ora corrente.
LINE *        stringa       Nome dell'ultima linea aperta o chiusa.
LOCALTIME     numerico      Indica la differenza con l'ora GMT in secondi.
MINUTE *      numerico      Numero a 2 cifre dei minuti correnti.
MODMTYPE *    stringa       Ultimo modem caricato tramite il comando `INIT'.
MONTH *       numerico      Numero a 2 cifre del mese corrente.
NUMBER        numerico      Ultimo numero assegnato tramite il comando `NUMBER'.
OPSYS *       stringa       Sistema operativo corrente: MSDOS, OS2, UNIX, 
                            UNIXR4, UNIXSCO, AIX, HPUX, SUN, LINUX, XENIX.
PIDCHILD *    numerico      pid dell'ultimo processo lanciato tramite il
                            comando `SETPGRP'.
PWD *         stringa       Directory corrente.
RELEASE *     stringa       Release del programma.
RETURN        stringa       Ritorno da una `CALL', `REMOTE', `SHELL' o `SPAWN'.
SECOND *      numerico      Numero a 2 cifre dei secondi correnti.
SERIAL *      numerico      Numero di serie del programma in esecuzione.
SUMMERTIME    booleana      Indica se l'ora legale (1) o solare (0).
TIMEOUT       booleana      Indica il valore del flag di errore per timeout.
                            Ogni valore numerico diverso da 0 e 1 viene 
                            riportato a 1, mentre ogni valore non numerico
                            viene riportato a 0.
VOICE         booleana      Vale 1 se l'ultima connessione era di tipo voice.
                            Ogni valore numerico diverso da 0 e 1 viene 
                            riportato a 1, mentre ogni valore non numerico
                            viene riportato a 0.
WHICH         numerico      Valore numerico dell'ultima stringa ricevuta tramite:
                            `ALINE', `ANSWER', `DIAL', `DLINE', `RSTRING' e `XRSTRING',
                            nonché valore determinante per il salto condizionato
                            del comando `GOTONUM'. Range: da -32768 a 32767.
                            Ogni valore non numerico o non incluso nel range
                            suddetto viene riportato a 0.
WORD          stringa       Stringa ricevuta tramite: `ALINE', `ANSWER', `ASK',
                            `DIAL', `DLINE', `RSTRING' e `XRSTRING'.
YEAR *        numerico      Numero a 4 cifre dell'anno corrente.

* Variabile di sola lettura.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

A. Marchi registrati

Tutti gli altri prodotti o servizi menzionati in questo documento sono identificati come marchi registrati delle loro rispettive società. Dynamica declina ogni responsabilità dallo specificare quali marchi sono detenuti da società.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

Indice analitico

Jump to:


A   B   C   D   E   F   G   H   I   J   K   L   M   N   O   P   Q   R   S   T   U   V   W   X   Z

Index Entry section

A
AlineALINE
AnswerANSWER
AskASK
AutolfAUTOLF
Automatico, uso di Cux in modo6.2 Uso di Cux in modo automatico

B
Banche dati, accesso1.4 Usi di base
BatchBATCH
Batch, controllo del flusso5.1 Controllo del flusso
Batch, esempi di programmazione5.2 Esempi di programmazione
Batch, programmi autonomi5.3 Programmi autonomi
Batch, uso di Cux in modalità5. Uso di Cux in modalità batch
BaudBAUD
BitBIT
BootBOOT
BottonBOTTON
BreakBREAK
ByeBYE
BypassBYPASS

C
CallCALL
Capability modmcap BuDIAL
Capability modmcap LiDIAL
Capability modmcap NmDIAL
Capability modmcap NuINIT
CatCAT
CdCD
Chimata multinumeroNUMBER
ChrootCHROOT
ClearCLEAR
CloseCLOSE
ClsCLS
CmdsaveCMDSAVE
CmpCMP
ComCOM
Comandi4. Comandi
Comandi, classi4.2 Classi di comandi
Comandi, controllo linea di comunicazione4.4 Controllo linea di comunicazione
Comandi, controllo linea modem4.5 Controllo linea modem
Comandi, controllo per file batch4.9 Comandi di controllo per file batch
Comandi, conversazionale4.6 Conversazionale
Comandi, generali4.3 Comandi generali
Comandi, gestione fax4.10 Comandi di gestione fax
Comandi, gestione voice4.11 Comandi di gestione voice
Comandi, guida di riferimento7. Guida di Riferimento
Comandi, protocolli4.7 Protocolli
Comandi, servizi Tcp/Ip4.12 Comandi per servizi Tcp/Ip
Comandi, sistema4.8 Comandi di sistema
Comando !SYSTEM
Comando !!SHELL
Comando #BATCH
Comando @BATCH
CommandCOMMAND
CompareCOMPARE
ComparenCOMPAREN
ComputeCOMPUTE
ConvCONV
CopyCOPY
CpjCPJ
CpjrecCPJREC
CpjsendCPJSEND
CrlfCRLF
CryptCRYPT
CtrlxCTRLX
CtsCTS
CuxcryptCRYPT
cuxrem.adrREMOTE
CuxsyncCUXSYNC

D
DebugDEBUG
DeccountDECCOUNT
DelayDELAY
DeltransDELTRANS
DialDIAL
DirDIR
DisplayDISPLAY
DlineDLINE
DospathDOSPATH
DriveDRIVE
DumpDUMP
DumpoldDUMPOLD
DuplexDUPLEX
DynatermDYNATERM

E
EchoECHO
EndEND
EraseERASE
ExistEXIST
ExitEXIT

F
FdirFDIR
FileFILE
File cux.arg3. Opzioni sulla linea di comando
Flag di erroreIFER
Flag di erroreIFNOER
Flag di timeoutIFNOOUT
Flag di timeoutIFOUT
Formato delle spiegazioni4.1 Formato delle spiegazioni
FtpFTP

G
GetGET
GotoGOTO
GotonumGOTONUM
Guida di riferimento7. Guida di Riferimento

H
HangupHANGUP
HelpHELP
HttpHTTP

I
IconifyICONIFY
IdenfaxIDENFAX
IferIFER
IffaxIFFAX
IfnoerIFNOER
IfnooutIFNOOUT
IfoutIFOUT
IfvoiceIFVOICE
InccountINCCOUNT
InitINIT
InterruptINTERRUPT

J
JumpJUMP

K
KeyboardKEYBOARD
KillKILL

L
LabelLABEL
LenrekLENREK
LetLET
LoadbtnLOADBTN
LogLOG
Login remoti, accesso1.4 Usi di base
LowernameLOWERNAME
LpdLPD
LprLPR

M
Macro4. Comandi
MacroMACRO
Marchi registratiA. Marchi registrati
Max_kMAX_K
MaxbufMAXBUF
MdialMDIAL
MesgMESG
MkdirMKDIR
ModemctlMODEMCTL
ModemctlBOOT
ModemctlREMOTE
ModmcapWORD
ModmcapINIT
ModmcapCONV
Modmcap, risposte modemDIAL
MoveMOVE
MsDos, uso di Cux1.2 Usi di Cux in MsDos
Multivia, ricezione stringheRSTRING
Multivia, ricezione stringheXRSTRING
Multivia, ricezione stringheGOTONUM
MuteMUTE
MY, OpzioneREMOTE

N
NewcuxNEWCUX
NibbleNIBBLE
NoanswerNOANSWER
NumberNUMBER
NumregNUMREG

O
OobOOB
Opzione MYREMOTE
Opzioni3. Opzioni sulla linea di comando
Opzioni, configurazione3.1.3 Opzioni di configurazione
Opzioni, default3.2 Default
Opzioni, guida di riferimento7. Guida di Riferimento
Opzioni, modalità operativa3.1.1 Modalità operativa
Opzioni, trasmissione immediata3.1.2 Trasmissione immediata
Opzioni, uso e significato3.1 Uso e significato delle opzioni

P
PadcharPADCHAR
PadnumPADNUM
PagePAGE
ParityPARITY
PasswdPASSWD
PathPATH
PkdelayPKDELAY
Pop3POP3
PortPORT
PrintPRINT
PromptPROMPT
ProtocPROTOC
Protocolli esterniSPAWN
PsPS
PutPUT
PwdPWD

Q
Quick start2. Uso rapido di Cux
QuitQUIT

R
RecREC
RecfaxRECFAX
RecvoiceRECVOICE
RegREG
RemoteBOOT
RemoteREMOTE
RenameRENAME
RepeatREPEAT
ReserrRESERR
ResetRESET
ResetdataRESETDATA
ResetfaxRESETFAX
ResetvoiceRESETVOICE
ResizeRESIZE
ReturnRETURN
Ricezione file1.4 Usi di base
Ricezione stringhe multiviaRSTRING
Ricezione stringhe multiviaXRSTRING
Ricezione stringhe multiviaGOTONUM
RingRING
Risposte modem, modmcapDIAL
RmdirRMDIR
RstringRSTRING
RstringXRSTRING
RsystemRSYSTEM

S
SaveSAVE
SendSEND
SendfaxSENDFAX
SendvoiceSENDVOICE
Server remoto, uso di Cux come6. Il Cux come server remoto
SetSET
SetcountSETCOUNT
SeterrSETERR
SetpgrpSETPGRP
ShellSHELL
ShowSHOW
SmtpSMTP
SpawnSPAWN
SpoolerSPOOLER
StarSTAR
StatSTAT
Stati di uscita del programma3.3 Stati di uscita del programma
StdoutSTDOUT
StopSTOP
StrchrSTRCHR
StringRSTRING
StringSTRING
StringXSTRING
StrlenSTRLEN
StrrchrSTRRCHR
StrsubSTRSUB
SystemSYSTEM

T
TabTAB
TelnetPORT
TouchTOUCH
TransmitTRANSMIT
TransparentTRANSPARENT
TrapTRAP
Trasferimento file come server remoto6.1 Trasferimento file interattivo
Trasmissione file1.4 Usi di base

U
UngetUNGET
Unix/Xenix, Uso di Cux1.3 Usi di Cux in Unix/Xenix
UnixpathUNIXPATH
UnlinkUNLINK
UppernameUPPERNAME
UserUSER
Uso rapido2. Uso rapido di Cux

V
Variabile CONNECTLET
Variabile COUNTERLET
Variabile CUXPIDLET
Variabile DAYLET
Variabile ENGLISHLET
Variabile ERRORLET
Variabile FAXLET
Variabile FILELET
Variabile FROMLET
Variabile HOSTLET
Variabile HOURLET
Variabile LINELET
Variabile LOCALTIMELET
Variabile MINUTELET
Variabile MODMTYPELET
Variabile MONTHLET
Variabile NUMBERLET
Variabile OPSYSLET
Variabile PIDCHILDLET
Variabile PWDLET
Variabile RELEASELET
Variabile RETURNLET
Variabile SECONDLET
Variabile SERIALLET
Variabile SUMMERTIMELET
Variabile TIMEOUTLET
Variabile VOICELET
Variabile WHICHLET
Variabile WORDLET
Variabile YEARLET
Variabili4. Comandi
VariabiliLET
Variabili di environmentLET
Variabili interne, guida di riferimento7.3 Variabili interne
Variabili predefiniteLET
Variabili utenteLET

W
WindowWINDOW
WordWORD
WrlogWRLOG

X
XoffXOFF
Xon/XoffPROTOC
Xon/XoffTRANSMIT
XrecXREC
XrstringXRSTRING
XsendXSEND
XstringXSTRING

Z
ZmodemSPAWN

[Top] [Contents] [Index] [ ? ]

Table of Contents


[Top] [Contents] [Index] [ ? ]

Short Table of Contents

Licenza d'uso
1. Introduzione
2. Uso rapido di Cux
3. Opzioni sulla linea di comando
4. Comandi
5. Uso di Cux in modalità batch
6. Il Cux come server remoto
7. Guida di Riferimento
A. Marchi registrati
Indice analitico

[Top] [Contents] [Index] [ ? ]

About this document

This document was generated by Gestione master on July, 15 2002 using texi2html

The buttons in the navigation panels have the following meaning:

Button Name Go to From 1.2.3 go to
[ < ] Back previous section in reading order 1.2.2
[ > ] Forward next section in reading order 1.2.4
[ << ] FastBack previous or up-and-previous section 1.1
[ Up ] Up up section 1.2
[ >> ] FastForward next or up-and-next section 1.3
[Top] Top cover (top) of document  
[Contents] Contents table of contents  
[Index] Index concept index  
[ ? ] About this page  

where the Example assumes that the current position is at Subsubsection One-Two-Three of a document of the following structure:

This document was generated by Gestione master on July, 15 2002 using texi2html