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

MCmicrocomputer


Software Amiga:
Icone per la Janus

di Andrea de Prisco

Secondo appuntamento con i trucchetti Janus, la scheda che permette la compatibilita' ibm pressocche' totale. Questo mese vedremo come "appiccicare" una bella icona di intuition anche ai nostri bravi programmi MS-dos, in modo da richiamarli con un semplice (anzi doppio) colpo di mouse. Si' avete proprio capito bene, seguendo i consigli di questo mese per lanciare una applicazione msdos non dovremo piu' digitare il suo nome dalla PCwindow ma potremo farlo piu' semplicemente manovrando solo ed esclusivamente il "topo".Copertina del numero di MCmicrocomputer contenente l'articolo

Ma il bello di tutto cio' e' che il trucco e' realizzabile senza scrivere una sola riga di codice ma semplicemente sfruttando le risorse del sistema e un po' di batch file dei due sistemi. Tutto qui. E questo, tra l'altro, dimostra la potenza del sistema operativo di Amiga, anche se a volte un po' acciaccato da qualche bug ancora presente che puo' mandarci in bestia sul piu' bello. Ma non riguarda il nostro discorso, lo dicevo, cosi', in generale.

Innanzitutto e' necessario disporre della release 1.3 del sistema operativo o, quantomeno, del device logico "pipe" e dell'utility Xicon che permette di "lanciare" batch file da workbench.

Pipe e', secondo me, il device logico piu' interessante di Amiga. Premetto pero' che non dispongo ancora di nessuna documentazione tecnica a riguardo, e tutto quello che so e' solo frutto delle mie elucubrazioni mentali notture e diurne sull'argomento.

Nel device pipe possiamo scaricare file per poi rileggerli (una sola volta). La lettura puo' avvenire da parte dello stesso programma che ha scritto o da programmi diversi. Anche la janus puo' accedere al pipe essendo questo un device vero e proprio e quindi indirizzabile come tutti gli altri prefissando il nome del file dal pipe:. La cosa piu' importante (dal punto di vista strettamente informatico) del pipe e' che permette una cooperazione tra processi asincrona.

Un processo scarica un file nel pipe e procede per la sua strada, un altro processo che aspetta qualcosa dal pipe non rileva errore per la mancanza del file ma semplicemente aspetta. Cosi', per fare un esempio, se da un cli digito:

 

type pipe:NomeFile

 

se il file e' presente nel pipe sara' stampato, altrimenti il cli rimane in attesa. A questo punto, per sbloccare la situazione occorre che qualcun altro inserisca il file nel pipe, ad esempio un altro cli:

 

dir > pipe:NomeFile

 

Peccato che non e' possibile (almeno apparentemente) leggere dati dal pipe prima che il mittente abbia chiuso il file in scrittura altrimenti la cooperazione poteva essere ancora piu' interessante.

Xicon permette invece di attaccare una icona ad un batch file in modo da permettergli di partire anche da workbench e non esclusivamente da cli. Il suo uso e' assai semplice: dopo aver preparato il batch file (da cli o con un qualsiasi editor) prepariamo un'icona di tipo project appropriata. Il modo piu' semplice per farlo e' prendere una icona di tipo project gia' esistente (un qualsiasi documento, anche del notepad) copiarla da cli e rinominandola come il file batch da lanciare. Fatto questo (disponiamo del "file" e del "file.info") l'ultimo passo e' quello di accedere da wb all'info dell'icona (primo menu' pull down a sinistra)e cambiare il default tool in Xicon, meglio se preceduto da tutto il percorso atto a raggiungerlo.

Detto questo passiamo ai "trucchetti" veri e propri. Il metodo per ottenere icone funzionanti anche per i programmi msdos si basa, naturalmente, sulla cooperazione tra scheda janus e Amiga. Dobbiamo cioe' mettere in un certo senso la scheda janus in attesa di ordini da Amiga e quest'ultimo, a seconda dell'icona clickata, impartira' questo o quell'ordine. La prima cosa da fare per realizzare questa comunicazione, come noto, e' di lanciare in background dal lato amiga l'utility pcdisk e da lato msdos impiantare nel config.sys un bel DEVICE=JDISK.SYS . Quest'ultimo, si sa', deve essere presente al momento del boot msdos, quindi se lo inserite in un secondo momento occorre agire di ctrl-alt-del prima di renderlo attivo. Poi bisogna preparare il seguente batch file msdos che chiameremo LOOP.BAT :

 

AREAD PIPE:COMANDO COMANDO.BAT

COMANDO

 

Cosa fa questo file ? semplice: aspetta che Amiga ponga il file COMANDO nel pipe, lo copia nel suo file COMANDO.BAT e lo esegue. Per lanciare il file LOOP potremo, naturalmente, inserire tale parola nell'AUTOEXEC.BAT oppure digitarlo da shell una volta in msdos. E dal lato IBM siamo a posto.

Per quanto riguarda Amiga la cosa non si complica gran che e tutto dipende da come avrete installato le varie applicazioni msdos sull'hd. Di solito l'utente crea una directory per ogni applicazione quindi per farla partire occorrera' prima entrare in quella directory e poi digitare il nome del programma da richiamare. E noi faremo proprio cosi'. Amiga non fara' altro che spedire via pipe dei piccoli batch file che una volta lanciati in msdos faranno partire l'applicazione nella directory giusta. Un esempio ? Eccolo:

 

CD WORD

WORD

CD ..

LOOP

 

Indovinate cosa fa...

Semplice, ma per capirlo bene dobbiamo tornare una attimo sulla janus e ricordarci che li' avevemo lanciato il file LOOP.BAT. Allora, Amiga spedisce nel pipe il batch file appena mostrato (dandogli come nome "comando") e la janus, ferma sull'AREAD non ancora soddisfatto, puo' caricare il file nel suo disco, dandogli come nome COMANDO.BAT. Appena effettuato il trasferimento parte il batch file ricevuto (la seconda linea di LOOP fa proprio questo) e cosi' in msdos si passera' alla directory word e sara' caricato il programma di videoscrittura. Attenzione: il batch file COMANDO resta in attesa che si esca da word (questa volta coi metodi tradizionali) in modo da ritornare alla root ("CD ..") e ricaricare LOOP per un nuovo ordine da parte di Amiga. Discorso analogo per un'altra applicazione, ad esempio db3, dove il batch file da spedire sara':

 

CD DB3

DBASE

CD ..

LOOP

 

e cosi' via per le altre applicazioni presenti sul vostro HD msdos. Bene, a questo punto la domanda e' obbligata: chi spedisce i file nel pipe ? Risposta: le nostre icone. Ed e' qui che salta fuori l'utility Xicon. Infatti, per ogni applicazione da lanciare dovremo preparare oltre al batch file msdos da inviare (e quindi da tenere nella partizione amiga) anche il minuscolo file "speditore" che appiccicheremo alla icona settata come visto prima per lanciare automaticamente Xicon. Ad esempio se il file da spedire si chiama "word.bat" attaccheremo all'icona il file:

 

COPY WORD.BAT PIPE:COMANDO

 

per il db3 lo speditore sara':

 

COPY DB3.BAT PIPE:COMANDO

 

e cosi' via. Un'ultima cosa: se non desideriamo lanciare altre applicazioni, ma tornare alla shell msdos (che rimane inchiodata ad aspettare il pipe) come dobbiamo fare? Semplicissimo: con lo stesso sistema creeremo una incona settata Xicon, ad esempio di nome shell, contenete la linea:

 

COPY SHELL.BAT PIPE:COMANDO

 

e SHELL.BAT sara' un file contenente semplicemente un return. Tutto qui...

Ah, dimenticavo: come avrete capito e' compito vostro caricare la finestra PCcolor o PCmono per vedere l'applicazione msdos a lavoro. Bye, bye...

 


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