Articolo pubblicato sul n. 81 di MCmicrocomputer (Edizioni Technimedia Srl - Roma) nel gennaio 1989

MCmicrocomputer


Software Amiga:
Date & Time automatici per Janus

di Andrea de Prisco

Una delle «espansioni» più diffuse per l'Amiga 2000 è la scheda Janus che, come più volte ripetuto, non è affatto un emulatore MS-DOS, ma un vero e proprio computer concentrato su un'unica scheda da inserire in uno slot della nostra macchina. Infatti, una volta installata, non disponiamo più di un unico computer ma di due calcolatori nello stesso cabinet in un certo senso collegati in rete. La caratteristica principale della accoppiata A2000Copertina del numero di MCmicrocomputer contenente l'articolo più Janus non è tanto il fatto di poter lanciare contemporaneamente applicazioni Amiga e applicazioni MS-DOS, quanto il fatto che è possibile realizzare una «pacifica» condivisione delle risorse tra i due sistemi. Attraverso la finestra PCwindow potremo ad esempio effettuare le note operazioni di taglia/incolla di testi, con un semplice colpo di mouse potremo «prestare» la porta parallela alla scheda Janus per stampare anche output MS-DOS, attraverso opportune utility trasferire file da dischi MS-OOS a dischi Amiga e viceversa.

Ma la feature più invidiabile è certamente la possibilità di acquistare un solo hard disk per i due sistemi e formattare una parte secondo il formato della macchina ospite e la rimanente secondo il formato della macchina ospitante. È il caso tipico di un bell'HD MS-DOS posto negli slot IBM compatibili, sul quale potremo mettere anche file Amiga.

Purtroppo non è ancora possibile effettuare il boot da questo e, release successive a parte, la cosa la vedo un tantino complicata dal momento che tale HD, per funzionare come JH0: (partizione Amiga) deve prima essere attivato come MS-DOS (attraverso il comando Binddrivers) e poi «montato» grazie al comando Dmount avendo l'accortezza di lasciare intercorrere una trentina di secondi per permettere alla Janus di effettuare tutti i suoi controlli ed effettuare il suo boot.

Una volta attivo il device JH0: la cosa da fare immediatamente (posto che sia già formattato e «ripieno» di comandi, directory e utility di sistema Amiga) è appunto quella di assegnare tutti i device logici alle corrispondenti directory dell'HD e così essere finalmente liberi da schiavitù di Workbench (anche per chi ha due drive).

L'unica cosa che manca alla Janus è un orologio tamponato dal momento che quello presente sulla scheda, come in qualsiasi PC a dire il vero, cammina solo durante il funzionamento della stessa e bisogna settario ogni volta che si inizia a lavorare in MS-DOS. Né hanno pensato, alla Commodore, di condividere anche questa risorsa presente invece nell'Amiga 2000. Bene, il programma presentato fa tante cose... ma la più importante è certamente che aggiorna automaticamente data e ora della Bridge Board ogni volta che l'attiviamo: tipicamente ad ogni boot Amiga o, a richiesta, clickando su una bell'icona.

 

Prima la teoria

 

Il funzionamento dell'utility presentata è assai semplice. Oal momento che ogni volta è necessario far partire prima . Amiga e poi la Janus, e che questi due computer sono in grado di scambiarsi file attraverso i due comandi della Janus AREAD e AWRITE e il devi ce Jdisk.sys, il modo più semplice per trasferire l'ora e la data tra i due sistemi è quello di far scrivere questa informazione dall'Amiga in un file e «lasciare» che la Janus se la legga appena effettuato il suo boot.

In pratica Amiga preleva l'ora e la data dal suo orologio tamponato (quindi sufficientemente esatto), li converte in un formato MS-OOS compatibile (puntini in luogo dei due punti e mese scritto in numero anziché alfabetico), li scrive in due piccoli file (ad esempio TimePC e DatePC) sullo stesso dischetto da cui è lanciata la utility, lancia il programmino di sistema PCdisk che permette lo scambio dei file e attiva finalmente la Janus. Questa effettuerà il suo boot normalmente, avendo l'accortezza di inserire nel Config.sys

 

DEVICE=JDISK.SYS

 

e nell'Autoexec.bat le ultime quattro righe del listato mostrato in figura 2.

 

Le altre caratteristiche

 

Dicevamo che la utility presentata non fa SOLO l'aggiornamento della data e dell'ora della Janus, ma anche altro. Innanzitutto è necessario scorporare dalla startup-sequence del vostro disco di boot tutta la parte relativa all'attivazione della Bridge Board. Infatti la scheda non deve partire prima che Amiga non abbia provveduto a scrivere i due filetti di cui sopra. Dunque quello che fa il mio programma è di montare correttamente l'hard disk JH0:. Oltre a questo potremo inserire in coda quante altre attivazioni possibili, come ad esempio il lancio in background di un virus killer proprio in questi tempi tanto “infettosi”. Ancora, ho previsto una password per l'attivazione dell'hard disk in modo da tenere lontani curiosi non troppo craker. Infatti la protezione è abbastanza sempliciotta, ma comunque è più che sufficiente per scoraggiare attacchi di ordinaria amministrazione. Certo se un esperto Amiga decidesse di mettere mani sui vostri dati, non ci sarebbero affatto password che tengano: bypassando completamente il programma si riesce comunque ad effettuare una attivazione a mano. Ma bisogna sapere dove mettere le mani... Personalmente sono anche andato oltre ma non posso dirvi pubblicamente il successivo livello di protezione da me implementato altrimenti che segreto sarebbe? I più svegli comunque non impiegheranno molto a capirlo ...

Sempre in merito alla password, onde evitare attacchi a colpi di file-zap nel sorgente, ho effettuato una piccola (e banale) crittazione in modo da non lasciare visibile nel compilato il nome adoperato. Nel programma presentato la PW è stata fissata a "pippo.3" (minuscolo) e per cambiaria sarà sufficiente smanettare nei codici ASCII lì usati. Per inserirla alla richiesta “Enter Password” non bisognerà terminare con un classico [Returnl ma con il CTRL- \ che in Amiga equivale all'EOF.

 

Commento al listato

 

Il programma Auto Date & Time è scritto in un C abbastanza elementare. Tutte le operazioni, infatti, sono effettuate senza ricorrere a sporchi trucchetti ottimizzatori che certamente avrebbero reso il listato illeggibile. Dopo le dichiarazioni delle variabili e degli array utilizzati dal programma, si passa alla fase di richiesta e controllo password. Utilizzando per l'input da tastiera la funzione getchar() è necessario, come detto, terminare la PW in fase di inserimento dal CTRL- \ . Per il controllo di questa, la crittazione effettuata per renderla illeggibile dopo la compilazione si realizza semplicemente non facendo comparire mai i caratteri ma i codici ASCII opportunamente truccati sommando o sottraendo costanti. Ad esempio non troviamo nel sorgente la «o» (di "pippo.3") né direttamente il suo codice ASCII 111 ma l'espressione 74+c+32 che dà lo stesso valore a Run Time dal momento che «c» è fissata per l'occasione pari a 5. Posto di aver inserito la PW giusta, l'esecuzione continua eseguendo alcuni comandi CLI con la funzione Execute(). Il cuore del programma è la traduzione della data fornita dall'orologio di Amiga in data e time compatibile con i corrispondenti comandi MS-DOS. Infatti per Amiga «otto dicembre '88 ore 18 e 26» si scrive:

 

Thursday 08-Dec-88 18:26:00

 

e così il sistema ce lo restituirà, in MSDOS occorre tradurlo nelle due stringhe:

 

18.26.00

08.12.88.

 

Terminate le due traduzioni, il programma salva le due stringhe ottenenute in due file « TimePC» e « DatePC». Il resto del listato non è altro che la trasposizione in C dei rimanenti comandi CLI da eseguire per completare le operazioni di inizializzazione dell'HD JH0:.

 

Utilizzazione

 

Dopo aver copiato fedelmente il programma in un vostro file è naturalmente necessario compilarlo e linkarlo opportunamente. Una volta in possesso del codice eseguibile consiglio di appiccicarvi un'icona in modo da tenerlo disponibile nella finestra del vostro disco di Boot. Inutile ricordarvi che dovrete ripulire la startup-sequence da tutti i comandi di attivazione dell'HD (ci penserà il programma compilato) e che questa utility deve naturalmente giacere sullo stesso dischetto sul quale troviamo i comandi DJMOUNT, BINDDRIVERS, la Janus.library e tutto ciò che serve per lanciare la Janus. E non dimenticate. mi raccomando, di modificare Config.sys e Autoexec.bat prima di dare il via al programmino. OK?

 


Articolo pubblicato su www.digiTANTO.it - per ulteriori informazioni clicca qui