\initializearticle
\title *Il protocollo Autoconfig(TM)*

\author  *Vittorio Calzolari*
\address *Via Legnano 15\\
I-20081 Abbiategrasso MI\\
*

\article


\head *Introduzione*

La diffusione dei Personal Computer a basso costo ha notevolmente allargato il
bacino di utenza; di conseguenza gli sforzi progettuali dei costruttori si sono
indirizzati verso una maggiore facilit\`a d'uso sia dal punto di vista software
che da quello hardware. In particolare, si \`e cercato di rendere meno difficoltoso
per i poco esperti l'installazione e la configurazione di schede di espansione.
La soluzione adottata nei calcolatori della serie \amiga{} \`e l'implementazione
del protocollo di {\bf AutoConfig}$^{\rm TM}$.

\head *Che cosa \`e l'Autoconfig$^{\rm TM}$?*

A differenza di altre piattaforme pi\`u o meno blasonate, aggiungere una scheda di
espansione ad un modello di \amiga{} dotato di slot non richiede profonde conoscenze
hardware, dato che non \`e necessario configurare manualmente indirizzi o interrupt
per evitare eventuali conflitti tra schede: \`e sufficente inserire la scheda in uno slot
disponibile, accendere la macchina ed installare l'eventuale software a corredo.

Questo grazie ad un protocollo di auto configurazione che all'atto della
accensione o dopo un reset si occupa di controllare se una scheda \`e presente nello slot,
e in caso affermativo di assegnarle un indirizzo di base ed uno spazio di indirizzamento
adeguato alle caratteristiche della scheda stessa.

\`E inoltre possibile installare pi\`u schede identiche senza problemi di conflitto.
Requisito fondamentale per il corretto funzionamento del protocollo \`e che la scheda sia
stata progettata seguendo le indicazioni della Commodore (cosa che purtroppo non sempre si
verifica).

\head *Come funziona l'Autoconfig$^{\rm TM}$*

Fondamentalmente l'implementazione dell'\discretionary{Autocon-}{fig}{Autoconfig}$^{\rm TM}$ prevede un circuito costituito da una PAL
(Programmable Array Logic), un latch (memoria) ed un comparatore di indirizzi.
Lo schema di principio dell'Autoconfig \`e identico nei bus Zorro II (\amiga{} 2000) e
Zorro III ( \amiga{} 3000-4000).

All'accensione (o dopo un reset) tutte le schede di espansione si trovano nello
stato di {\it non configurato}, e sono provvisoriamente mappate alla locazione di partenza
|E80000|. A questo punto \`e attivo il segnale |CONFIG_IN| del primo slot contenente una
scheda (gli slot sono numerati partendo da quello vicino all'alimentatore) ed il sistema
operativo comincia a leggere dalla PAL i dati necessari per la configurazione.
Nel caso di uno slot vuoto, un apposito circuito {\it passa} il segnale di
|CONFIG_OUT| allo slot successivo.

I dati memorizzati nella PAL dal costruttore comprendono tra gli altri:

\list
\item lo spazio richiesto dalla scheda, da 64Kb a 8 Mb
\item un numero progressivo stabilito dal costruttore, utilizzato dal software
\item due byte che contengono un codice assegnato dalla Commodore
\item il numero di serie (opzionale)
\item un vettore per una eventuale ROM presente sulla scheda (ad esempio la ROM di autoboot nei controller)
\item un bit che identifica se la scheda \`e un espansione di memoria e va ``linkata'' alla fast RAM.
\endlist

\noindent Da notare che questi dati vengono letti sotto forma di nibble, quattro bit
alla volta. Una volta che il sistema operativo ha acquisito i sopracitati
parametri, genera un indirizzo finale che viene memorizzato nel latch (dove
rimane fino al successivo reset); la scheda quindi attiva il segnale
|CONFIG_OUT| che a sua volta attiva il |CONFIG_IN| dello slot successivo.
Il vettore contenuto nel latch diventa uno dei due termini del comparatore
di indirizzi; l'altro termine sarą generato dal sistema operativo nel
momento in cui sia necessario accedere ad un periferica. Se i due termini
sono uguali significa che il sistema operativo sta ``chiamando'' proprio
quella scheda, che attiverą il segnale |BOARD_SEL| per dare inizio
all'operazione di input/output. Eventuali driver ( ad esempio quelli delle
bridgeboard serie Janus ) potranno essere inseriti nella directory
|Expansion|.

Per coloro che volessero approfondire l'\discretionary{argo-}{mento}{argomento} si consiglia la
consultazione del {\it Technical Reference Manual}, dove sono inoltre descritte
tutte le soluzioni hardware che consentono una potenza ed una flessibilitą
d'uso che sono solo di \amiga{}.

\makesignature
\endarticle
