|
Appunti informatica |
|
Visite: 1516 | Gradito: | [ Picolo appunti ] |
Leggi anche appunti:Dispositivi di memoriaDispositivi di memoria I sistemi di calcolo possono immagazzinare dati in Architettura 68000dArchitettura 68000d Il 68000 possiede i tipi binari Byte, Word, Longword La ricerca delle prestazioniLa ricerca delle prestazioni La contesa per ottenere una sempre maggiore |
I campi relativi alla configurazione del dispositivo sono così codificati:
Name TERMINAL
Type Identificatore assoluto nella configurazione
Address1 Indirizzo registro dati (tastiera in scrittura, video in lettura)
Address2 Indirizzo registro stato-controllo
BUS Identificatore di bus esterno a cui è connesso l'oggetto
COM1 Identificatore dispositivo gestore delle interruzioni generate dall'oggetto
COM2 Controllo Interruzione dovuta ad ENTER: XXYZ (XX=#vettore, Y=livello di priorità , Z=linea di interruzione
COM3 Idem a COM2 ma per interruzione dovuta a Buffer Full
COM4 n.s. va posto a 0
Tabella 19
ASIM mette a disposizione, come dispositivo base per
realizzare l'I/O da e per un sistema, un dispositivo da utilizzare, appunto,
come terminale video- tastiera denominato TERMINAL.
Fig. 26-Finestre ASIM associate al TERMINAL
Nella finestra associata a questo dispositivo (Fig. 26) appare l'output destinato al terminale compreso l'eco dell'input da tastiera. Il video simulato è alfanumerico con dieci righe di quaranta caratteri; la tastiera coincide con quella del PC IBM (eslusi i tasti speciali: Ctrl, Alt, Esc, tasti funzione e movimento cursore) e prevede i tasti di 'backspace' ed 'enter'.
Quando la finestra di TERMINAL diviene quella corrente, la tastiera del PC (esclusi i tasti speciali che svolgono le solite funzioni previste da Windows) emula quella del dispositivo nel senso che un eventuale input da tastiera appare nella finestra e viene inviato all'elaboratore che si sta simulando. Più precisamente, la tastiera accetta dei caratteri solo se è abilitata e l'input va a video solo se la funzione di eco è attiva. Dopo l'accensione della macchina che si sta simulando sia la tastiera sia l'eco sono disabilitati; per attivarli occorre modificare il valore del registro di controllo e stato: CNTRL. Questo è un registro di un sol byte i cui bit, a partire dal meno significativo, svolgono, se al valore 1, le seguenti funzioni:
bit 0) abilita interruzione su 'Buffer full';
bit 1) abilita interruzione sull''ENTER';
bit 2) cancella video;
bit 3) pulisci buffer di tastiera;
bit 4) abilita tastiera;
bit 5) abilita eco;
bit 6) stato di 'Buffer full';
bit 7) stato di ENTER inviato.
Il contenuto del registro CNTRL può essere modificato o da programma o utilizzando il comando Modifica Valore del menù Device. Il comando Mostra Registri apre una finestra di dialogo in cui appare il registro CNTRL, il numero di caratteri presenti nel buffer di tastiera e la posizione nel buffer dell'ultimo carattere letto dal processore (Fig. 26).
Per comprendere il significato di questi due numeri è necessario conoscere il meccanismo di gestione dell'input e output da parte del dispositivo in esame.
TERMINAL ha due indirizzi d'accesso: il primo è associato al buffer di tastiera e al video, il secondo al registro CNTRL. Un'operazione di accesso in scrittura sul primo indirizzo comporta la stampa a video del carattere scritto; i caratteri validi sono quelli con codice ASCII compreso tra 32 e 126 (estremi inclusi) ed il carattere con codice 13 che provoca il ritorno a capo. Quando una riga è piena, il successivo carattere viene scritto nella riga seguente; se tutte le dieci righe sono piene il testo scorre di una riga verso l'alto. Ponendo ad 1 il bit 2 di CNTRL, si pulisce lo schermo e si riporta il cursore in alto a sinistra.
Un'operazione di accesso in lettura sul primo indirizzo consente di prelevare un carattere dal buffer di tastiera. Partendo dallo stato di buffer di tastiera vuoto e con tastiera ed eco abilitati, si digiti una frase qualsiasi. Per ogni carattere premuto, il corrispondente carattere va nel buffer di TERMINAL ed appare nella finestra; inoltre il numero di caratteri nel buffer si incrementa di un'unità. Se vengono battuti più di 256 caratteri la tastiera viene disabilitata, il bit 6 di CNTRL va ad 1 e, se il bit 0 è alto, viene inviata un'interruzione per segnalare al processore la condizione di 'Buffer full'. Quando si è completata la frase (con meno di 256 caratteri) va premuto il tasto di ENTER; ciò porta TERMINAL a disabilitare la tastiera, ad alzare il bit 7 di CNTRL ed ad inviare al processore un interruzione se il bit 1 di CNTRL è alto; ogni qualvolta il processore legge un carattere dal buffer, il numero di caratteri letti, inizialmente nullo, si incrementa di uno; tale numero rappresenta un puntatore al primo carattere non letto e, il fatto che si incrementi man mano, fa si che il processore legga, nel corretto ordine, tutti i caratteri nel buffer. L'ultimo carattere è sempre l'ENTER; per riattivare la tastiera e pulire il buffer occorre portare al valore 1 i bit 3 e 4 di CNTRL.
Ponendo a 0 il bit 5 di CNTRL si disabilita l'eco; ciò è utile quando si vuole nascondere l'input di tastiera come nel caso in cui venga digitata una password.
Per aggiungere un terminale ad una macchina da simulare va selezionato il comando Aggiungi Device del menù Configura e vanno specificati i parametri nell'apposita finestra di dialogo (figura 3). Il 'Nome Elemento' è TERMINAL; l''Indirizzo1' DEVE essere pari ed è quello associato al video e buffer di tastiera; l''Indirizzo2' DEVE essere quello successivo ad 'Indirizzo 1' ed è quello associato a CNTRL.
In 'BUS' va posto l'Identificatore del bus cui è connesso il dispositivo. In 'Com1' va posto, se previsto, l'Identificatore del gestore delle interruzioni. 'Com2' e 'Com3' vengono utilizzati per specificare le linee di interruzione, rispettivamente, per ENTER e 'Buffer full'; delle quattro cifre esadecimali che definiscono questi parametri, la meno significativa individua la linea di interruzione, la seconda definisce la priorità e le due più significative specificano il 'vector number'. Se 'Com1' è diverso da zero, la linea (cifra meno significativa di 'Com2' e 'Com3') DEVE essere diversa da zero; le altre ciftre possono essere nulle. Infine 'Com4' DEVE essere lasciato al valore zero.
Appunti su: |
|