Anteprima
Vedrai una selezione di 1 pagina su 5
Comunicazione asincrona Pag. 1
1 su 5
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

Configurazione "communic asincrona" con due sistemi simmetrici

Il programma serve a provare la configurazione "communic asincrona" costituita da due sistemi simmetrici ciascuno con un processore M68000, una ROM di 8K (addr $0-$1FFF), una RAM di 10K (addr $8000-$A7FF), un device parallelo PIA mappato a $2004, un device seriale di tipo TERMINAL mappato a $2000. I due PIA sono interconnessi e mediante un protocollo di handshaking consentono ai due sistemi di scambiarsi i caratteri digitati sul dispositivo TERMINAL. I device interagiscono con i rispettivi processori mediante le linee di interruzione. In particolare il dato immesso da tastiera è acquisito mediante interruzione (liv.1, autovettore 25 mappato in area ROM alla locazione $64 che punta alla ISR posta all'indirizzo $8500 in area RAM) e inviato alla sezione A del dispositivo parallelo PIA per la trasmissione verso il dispositivo PIA connesso all'altro sistema. Il carattere ricevuto dal PIA è gestito mediante interruzione. All'arrivo dell'interrupt.

la ISR lo acquisisce e lo invia al terminal per la visualizzazione. L'interruzione è associata all'interrupt di liv. 3, #vect 27 mappato a $6C della ROM con ISR a $8700.

*********************************************************************************

PIA1 PIA2

______ _______

CA1 |<---------| CB2

CA2 |--------->| CB1

______|<==== |_______

CB1 |<---------| CA2

CB2 |--------->| CA1

______| ====>|_______

**********************************************************************************

NAME communic ;tale direttiva non è allo stato supportata dall'assemblatore

BEGIN ORG $8200

PIADA EQU $2004 ;indirizzo di PIA-A dato, usato in input

PIACA EQU $2005 ;indirizzo di PIA-A stato/controllo

PIADB EQU $2006 ;indirizzo di PIA-B dato, usato in output

PIACB EQU $2007 ;indirizzo di PIA-B controllo

TERD EQU $2000 ;indirizzo di TERMINAL registro dato

TERC EQU $2001 ;indirizzo di TERMINAL registro Stato-Controllo

JSR DVAIN ;inizializza PIA porto A

JSR DVBOUT


;inizializza PIA porto BJSR DVTER ;inizializza terminal
<code>MOVE.W SR,D0</code> ;legge il registro di stato
<code>ANDI.W #$D8FF,D0</code> ;maschera per reg stato (stato utente, int abilitati)
<code>MOVE.W D0,SR</code> ;pone liv int a 000
<code>LOOP JMP LOOP</code> ;ciclo caldo dove il processore attende interrupt
*********************************************************************************
INIZIALIZZAZIONE DELLA PIA: PORTO A
<code>CRA |0 |0 |1 0 0 |1 |0 1|* | | |__Controllo CA1: interruzioni abilitate su IRQA, CA1 sensibile al
fronte 1->0
<code>| | |* | |______Accesso a DRA: il prossimo accesso ad indirizzo pari è per PRA
<code>|_________Contollo CA2: linea di uscita, diviene alta su fronte attivo di CA1 e
si riabbassa a seguito ad una lettura da PRA

** DRA=0 => PORTO A PORTO DI INGRESSO
*********************************************************************************
DVAIN MOVE.B #0,PIACA ;seleziona il registro direzione del porto A,
;prossimo accesso ad indirizzo pari =>DRA
MOVE.B #$00,PIADA ;DRA=0 : pone le linee di A a linee di

MOVE.B #%11100101,PIACA ;configurazione porto A nel controlloRTS

*********************************************************************************

INIZIALIZZAZIONE DELLA PIA: PORTO B

CRB |1 |0 |1 0 0 |1 |0 0|

| | | |__Controllo CB1: interruzioni disabilitate su IRQB, CB1 sensibile a

| | fronte 1->0

| |______Accesso a DRB: il prossimo accesso ad indirizzo pari è per PRB

|_________Contollo CB2: linea di uscita, diviene alta su fronte attivo di CB1 e

si riabbassa a seguito a scrittura su PRB

** DRB=1 => PORTO B PORTO DI USCITA

*********************************************************************************

DVBOUT MOVE.B #0,PIACB ;seleziona il registro direzione di PIA porto B

MOVE.B #$FF,PIADB ;pone le linee di PIA B a linee di output

MOVE.B #%11100100,PIACBRTS

*********************************************************************************

INIZIALIZZAZIONE DEL TERMINALE:

CNTRL |0 |0 |1 |1 |1 |1 |1 |1 |

| | | | | | | |__Abilita interruzioni su Buffer full

Abilita interruzioni su Enter*
Pulisci schermo*
Pulisci buffer tastiera*
Abilita tastiera*
Abilita echo*
Stato di buffer full*
Stato di Enter inviato********************************************************************************DVTER MOVE.B #$3f,TERC ;seleziona indirizzo stato/controlloRTS*********************************************************************************ISR per la gestione dato proveniente dalla tastiera di TERMINAL e spedito, per tramite del*PIA porto B, all'altro sistema.*ISR associata all'interrupt di liv. 1, #vect 25 mappato a $64 della ROM con ISR a $8500********************************************************************************ORG $8500 ;ricevi da tastieraINT1 MOVE.L A0,-(A7) ;push di A0,A1,A2,D0,D1 in stack supervisorMOVE.L A1,-(A7)MOVE.L A2,-(A7)MOVE.L D0,-(A7)MOVE.L D1,-(A7)MOVEA.L #TERD,A0MOVEA.L #PIADB,A1MOVEA.L #PIACB,A2INPUT MOVE.B
(A0),D0 ;acquisisci dato da terminal*trasferisci il carattere letto alla PIA-A con handshaking tra PIA-A e PIA-B
MOVE.B D0,(A1) ;Dato su bus di PIA porto B, generazione interrupt;DATA READY
ciclo2 MOVE.B (A2),D1 ;In attesa di DATA ACKNOWLEDGE
ANDI.B #$80,D1 ;aspetta che CRB7 divenga 0
BEQ ciclo2*fine trasferimento e handshaking
CMP.B #13,D0 ;Se il carattere ricevuto è ENTER
BNE INPUT ;termina altrimenti prossimo carattere
ORI.B #$1C,TERC ;riabilita tastiera ,pulisce buffer e video
MOVE.L (A7)+,D1 ;ripristino di D0,D1,A2,A1,A0
MOVE.L (A7)+,D0
MOVE.L (A7)+,A2

Dettagli
Publisher
A.A. 2012-2013
5 pagine
1 download
SSD Scienze matematiche e informatiche MAT/02 Algebra

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher cecilialll di informazioni apprese con la frequenza delle lezioni di Algebra e Geometria e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli studi di Napoli Federico II o del prof Pastore Stefano.