Almanacco, agenda, fusi, distanze, cronometro,...
Copyright 1994 - 2011 Giuliano Artico
Già docente presso il Dipartimento di Matematica
Università degli Studi di Padova
Il programma ALM per MS-DOS ha funzionato correttamente anche nelle versioni di Windows a 32 bit, che ne consentivano l'esecuzione in ambiente DOS. Con l'introduzione delle versioni di Windows a 64 bit, invece, l'esecuzione diretta dei programmi DOS a 16 bit non è più supportata.
Per consentire la continuità del progetto anche sui sistemi Windows moderni, ALM è stato pertanto riproposto nella nuova suite Windows, alla quale, per continuità con la numerazione originale, è stata attribuita la versione 2.50.
Il testo dei capitoli successivi è stato preservato integralmente per fedeltà storica e per documentare l'esatta sintassi dei comandi, le opzioni e i formati dei file (che la suite per Windows conserva in gran parte immutati).
Tuttavia, per l'utilizzo pratico nell'ambiente Windows attuale, l'utente deve considerare le seguenti corrispondenze, aggiornamenti e variazioni operative:
Il programma ALM fornisce le informazioni tipiche di un calendario o almanacco e inoltre gestisce ricorrenze o appuntamenti (a scadenza precisa oppure periodica secondo vari criteri). ALM può anche conservare nel disco un elenco con le date e gli orari degli ultimi 400 avvii del calcolatore. Sono inoltre disponibili altre funzioni, ad esempio per conoscere l'ora attuale inqualunque località del mondo, per determinare il periodo in cui è in vigore l'ora legale, per regolare automaticamente l'orologio del calcolatore in occasione del cambio di ora e per conoscere la distanza in giorni fra due date. Sono incluse le funzioni di "cronometro", anche con conto alla rovescia, e di "segnale orario". Il programma include un calcolatore valutario universale (funzione "valuta") e un convertitore di temperatura fra le cinque scale termometriche note (funzione "temperatura"). Alcune funzioni sono di particolare interesse per i radioamatori: vedere in particolare le funzioni "QTH", "contest" e "Morse". L'esecuzione di ALM può essere subordinata all'immissione di una parola d'ordine (password), la cui efficacia può essere limitata a determinate ore in determinati giorni della settimana (v. "Esecuzione con richiesta di password" in questo stesso capitolo). L'accesso alle varie informazioni è regolato da una sintassi che prevede un'ampia gamma di alternative. Il programma è corredato di numerosi programmi batch, ciascuno dei quali attiva una determinata funzione per mezzo di una sintassi semplificata (v. la descrizione nel file BATCH.TXT). Per conoscere la funzione svolta dai vari programmi batch, si può eseguire il comando "aiuto": digitando uno dei nomi compresi nell'elenco che compare sullo schermo, si ottiene una descrizione del corrispondente comando. Se avviato senza alcun parametro, ALM mostra l'almanacco del giorno (ad esempio, si può aggiungere al file AUTOEXEC.BAT una nuova riga contenente il comando "ALM" per visualizzare l'almanacco all'avvio del calcolatore). Più avanti in questo manuale sono illustrate varie opzioni che consentono di controllare la visualizzazione delle informazioni. Il programma ALM può funzionare in abbinamento a un altro programma (GA, gestione agenda), che permette di gestire un'agenda di appuntamenti più completa e flessibile. L'interazione fra i due programmi consiste nel fatto che gli appuntamenti fissati con GA possono essere riconosciuti e visualizzati da ALM.
Scarica il programma ALM edizione 2.42
Scarica il programma GA edizione 1.31
Il programma ALM viene distribuito in forma di archivio compresso autoestraente (formato RAR 2.0) con nome ALM*.EXE, dove "*" denota un numero che individua la versione. L'esecuzione di questo archivio provoca la comparsa di un menù che offre la possibilità di installare il programma, eventualmente scegliendo il nome della directory di installazione. Dopo l'installazione, tale directory contiene numerosi file: quelli indispensabili sono ALM.EXE (programma principale), ALM.SAN (nomi dei santi), ALM.LOC e ALM.LOC (dati geografici), ALM.VAL e LIRA.VAL (file con le parità valutarie). Sono necessari anche i due file ausiliari ANSWER.COM e SED.EXE, utilizzati rispettivamente dai programmi AIUTO.BAT e VAR.BAT. Per migliorare l'efficienza e la comodità d'uso, conviene inserire la directory di installazione nel percorso di sistema (comando "PATH" del DOS). Se per qualche motivo non fosse possibile farlo, si deve assegnare alla variabile di ambiente ALM_DIR il percorso completo della directory stessa e inoltre la chiamata del programma deve avvenire con un file batch opportunamente predisposto. Naturalmente è possibile, anche se scomodo, eseguire il programma spostandosi ogni volta nella directory di installazione ed eseguire il comando desiderato da quella posizione. Notare che i file batch inclusi nel pacchetto cercano il programma principale ALM.EXE anche nelle directory C:\ALM e C:\PROGRAMMI\ALM. Perciò, se si preferisce, è possibile evitare di includere nel percorso di sistema la directory del programma, se essa coincide con una delle due suddette: basta copiare uno o più file batch (quelli che interessano) in una qualunque directory che sia già inclusa nel PATH e poi richiamare questi comandi da una qualunque posizione, inclusa la casella "Esegui" di Windows. Il programma GA è distribuito con un archivio autoestraente dal nome GA*.EXE, reperibile con le stesse modalità di ALM (v. il file LICENZA.TXT). Il programma ALM genera un file dal nome ALM.DAT, che viene collocato nella directory di installazione e che ospita i dati personali. E' fornito il programma di configurazione INIZIA, che serve per inizializzare il file dati memorizzandovi i parametri utili per la personalizzazione del programma (v. il capitolo 29). Il programma di configurazione richiede la presenza di almeno un file di dati geografici (file con estensione .LOC). Una volta fatta la configurazione, la presenza del file INIZIA.EXE non è più indispensabile per il funzionamento del programma. Sono inoltre forniti altri due programmi accessori: UNISCI.EXE serve per riunire le informazioni contenute in due file dati; SANTI.EXE permette di modificare l'elenco dei santi. Si può ottenere l'elenco riassuntivo dei comandi disponibili aggiungendo un punto interrogativo come parametro sulla linea di comando DOS. Si osservi che la scrittura dello schermo può avvenire sia in modo diretto sia tramite BIOS (v. il capitolo 27). Eccezion fatta per le funzioni interattive, le scritte possono essere reindirizzate su di un file.
L'esecuzione di ogni funzione di ALM può essere subordinata all'immissione di una "parola d'ordine" (password). Per attivare la richiesta di password ci sono due modi: - impostare la variabile di ambiente ALM_PASS assegnandole il valore "~", ad esempio aggiungendo al file AUTOEXEC.BAT la riga seguente: set alm_pass=~ - aggiungere il carattere "~" al termine del comando con cui si esegue il programma. Ad esempio, nel file AUTOEXEC.BAT si può usare il seguente comando, che impedisce l'uso del calcolatore fino a quando non è immessa la password corretta: alm b~ Occorre naturalmente impostare una password. Per farlo si deve eseguire il comando: alm ~ Nell'inserire la password occorre fare molta attenzione ai tasti che si premono perché i caratteri non vengono visualizzati sullo schermo (al loro posto compaiono degli asterischi). Per tale ragione una nuova password viene sempre chiesta due volte e l'aggiornamento ha luogo soltanto se le due parole inserite combaciano esattamente (le lettere maiuscole sono considerate distinte dalle corrispondenti minuscole). E' bene non usare password troppo complicate, per non correre il rischio di dimenticarsene. In ciascun giorno della settimana si possono stabilire gli orari in cui è attivata la richiesta di password (ad esempio, nel calcolatore dell'ufficio può aver senso chiedere la password solo durante la notte e nei giorni di sabato e domenica). La selezione degli orari viene svolta in una tabella cui si accede con il comando: alm ~2 Compare uno schema nel quale si devono indicare con una "x" tutte le ore in cui la richiesta di password è attivata. I comandi per la modifica e per gli spostamenti del cursore sono elencati al di sopra del riquadro. Per completezza di documentazione li riportiamo qui di seguito: Esc = uscita senza registrazione delle modifiche; F0 o Ctrl+Invio = registrazione e uscita; Su/Giù = giorno precedente/successivo; Destra/Sinistra = ora precedente/successiva; Home/End = salta all'ora 0/23; Ctrl+Home/End = salta al giorno lunedì/domenica; 0...9,A...N = salta all'ora 0...23; lettera "x" = rende attiva la richiesta di password nell'ora puntata; spazio o Del = cancella la "x" nell'ora puntata; BackSpace = cancella la "x" nell'ora precedente; carattere +/- = attiva/disattiva la password in tutta la giornata; carattere < = attiva la password dall'inizio della giornata; carattere > = attiva la password fino alla fine della giornata; Ctrl+Del = cancella tutte le "x" dello schema; Invio = scrive tramite BIOS il giorno e l'ora puntati dal cursore. Nota. Il meccanismo di password previsto dal programma ALM non risponde a veri e propri criteri di segretezza (un utilizzatore con un minimo di esperienza può facilmente scavalcare la richiesta di password). Tuttavia la funzione può rivelarsi utile, ad esempio per ostacolare l'accesso al calcolatore in certi orari.
Il programma ALM funziona senza limitazioni in finestra DOS di Windows. E' anche possibile far comparire i messaggi di ALM all'avvio di Windows sfruttando il reindirizzamento dei dati in un file su disco. Tale file va gestito con un opportuno programma di visualizzazione in ambiente grafico. Il tutto si può governare mediante una procedura che va collocata in una directory di esecuzione automatica. Ad esempio, in Windows98: C:\WINDOWS\All Users\Menu Avvio\Programmi\Esecuzione automatica invece in Windows XP: C:\Documents and Settings\All Users\Menu Avvio\Programmi\Esecuzione automatica Per poter espletare correttamente la funzione suddetta, ALM è in grado di visualizzare i testi conformemente alla tabella ISO 8859-, convertendo cioè le lettere accentate secondo la codifica propria di Windows. Questo effetto si può ottenere stabilmente usando il programma INIZIA, voce 3 del menù. Invece per ottenere lo stesso effetto senza alterare la configurazione di ALM, basta assegnare alla variabile di ambiente ALM_WIN il valore , ad esempio preparando un file batch contenente i seguenti comandi: @echo off set alm_win= alm.exe % %2 %3 %4 %5 %6 %7 %8 %9 set alm_win= La conversione suddetta riguarda tutte le scritte. In particolare, per le ricorrenze e per gli appuntamenti devono essere usate le lettere accentate secondo la tabella 850 di MS-DOS.
L'utilizzo più semplice di ALM consiste nel lanciarlo in esecuzione senza alcun parametro. In questo caso vengono mostrati sullo schermo i dati seguenti, ai quali ci riferiremo nel seguito con l'espressione "almanacco del giorno": - data e ora attuali con giorno della settimana (ora legale, se in vigore); - l'eventuale indicazione di feste mobili quali la Pasqua e Pentecoste; - i santi del giorno; - l'ora in cui sorge e tramonta il sole; - la fase della luna; - le ricorrenze e gli appuntamenti relativi al giorno (di qualunque tipo: appuntamenti in data fissa, settimanali, mensili, di forma generale memorizzati con il programma GA). Per attivare altre funzioni occorre aggiungere sulla riga di comando DOS un'opportuna informazione, che è costituita generalmente da un carattere, che individua il tipo di funzione, e da alcuni parametri, propri di ciascuna funzione. Al termine si può aggiungere un comando riguardante la richiesta di password. La sintassi generale è la seguente: alm [carattere parametri] [comando_password] Qui di seguito è riportato l'elenco delle funzioni possibili, seguite dalla corrispondente sintassi. Ogni funzione verrà poi descritta in un capitolo successivo. A ciascuna funzione attribuiamo per maggior chiarezza un nome convenzionale cui far riferimento nel corso dell'esposizione. Le opzioni "X", "!" e "$", comuni alle funzioni "oggi", "boot strap" e "giorno", necessitano di parametri aggiuntivi che sono riportati alla fine dell'elenco. I comandi riguardanti la password sono descritti nel capitolo .
FUNZIONE CARATTERE E PARAMETRI
oggi [A][giorno[/mese[/anno]]][A][C][D][F][G][K][X...][Z][&][!...][$...]
calendario *[/{mese|*}[/anno]][E]
boot strap B[N numero][C][D][F][G][K][X...][Z][&][!...][$...]
carnevale C[anno1[-anno2]]
elenco E{W|M|[mese1][-[mese2]]]}
feste F[anno1[-anno2]]
giorno G[[giorno dell'anno][/anno]][A][C][D][F][X...][Z][&][!...][$...]
ora H[K|[C][D][F][S][Q][/località|/coordinate]] oppure [H]U[K][L]
legale L[anno1[-anno2]]
mensile M[numero da 1 a 31]
ordina O[{A|C mese1[-mese2]}] ["parola"] oppure OE
parametri P[+][FileDati]
QTH Q{località|coordinate}
ricerca R[frase]
cerca santo S{nome del santo}
conTest T[anno1[-anno2]]
vedi boot V
settimanale W[numero da 1 a 7]
Morse "[parametri][frase] oppure @[parametri]NomeFile
valuta =[importo] [moneta1] [/ moneta2] [{*|:}tasso]
temperatura °gradi [{C|F|K|R|A}]
cronometro #[{hh:[mm[:ss]]|durata[d]}[r]] oppure #c[z]
Opzione : X[numero[I][W][M]]
Opzione : ![H|-|+][L][O][S]
Opzione : $[n1][,n2]
Come si vede, molti dati sono facoltativi. Rinviando i particolari al seguito,
osserviamo che il programma sopperisce quasi sempre ad eventuali mancanze o
valori incompatibili adottando valori di default, che normalmente risultano
ragionevoli. Ad esempio, supponendo che la data odierna sia 23/10/2004:
alm 5 viene interpretato come alm 5/10/2004
alm 24/8 viene interpretato come alm 24/8/2004
alm //5 viene interpretato come alm 23/10/2005
alm 15//95 viene interpretato come alm 15/10/1995
Ogni comando può essere concluso con uno dei comandi riguardanti la password:
~ attivazione della richiesta di password;
~1 impostazione o modifica della password;
~2 impostazione degli orari in cui è attiva la password;
~3 entrambe le funzioni svolte da ~1 e ~2.
Sintassi: ALM [A] [giorno[/mese[/anno]]] [A][C][D][F][G][K][X...][Z][&][!...][$...] Opzione : X[numero[I][W][M]] Opzione : ![H|-|+][L][O][S] Opzione : $[n1][,n2] Indicando una data a piacere come parametro, si produce la visualizzazione dei corrispondenti dati dell'almanacco. L'ora attuale, l'ora dell'alba e del tramonto e il riferimento per la fase lunare sono calcolati con l'ora legale nel periodo in cui essa è in vigore (cfr. i paragrafi 3.3, 3.4, 27.4 e 29.7). Il programma completa la data stessa con i valori presenti nell'orologio del calcolatore, se qualcuno di essi non viene specificato. Dopo i dati dell'almanacco il programma mostra le informazioni personali relative al giorno indicato. Esse sono di due tipi: - "ricorrenze" chesi memorizzano con il programma ALM stesso: sono tutte periodiche e possono avere cadenza annuale, mensile o settimanale; nel seguito le chiameremo ricorrenze annuali, mensili, settimanali; - "appuntamenti" conservati nel file di testo ALM.APP: gestibili con un editor di testi ASCII o con l'apposito programma GA; gli appuntamenti possono essere in data fissa, ma possono anche avere cadenza periodica come le ricorrenze, delle quali sono una generalizzazione. E' possibile contrassegnare le ricorrenze annuali con un apposito marcatore, in modo tale che esse siano visualizzate, a scelta, solo nei giorni festivi oppure solo nei giorni feriali, decidendo anche quali sono i giorni da considerare festivi. E' possibile arricchire o ridurre le informazioni visualizzate aggiungendo dopo la data una o più lettere facoltative (opzioni) che consentono un controllo accurato dei dati che compaiono sullo schermo. Più precisamente: A aggiorna l'agenda delle ricorrenze annuali; C aggiunge la data dell'ultimo giorno di Carnevale dell'anno indicato; D aggiunge la durata del crepuscolo (in minuti); F aggiunge le date delle principali feste religiose mobili dell'anno indicato; G giorno dell'anno, giorno giuliano e indicazione dell'anno bisestile; K elimina la dichiarazione sul tipo di ora (solare/legale); X controlla la visualizzazione delle informazioni personali; Z aggiunge il segno zodiacale; ! controlla la visualizzazione dei dati dell'almanacco; $ controlla la visualizzazione in base ai boot strap registrati; & attiva la regolazione automatica dell'orologio al cambio di ora legale. Le opzioni "X", "&", "!" e "$", ammesse anche nelle funzioni "boot strap" e "giorno", sono trattate a parte. Si noti che l'opzione "&" viene ignorata se è presente la "!" seguita da "+". Il nome del segno zodiacale è visualizzato insieme con un numero che indica il numero d'ordine a partire dal giorno iniziale di quel segno (1 per il primo giorno, 2 per il secondo, eccetera).
L'opzione "X" prevede un parametro numerico facoltativo da indicare immediatamente alla destra della lettera "X" stessa. Se il parametro viene omesso, l'effetto è quello di escludere la visualizzazione di tutte le informazioni personali. Al contrario, la presenza del numero, diciamo n, causa la presentazione delle ricorrenze e degli appuntamenti in data odierna, a cui vengono aggiunte le ricorrenze annuali e gli appuntamenti che cadono negli n giorni successivi (ricordare che con il termine "appuntamenti" indichiamo le informazioni "esterne", cioè quelle memorizzate nel file ALM.APP). Per quanto riguarda le date successive alla data odierna, se si vogliono anche le ricorrenze mensili o settimanali occorre aggiungere rispettivamente una "M" oppure una "W" dopo il numero; se invece si vogliono escludere gli appuntamenti basta aggiungere la lettera "I". Alcuni esempi: alm 10/12/98 x4w ricorrenze, anche settimanali, dall'11/12 al 14/12; alm b dzx3wm ricorrenze e appuntamenti nei prossimi 3 giorni; alm b dzx3iwm ricorrenze nei prossimi 3 giorni, senza appuntamenti; Il massimo valore consentito a destra dell'opzione "X" è 365. Ad esempio, per trascrivere in un file le ricorrenze e gli appuntamenti di un intero anno a partire da una certa data, basta eseguire un comando del tipo seguente: C:\>alm 1/10/2003 x365wm > annata.txt
E` possibile affidare al programma ALM il compito di effettuare automaticamente la regolazione dell'orologio del calcolatore ogni volta che avviene il cambiamento dell'ora da solare a legale e viceversa. Per far ciò è sufficiente lanciare ALM con una delle funzioni "oggi", "boot strap" e "giorno", aggiungendo sulla riga di comando il carattere "&". A seconda dei casi, la regolazione consiste nell'avanzare o nell'arretrare l'orologio di un'ora. ALM esegue la regolazione dopo una richiesta di consenso alla quale si può rispondere con "S" oppure con "N". Il modo più comodo di sfruttare questa caratteristica è di aggiungere il carattere "&" nella riga del file AUTOEXEC.BAT che contiene la chiamata del programma ALM. Dopo che la regolazione automatica dell'orologio è avvenuta, il carattere "&" non ha più alcuna efficacia fino al successivo cambiamento di ora in senso opposto. Il programma conserva nel file ALM.DAT un'annotazione per "ricordare" che la regolazione è stata eseguita. Se accade che l'ora viene impostata manualmente (con il comando TIME di MS-DOS oppure mediante un altro programma), è possibile informarne ALM usando l'opzione "&" seguita immediatamente da uno dei caratteri "s" oppure "l", per indicare che l'ora deve essere interpretata rispettivamente come solare oppure come legale. L'uso di "&s" o di "&l" è volutamente incompatibile con altre opzioni coesistenti: in pratica si tratta di due comandi da usare autonomamente. Osservazione. Per compatibilità con l'edizione 1.33 di ALM, l'opzione "&" è equivalente all'opzione "%": quest'ultima creava alcune difficoltà nella preparazione dei file batch perché, per esigenze del DOS, doveva essere indicata come "%%".
Quando la riga di comando contiene il carattere "!", viene attivato il controllo selettivo dei dati dell'almanacco. Il carattere "!" deve essere seguito da uno o più caratteri, in corrispondenza dei dati dell'almanacco che si vuole compaiano sullo schermo: H data e ora attuali; - data e ora attuali, le informazioni sono riferite all'ora solare; + data e ora attuali, se l'orologio non è regolato sull'ora legale; L fase della luna; O onomastici e feste mobili; S ora in cui sorge e tramonta il sole. L'ordine di questi caratteri non è significativo: basta che essi siano indicati a destra del carattere "!". E' possibile saltare completamente l'almanacco, omettendo tutti i caratteri (infatti potrebbe interessare solo la visualizzazione dei dati personali). Esempi: alm !hx7 data, ora e dati personali di oggi e dei prossimi 7 giorni; alm !-x7 come sopra, ma con informazioni basate sull'ora solare; alm 1/1/95!l solo la fase lunare dell'1/1/1995; alm Z!HOS dati completi, esclusa la fase lunare, con zodiaco; alm !-LOS almanacco completo, ma con riferimento all'ora solare.
Osservazione a). I caratteri "H", "-" e "+" che seguono l'opzione "!" sono incompatibili uno con l'altro. Osservazione b). L'effetto delle opzioni "!-" e "!+" può essere ottenuto modificando il coefficiente "legale" (con il programma di configurazione oppure con la variabile di ambiente ALM_LEG). L'applicazione dell'ora legale prevede tre casi: 1) ora legale attiva: è il caso normale (il calcolatore deve essere regolato sull'ora legale nel periodo in cui essa è in vigore); 2) ora legale ignorata: opzione "!-" oppure valore 2 del coefficiente "legale". In questo caso si presuppone che l'orologio del calcolatore venga regolato sull'ora legale, nel periodo in cui essa è in vigore, e che l'utilizzatore, per suoi motivi, voglia invece visualizzare i dati relativamente all'ora solare, comprese l'ora dell'alba e del tramonto e l'indicazione della fase lunare (in particolare, la fase lunare viene riferita alle ore 0 solari e non alla mezzanotte ora legale); 3) ora legale forzata: opzione "!+" oppure valore 4 del coefficiente "legale". Si presuppone che l'orologio rimanga sempre regolato sull'ora solare, anche nel periodo in cui è in vigore l'ora legale. In questo caso il programma si adegua automaticamente all'ora in uso e presenta l'ora corretta. Osservazione c). Tutte le considerazioni che riguardano l'ora legale sono applicabili solo parzialmente alla funzione "ora" (capitolo 11). Più precisamente, dato che non esiste un criterio universale di applicazione dell'ora legale, il programma non ne tiene conto quando si utilizza la funzione "ora" abbinata ad una località: in questo caso il coefficiente "legale" è usato esclusivamente per interpretare l'ora presente nell'orologio del calcolatore, ma gli orari della località remota sono quelli solari (eventualmente corretti con gli aggiustamenti che alcune nazioni adottano scegliendo di appartenere ad un fuso diverso da quello geografico). Osservazione d). L'opzione "&", che provoca la regolazione automatica dell'orologio del calcolatore ad ogni cambio di ora legale, viene ignorata se è simultaneamente presente l'opzione "!" seguita da "+". Ciò avviene anche quando il coefficiente "legale" è posto a 4 perché, applicando l'ora legale "forzata", si presuppone che l'orologio del calcolatore debba rimanere sempre regolato sull'ora solare.
La presenza del carattere "$" nella riga di comando DOS provoca la soppressione delle segnalazioni acustiche che normalmente accompagnano la visualizzazione delle ricorrenze e degli appuntamenti, senza però alterare la condizione impostata nel file dati. Il carattere "$" può essere seguito da tre numeri separati da virgole, numeri che hanno un significato concreto solo nella funzione "boot strap" (v. il capitolo 6). Nelle funzioni "oggi" e "giorno" un valore maggiore di 0 a destra di "$" produce semplicemente il ripristino delle segnalazioni, come se l'opzione "$" non fosse presente (la sintassi è stata conservata per ragioni di coerenza).
Le date ammesse sono comprese fra il 15 ottobre 1582 (giorno in cui è iniziata a Roma l'adozione del calendario gregoriano) e il 31 dicembre 8999. Per sapere se un anno è bisestile basta usare la funzione "oggi" aggiungendo a destra della data il carattere "G", che causa anche la visualizzazione del giorno dell'anno e del giorno giuliano. Per gli anni bisestili è stata adottata la regola semplificata, che è normalmente in uso presso gli astronomi, secondo la quale sono bisestili tutti gli anni non secolari divisibili per 4 e inoltre gli anni secolari divisibili per 400 (ad esempio, il 1600 e il 2000 sono bisestili, mentre il 1700, il 1800 e il 1900 non lo sono). E' invece stata ignorata l'eccezione secondo cui gli anni millenari divisibili per 4000 non sono bisestili: in questo modo si commette un errore rispetto al calendario gregoriano applicato rigorosamente, che risulta in anticipo di un giorno dopo il 28 febbraio 4000 e di due giorni dopo il 28 febbraio 8000 (a questo riguardo, comunque, sembra ragionevole lasciare che i posteri decidano a tempo debito come comportarsi).
L'opzione "A", che è prevista anche nella funzione "giorno", produce la comparsa sullo schermo di uno schema con quindici righe che servono per l'immissione di altrettante frasi (una per riga), che sono le ricorrenze annuali, tutte collegate alla data indicata. Chiamiamo "agenda annuale" l'insieme di tutte le ricorrenze annuali. Le eventuali ricorrenze già memorizzate vengono visualizzate e possono essere liberamente modificate. Sono attivi i normali tasti di correzione; inoltre con la combinazione Ctrl+Canc si sopprime la riga nella quale si trova il cursore, mentre Ctrl+FrecciaSu e Ctrl+FrecciaGiù producono rispettivamente lo scambio di una riga con la precedente e con la successiva. Tutte le righe vuote vengono ignorate e non sono memorizzate nell'agenda annuale. Per memorizzare le ricorrenze su disco si preme F10, ma la registrazione è preceduta da una richiesta di consenso. Se si preme "N" o Esc il cursore ritorna sullo schema e si può continuare la modifica dei dati.
Premendo il tasto Tab si commuta ciclicamente fra le tre condizioni in cui può trovarsi ciascuna ricorrenza, individuabili sullo schema mediante un carattere posto all'inizio della riga. Le tre condizioni sono riassunte nel prossimo prospetto: Ricorrenza abilitata Identificazione =================================== ================= in qualunque giorno della settimana carattere spazio; solo nei giorni festivi carattere "+"; solo nei giorni feriali carattere "-". Di norma sono considerati festivi il sabato e la domenica, ma è possibile dichiarare festivo qualunque giorno della settimana (variabile di ambiente ALM_F oppure quinta voce del menù nel programma di configurazione INIZIA). Si noti che l'opzione "A", contrariamente a tutte le altre, può anche essere messa prima della data. Inoltre essa è inibita quando è presente l'opzione "X".
A partire dall'edizione 2.0, il programma ALM consente di utilizzare ricorrenze collegate ad un insieme più libero di date. Tali ricorrenze vanno inserite in un apposito file dal nome ALM.APP secondo criteri che sono descritti in questo capitolo. Per distinguerle dalle precedenti, attribuiamo a queste ricorrenze il nome di "appuntamenti". Gli appuntamenti costituiscono una generalizzazione delle ricorrenze perché anch'essi possono essere periodici con cadenza annuale, mensile o settimanale, però possono essere collegati ad una data ben precisa o, al contrario, ad un insieme di date più libero. Il file ALM.APP è un normale file di testo e può essere gestito con qualunque programma di elaborazione testi ASCII (ad esempio con EDIT). Esiste un apposito programma, chiamato "GA", che consente una gestione semplice e completa del file ALM.APP. Tale programma va acquisito a parte ed è dotato di una sua propria documentazione.Scarica qui il programma GA edizione 1.31
E` possibile utilizzare più di un file di appuntamenti, ad esempio per distinguere quelli dell'ufficio da quelli di casa. Per adottare un nome di file diverso da ALM.APP occorre impostare la variabile di ambiente GA_APP, alla quale va assegnato di volta in volta il nome del file desiderato. Ad esempio, per far riconoscere ad ALM il file UFFICIO.APP, si deve immettere il seguente comando al prompt di MS-DOS (o, per maggior comodità, mediante un file batch): set ga_app=ufficio.app Sono previste alcune facilitazioni: - l'estensione ".app" è facoltativa: nell'esempio di sopra basta scrivere "ufficio"; - è consentito indicare un percorso completo, ma se il file si trova nella directory di installazione è sufficiente indicarne solo il nome; - invece di un nome di file, nella variabile GA_APP si può indicare un elenco di varie directory: in questo caso il programma cerca in tali directory un file con nome ALM.APP. Esempi: set ga_app=c:\;d:\dati\alm set ga_app=%path% La prima riga del file ALM.APP funziona da identificatore e deve iniziare esattamente come segue: GA - Gestione Agenda Il file va pensato come un insieme di "schede", ciascuna delle quali è associata ad una data o ad un insieme di date. L'inizio di una scheda è determinato da una riga che ha come primo carattere un ";" (punto e virgola), seguito, sulla stessa riga, da una o più date separate da virgole. Le righe successive contengono il testo della scheda, la cui fine è determinata dall'inizio della scheda successiva o, eventualmente, da una riga contenente esattamente due barre "//". Se la scheda è troppo lunga (più di 25000 byte) viene troncata. All'inizio, prima della prima scheda, si può mettere una descrizione del file, da usare come promemoria, anche composta di molte righe. Il formato più generale delle date associabili alle schede è il seguente: ;[giorno/mese/anno] [gs[ordine]], ... Al posto dei puntini si possono mettere altre date con il medesimo formato della prima, fino ad un massimo di 19. Ciascuno dei tre numeri giorno, mese, anno può essere tralasciato o, equivalentemente, sostituito con un asterisco: in tal caso si intende che il valore è arbitrario. L'informazione "gs" a destra della data è facoltativa: si tratta del nome di un giorno della settimana (sono sufficienti i primi due caratteri, DO per domenica, LU per lunedì, eccetera). Si può ulteriormente aggiungere la cifra "ordine", che può variare da 1 a 5 e che può essere preceduta dal segno "-". Tale numero indica, entro il mese, la posizione del giorno della settimana "gs", che viene contato in avanti quando "ordine" è positivo, all'indietro quando "ordine" è negativo. Ad esempio, "gio3" significa "il terzo giovedì del mese", mentre "sab-2" significa "il penultimo sabato del mese". Notare che le date "fisse", cioè quelle prive di asterischi, vengono automaticamente completate con il giorno della settimana. Ad esempio se si scrive 23/6/98 oppure 23/6/98LU, il programma intende 23/6/98ma; in questo caso il giorno della settimana, giusto o sbagliato che sia, è superfluo.
Gli esempi che seguono mostrano che ad una scheda si può associare un insieme di date in modo molto vario. La breve descrizione successiva a ciascuna data spiega quando essa viene visualizzata. ;24/8/98 Questa frase è visualizzata in una data ben precisa. ;24/8/* Questa frase è visualizzata il 24 agosto di ogni anno, quindi agisce come le ricorrenze annuali. ;*/8/* lunedì Tutti i lunedì di agosto di qualunque anno. ;*/8/* lu3 Il terzo lunedì di agosto di ogni anno. ;24/8/98sab Qui il giorno "sabato" è sbagliato: la data è accettata ugualmente, senza la precisazione del giorno della settimana. ;*/12 ve-1 L'ultimo venerdì di dicembre di ogni anno. ;*/6/2001sabato-2 Il penultimo sabato di giugno 2001; notare che 2001 può essere abbreviato con 1, cioè si può scrivere */6/1. ;gio Ogni giovedì. ;lun,gio-1 Tutti i lunedì e l'ultimo giovedì di ogni mese. ;ven2,ven4 Il secondo e il quarto venerdì di ogni mese. ;31/12/1999, */1/0, sab1,*/3martedì1, */4domenica-2 Date multiple (se ne possono indicare fino a 19). Questo è un esempio, ma è un po' troppo complesso per gli usi pratici.
Sintassi: ALM *[/{mese|*}[/anno]][E]
Produce un calendario completo per uno o più mesi. Se non si indica il mese
o l'anno, sono usati il mese o l'anno corrente. Se al posto del numero del mese
si mette un asterisco, viene prodotto un calendario completo di tutto l'anno
(v. anche i programmi batch CALEN.BAT e TUTTOCAL.BAT). Ad esempio:
alm */1/99 produce il calendario di gennaio 1999;
alm */*/99 produce il calendario completo del 1999.
Il calendario è disponibile sia in forma sintetica sia in forma estesa.
La forma sintetica consiste in una tabella nella quale sono indicati i numeri
dei giorni in modo che ogni colonna si riferisca ad un giorno della settimana,
come nei calendari tascabili: è la forma normale.
Per ottenere il calendario in forma estesa occorre aggiungere una "E" dopo
l'anno. In questo caso ogni riga contiene le informazioni relative ad un giorno
e precisamente:
- numero del giorno;
- giorno della settimana (abbreviato);
- fase lunare (LN=luna nuova, PQ=primo q., LP=luna piena, UQ=ultimo q.);
- indicazione delle feste religiose mobili;
- santi del giorno.
Se i dati superano la capienza dello schermo, la visualizzazione si arresta in
attesa della pressione di un tasto. Può essere utile reindirizzare i dati verso
un file o verso la stampante.
Sintassi: ALM B[N...][C][D][F][G][K][X...][Z][&][!...][$...]
Opzione : N numero
Opzione : X[numero[I][W][M]]
Opzione : ![H|-|+][L][O][S]
Opzione : $[n1][,n2]
Permette di memorizzare nel file dati l'elenco delle date e degli orari nei
quali si effettua il boot strap del calcolatore. Questo elenco può essere
esaminato con la funzione "vedi boot". Il file dati può contenere le
informazioni relative ad un numero massimo di 400 boot strap. Quando si
raggiunge tale numero, ad ogni nuovo boot strap si perde l'informazione più
vecchia.
Quando si attiva questa funzione il programma, oltre ad aggiornare
l'archivio dei dati, visualizza l'almanacco del giorno e inoltre riporta la
data e l'ora del boot strap precedente. Viene anche emesso un segnale acustico
per avvertire che l'operazione di avvio è terminata.
Sono ammesse le stesse opzioni valide per la funzione "oggi", con
l'eccezione della "A" che in questo caso sarebbe priva di senso.
Esiste inoltre l'opzione "N" che permette di controllare l'output su
schermo. Ad esempio, è possibile adoperare la funzione "Boot strap"
sopprimendo qualunque scritta. Il controllo viene fatto tramite un parametro
numerico che deve seguire immediatamente la lettera "N". Il suo valore può
andare da -1 a 20 (valori eccedenti sono riportati al più vicino valore
valido). Il valore di default è 1. Alcuni esempi:
alm BN3 sono visualizzati i dati degli ultimi 3 boot strap;
alm BN0 non è visualizzato alcun boot strap precedente;
alm B equivale a "alm BN1;
alm BN-1 il programma non produce alcuna scritta;
alm BN0X3!H data e ora, appuntamenti dei prossimi 3 giorni, nessun boot strap.
Il carattere "$" può essere seguito da tre numeri, tutti facoltativi,
separati da virgole: chiamiamoli rispettivamente n1, n2 e n3. Il programma
confronta questi due numeri con il numero di accensioni del calcolatore già
avvenute nel corso della stessa giornata e si comporta come segue:
- se il numero di accensioni supera n1 sopprime le segnalazioni acustiche
relative alle informazioni personali (ricorrenze e appuntamenti);
- se il numero di accensioni supera n2 sopprime anche la visualizzazione ti
tali informazioni personali;
- se il numero di accensioni supera n3 non vengono visualizzate nemmeno le
informazioni dell'almanacco;
- se n1 vale 0 o se "$" è seguito da caratteri diversi da cifre e da virgola,
si ha l'esclusione di tutte le segnalazioni acustiche.
Se le condizioni dette sono soddisfatte, l'opzione "$" ha priorità maggiore
rispetto allo stato delle segnalazioni acustiche impostato stabilmente nel file
dati (capitolo 27). Alcuni esempi:
alm b$1
alm b$1,3
alm b$1,3,10
alm b$,3
alm b$100,3
Con i primi tre comandi le segnalazioni relative alle ricorrenze e agli
appuntamenti vengono emesse solo se il boot strap è il primo della giornata: se
durante la giornata si ripete lo stesso comando, viene omesso il suono relativo
al boot strap. In questo modo è possibile ridurre il fastidio di segnalazioni
troppo ripetute. Si tenga presente, comunque, che tutti i suoni possono essere
modificati o esclusi selettivamente con le apposite variabili di ambiente; si
veda anche il programma di configurazione INIZIA (capitoli 27 e 29).
Con il comando del secondo esempio, dopo la terza accensione nella stessa
giornata, non vengono più mostrate le informazioni personali.
Negli ultimi due esempi il programma interpreta il comando come "$3,3".
Infatti, se n1 è assente o se è maggiore di n2, esso viene posto uguale ad n2.
Sintassi: ALM C[anno1[-anno2]] Agisce come la funzione "feste", visualizzando però le date dell'ultimo giorno di carnevale per gli anni compresi fra anno1 e anno2. L'ultimo giorno di carnevale è calcolato come vigilia del mercoledì delle ceneri. La data non coincide con quella calcolata secondo il calendario ambrosiano.
Sintassi: ALM E{W|M|[mese1][-[mese2]]]}
Serve per elencare le informazioni contenute nell'agenda annuale. Se la
lettera "E" è seguita da una "W" o da una "M", vengono elencate rispettivamente
tutte le ricorrenze settimanali o mensili.
Se invece si indicano i numeri d'ordine di due mesi separati dal carattere
"-", si ottiene l'elenco di tutte le ricorrenze comprese fra tali mesi. Se non
si indica il primo mese l'elenco inizia da gennaio, se non si indica il secondo
l'elenco va avanti fino a dicembre. Se dopo la "E" non si indica nulla, si
ottiene l'elenco completo di tutte le ricorrenze annuali.
Sintassi: ALM F[P]anno1[-anno2] Visualizza le date di sette feste religiose mobili. Le prime cinque, Ceneri, Pasqua, Ascensione, Pentecoste e Corpus Domini, dipendono dalla data della Pasqua. Le ultime due, Cristo Re e prima domenica di Avvento, dipendono dal giorno della settimana in cui cade il Santo Natale. Sono considerati gli anni compresi fra i due estremi anno1 e anno2, da indicare di seguito alla lettera "F", separati dal carattere "-". In questo caso non ha molto senso omettere uno degli estremi: perciò, se si indica un solo estremo, sono visualizzate soltanto le informazioni relative all'unico anno specificato. La presentazione avviene in modo sintetico, con i nomi dei mesi ridotti a tre caratteri, in modo da concentrare l'informazione su due sole righe per ogni anno. Se immediatamente a destra di "F" si aggiunge la "P", viene visualizzata solo la data della Santa Pasqua, per tutti gli anni dell'intervallo specificato (v. il programma batch PASQUA.BAT). Notare che il programma segue il calendario liturgico, secondo il quale l'Ascensione e il Corpus Domini ricorrono sempre di giovedì, cioè non si tiene conto del fatto che in Italia, dopo l'abolizione di alcune festività, esse sono state spostate alla domenica successiva. Può essere utile riversare le informazioni su di un file, particolarmente quando si specifica un intervallo costituito da parecchi anni (v. il capitolo 27).
Sintassi:
ALM G[[giorno dell'anno][/anno]][A][C][D][F][K][X...][Z][&][!...][$...]
Opzione : X[numero[I][W][M]]
Opzione : ![H|-|+][L][O][S]
Opzione : $[n1][,n2]
Mediante questa funzione si può indicare la data sostituendo il giorno e il
mese con il numero progressivo del giorno nel corso dell'anno. Ad esempio, il
seguente comando:
alm g311/98
produce lo stesso effetto di:
alm 7/11/98g
Si noti che la funzione "giorno" causa sempre la visualizzazione del giorno
giuliano, ma per il resto si comporta come la funzione "oggi". Come il solito,
i dati omessi vengono integrati con quelli presenti nell'orologio del
calcolatore. Ad esempio, supponiamo che la data odierna sia quella sopra
indicata e consideriamo i seguenti comandi:
alm g34
alm g/99
alm g/2000
Il primo fornisce le informazioni relative al 3 febbraio 1998, il secondo
quelle relative al 7 novembre 1999, il terzo quelle relative al 6 novembre
2000 (infatti quest'ultimo è bisestile).
Naturalmente il numero del giorno non deve superare 366 negli anni bisestili
e 365 negli altri anni.
Per altri calcoli riguardanti il conteggio dei giorni si veda la funzione
"numero" (comando "N").
Sintassi: ALM H[K]
ALM [H]U[K][L]
ALM H[C][D][F][S][Q]/[località|coordinate]
Se la lettera iniziale è "H", il programma mostra la data e l'ora attuali
con il giorno della settimana. Con la "U", da sola oppure dopo la "H", è
mostrata l'ora universale, cioè l'ora del fuso di Greenwich (detta anche
"GMT"). Se si aggiunge la "K", il programma mostra solo l'ora senza precisare
se si tratta di ora solare, legale o universale.
Notare che l'effetto della funzione "ora" è diverso da quello della funzione
"oggi" usata con l'opzione "!". Infatti il seguente comando:
alm !h
mostra l'ora e la data attuali, ma in più presenta eventuali informazioni
personali (ricorrenze e appuntamenti).
Il carattere "L" dopo la "U" indica al programma che l'orologio del
calcolatore non è regolato sull'ora legale (anche se questa è in vigore): in
questo caso, comunque, sarebbe più opportuno ricorrere al coefficiente
"legale" (paragrafi 3.4, 27.4, 29.7). Notare che nella funzione "oggi" non è
prevista un'opzione per visualizzare l'ora universale.
Attivando la funzione "ora" con la lettera iniziale "H", si può indicare una località per conoscere alcuni dati che la riguardano (ad esempio, l'ora del fuso in cui è ubicata, la distanza dalla propria località, l'ora dell'alba e del tramonto). Per identificare la località è possibile immettere una delle informazioni seguenti, sempre precedute dal carattere "/". 1) Il nome della località, o parte di esso (che viene cercato nei file dei dati geografici ALM*.LOC). Ad esempio: alm h/melbourne alm h/new y alm h/ruanda 2) Le coordinate geografiche della località (latitudine e longitudine separate da una virgola o da uno spazio). Ad esempio, conoscendo le coordinate di Londra, si può dare il seguente comando: alm h /51.5, 0.12 3) Il QTH locator (normalmente noto ai radioamatori). Il comando precedente fornisce informazioni sostanzialmente uguali a quelle del prossimo: alm h /IO91WM Le informazioni di tipo 2 e 3 possono essere completate con il suffisso "@" seguito da un numero intero multiplo di 15 (minuti) per indicare che quella località appartiene ad un fuso orario diverso da quello geografico (cfr. il paragrafo 29.11). Ad esempio, indicando le coordinate di Barcellona si dovrebbe scrivere: alm h /41.69, 2.23 @60 Fra la lettera "H" e il carattere "/" si possono aggiungere alcuni caratteri facoltativi per arricchire le informazioni visualizzate: C coordinate geografiche; D differenza oraria dalla propria località (formato: ore.minuti); F fuso orario, cioè differenza in ore.minuti dall'ora universale; S orario dell'alba e del tramonto nella località indicata; Q distanza e azimut (v. i commenti più avanti, cfr. la funzione "QTH"); * attiva la funzione "QTH" (equivale al comando "Q", capitolo 18). I file con estensione .LOC contengono le informazioni geografiche. Il programma viene fornito con due file: - ALM.LOC con circa 5200 località italiane; - ALM1.LOC con circa 1400 località estere. Gli utilizzatori possono arricchire i dati geografici aggiungendo altre località (v. i capitoli 27 e 29). Quando è presente il carattere "Q", il programma visualizza anche le seguenti informazioni (cfr. la funzione "QTH", capitolo 18): - la distanza in chilometri fra la località indicata e la propria località; - il QTH locator della località indicata; - l'azimut, cioè la direzione in cui si dovrebbe dirigersi per andare verso la località lungo il percorso più breve. Note. 1) L'azimut è un angolo che si misura a partire da Nord (0 gradi) ruotando in senso orario sul piano tangente alla superficie terrestre. Ad esempio, 90 gradi indica la direzione Est, mentre 270 gradi significa Ovest. 2) La barra può essere omessa se si usa la lettera "Q" e la località è indicata con le coordinate geografiche. Ad esempio: alm hq45.41, 11.88. 3) L'opzione "U" (ora universale) è ignorata quando si indica il nome di una località.
Sintassi: ALM J[giorno giuliano] Determina la data ordinaria (giorno, mese, anno e giorno della settimana) corrispondente al giorno giuliano indicato. Se non si indica alcun valore dopo la "J", viene mostrata la data odierna con il corrispondente giorno giuliano. Anche in questo caso il giorno giuliano è sempre considerato e visualizzato con il decimale ".5", che corrisponde alle ore 0 del giorno considerato (il giorno giuliano inizia a mezzogiorno). Il valore minimo consentito è 2299160, che il programma interpreta come 2299160.5, corrispondente al 15/10/1582.
Sintassi: ALM L[anno1[-anno2]] Mostra il periodo dell'anno in cui è in vigore l'ora legale, secondo i criteri adottati in Italia a partire dal 1965. Dopo la lettera "L" è possibile indicare un solo anno oppure l'intervallo degli anni compresi fra due estremi: sotto questo aspetto la sintassi è analoga a quella della funzione "feste". In Italia l'ora legale (estiva) cambia nella notte fra un sabato ed una domenica, nell'ultima fine settimana dei mesi sottoindicati (per semplicità il programma valuta solo la data, ignorando l'ora del cambiamento): 1965 da maggio a settembre; 1980 da marzo a settembre; 1996 da marzo a ottobre. Questi dati sono assunti per default, ma è possibile personalizzare il criterio fissandone liberamente fino a 20 modifiche. La voce 8 del programma di configurazione permette di stabilire gli anni in cui il criterio subisce una modifica, definendo il mese e la settimana in cui inizia e finisce il periodo di applicazione dell'ora legale.
Sintassi: ALM M[numero da 1 a 31]
ALM W[numero da 1 a 7]
Con queste funzioni si attiva l'immissione di una ricorrenza da visualizzare
rispettivamente in un determinato giorno del mese e in un determinato giorno
della settimana. Il numero da indicare dopo la lettera è rispettivamente il
numero d'ordine del giorno nel mese e del giorno nella settimana. Per
quest'ultimo, si deve contare Lunedì come 1 e Domenica come 7. Se non si indica
alcun numero, viene adottato quello corrispondente al giorno attuale.
Se il file dati contiene già un appuntamento, esso viene visualizzato e può
essere conservato, modificato o cancellato. Si termina l'immissione con Invio o
con F10. La registrazione su disco avviene solo dopo aver risposto con "S" alla
successiva richiesta di consenso. Rispondendo con "N" si possono effettuare
altre modifiche, mentre la pressione di Esc fa ritornare al DOS.
Le ricorrenze mensili e settimanali corrispondenti ai comandi "M" e "W" sono
memorizzate nel file ALM.DAT e ciascuna di esse è di una sola riga. Per
ricorrenze di cadenza analoga, ma di maggiore lunghezza, si devono utilizzare
appuntamenti memorizzati nel file ALM.APP: quelli mensili sono individuati da
date del tipo giorno/*/*, quelli settimanali da date del tipo LU, MA, ME,
eccetera.
Sintassi: ALM N[data1][:data2]
ALM N[data]{+|-}numero
Questa funzione, a seconda della sintassi usata, svolge le seguenti azioni:
- determina la differenza fra due date, cioè il numero di giorni che
intercorrono fra di esse;
- calcola l'incremento rispetto ad una data, cioè fornisce la data che
differisce dalla prima di un certo numero di giorni.
Come il solito, alcune informazioni possono essere sottintese e vengono
integrate con i valori presenti nell'orologio del calcolatore. Facciamo alcuni
esempi.
1) Differenza fra due date. Con i due prossimi comandi il programma mostra il
numero di giorni fra la data indicata e la data odierna:
alm n31/12/99
alm n20/9/1988
Con i due prossimi comandi il programma mostra la differenza in giorni fra le
due date indicate (notare che è indifferente l'ordine in cui le date sono
disposte):
alm n19/6/98:31/12/99
alm n31/12/99:19/6/98
Sono leciti anche i comandi seguenti:
alm n 31/12
alm n19/6:31/12
2) Incremento rispetto ad una data. Il numero di giorni da aggiungere o da
togliere va preceduto dal segno "+" o dal segno "-": nei due casi si ha
rispettivamente un incremento futuro ed un incremento passato.
Con i due prossimi comandi si ottiene rispettivamente la data che differisce di
15 giorni in più o in meno a partire dalla data odierna:
alm n+15
alm n-15
Altri comandi validi sono i seguenti:
alm n19/6/98+1000
alm n/6/98+1000
alm n19-1000
alm //99-100
Sintassi: ALM O[A] ["parola"]
ALM OC mese1[-mese2] ["parola"]
ALM OE
La funzione "ordina" effettua l'ordinamento e la riorganizzazione globale o
parziale delle ricorrenze annuali contenute nel file dati ALM.DAT. Possono
essere svolte tre azioni in corrispondenza alle tre sintassi sopra riportate
(si veda il seguito per la descrizione particolareggiata):
- recupero delle ricorrenze cancellate (nessuna opzione, opzione "A");
- cancellazione rapida delle ricorrenze relative ad uno o più mesi (C);
- eliminazione definitiva di tutte le ricorrenze cancellate (E).
Per le prime due voci (recupero e cancellazione) si può specificare una parola
o frase fra virgolette e in tal caso il comando ha effetto solo sulle
ricorrenze il cui testo contiene la parola o frase indicata (è indifferente
usare caratteri maiuscoli o minuscoli).
Quando si adopera la funzione "ordina" con una delle opzioni "A", "E", "C",
il programma chiede conferma prima di procedere e l'esecuzione automatica è
subordinata al consenso che, come il solito, si dà con la lettera "S".
Si è detto che, durante l'immissione dei dati nell'agenda annuale, è possibile usare la combinazione di tasti Ctrl+Canc che serve per cancellare una delle frasi già registrate nel file dati. Non si tratta però di una cancellazione definitiva perché l'informazione non viene eliminata (viene solo azzerato un puntatore). Questo comporta che i dati cancellati sono resi temporaneamente inaccessibili, ma possono essere recuperati qualora si desideri farlo. Per recuperare i dati uno alla volta basta immettere la "O" da sola: in questo modo il programma presenta ogni singola ricorrenza, chiedendo se la si vuole ripristinare. Oltre alle usuali risposte "N" e "S" è prevista anche la risposta "A" che attiva il recupero automatico di tutti i rimanenti dati cancellati. Se all'avvio la lettera "O" è fatta seguire da una "A", si attiva direttamente il recupero automatico. Esiste una circostanza nella quale una ricorrenza cancellata può essere irrecuperabile. Ciò avviene se nella data di quella ricorrenza ci sono già 15 ricorrenze attive e di conseguenza manca lo spazio per poter collocare quella recuperata. Rimane naturalmente la possibilità di cancellare una delle ricorrenze attive, ripetendo poi l'operazione di recupero. Si può richiedere il recupero delle sole ricorrenze il cui testo contiene una determinata parola o frase, che va messa fra virgolette. Ad esempio: alm o"anniversario"
Si attiva aggiungendo l'opzione "C", dopo la quale è obbligatorio indicare il numero di un mese o un intervallo di mesi. In questo caso non sono assunti valori per default, onde prevenire la cancellazione accidentale dei dati. Si consiglia di servirsi di questa funzione con un po' di cautela. Ad esempio, sono validi i seguenti comandi: alm oc4 alm oc4-10 Invece nei seguenti comandi la sintassi è considerata errata: alm oc alm oc-6 alm oc5-13 Come per il recupero, anche la cancellazione può essere ristretta a quelle ricorrenze che contengono una determinata stringa. Ad esempio: alm oc1-12 "zia Cunegonda"
Quando il file dati contiene molte ricorrenze cancellate, è conveniente eliminarle anche fisicamente per non occupare inutilmente spazio nel disco. L'eliminazione avviene utilizzando la funzione "ordina" con l'opzione "E" come segue: alm OE L'eliminazione fisica dei dati cancellati ha un secondo effetto positivo che è quello di ordinare cronologicamente le ricorrenze nel file dati, cosicché l'accesso può in certi casi risultare un po' più veloce. L'eliminazione dei dati viene effettuata utilizzando una copia temporanea e solo al termine il vecchio file viene eliminato: per questo è necessario che il disco corrente disponga di una sufficiente quantità di spazio libero. Perciò, prima di utilizzare questa funzione, è opportuno accertarsi che sia disponibile spazio libero in quantità pari alla dimensione dell'attuale file ALM.DAT.
Sintassi: ALM P[+][FileDati] Serve per fissare in modo stabile in un file dati di ALM le coordinate geografiche della propria località, la modalità di emissione delle segnalazioni acustiche, la modalità di scrittura dello schermo e il parametro per la dichiarazione dei giorni festivi. Il programma ALM riconosce alcune variabili di ambiente che gli consentono l'acquisizione di questi parametri (capitolo 27). Si può predisporre una certa configurazione e fissarla poi nel file dati, cosicché in seguito si possono ignorare le variabili di ambiente relative ai parametri suddetti, risparmiando così un po' di byte nell'ambiente DOS. Usando la lettera "P" da sola si ottiene semplicemente la visualizzazione delle condizioni attuali, inclusa la versione del file dati; se si vuole analizzare un file dati presente in una collocazione diversa da quella stabilita durante l'installazione, si può aggiungere un nome di file immediatamente alla destra della lettera "P". Ad esempio: alm p a:\alm.dat Se la lettera "P" è seguita immediatamente dal carattere "+", i parametri definiti con le variabili di ambiente vengono fissati stabilmente nel file ALM.DAT, se non viene precisato un nome di file diverso a destra del carattere "+". Si noti però che, quando il nome viene indicato esplicitamente, il file deve già esistere. La funzione "parametri" fornisce anche un rapporto sul numero di informazioni registrate nel file dati. Più precisamente sono indicati il numero di boot strap, il numero di ricorrenze (annuali, mensili, settimanali) e, per le ricorrenze annuali, la specificazione se sono attive, cancellate, festive, feriali. Viene anche mostrato il nome del file degli appuntamenti, se esistente. Per maggior comodità è fornito il programma batch FISSA.BAT che aiuta a determinare la configurazione desiderata. In questo batch file occorre adattare le righe con i comandi SET seguendo le istruzioni date nel capitolo 27.
Sintassi: ALM Q {località}
ALM H*{località}
Questa funzione individua nei file dei dati geografici ALM*.LOC tutte le
località che contengono la stringa "località" e visualizza le relative
informazioni (cfr. 11.1):
- la distanza in chilometri fra la località indicata e la propria località;
- il QTH locator della località indicata;
- l'azimut.
Se vengono individuate più località corrispondenti alla stringa indicata, si
può scorrerle usando alcuni tasti:
- frecce su/giù per passare alla voce precedente/successiva;
- Home/End per saltare alla prima/ultima voce;
- numero seguito da Invio per saltare alla voce corrispondente.
L'ordine di presentazione è il seguente:
- per prime compaiono le voci che iniziano con la stringa richiesta;
- seguono le voci che contengono la stringa in qualunque posizione
(con PgUp/PgDn si seleziona la prima di queste).
La funzione "QTH" è compatibile con il reindirizzamento
dell'uscita. Perciò sono ammessi comandi dei tipi seguenti:
alm q monte|more
alm q mare >file.txt
L'espressione "località" usata nella sintassi è obbligatoria. Essa può anche
consistere nelle coordinate geografiche (indicate come coppia di numeri
separati da virgola oppure mediante il QTH locator).
La funzione "QTH" fornisce informazioni simili alla funzione "ora" usata con
l'opzione "Q", permettendo però la consultazione dei dati riguardanti numerose
località.
Notare infine che invece del comando "Q" si può usare equivalentemente il
comando "H*".
Sintassi: ALM R[@][frase] Ricerca e scrive sullo schermo tutte le ricorrenze contenenti la frase indicata. La frase viene cercata indipendentemente dai caratteri maiuscoli e minuscoli. Si noti che l'omissione della frase causa la visualizzazione di tutte le ricorrenze e quindi i comandi "Elenco" e "ricerca" si equivalgono, qualora siano utilizzati senza alcun parametro. Se il comando "R" è seguito immediatamente da "@", i dati vengono presentati in un formato compatibile con quello del file degli appuntamenti ALM.APP. Ciò permette di estrarre i dati preesistenti e di utilizzarli poi nel file ALM.APP (v. il programma batch GENAPP.BAT).
Sintassi: ALM S{nome del santo}
Questa funzione serve per ricercare il nome di un santo nel file ALM.SAN e
per visualizzare sullo schermo tutte le date in cui esso ricorre. Il nome, che
può essere costituito anche da più parole o da una porzione del nome, va
digitato immediatamente dopo la lettera "S". Anche in questo caso, come per la
funzione "ricerca", non ha importanza rispettare le maiuscole/minuscole. Invece
è obbligatorio immettere almeno un carattere dopo la "S".
Si osservi che il file ALM.SAN deve trovarsi nella stessa directory in cui
si trova l'eseguibile ALM.EXE. Inoltre esso è riconosciuto come valido soltanto
se inizia con una sequenza ben precisa di caratteri, che agisce quindi come una
chiave. Perciò si abbia cura di non modificare o sostituire questo file.
L'aggiornamento del file ALM.SAN può essere svolto con il programma
SANTI.EXE.
Sintassi: ALM T[anno1[-anno2]] Questa funzione interessa esclusivamente i radioamatori appassionati di contest internazionali. La data di alcune di tali gare è stabilita con un criterio ben preciso. Il programma mostra il calendario dei cinque contest internazionali organizzati dalla IARU regione 1 sulle bande VHF e superiori (prima fine settimana dei mesi di marzo, maggio, luglio, settembre e novembre). Mostra inoltre le date dei contest mondiali CQWWPX e CQWWDX, sia in SSB sia in CW, sulle bande HF. Con la sola lettera "T" si ottiene il calendario dell'anno in corso; è possibile indicare un anno a piacere o anche un intervallo di anni compresi fra due estremi (analogamente a quanto accade, ad esempio, per la funzione "feste").
Sintassi: ALM V Questa funzione permette di consultare l'elenco degli avvii del calcolatore. Ogni riga ospita le informazioni relative ad un boot strap ed è possibile spostare il cursore di una riga (frecce verticali), di una videata (PaginaSu e PaginaGiù) e lo si può portare a inizio e fine elenco (Home e End) oppure a inizio e fine schermo (Ctrl+Home e Ctrl+End). Premendo il tasto Invio si ottiene l'almanacco odierno, mentre con Ctrl+Invio compare l'almanacco del giorno su cui è posizionato il cursore . La pressione del tasto Esc provoca il ritorno al DOS. Questa funzione è compatibile con il reindirizzamento dell'uscita. Nella funzione "vedi boot" la scrittura dello schermo avviene in modo diretto e non tramite BIOS, indipendentemente dallo stato della variabile di ambiente ALM_BIOS. Quindi l'intercettazione immediata dei caratteri da parte di un sintetizzatore vocale è esclusa (v. capitolo 27).
Sintassi : ALM "[parametri][frase]
ALM @[parametri]NomeFile
parametri: +n o -n per la velocità, *n o :n per la frequenza della nota.
La frase immessa dopo il carattere " (virgolette) viene tradotta in
telegrafia Morse attraverso l'altoparlante del calcolatore. I caratteri vengono
anche mostrati uno alla volta man mano che sono emessi. E' inoltre possibile
tradurre in Morse il contenuto di un file qualunque: si usa il carattere "@"
(in luogo delle virgolette) seguito dal nome del file da sonorizzare (v. il
programma batch MORSE.BAT).
Durante la riproduzione è possibile premere alcuni tasti per svolgere le
azioni seguenti:
Azione da svolgere Tasti da premere
================================= =================
ritornare al DOS Esc
sospendere/riattivare l'emissione barra spaziatrice
aumentare la velocità + oppure F1
diminuire la velocità - oppure F2
aumentare la frequenza * < F3
diminuire la frequenza : > F4
ripristinare le condizioni base =
La velocità viene aumentata o diminuita a passi del 10%, la frequenza viene
aumentata o diminuita a passi di un semitono (cioè moltiplicata o divisa per la
radice dodicesima di 2). E' possibile impostare i valori di partenza della
velocità e della frequenza mediante opportuni parametri indicati sulla riga di
comando DOS a sinistra della stringa o del nome del file (i valori base sono
rispettivamente di 80 lettere al minuto e di 880 Hz):
+n aumenta la velocità base di n gradi;
-n diminuisce la velocità base di n gradi;
*n aumenta la frequenza base di n semitoni;
:n diminuisce la frequenza base di n semitoni.
Fra i caratteri non alfanumerici, soltanto i seguenti vengono sonorizzati (gli
altri sono semplicemente ignorati):
' , - . / ?
Alcuni esempi di comandi validi:
alm "
alm "-1*3
alm "prova
alm ":3 prova
alm @file.txt
alm @+4*10 file.txt
I parametri di velocità e frequenza possono essere impostati anche con la
variabile di ambiente ALM_MRS. Lo stesso effetto dell'ultimo comando si ottiene
anche con i due comandi seguenti:
set alm_mrs=+4*10
alm @file.txt
Se il carattere " non è seguito da alcuna frase, il programma si predispone
ad accettare un input da tastiera e in questo caso vengono tradotti in Morse
tutti i caratteri alfanumerici man mano che vengono digitati dall'operatore.
Se è in corso la sonorizzazione di una frase o di un file, la pressione
della barra spaziatrice fa passare al modo di immissione da tastiera. Una
nuova pressione fa riprendere il testo lasciato in sospeso.
Questa funzione non ha alcun legame con l'almanacco. La sua presenza è
motivata dalla disponibilità del codice Morse usato per le segnalazioni
acustiche (v. il capitolo 27). Può essere una curiosità ma può anche fornire
l'occasione di apprendere il Morse.
Sintassi: ALM =importo moneta1 / moneta2
ALM =importo moneta1
ALM =importo /moneta2
ALM =moneta1
ALM =/moneta2
ALM =importo [moneta1] [/ moneta2] [{*|:}tasso]
ALM =+ FileOrigine [FileRisultante]
Mediante questa funzione si possono effettuare le conversioni valutarie fra
due monete qualunque. Giocando sulla presenza o meno dei singoli elementi
indicati nella sintassi, è possibile ottenere vari effetti.
Il termine "importo" è un numero che indica una somma di denaro da
convertire da una valuta ad un'altra valuta. I termini "moneta1" e "moneta2"
indicano i nomi delle due monete fra le quali si vuole effettuare la
conversione. Normalmente il tasso di cambio non deve essere indicato perché le
parità delle monete sono elencate tutte nel file ALM.VAL, che è un file di puro
testo facilmente aggiornabile.
Il carattere iniziale "=" che identifica la funzione "valuta" può essere
sostituito con "_". Ciò può essere utile nei casi in cui il DOS non accetta il
carattere "=", ad esempio nelle variabili di ambiente o nei parametri di un
file batch.
Questo caso esige che venga indicato esplicitamente l'importo della somma da convertire. Uno dei nomi delle monete può essere sottinteso e in questo caso il programma adotta il nome della moneta di default. Se non vi sono ambiguità, si può indicare una moneta con una parte iniziale del suo nome (ad esempio "tall" in luogo di "tallero"). Occorre utilizzare nomi di monete presenti nel file ALM.VAL, aggiungendo i dati mancanti eventualmente necessari. Oltre al calcolo dell'importo corrispondente, il programma mostra anche i tassi di cambio diretto e inverso fra le due monete. Alcuni esempi: alm = 250 doll alm = 100000 lira/dollaro alm = 100000/tallero alm = 4.6 dollaro aus / yen Si può usare il programma batch CAMBIO.BAT.
Se l'importo non è indicato o vale 0, il programma presenta la lista delle monete affiancate da un numero. In questo caso si deve indicare il nome di una sola moneta (eventualmente abbreviato). Ci sono due possibilita. Primo caso. Se il nome della moneta è indicato semplicemente, viene mostrato il valore di tutte le monete nei confronti della moneta indicata. Esempi: alm = lira alm = kuna Secondo caso. Se il nome della moneta è preceduto dal carattere "/", viene mostrato il valore di una unità della moneta data rispetto a tutte le altre monete. Esempi: alm =/lira alm =/peseta L'intero elenco visualizzato può essere riversato in un file usando il reindirizzamento dell'uscita. Ad esempio: ALM =lira>e:\elenco.txt E' anche possibile aumentare la precisione dei valori visualizzati: basta assegnare alla variabile ALM_PRE un valore numerico intero compreso fra 6 e 16, a seconda della precisione desiderata. Ad esempio: set alm_pre=8
I nomi delle monete e le parità sono elencati in un apposito file dal nome ALM.VAL. A parte le monete aderenti all'euro, che hanno un tasso di cambio fisso, le parità sono suscettibili di variazioni e vanno quindi aggiornate periodicamente: l'operazione è relativamente semplice perché il file è un file di puro testo ASCII. La prima riga del file ALM.VAL deve iniziare con l'etichetta di identificazione [ALM_VAL]. Per indicare il nome della moneta sottintesa (adoperata quando sulla riga di comando DOS non viene espresso esplicitamente il nome di una moneta) occorre una riga simile alla seguente: BASE_VAL = LIRA Si elencano poi, una per riga, tutte le monete, seguite dal segno di "=" e da un numero decimale che esprime il tasso di cambio rispetto ad una stessa moneta di riferimento. La consuetudine ormai consolidata (nel rispetto delle disposizioni del Consiglio dell'Unione Europea del 31/12/1998) vuole che la moneta di riferimento sia l'euro e che accanto a ogni moneta si indichi il valore di un euro in quella moneta. Nel file ALM.VAL fornito con il programma la moneta di riferimento è appunto l'euro, ma può essere usata un'altra moneta qualunque, come pure si potrebbe invertire l'interpretazione dei tassi (v. il paragrafo 24.3.1). Ecco alcuni esempi di tassi di cambio: EURO = 1 LIRA = 1936.27 YEN GIAPPONESE = 133.72 CORONA CECA = 32.56 Notare che la moneta di riferimento non deve necessariamente coincidere con la moneta sottintesa descritta più sopra (si potrebbe addirittura usare come riferimento una moneta non citata esplicitamente nell'elenco). Si può usare un diverso file con l'elenco delle parità: basta impostarne il nome con la variabile di ambiente ALM_VAL. Ad esempio: set alm_val=d:\dati\monete.txt
Se si volesse adottare la lira come moneta di riferimento, occorrerebbe indicare i tassi come nei seguenti esempi (notare che è opportuno "abbondare" con il numero di cifre decimali per assicurare la precisione dei calcoli): EURO = 0.0005164569 LIRA = 1 YEN GIAPPONESE = 0.06906062 CORONA CECA = 0.01681584 In questa circostanza risulta preferibile indicare nel file ALM.VAL i tassi inversi rispetto all'interpretazione usuale. A tale scopo occorre premettere all'elenco dei tassi di cambio il seguente comando, con una "S" o una "Y" a destra del segno di "=": TASSI_INVERSI = S Se tale comando è presente, il numero accanto alla moneta viene interpretato come il valore di una unità di quella moneta rispetto alla moneta di riferimento. Perciò ciascun valore x delle righe precedenti deve essere sostituito con il suo reciproco 1/x e cioè: EURO = 1936.27 LIRA = 1 YEN GIAPPONESE = 14.48 CORONA CECA = 59.4678 Il comando TASSI_INVERSI agisce "globalmente", cioè ha effetto su tutte le monete elencate nelle righe successive e può comparire più volte nello stesso file. Se è accompagnato dalla lettera "N", esso ripristina l'interpretazione ordinaria dei tassi nelle righe successive; in tutti gli altri casi viene ignorato. Si può adottare il tasso inverso in modo "locale", cioè eseguire la variazione solo per una o più monete: basta anteporre al tasso il carattere "/". Se però i tassi sono già interpretati come inversi per effetto del comando TASSI_INVERSI, tale carattere ripristina l'interpretazione ordinaria di quel tasso (una doppia inversione lascia il valore invariato). E' anche possibile indicare un tasso relativo a una moneta diversa da quella di riferimento, purché essa sia compresa fra le monete elencate nelle righe precedenti. Ad esempio, se sono presenti i due prossimi comandi, il tasso di "VECCHIO FRANCO" viene interpretato come il tasso del franco francese moltiplicato per 100: FRANCO FRANCESE = 6.55957 VECCHIO FRANCO = 100 FRANCO FRANCESE Questa caratteristica può essere utile anche per prevedere denominazioni diverse di una stessa moneta, senza dover indicare più volte il tasso. Ad esempio, sono validi i seguenti tassi, dove il valore numerico è adottato implicitamente come uguale a 1: DOLLARO = DOLLARO USA DOLLARI = DOLLARO Riassumendo, per esprimere un tasso di cambio nel file delle parità valutarie si usano righe con uno dei seguenti formati (le parti fra parentesi quadre sono facoltative e le parentesi non vanno scritte): NOME_MONETA = [/] tasso [MONETA_PRECEDENTE] NOME_MONETA = MONETA_PRECEDENTE
Talvolta può essere utile impostare momentaneamente un tasso di cambio non previsto nel file delle parità ALM.VAL. A tale scopo è sufficiente completare il comando già descritto con il tasso di cambio preceduto dal carattere "*" (asterisco) oppure dal carattere ":" (due punti), a seconda che il tasso sia diretto oppure inverso. Facciamo tre esempi. 1) Supponiamo di sapere che una certa moneta vale 255 lire. Per calcolare il corrispettivo di 100000 lire in quella moneta basta eseguire il seguente comando: alm =100000 : 255 Il carattere ":" dell'esempio precedente suggerisce che l'operazione da eseguire è una divisione. 2) Supponiamo che il tasso odierno di un dollaro USA sia di 1.2496 per un euro. Per conoscere l'importo in dollari di 300 euro si esegue il comando seguente: alm =300 * 1.2496 Il carattere "*" suggerisce che l'operazione da eseguire è una moltiplicazione. Si ottiene in risposta: 300 EURO = 374.88 MONETA IMPRECISATA dove il nome "EURO" è desunto dal file ALM.VAL, che lo prevede come moneta sottintesa (anche se in questo caso tutti i tassi elencati in tale file sono ignorati). Volendo visualizzare una frase con i nomi delle monete esatte, occorre arricchire il comando: alm =300 euro/dollari * 1.2496 Per maggior comodità si può utilizzare il file batch DOLLARI.BAT. 3) Il tasso di cambio euro/lira è pari a 1936.27. Se vogliamo sapere a quante lire corrispondono 285 euro possiamo eseguire il comando: alm =285 euri/lire * 1936.27 Se viceversa vogliamo sapere a quanti euro corrisponde un milione di lire: alm =1000000 lire/euri :1936.27 Usando il file batch EURO.BAT, i due comandi si trasformano rispettivamente in: euro 285 euro 1000000 x Notare che la conversione fra lira e euro non richiede la precisazione esplicita del tasso di cambio, dato che il tasso stesso è fissato e irrevocabile. Perciò gli stessi risultati si ottengono anche con i due seguenti comandi (purché sia presente il file ALM.VAL): alm =285 eur/li alm =1000000 li/eu Notare che, quando si indica un tasso di cambio sulla linea di comando, tutti i tassi registrati nel file delle parità sono ignorati. Il programma utilizza soltanto i nomi delle monete per completare eventuali nomi immessi parzialmente. Il programma ALM, che non sa come fare i plurali dei nomi, utilizza le denominazioni al singolare memorizzate nel file ALM.VAL, cosicché le frasi che compaiono sullo schermo hanno talvolta un aspetto alquanto buffo.
Si può aggiornare il file delle parità valutarie ALM.VAL a partire da un file di testo contenente in ciascuna riga il nome di una moneta con il relativo tasso di cambio. Per svolgere questa funzione si usa l'ultima sintassi indicata e cioè: ALM =+ FileOrigine [FileRisultante] Il file FileOrigine deve essere un file di testo con righe simili alle seguenti (almeno il primo carattere della moneta deve essere maiuscolo): STERLINA CIPRIOTA 0.5862 TALLERO SLOVENO 236.85 YEN GIAPPONESE 133.72 Tutto il contenuto di ALM.VAL viene trascritto in File Risultante, sostituendo i valori delle monete elencate in FileOrigine. In mancanza di indicazione esplicita, come FileRisultante viene usato il nome ALM_VAL.TMP. Aggiornamento con i dati di Televideo. L'aggiornamento facilitato può essere eseguito utilizzando come FileOrigine il contenuto della pagina 332 di Televideo RAI riversata in un file di testo ASCII mediante una scheda di acquisizione Teletext (v. il file batch allegato AGGVAL.BAT). Dato che gli importi vengono trascritti senza eseguire alcuna conversione, il procedimento è applicabile solo quando le monete elencate in FileOrigine corrispondono a righe del file ALM.VAL espresse nel modo più semplice, vale a dire "MONETA = tasso" (senza la barra iniziale e senza un nome di moneta a destra del valore numerico, v. 24.3.1). Il file ALM.VAL allegato rispetta questi requisiti nei confronti del file ricavato da Televideo. Infine, se all'inizio del file ALM.VAL è attivata l'interpretazione globale dei tassi come inversi (comando "TASSI_INVERSI = S"), tutti i tassi elencati in FileOrigine devono essere inversi.
A partire dalla data 1 gennaio 2002 la lira è stata sostituita dall'euro, ma naturalmente essa rimane per tutti noi un importante riferimento mentale. Nel calcolare i valori corrispondenti di euro in lire e viceversa, si utilizza il tasso ufficiale di 1936.27 lire per un euro. Se però si vuole raffrontare il valore corrispondente di una somma di danaro in anni diversi, occorre tener conto della svalutazione della lira fino al 2002 e di quella dell'euro successivamente. Tutti i tassi ufficiali di svalutazione a partire dal 1861 sono riportati nel file LIRA.VAL, dove per i vari anni sono utilizzate le denominazioni LIRE_1861, LIRE_1862,... LIRE_2004. Come valore di riferimento è usato quello di LIRE_2002, che è posto a 1, mentre la moneta sottintesa è LIRE_2004 (v. il paragrafo 24.3). Chiaramente questi valori non rispecchiano esattamente l'andamento della svalutazione reale, che non è facilmente quantificabile. Facciamo alcuni esempi di utilizzo. ALM = 3500 LIRE_1925 Mostra il valore in lire del 2004 di 3500 lire del 1925. ALM = 3500 LIRE_1925 /euro Mostra il valore in euro della stessa somma dell'esempio precedente. ALM = 1 LIRE_1980 / LIRE_2000 Mostra il valore nel 2000 di una lira del 1980. Per il calcolo dei valori attuali (2004) si può utilizzare il file batch LIRA.BAT (lo si esegua senza parametri per visualizzare alcune spiegazioni).
Sintassi: ALM °temperatura [scala] Mediante questa funzione si possono eseguire le conversioni di temperatura fra le varie scale termometriche conosciute (Celsius, Fahrenheit, Kelvin, Réaumur, Rankine). Il comando che identifica questa funzione è il simbolo di "gradi", indifferentemente nella codifica DOS (ASCII 248) oppure in quella Windows (ASCII 176). Il termine facoltativo "scala" può essere una fra le lettere "C", "F", "K", "R" e "A", in corrispondenza alle cinque scale termometriche previste. Se non si precisa alcuna scala, il programma assume implicitamente che la temperatura indicata è espressa in gradi centigradi (scala Celsius). L'effetto del comando è la visualizzazione delle temperature nelle quattro scale diverse da quella indicata sulla riga di comando. Per maggior comodità si può utilizzare il file batch allegato GRADI.BAT.
Le scale termometriche comunemente usate sono la Celsius (detta anche scala centigrada) e la Fahrenheit (impiegata soprattutto negli USA). Le scale Kelvin e Rankine sono scale di temperatura assoluta usate in ambito scientifico, mentre la scala Réaumur è attualmente in disuso. Scale Celsius e Fahrenheit. La scala Celsius fu introdotta dall'astronomo svedese Andres Celsius (1701-1744). Essa divide in 100 parti l'intervallo di temperatura che va dal punto di congelamento (0 gradi) al punto di ebollizione (100 gradi) dell'acqua pura al livello del mare e alla pressione di 760 millimetri di mercurio. La scala Fahrenheit, introdotta nel 1714 dallo scienziato tedesco di origine polacca Gabriel Fahrenheit (1686-1736), divide lo stesso intervallo di temperatura in 180 gradi, ponendo però a 32 gradi la temperatura di congelamento e di conseguenza a 212 gradi quella di ebollizione. Questo valore un po' strano è dovuto al fatto che Fahrenheit pose a 0 la temperatura di un'opportuna miscela di ghiaccio e di cloruro di ammonio. Indicando con TC e con TF la temperatura di un corpo rispettivamente nelle scale Celsius e Fahrenheit, le due formule di conversione sono: TC = (5/9)*(TF-32) TF = (9/5)*TC+32 Scale Kelvin e Rankine. Sono entrambe scale che adottano come valore 0 della temperatura il cosiddetto "zero assoluto", la condizione della materia nella quale il movimento molecolare si arresta. Tale condizione, corrispondente alla temperatura di -273.15 gradi Celsius, non può essere raggiunta in modo esatto, anche se vi si può arrivare molto vicino: infatti la più piccola perturbazione (ad esempio il transito di un fotone) impedirebbe all'agitazione molecolare di essere perfettamente nulla. Nelle scale Kelvin e Rankine la variazione di un grado di temperatura coincide rispettivamente con la variazione di un grado nelle scale Celsius e Fahrenheit. La temperatura di 0 gradi Celsius corrisponde a 273.15 gradi Kelvin e a 491.67 gradi Rankine. Le temperature TK e TA nelle scale Kelvin e Rankine si ottengono rispettivamente dalle temperature TC e TF con le formule seguenti: TK = TC+273.15 TA = TF+459.67 La scala Kelvin fu inventata da William Thomson, noto anche come Lord Kelvin (1824-1907), uno scienziato irlandese che compì importanti studi di termodinamica. La scala introdotta dall'ingegnere scozzese William John Macquorn Rankine (1820-1872) è sostanzialmente simile alla scala Kelvin ed è poco usata. La scala Réaumur. La scala Réaumur, introdotta dallo scienziato francese Réné-Antoine Ferchault de Réaumur (1683-1757), fu usata soprattutto in Francia nei secoli XVIII e XIX. In tale scala il punto di congelamento dell'acqua è posto a 0 gradi mentre quello di ebollizione è posto a 80 gradi. Detta TR la temperatura nella scala Réaumur, le formule di conversione rispetto alla temperatura Celsius TC sono: TR = TC*4/5 TC = TR*5/4
Sintassi: ALM # (segnale orario)
ALM #c[z] (cronometro)
ALM #hh:[mm[:ss]][r] (conto alla rovescia fino all'ora indicata)
ALM #secondi [r] (conto alla rovescia per il tempo indicato)
ALM #d [hh:]mm:ss (idem per hh ore, mm minuti, ss secondi)
A seconda della sintassi usata, viene svolta una delle funzioni indicate a
destra fra parentesi tonde nel prospetto precedente (segnale orario, cronometro
oppure conto alla rovescia).
Lo scorrere del tempo è evidenziato con segnalazioni acustiche (v. lo schema
più avanti), la cui quantità può essere regolata durante l'esecuzione premendo
una cifra compresa fra 0 (segnalazioni complete) e 7 (segnalazioni del tutto
assenti). Per tali segnalazioni è adottata una "frequenza base" che può essere
variata a passi di un semitono con i tasti "+" e "-".
Ogni cinque secondi il programma mostra il tempo con l'attributo "reverse"
(scritta nera su sfondo bianco) e invia tale scritta al BIOS: la scrittura
tramite BIOS può essere alternativamente esclusa e ripristinata premendo il
tasto "B".
Premendo il tasto Invio si ripristinano le condizioni predefinite (0 per la
quantità di segnalazioni, frequenza base di 1000 Hz, BIOS attivato).
Se non è in corso il conto alla rovescia, si può premere la barra
spaziatrice per avviare il cronometro, che si può fermare in ogni momento con
la barra spaziatrice stessa. Il cronometro mostra il tempo parziale e quello
totale (se diversi tra loro): per chiarezza di visualizzazione, durante il
conteggio compaiono solo i secondi, mentre alla fine del conteggio sono
mostrati i tempi in modo preciso (approssimazione di un millesimo).
Il valore del tempo totale viene conservato nel disco: in tal modo è
possibile accumulare le misurazioni anche in momenti diversi. Tale valore può
essere azzerato in due modi:
- avviando la funzione cronometro direttamente da DOS con il comando "alm #cz"
(con "alm #c" il cronometro parte senza azzerare il tempo totale);
- avviando la funzione "segnale orario" (comando "alm #") e premendo poi
il tasto "Z".
Se a destra di "#" viene indicato un valore numerico, il programma attiva la
funzione di "conto alla rovescia". Il valore indicato può assumere tre forme:
- un semplice valore numerico (anche con cifre decimali)
indica una durata espressa in secondi; ad esempio:
alm #21.5
richiede il conto alla rovescia per 21.5 secondi.
- valori della forma mm:ss oppure hh:mm:ss accompagnati dalla lettera "D"
indicano una durata nella quale si possono precisare i minuti ed eventualmente
le ore; ad esempio, i seguenti quattro comandi richiedono il conto alla
rovescia per la durata indicata:
alm #d 2:10 (2 minuti e 10 secondi, equivalente a "alm #130");
alm #d 3:20:30 (3 ore, 20 minuti, 30 secondi);
alm #d 3:: (3 ore esatte, si può anche usare "alm #3:0:0d");
alm #d :1:5.5 (un minuto e 5.5 secondi).
- un valore nella forma hh:mm:ss
indica l'orario nel quale deve aver termine il conto allarovescia; ad esempio:
alm #8:15
alm #21:5:30
I minuti e i secondi, se omessi, in questo caso vengono interpretati come "0".
L'effettivo avvio del conto alla rovescia può essere subordinato
all'ulteriore pressione di un tasto: a tale scopo basta aggiungere la lettera
"R" sulla riga di comando.
Al termine del conto alla rovescia il programma emette per circa due minuti
un segnale consistente in una sequenza di otto impulsi a 1500 Hz, ripetuto ogni
cinque secondi: si può ritornare al segnale orario premendo la barra
spaziatrice oppure uscire dal programma con Esc.
Durante l'esecuzione si può premere una cifra n compresa fra 0 e 7: in tal caso vengono escluse le segnalazioni identificate nello schema seguente con un progressivo minore di n, mentre le rimanenti vengono attivate. Perciò, in particolare, la pressione di 0 comporta la riattivazione di tutte le segnalazioni e la pressione di 7 comporta l'esclusione di tutte. Le frequenze indicate nello schema fanno riferimento alla frequenza base predefinita di 1000 Hz e variano proporzionalmente ad essa quando la si modifica. 0) un impulso a 4000 Hz ogni secondo; 1) un impulso a 1500 Hz ogni cinque secondi; 2) 2, 3 e 4 impulsi a 1500 Hz ai secondi 15, 30 e 45 di ogni minuto; 3) un impulso a 1000 Hz ai secondi fra 54 e 58 (come il segnale orario RAI); 4) impulso prolungato di frequenza 2000 Hz allo scadere di ogni minuto; 5) arpeggio discendente allo scadere dell'ora e della mezz'ora; 6) 8 impulsi ripetuti a 1500 Hz al termine del conto alla rovescia; 7) tutte le segnalazioni sono escluse. Oltre alle segnalazioni acustiche già descritte, è possibile attivare una segnalazione facoltativa con cadenza a piacere determinata da un valore numerico attribuito alla variabile di ambiente ALM_CAD. Ad esempio, si può impostare il valore 60 con il seguente comando DOS: set alm_cad=60 alm # In tal modo il programma emette ogni 60 secondi una scala di cinque note, alternativamente ascendente e discendente. Questa segnalazione aggiuntiva sostituisce le segnalazioni "regolari" negli istanti in cui cade. Essa viene esclusa quando tutte le segnalazioni del segnale orario sono escluse (valore 7 dello schema precedente) e naturalmente non è attivata se la variabile ALM_CAD non è definita.
In questo capitolo è descritto il modo in cui il programma ALM può acquisire alcuni dati che ne consentono la personalizzazione e il corretto funzionamento. Anche in questo caso il programma supplisce con valori di default in mancanza di assegnazioni esplicite. I dati in questione sono il nome della propria località con le sue coordinate geografiche (latitudine nord e longitudine est) e cinque coefficienti che riguardano rispettivamente le segnalazioni acustiche emesse dall'altoparlante del calcolatore, il modo di scrittura dello schermo, la visualizzazione dei caratteri ASCII estesi, i giorni della settimana da considerare festivi e l'applicazione dell'ora legale. Altre informazioni che si possono indicare esplicitamente sono: - il nome della directory che contiene il programma; - il file degli appuntamenti liberi (in sostituzione di ALM.APP); - il file dei dati geografici; - il file con l'elenco delle parità valutarie; - le stringhe che definiscono le segnalazioni acustiche; - i parametri di velocità e frequenza per la funzione Morse; - la cadenza di una segnalazione aggiuntiva nella funzione "segnale orario". I parametri principali possono essere definiti più comodamente usando il programma di configurazione INIZIA (v. capitolo 29). Il programma ALM riconosce le seguenti variabili di ambiente DOS: ALM_DIR directory contenente i file del programma; GA_APP file ASCII degli appuntamenti liberi; ALM_LAT latitudine della propria località; ALM_LONG longitudine della propria località; ALM_BIOS parametro per la modalità di scrittura dello schermo; ALM_F parametro per indicare quali sono i giorni festivi; ALM_LEG coefficiente per determinare l'applicazione dell'ora legale; ALM_PASS attivazione permanente della richiesta di password; ALM_S parametro per l'emissione delle segnalazioni acustiche; ALM_1, ALM_2,... ALM_5 stringhe che definiscono le segnalazioni; ALM_MRS parametri di velocità e frequenza per la funzione Morse; ALM_LOC scelta del file dei dati geografici (numero da 0 a 9); ALM_VAL nome del file contenente le parità fra le monete; ALM_WIN se vale 1 visualizza le lettere accentate con la tabella ISO 8859-1; ALM_CAD cadenza di una segnalazione extra nella funzione "segnale orario". Per assegnare un valore a una variabile di ambiente si usa il comando SET (v. il manuale o il comando HELP del DOS alla voce SET). Ad esempio, se i file ALM.EXE, ALM.SAN, ALM*.LOC e ALM.VAL si trovano nella directory C:\DATI e se questa directory non è fra quelle elencate nel path di sistema, prima di lanciare in esecuzione il programma si deve dare il seguente comando al prompt del DOS o, eventualmente, mettere tale riga nel file AUTOEXEC.BAT (v. anche il programma batch VAR.BAT): set alm_dir=c:\dati Inoltre, ipotizzando ancorache la directory non sia inclusa nel path, si deve lanciare in esecuzione il programma facendone precedere il nome dal percorso completo e cioè immettendo il comando: c:\dati\alm ... Per quanto riguarda gli altri parametri di configurazione, conviene assegnarli mediante il programma di configurazione INIZIA, che li presenta in modo analitico e ne permette la modifica con comandi semplici e guidati. Un modo alternativo di assegnare i valori dei parametri è quello di predisporre i valori desiderati, fissandoli poi nel file dati ALM.DAT mediante la funzione "parametri" (comando "P"). Ad esempio, supponiamo di eseguire i seguenti comandi: set alm_lat=45.4 set alm_long=12.38 set alm_bios=1 set alm_f=192 set alm_s=1 alm p+ In questo modo vengono memorizzati le coordinate geografiche di Venezia e gli altri parametri, cosicché in seguito non occorrerà più usare le corrispondenti variabili di ambiente, a meno che non si voglia cambiare qualcosa.
Il procedimento descritto sopra permette di adottare coordinate geografiche a piacere. Tuttavia il modo più semplice di compiere questa assegnazione è quello di lanciare in esecuzione il programma di configurazione INIZIA (v. più avanti), che si avvale delle informazioni presenti nei file ALM*.LOC dei dati geografici. I dati di questi file sono sfruttati direttamente anche dal programma ALM (v. i file batch FUSO.BAT, FUSO1.BAT, DISTA.BAT e ORA.BAT). Il programma di configurazione INIZIA consente anche di memorizzare il nome della propria località (per questa assegnazione non è prevista una variabile di ambiente). E' importante indicare al programma le proprie coordinate geografiche (latitudine nord e longitudine est) perché in tal modo si ottengono valori più accurati per l'ora dell'alba e del tramonto del sole. Le coordinate devono essere espresse in gradi: se si vuole tener conto anche dei primi e dei secondi occorre riportare i valori sessagesimali alla frazione di grado. Ad esempio, 45 gradi, 24 primi e 15 secondi diventano 45.40417 gradi utilizzando la seguente formula: 45 + 24/60 + 15/3600 = 45.40417 I radioamatori, i quali normalmente conoscono il proprio QTH locator, possono impostare le coordinate geografiche semplicemente immettendo tale informazione (v. il formato del file ALM.LOC e la voce 2 nel menù del programma INIZIA). In mancanza di una dichiarazione esplicita, viene adottata per default la località di Roma (41.9 gradi di latitudine e 12.48 gradi di longitudine). Per controllare quali sono le coordinate in uso basta servirsi della funzione "parametri" (senza il carattere "+"). I file ALM.LOC e ALM1.LOC ospitano i dati geografici (si possono aggiungere altri file ALM2.LOC...ALM9.LOC): sono elenchi di località con le rispettive coordinate geografiche (v. capitolo 29).
Il programma ALM produce varie segnalazioni acustiche, differenziate in base alla natura dei messaggi cui sono associate. Qui consideriamo tutte le segnalazioni acustiche, ad eccezione di quelle relative alle funzioni "segnale orario", "cronometro" e "conto alla rovescia", che sono controllate in modo indipendente (v. capitolo 26). Esistono due modi per decidere quali segnalazioni vanno lasciate attive e quali vanno escluse. Il modo più comodo è quello di utilizzare il programma di configurazione INIZIA (v. più avanti). In alternativa basta attribuire alla variabile ALM_S un valore numerico opportuno: come per le coordinate, occorre compiere l'assegnazione una sola volta, purché si fissi il valore nel file ALM.DAT usando la funzione "parametri". Sono previste segnalazioni distinte per le seguenti circostanze: 0) errori; 1) ricorrenze annuali e appuntamenti liberi; 2) ricorrenze settimanali; 3) ricorrenze mensili; 4) avvenuta registrazione su disco; 5) boot strap. E' prevista la possibilità di modificare tutte le segnalazioni, esclusa quella di errore. Esistono infatti cinque variabili di ambiente dai nomi ALM_1, ALM_2,... ALM_5, corrispondenti alle voci 1-5 del prospetto di sopra, alle quali vanno assegnate le istruzioni necessarie per eseguire una melodia diversa da quella di default. Le istruzioni vanno predisposte seguendo la sintassi del comando PLAY del Quick Basic. Vedere i file batch SUONI*.BAT, nei quali sono impostati insiemi di segnalazioni diverse da quelle predefinite. Le segnalazioni acustiche possono anche consistere in segnali in codice Morse. Infatti il programma traduce in Morse le parole contenute nelle variabili ALM_1,... ALM_5, se queste contengono in qualunque posizione il carattere " (virgolette). E' possibile impostare valori particolari per la velocità del codice Morse e per la frequenza della nota (capitolo 23). Esempi: set alm_1="r set alm_5=+3:4"boot Infine per la codifica del parametro che determina l'emissione dei suoni si veda il capitolo 32.
Il programma ALM offre la possibilità di scegliere fra due modalità di scrittura dello schermo: quella diretta e quella tramite le routine di BIOS del sistema. La prima modalità è più veloce, ma la seconda è molto utile per gli operatori non vedenti che si servono di un sintetizzatore vocale collegato all'elaboratore. Perciò quest'ultima modalità è adottata per default. Per selezionare la scrittura diretta basta assegnare alla variabile di ambiente ALM_BIOS un qualunque valore numerico intero diverso da 0. I file SIBIOS.BAT e NOBIOS.BAT possono essere usati rispettivamente per attivare ed escludere la scrittura tramite BIOS, con memorizzazione nel file ALM.DAT. Qualora si opti per il modo diretto, i dati possono anche essere riversati su un file per un esame successivo: a tale scopo basta usare il normale comando di reindirizzamento dell'uscita verso il file desiderato (volendo, anche la stampante). Ad esempio: alm f1970-2010 > file.txt alm */*/2000e >> file.txt alm e4- > prn Se si usa il reindirizzamento, le funzioni interattive "mensile", "ordina", "settimanale", "morse" sono inibite. Lo stesso dicasi per "oggi", "boot strap" e "giorno" quando si aggiorna l'agenda annuale (opzione A).
Il normale funzionamento del programma ALM presuppone che l'orologio del calcolatore sia regolato sull'ora legale nel periodo in cui essa è in vigore. Ciò implica che gli orari mostrati (ora dell'alba e del tramonto e fase lunare) fanno automaticamente riferimento all'ora legale e non all'ora solare. Con questo automatismo la presentazione delle informazioni è la più naturale possibile, ma si possono verificare circostanze molto particolari nelle quali questo criterio non è soddisfacente. Ad esempio: - si vogliono vedere i dati riferiti all'ora solare; - non è consentita la modifica dell'ora presente nell'orologio. L'automatismo può essere escluso in modo stabile usando il programma di configurazione o la variabile di ambiente ALM_LEG oppure in modo temporaneo con le opzioni "!-" e "!+" (v. 3.3, 3.4, 29.8). Le tre situazioni possibili sono riassunte nello schema seguente: Ora legale Variabile ALM_LEG Opzione equivalente ========== ================= =================== attiva 0 default ignorata 2 !- forzata 4 !+ Se l'ora legale è ignorata (seconda riga dello schema), la condizione può essere modificata solo agendo sulla variabile di ambiente ALM_LEG oppure usando il programma di configurazione INIZIA. Se invece è impostata la condizione della terza riga, allora l'opzione "!-" ha la priorità.
Gli algoritmi per il calcolo delle fasi lunari sono stati dedotti da formule contenute nel volume di Pierre Kohler dal titolo "Atlante dell'Universo", edito da Rizzoli, Milano, 1984. Dallo stesso volume sono state tratte le formule per il calcolo della durata del giorno e del crepuscolo. I valori dell'inclinazione dell'asse terrestre sul piano dell'ecclittica sono stati ricavati con i coefficienti forniti da J. H. Lieske, T. Lederle, W. Fricke, e B. Morando in "Expressions for the Precession Quantities Based upon the IAU (1976) System of Astronomical Constants", Astronomy and Astrophysics 58, 1-16 (1977). Per gli anni prima del 1800 e dopo il 2200 la formula usata è di J. Laskar, "Secular terms of classical planetary theories using the results of general theory", Astronomy and Astrophysics 157, 59070 (1986). Infine, per l'orario di transito del sole sul meridiano locale sono stati usati valori ricavati per l'anno 2000 con l'eccellente programma AA v5.1 di Stephen L. Moshier: la variazione di questi valori nel corso di un secolo è insignificante, mentre per l'anno 3000 provocano un errore massimo di circa un minuto primo. L'ora usata per la fase lunare è l'ora solare del fuso dell'Europa centrale, cui l'Italia appartiene. Si noti che per i giorni di novilunio, plenilunio, primo e ultimo quarto il programma fornisce l'ora della fase. Per gli altri giorni indica invece il numero di giorni dalla fase più vicina: in tal caso il dato è espresso in valore decimale approssimato al centesimo di giorno ed è riferito alle ore 0 (ora solare o legale, a seconda dei casi) del giorno in questione. Ad esempio, per il giorno 6/10/1994 si ottiene la risposta "0.64 giorni dopo la luna nuova": questo dato significa che alle ore 0 del 6/10/1994 (cioè alle 24 del 5/10/1994) è trascorsa una frazione di giorno pari al 64% dal momento dell'ultimo plenilunio. Gli orari dell'alba e del tramonto del sole combaciano con quelli osservabili in una data località solo se si forniscono al programma le coordinate geografiche del luogo (v. capitolo 27). In mancanza di tale informazione, il programma calcola gli orari per la città di Roma. L'ora legale viene determinata in base ai criteri adottati in Italia a partire dal 1965 (la regola può essere personalizzata mediante il programma INIZIA). Per quanto riguarda il crepuscolo, la sua durata è fornita a parte qualora si indichi l'opzione "D" sulla riga di comando DOS. Essa è calcolata secondo il criterio civile, in base al quale il crepuscolo dura fino al momento in cui il sole si trova 6 gradi sotto l'orizzonte. Per il coefficiente di rifrazione dell'atmosfera si è usato il valore medio di 0.6 gradi, indipendentemente dai valori di pressione, temperatura e umidità, che comunque possono influire al più per un decimo di grado.
Il pacchetto ALM è costituito dai seguenti file: - ALM.EXE programma principale; - INIZIA.EXE programma di configurazione; - UNISCI.EXE programma per riunire i dati di due file (merge); - SANTI.EXE programma per aggiornare l'elenco dei santi; - ALM.TXT questo manuale; - ALM.SAN elenco dei Santi per i singoli giorni dell'anno; - ALM.LOC lista di località italiane con coordinate geografiche; - ALM1.LOC lista di località estere con coordinate geografiche; - ALM.VAL elenco delle parità monetarie; - LICENZA.TXT licenza d'uso; - una serie di programmi batch; - BATCH.TXT descrizione dei programmi batch allegati; - il programma GA.EXE (gestione degli appuntamenti) è reperibile separatamente. - due programmi di altri autori, usati nei file batch come programmi ausiliari: SED.EXE "stream editor" in stile Unix (versione DOS di Howard Helman); ANSWER.COM piccolo programma per acquisire una stringa da tastiera. I programmi batch (detti anche "file batch") allegati ad ALM sono descritti nel file BATCH.TXT, dove essi sono distinti in varie categorie in base alla funzione svolta. Il loro scopo è richiamare le funzioni del programma per mezzo di una sintassi semplificata. I nomi dei file batch sono scelti in modo da suggerire la funzione svolta. Ciascun programma è corredato di una funzione di aiuto che si attiva indicando il carattere "?" oppure l'opzione "/?" sulla linea di comando dopo il nome del programma batch stesso. Ad esempio, per sapere a che cosa serve il programma DIFF.BAT, basta eseguire il comando seguente: diff.bat ? E' inoltre disponibile il programma batch AIUTO.BAT, che fornisce un aiuto generale su tutti gli altri programmi batch inclusi nel pacchetto. Dopo aver lanciato in esecuzione tale programma, basta digitare uno dei nomi (il cui elenco viene visualizzato sullo schermo) per ottenere la corrispondente spiegazione. Notare che il programma AIUTO.BAT si avvale di un piccolo programma ausiliario di nome ANSWER.COM, fornito da un altro autore, per acquisire i dati immessi da tastiera (funzione che, com'è noto, non è gestibile direttamente con i comandi DOS). Quando si attiva il reindirizzamento del DOS, il programma disattiva la scrittura tramite BIOS (alcune funzioni interattive di ALM non sono compatibili con il reindirizzamento). Notare comunque che, a partire dall'edizione 2.0 di ALM, non è più necessario usare il "piping" del DOS (comando |more) per fermare lo scorrimento dei dati: la visualizzazione si arresta automaticamente a fine schermo.
Il programma INIZIA consente la configurazione di ALM in modo semplice e guidato. Non è necessario eseguire il programma nella directory in cui è collocato il file dati ALM.DAT: è sufficiente che tale file sia contenuto in una delle directory del path di sistema oppure in una directory indicata nella variabile di ambiente ALM_DIR; si può anche indicare il nome della directory al prompt del DOS quando si avvia il programma. Nella stessa directory deve anche trovarsi almeno uno dei file ALM.LOC ALM1.LOC ... ALM9.LOC. Le principali funzioni svolte dal programma di configurazione si attivano da un menù interattivo selezionando le voci con le frecce e battendo poi il tasto Invio; la selezione si può fare anche battendo il numero corrispondente alla voce desiderata. Oltre alle varie funzioni, che vengono descritte più sotto, il programma INIZIA prevede alcune opzioni da indicare sulla linea di comando DOS: /B mostra l'elenco completo delle accensioni del calcolatore; /B- stesso elenco, ma in ordine cronologico inverso; /C per memorizzare rapidamente il nome di una località; /1 /2 ... /9 per accedere direttamente alla voce 1 2 ... 9 del menù. Gli elenchi che si ottengono con le opzioni /B e /B- possono essere reindirizzati verso un file o una stampante oppure filtrati mediante il piping del DOS (v. il file batch ELENCO.BAT).
Permette di selezionare una città e di fissarne le coordinate nel file dati (cfr. la voce 2 e l'opzione "/C"). Le informazioni sulle città sono contenute nei file ALM.LOC, ALM1.LOC ... ALM9.LOC (il formato di questi file è descritto più avanti). In ogni momento è visibile uno solo di questi file: si può sceglierne un altro con la voce 9. Ci sono alcuni comandi che permettono di scorrere l'elenco (frecce, Home, End, lettera da A a Z).
Permette ancora di impostare i dati geografici, immettendoli però manualmente. Viene presentata una maschera con sei voci (città, latitudine, longitudine, locator, offset, ricerca) con i dati attualmente memorizzati oppure, in loro assenza, con i dati di default. Posizionandosi nel campo "ricerca" si può immettere un nome di città, o parte di esso, e poi premere Invio per effettuare una ricerca fra i nomi presenti nel file dei dati geografici attualmente selezionato; si può poi proseguire la ricerca all'indietro o in avanti usando Ctrl+PgUp/PgDn. Si può anche scorrere l'elenco delle città, indipendentemente dalla stringa di ricerca, premendo Ctrl insieme con le frecce verticali, con Home o con End. Il tasto F1 assegna come stringa di ricerca il contenuto del campo "città". Le coordinate possono essere impostate separatamente nel secondo e terzo campo oppure simultaneamente nel quarto campo (in quest'ultimo caso occorre conoscere il QTH locator della località). In ogni caso l'impostazione delle coordinate in una forma provoca l'aggiornamento automatico delle coordinate nell'altra forma. Il campo "offset" permette l'aggiustamento del fuso, qualora la località appartenga ad un fuso diverso da quello geografico in cui effettivamente è ubicata (ad esempio come in Spagna). Questo valore deve essere un multiplo intero di 15 e può anche essere negativo. Quando si è sicuri di aver impostato i dati corretti, si preme la combinazione Ctrl+Invio per la registrazione su disco.
Permette di scegliere le condizioni di visualizzazione sotto due aspetti: - modo di scrittura dello schermo; le scelte possibili sono "modo tramite BIOS" e "modo diretto". - codifica dei caratteri ASCII estesi (in particolare le lettere accentate); le scelte possibili sono "testo con caratteri DOS" e "testo con caratteri Windows". In entrambi i casi, scegliendo questa voce del menù è visualizzata la condizione attuale: con la barra spaziatrice si cambia la condizione, con le frecce verticali si passa da una riga all'altra. La pressione di Invio provoca la registrazione su disco mentre con Esc si ritorna al menù senza effettuare la memorizzazione.
Permette di decidere quali segnalazioni acustiche vanno lasciate attive e quali vanno escluse. In questo caso si porta il cursore con le frecce sulla riga corrispondente ad un tipo di segnalazione: battendo la barra spaziatrice si commuta alternativamente fra le condizioni "Sì" e "No". Al termine si batte Invio per accettare la condizione visualizzata o Esc per lasciare inalterato il valore precedente. Notare che è possibile fare in modo che tutte le segnalazioni consistano semplicemente in un breve beep: basta portare a "Sì" l'ultima voce.
Permette di decidere quali giorni della settimana sono da considerare festivi. Come nella voce precedente, si porta il cursore sulla riga con il nome di un giorno e si batte la barra spaziatrice per commutare alternativamente fra le condizioni "festivo" e "feriale"; dopo aver predisposto la condizione voluta, si dà la conferma con il tasto Invio.
Si ottiene l'elenco delle accensioni del calcolatore in modo analogo a quanto fatto dalla funzione "vedi boot" del programma ALM. Qui però sono previsti due comandi aggiuntivi per la correzione dei dati: con Ctrl+Canc si cancella il dato su cui si trova il cursore, con Ctrl+Invio si registrano eventuali modifiche nel file ALM.DAT. Notare che questi due comandi volutamente non sono inclusi fra i suggerimenti (l'intenzione è di nascondere questa possibilità agli utilizzatori occasionali).
Una volta selezionata questa voce, viene offerta la possibilità di commutare alternativamente fra le tre condizioni di applicazione dell'ora legale: attiva, ignorata, forzata. Come al solito, la commutazione avviene battendo la barra spaziatrice, con Invio si registra su disco, con Esc si annulla.
Questa voce permette di personalizzare il criterio secondo cui è calcolato il periodo il cui è in vigore l'ora legale. Viene chiesto di indicare un anno: se questo è compreso nella lista degli anni già inseriti, vengono mostrati i valori precedentemente memorizzati, altrimenti sono mostrati i valori di default. A questo punto si possono usare vari tasti: - le frecce verticali per gli spostamenti; - Ctrl insieme con le frecce verticali per cambiare il mese; - la barra spaziatrice per cambiare la settimana; - Home per disattivare l'ora legale per tutto l'anno; - End per renderla al contrario sempre attiva. I valori memorizzati per un certo anno sono validi per tutti gli anni successivi, fino ad un eventuale anno per il quale sono indicati esplicitamente altri dati. Complessivamente si possono indicare i dati per 20 anni. Per default sono adottati il 1965, il 1980 e il 1996, anni nei quali in Italia sono avvenuti i cambiamenti riguardanti l'ora legale.
Permette di cambiare l'elenco delle località scegliendo fra uno dei dieci possibili (ALM.LOC, ALM1.LOC,... ALM9.LOC, sono forniti solo i primi due). La scelta si fa premendo una delle cifre da 0 a 9, dove 0 corrisponde ad ALM.LOC. Notare che non si ottiene alcun effetto quando si preme la cifra associata al file che è caricato in quel momento. Nota: è stata eliminata la vecchia voce 9 (recupero dei dati prodotti con il programma BOOTLOG).
Permette di memorizzare rapidamente una località nel file ALM.DAT, purché il nome della località sia previsto in uno dei file dei dati geografici. Esempio: inizia /c padova Usare questa opzione con cautela perché la memorizzazione avviene senza alcuna richiesta di consenso.
I file ALM.LOC, ALM1.LOC,... ALM9.LOC contengono le informazioni geografiche, che sono utilizzate da INIZIA per la configurazione della località ordinaria, nonché dal programma ALM per determinare il fuso orario delle varie località. Chi non dovesse trovare la propria località negli elenchi allegati può scegliere una località vicina: un errore di 50 chilometri provoca un errore inferiore a due minuti nell'orario dell'alba e del tramonto. I file dei dati geografici sono file di puro testo ASCII, che possono essere modificati con un comune editor. Ognuno di essi deve iniziare con l'etichetta di identificazione [ALM_LOC] che può essere seguita, sulla stessa riga, da una breve frase descrittiva. Ad esempio, la prima riga del file ALM1.LOC potrebbe essere: [ALM_LOC] Elenco di località estere Ciascuna delle righe successive contiene nell'ordine il nome di una città, la sua latitudine e la sua longitudine, separate da virgole come nel seguente esempio: Padova, 45.41, 11.88 Si può inoltre aggiungere il suffisso "@" seguito da un multiplo intero di 15. Questo valore è un aggiustamento orario espresso in minuti che serve per le località che adottano un fuso diverso da quello geografico. Se il numero è positivo si intende che l'ora viene incrementata, in caso contrario che l'ora viene ritardata (per brevità, nella voce 2 di INIZIA l'aggiustamento è chiamato "offset"). Ad esempio, la Spagna adotta la stessa ora dell'Italia e quindi occorre aggiungere 60 minuti a tutte le località spagnole (Canarie escluse): Barcellona (Spagna), 41.69, 2.23 @60 Alcune località adottano aggiustamenti pari a una frazione di ora. Ad esempio Bombay (+30 minuti), Calcutta (-30 minuti), Chatham (+24 ore e 45 minuti). Le località che prevedono l'aggiustamento sono considerate effettivamente appartenenti ad un fuso orario sfasato rispetto a quello geografico. I radioamatori, che conoscono il QTH locator, possono usarlo in luogo delle coordinate geografiche. L'informazione dell'esempio precedente può essere tradotta come segue: Barcellona (Spagna), JN11CQ @60 Nota. In effetti il QTH locator è un po' meno preciso delle coordinate geografiche, visto che alla nostra latitudine comporta un errore che può arrivare a quasi 4 Km, ma si tratta di una tolleranza più che accettabile. Le righe che contengono valori inammissibili sono ignorate. Ad esempio, le seguenti righe non sono valide: Padova, 91.5, 11.88 Padova, 45.41, 3000 Padova, SS65ZZ Chi desidera modificare gli elenchi, può avvalersi di più file per distribuire le località secondo criteri particolari (ad esempio, un file per le località europee, uno per quelle americane, eccetera). Il programma INIZIA riconosce solo le prime 32766 voci valide di ciascun file, mentre il programma ALM ammette qualunque numero di voci. Tanto INIZIA quanto ALM riconoscono la variabile di ambiente ALM_LOC, che serve per indicare qual è il file di dati geografici che va analizzato per primo. Ad esempio, il programma batch FUSO1.BAT imposta la variabile al valore 1 allo scopo di rendere più veloce la ricerca delle località estere (contenute nel file ALM1.LOC).
Il programma di utilità UNISCI serve per riunire in un unico file i dati di ALM contenuti in due file distinti. La necessità di una simile operazione si verifica, ad esempio, quando il programma è stato utilizzato su due calcolatori diversi e, ad un certo punto, si decide di riunire le informazioni memorizzate. Per usare correttamente il programma UNISCI si tenga presente quanto segue: - il file principale è sempre ALM.DAT ed esso deve trovarsi nella directory corrente nel momento in cui si esegue UNISCI; - il nome del file secondario deve essere indicato come primo parametro sulla linea di comando DOS e può includere un percorso (unità disco e directory). Entrambi i file devono essere stati prodotti con ALM (il programma controlla il loro formato prima di procedere alla fusione); - il nome del file risultante, che va indicato come secondo parametro, è facoltativo. Anch'esso può comprendere un percorso DOS a piacere. Se lo si omette, il programma adotta il nome ALM.MRG e lo colloca nella directory corrente. Se si indica solo il nome di una directory già esistente, viene prodotto un file con nome ALM.DAT in tale directory; - il programma lavora su un file temporaneo e solo alla fine dell'operazione gli attribuisce il nome voluto: per questo è necessario che l'unità disco destinazione disponga di una quantità sufficiente di spazio libero. - se il file secondario contiene una ricorrenza che è presente anche nel file principale, essa viene riportata una volta sola: ciò accade anche quando la ricorrenza è ripetuta più di una volta nel file secondario (sono considerate ripetute due ricorrenze quando la loro differenza consiste unicamente in qualche carattere maiuscolo nell'una e minuscolo nell'altra). Notare che le ricorrenze del file principale sono riportate tutte, compresi i doppioni; - se per una certa data il numero di ricorrenze complessive dei due file è maggiore di 15, allora le ricorrenze eccedenti del file secondario sono riportate come ricorrenze cancellate nel file risultante; - per quanto riguarda le ricorrenze cancellate, quelle del file principale ALM.DAT vengono comunque trasferite nel file risultante; invece quelle del file secondario vengono trasferite soltanto se la linea di comando DOS contiene l'opzione "/C"; - nel file risultante vengono anche trasferite le altre informazioni (parametri, boot strap, ricorrenze settimanali e mensili). Ognuna di tali informazioni, se presente nel file secondario, viene trasferita nel file risultante solo quando la corrispondente informazione nel file principale ALM.DAT ha il valore di default oppure è assente. Ad esempio, se in entrambi i file è memorizzata una ricorrenza che cade ogni sabato, viene presa in considerazione solo quella del file ALM.DAT; - è ammesso che il file risultante abbia lo stesso nome di un file già esistente: in questo caso, però, l'eliminazione del file preesistente è subordinata al consenso da parte dell'operatore (tasto "S" per eliminare, qualunque altro tasto per conservare); - alla conclusione è presentato un rapporto che riassume la situazione delle ricorrenze, dei boot strap e dei parametri nei due file di partenza e nel file risultante.
ALM è corredato del programma di utilità SANTI.EXE che serve per modificare L'elenco dei santi. Il programma presenta i dati contenuti nel file ALM.SAN, dedicando una riga ad ogni giorno dell'anno, e ne permette la correzione con le modalità tipiche di un editor a tutto schermo. Il file ALM.SAN, per essere rintracciato, deve trovarsi nella directory corrente oppure in una delle directory presenti nel path di sistema o nella variabile di ambiente ALM_DIR. I movimenti del cursore, oltre che dalle frecce, sono assicurati da vari tasti, con significato abbastanza naturale: Home e End portano il cursore a inizio e fine riga, PgUp e PgDn spostano la data mese per mese, Ctrl+Home e Ctrl+End portano all'inizio e alla fine del mese, Ctrl+F1,... Ctrl+F12 portano sul primo giorno del mese 1,... 12. Per saltare ad una data qualunque si batte il tasto F3 e poi si immette la data con il formato giorno/mese. E' anche possibile effettuare la ricerca di un nome con i tasti F2 (inserimento di un nome da cercare), Ctrl+PgUp e Ctrl+PgDn (ricerca indietro/avanti del nome già inserito). Premendo F1 si ottiene un breve promemoria con l'elenco dei tasti disponibili. Una volta effettuate tutte le modifiche volute, si preme F10 e, dopo il consenso (lettera "S"), il file ALM.SAN viene aggiornato. Se il file è stato protetto contro la scrittura, i dati vengono ricopiati con le modifiche fatte in un file dal nome ALM*.SAN, dove l'asterisco sta per un numero da 1 a 999. Si noti che è possibile specificare un nome di file diverso da ALM.SAN, indicandolo come primo parametro sulla riga di comando DOS all'avvio. Ad esempio: C:\ALM>santi a:\alm.san In mancanza di un'indicazione esplicita, il programma lavora sul file ALM.SAN che viene cercato nell'ordine: - nella directory corrente; - nelle directory indicate con il path di sistema; - nella directory definita con la variabile di ambiente ALM_DIR. Qualunque sia il file, il suo formato viene controllato onde evitarne l'alterazione accidentale. Le condizioni da rispettare sono le seguenti: 1) la dimensione deve essere di 367*63=23121 byte (il file è costituito da 367 record di 63 byte); 2) il primo record del file deve essere composto come segue: carattere ^A (codice ASCII 1), frase "Almanacco - Santi", carattere ^Z (codice 26), numero intero 100 (due byte), stringa di 42 spazi.
Tutti i dati elaborati dal programma sono conservati nel file dati ALM.DAT, la cui struttura è piuttosto articolata. Si noti che, volendo, si può anche dotare il file dell'attributo "hidden" (ad esempio con i comandi ATTRIB del DOS o FA delle Norton Utilities) in modo da renderlo invisibile al semplice comando DIR del DOS: il programma può ugualmente accedervi. In questo capitolo sono riportate le caratteristiche del file ALM.DAT, con la disposizione particolareggiata dei dati al suo interno. Trattandosi di informazioni piuttosto tecniche, si può ometterne la lettura. I dati sono suddivisi in due zone. La prima, detta "zona fissa", occupa 16636 byte, indipendentemente dalla quantità di dati registrati. Nella seconda zona, che inizia dal byte 16637, vengono registrate le informazioni relative alle ricorrenze dell'agenda annuale.
La zona fissa è suddivisa come segue: a) 30 byte riservati alla chiave di riconoscimento del file. Questo segmento deve iniziare con il carattere ^A (codice ASCII 1), seguito immediatamente dalla frase "Almanacco - Dati personali" (escluse le virgolette), altrimenti il file non viene considerato valido e non può essere né letto né scritto; è anche aggiunto un carattere ^Z (codice 26) per inibire la lettura del file con il comando TYPE del DOS. I byte rimanenti, fino al trentesimo, sono liberi. b) Un numero intero (due byte): usato dal programma ALM per identificare il numero di versione del file dati. I moduli eseguibili ALM.EXE, INIZIA.EXE e UNISCI.EXE riconoscono i file dati generati con le versioni precedenti. Nella prossima tabella sono elencati i formati possibili (il numero di edizione è riferito al file ALM.EXE): edizione numero modifiche 1.0 100 versione iniziale; 1.2 120 aggiunto il parametro relativo ai giorni festivi; 1.3 130 aggiunti il nome della località e il coefficiente "legale"; 1.32 132 aggiunti i dati per il calcolo dell'ora legale; 2.10 210 aggiunti i dati relativi alla password. c) Due numeri in singola precisione Codificati secondo il formato IEEE (4 byte ciascuno): sono rispettivamente la latitudine e la longitudine della località in cui si trova l'utilizzatore, espresse in gradi. I primi e secondi di grado devono essere ridotti in forma decimale. I valori di default sono 41.9 e 12.48. Si noti che il programma memorizza le coordinate aumentandole di 360 gradi: quindi per la latitudine risulta un valore compreso fra 270 e 450, estremi esclusi; per la longitudine un valore fra 180 e 540, estremi inclusi. L'alterazione consente di applicare il default in presenza di valori che sono nulli in quanto non ancora inizializzati. d) Un numero intero (due byte): è un codice che determina l'emissione delle segnalazioni acustiche. Esso è determinato come segue: si sommano le potenze con base 2 ed esponente uguale al numero d'ordine della segnalazione che si vuole escludere, secondo il prospetto riportato al capitolo 27; poi si somma 1 se si vuole che tutte le segnalazioni attive siano ridotte ad un breve beep. Risulta che i valori possibili sono i numeri compresi fra 0 e 127. Il valore di default è 0 e comporta che tutte le segnalazioni sono attive. (Cfr. punto "k" più avanti.) e) Un numero intero (due byte): determina la modalità di scrittura durante l'immissione di un dato, 0 per sostituzione, diverso da 0 per inserimento. Questo valore viene modificato durante l'esecuzione di ALM quando si preme il tasto Ins. Il valore di default è 1. f) Un numero intero (due byte). Sono utilizzati solo cinque bit per svolgere quattro funzioni: - bit 0: determina la modalità di scrittura dello schermo, 0 per la modalità attraverso BIOS, 1 per quella diretta. Il valore di default è 0; (cfr. punto "k" più avanti); - bit 1 e 2: determinano il valore del coefficiente "legale", che è definibile anche con la variabile di ambiente ALM_LEG. Riprendiamo lo schema riportato nel paragrafo 24.4, aggiungendo una colonna per i due bit di cui stiamo parlando: Ora legale Variabile ALM_LEG Bit alzato Opzione equivalente ========== ================= ========== =================== attiva 0 nessuno default ignorata 2 1 !- forzata 4 2 !+ - bit 3: è collegato all'opzione "&" per la regolazione automatica dell'orologio in concomitanza dei cambiamenti dell'ora legale. Il programma alza il bit quando regola l'orologio sull'ora legale e lo abbassa quando lo regola sull'ora solare, cosicché il cambiamento di ora può essere completamente automatizzato; - bit 4: se è alzato, le lettere accentate vengono convertite secondo la tabella ISO 8859-1, che è la codifica propria di Windows (v. paragrafo 1.3). g) un numero intero (due byte): contiene la condizione di giorno festivo o feriale per i singoli giorni della settimana. Ai giorni da lunedì a domenica sono associati nell'ordine i bit dal secondo (bit 1) all'ottavo (bit 7). Il bit è alzato se il giorno è considerato festivo. Poiché questo parametro non era previsto nelle edizioni anteriori alla 1.20, se esso vale 0, gli viene attribuito il valore di default 192 (festivi sabato e domenica). Per distinguere il caso 0 da quello in cui tutti i giorni sono feriali viene alzato il primo bit (bit 0), che altrimenti è ininfluente. Il valore può essere settato direttamente con la variabile di ambiente ALM_F oppure con il programma di configurazione INIZIA. h) una stringa di 36 byte contenente il nome della località. Questo dato è previsto solo a partire dall'edizione 1.3. Nelle precedenti edizioni questo segmento era costituito da byte di codice 0. i) 20 record di 5 byte ciascuno (a partire dall'edizione 1.32). Ogni record rappresenta un anno con l'indicazione dell'inizio e della fine del periodo di applicazione dell'ora legale. Ciascun record è composto come segue: - un numero intero (due byte): anno, dal 1583 all'8999; - un byte così suddiviso: 4 bit indicano un numero da 0 a 13 per il mese d'inizio (0 significa che l'ora legale non è mai applicata, 13 che è applicata tutto l'anno); tre bit indicano un numero da 0 a 7 con il seguente significato: 0 = ultima fine settimana del mese; 1 = penultima fine settimana; 2 = terzultima fine settimana; 3 = quartultima fine settimana; 4 = prima fine settimana; 5 = seconda fine settimana; 6 = terza fine settimana; 7 = quarta fine settimana. L'ottavo bit di questo byte non è utilizzato. - un byte così suddiviso: quattro bit indicano un numero da 1 a 12 per l'ultimo mese di applicazione; tre bit indicano un numero da 0 a 7 con lo stesso codice di sopra; l'ultimo bit non è utilizzato. - il quinto byte è libero. j) un numero intero (2 byte), a partire dall'edizione 2.2: è il cosiddetto "offset" (aggiustamento usato nelle località che appartengono a un fuso orario diverso da quello geografico); è un multiplo intero di 15 minuti compreso fra -1485 e 1485. k) 18 byte relativi alle funzioni "cronometro" e "segnale orario", a partire dalla versione 2.42. I byte sono utilizzati nel modo seguente: - un single (4 byte) per la frequenza base (default = 1000 Hz); - un double (8 byte) per il tempo cronometrato totale; - un numero intero (2 byte) per controllare la quantità di segnalazioni acustiche. Può assumere i valori compresi fra 0 e 6, con il significato descritto nel capitolo 26. - un numero intero (2 byte) per controllare la scrittura tramite BIOS. E' usato solo il primo bit: 0 per la modalità tramite BIOS (condizione predefinita), 1 per quella diretta. Nota bene. Il controllo delle segnalazioni acustiche e della scrittura tramite BIOS nelle funzioni "cronometro" e "segnale orario" sono indipendenti da quelle generali del programma (v. punti "d" e "f"). l) 720 byte liberi inizializzati con il codice 0 (insieme con i byte della password del punto "m" completano un segmento di 1024 byte). m) 102 byte riservati alla password e utilizzati come segue: - un byte di controllo, cui è assegnato il carattere di codice ASCII 1 quando il file dati viene scritto con ALM 2.10; - 7 stringhe di tre caratteri ciascuna, una per ogni giorno della settimana da lunedì a domenica: ognuno dei 24 bit, se alzato, indica che nell'ora corrispondente di quella giornata la richiesta di password è abilitata; - 80 byte per la frase di password opportunamente cifrata. n) 2010 byte per i dati dei boot strap. La memorizzazione di un boot strap occupa 5 byte, i codici ASCII dei quali rappresentano nell'ordine l'ora, i minuti, il giorno, il mese e le ultime due cifre dell'anno in cui è avvenuto il boot strap. La sequenza di dati registrati è completata con la stringa chiave di dieci caratteri "_.+fInE+._" (escluse le virgolette). I dati sono memorizzati in ordine cronologico rovescio, dal più recente al più vecchio. o) 5490 numeri interi, quindici per ogni giorno dell'anno, incluso il 29 febbraio (2 byte ciascuno): contengono i puntatori ai dati dell'agenda e il marcatore di giorno festivo/feriale. I 16 bit di ciascun numero sono usati come segue: 13 bit rappresentano il puntatore, i bit 14 e 15 sono alzati rispettivamente quando la ricorrenza è festiva e feriale, l'ultimo bit è inutilizzato. Se un puntatore vale 0, significa che non punta ad alcun dato. Ogni puntatore maggiore di 0 indica la posizione di un record contato a partire dal byte 16637 del file dati, con record di 71 byte. La posizione di ogni puntatore deve essere coerente con il puntatore inverso memorizzato nel record. Per default tutti i puntatori sono posti a 0 e i bit di giorno festivo/feriale sono abbassati. p) 7 stringhe di 69 caratteri ciascuna: sono le frasi relative alle ricorrenze settimanali. Il programma considera vuote ed ignora le stringhe costituite da soli spazi vuoti (codice 32). Inizialmente tutte le stringhe sono vuote. q) 31 stringhe di 69 caratteri ciascuna: sono le frasi relative alle ricorrenze mensili. Vale quanto detto al punto precedente.
I record memorizzati nell'agenda sono di 71 byte ciascuno e il programma li aggiunge in coda al file man mano che l'operatore li immette. Quindi, supponendo che l'agenda contenga n ricorrenze, la dimensione complessiva del file ALM.DAT è fornita dalla seguente formula: dimensione = 16636 + n * 71 Ad esempio, se per ogni giorno dell'anno si memorizzano tutte e quindici le ricorrenze consentite, ammesso che non vi siano ricorrenze cancellate, la dimensione del file dati risulta: dimensione massima = 16636 + 366*15*71 = 406426 byte Ogni record è costituito da: a) un numero intero (due byte): i suoi 16 bit sono usati come nei puntatori della zona fissa (vedi il punto "k" più sopra). Il puntatore (primi 13 bit) indica la posizione del corrispondente puntatore contenuto nella zona fissa. b) una stringa di 69 caratteri: sono le frasi immesse dall'operatore in relazione alle varie ricorrenze. Questa struttura comporta che la disposizione fisica delle ricorrenze può essere anche molto disordinata, perché le ricorrenze non devono essere necessariamente immesse in ordine cronologico e non è nemmeno necessario che ricorrenze relative ad una stessa data siano fisicamente contigue. L'ordine cronologico è garantito dai 5490 puntatori contenuti nella zona fissa. La flessibilità del sistema viene "pagata" con un'occupazione di spazio per i puntatori, che ammonta a 10980 byte fissi più 2 byte per ogni ricorrenza memorizzata. Notare che la cancellazione di un dato precedentemente memorizzato consiste semplicemente nell'azzeramento del corrispondente puntatore della zona fissa e non nell'eliminazione dell'informazione memorizzata. Dopo che il puntatore della zona fissa relativo ad una certa ricorrenza è stato azzerato, la possibilità di associare la ricorrenza a quella data durante la fase di recupero è garantita dal puntatore presente nel record della ricorrenza.