Progetto in assembly (m68K) per l'esame Computer System Design
Questo repository contiene un progetto scritto in Assembly che implementa un sistema di comunicazione sincronizzata tra tre nodi identificati come A, B e C. Il nodo A riceve dei caratteri dai nodi B e C in una sequenza prestabilita e ripetitiva. I caratteri sono inviato mediante un canale parallelo (PIA). La comunicazione segue un ordine specifico di ricezione:
- BBC
- BCB
- CBB
L'implementazione utilizza un sistema di lock nel nodo A per garantire che i caratteri siano ricevuti in quest'ordine prefissato, mantenendo la consistenza ed evitare situazioni di deadlock.
M68k 1: C
M68k 4: B
M68k 7: A
Indirizzi delle ISR del ricevitore:
CISR: $8500 in 0x6C
BISR: $8600 in 0x70
Contenuto RAM con test case:
- BBC
- BCB
- CBB
Indirizzi dei device (versione terminale IT):
Terminale 0xB e 0xC:
Interrupt Enter: $8500 in 0x64
Interrupt buffer pieno: $8600 in 0x68
Trasmettitori con ACK PIA:
$8300 in 0x6C
$8400 in 0x70
RicevitoreA.a68
: Implementa la logica del nodo ricevitore A che deve garantire la sequenza prestabilita di messaggi.
src/TrasmettitoreB.a68
: Implementa la logica del nodo B, il quale invia dei caratteri prestabiliti, ogni volta che A legge il dato dalla PIA.
src/Trasmettitore_B_IT.a68
: Implementa la logica del nodo B, il quale invia dei caratteri prestabiliti, mediante una ISR scatenata con la lettura della PIA da parte di A.
src/TrasmettitoreC.a68
: Implementa la logica del nodo C, il quale invia dei caratteri prestabiliti, ogni volta che A legge il dato dalla PIA.
src/Trasmettitore_C_IT.a68
: Implementa la logica del nodo C, il quale invia dei caratteri prestabiliti, mediante una ISR scatenata con la lettura della PIA da parte di A.
src/TrasmettitoreTERM.a68
: Implementa la logica dei nodi B e C, che permette all'utente di inviare dei caratteri mediante terminale.
src/pseudo/Pseudo.c
: Implementa la logica del ricevitore A scritta in linguaggio pseduo-c.
src/cfg/3nodi_PIA.cfg
: File da utilizzare con l'emulatore che configura i 3 nodi (Processore, memoria, dispositivi PIA).
src/cfg/3nodi_PIA_terminale
: File da utilizzare con l'emulatore che configura i 3 nodi (Processore, memoria, dispositivi PIA e terminali).
src/exe/asim.exe
: Emulatore del sistema basato sul M68K.
src/exe/asimtool.exe
: IDE per scrivere e compilare il codice assembly M68K.