# Research Machines LINK 480Z

Il Research Machines LINK 480Z è un microcomputer a 8 bit prodotto da Research Machines Limited (Oxford, Gran Bretagna) e commercializzato dal 1981 al 1985. Erede del Research Machines 380Z del 1977, anche il LINK 480Z era basato sul microprocessore Zilog Z80A a 4 MHz ma, rispetto al primo, presentava importanti novità, fa cui l'adozione di un case contenente sia la circuiteria interna che la tastiera, fino a 256 KB di RAM e una scheda grafica (opzionale) capace di risoluzioni più elevate. Il computer poteva essere utilizzato sia come un normale personal computer, usando l'interprete BASIC residente in ROM come sistema operativo e caricando i programmi con il lettore di cassette incorporato oppure poteva essere caricato il CP/NOS (una versione specifica del CP/M per le reti) tramite rete locale (LAN) direttamente da un file server. Se era presente l'unità dischi il LINK 480Z poteva lanciare direttamente il CP/M.
Come il 380Z, anche il LINK 480Z era destinato principalmente al settore didattico/educativo e fu perciò venduto soprattutto alle scuole britanniche come sistema che poteva essere connesso, tramite la rete proprietaria CHAIN, ad un 380Z che fungeva da file server.

## Hardware
### Unità centrale e CPU

Il LINK 480Z era assemblato come unità con integrati sistema e tastiera, contrariamente al 380Z che aveva la tastiera separata dall'unità centrale. I primi esemplari erano realizzati con un case metallico di color nero che, in seguito, fu sostituito da un altro contenitore in plastica color crema. L'unità dischi per i floppy da 5¼ era acquistabile a parte e si collegava esternamente all'unità centrale.
L'unica CPU disponibile era uno ZiLOG Z80A con frequenza di clock di 4 MHz.

### Memoria

La memoria base del computer era di 32 KB ma il taglio più frequente era 64 kB. Sulla scheda madre si potevano installare fino a 128 kB di RAM mentre, utilizzando la scheda di espansione, che integrava anche la scheda grafica ad alta risoluzione, il quantitativo massimo installabile arrivava a 256 kB. A causa del fatto che lo Z80 poteva indirizzare direttamente solo 64 kB di RAM, per poter gestire la memoria extra veniva utilizzata la tecnica del bank switching, che selezionava di volta in volta il banco "visibile" al sistema. Per questo motivo la memoria addizionale era in genere utilizzata come disco virtuale (nello specifico il Silicon Disk System), in cui potevano essere caricati automaticamente all'avvio della macchina tramite rete dati e programmi. Questo aspetto era importante in un contesto scolastico, dove i programmi potevano essere caricati nel disco virtuale prima dell'arrivo degli studenti. Il disco virtuale conservava il suo contenuto se il sistema veniva riavviato con un reset software.
Il LINK 480Z conteneva anche un firmware (max. 32 kB) che, quando non in uso, poteva essere tolto dallo spazio indirizzi del sistema tramite il bank switching lasciando così disponibili 58 kB di RAM totali: 2 kB erano usati dal sistema e quattro kB erano inaccessibili per via della parte su ROM del firmware.

### Video

Tutti i LINK 480Z, ad eccezione di alcuni primissimi esemplari, erano dotati della scheda video base capace di visualizzare solo una modalità testo: la risoluzione poteva essere cambiata via software fra 40×24 e 80×24 caratteri. Il segnale video era disponibile tramite uscita composita per agganciare un monitor esterno oppure tramite uscita RF per collegare un comune TV. Lo schermo testuale aveva una propria memoria dedicata.
In aggiunta a questa scheda, potevano essere acquistate una scheda grafica opzionale ad alta risoluzione ed un'interfaccia RGB TTL per collegare un monitor a colori. La scheda grafica, venduta con una memoria dedicata di 16 kB, supportava 3 modalità::
* extra alta risoluzione: 640×192 pixel, monocromatico, 1 pagina;
* alta risoluzione: 320×192 pixels, 4 colori, 1 pagina;
* media risoluzione: 160×96 pixels, 16 colori, 2 pagine.
Tramite una lookup table i colori potevano essere scelti fra una tavolozza di 256 diverse tonalità (con uscita RGB) oppure diverse intensità (uscita composita).
L'uscita della scheda grafica era miscelata con l'uscita della scheda video testuale così che era possibile soprapporre le due schermate. L'uscita della scheda grafica copriva solo 20 righe dello schermo testuale per cui la sovrapposizione poteva magari lasciare al testo le ultime 4 righe in basso, se l'effetto di miscelazione non era gradito.
Sia la memoria dell'interfaccia grafica che quella testuale erano gestite dal processore usando I/O mappati su porte per cui non veniva consumata RAM dallo spazio di indirizzi.

### Memorie di massa

Il salvataggio dei dati poteva avvenire su cassette a nastro, su dischi floppy o su un file server esterno. L'interfaccia per il registratore a cassette trasmetteva i dati a 300 bit/s oppure a 1200 bit/s.
Il ROS 1.2 (vedi sotto) e seguenti permetteva di collegare tramite una interfaccia parallela 1 o 2 unità dischi esterne con un controller integrato IDC (Intelligent Disc Controller ) capace di gestire i floppy a doppia densità. I dischi aveva una capacità di 180 (singola densità) o 360 kB (doppia densità) per lato.
Research Machines offriva anche dei Pacchetti ROM aggiuntivi, contenenti fino a 64 kB di ROM. Questi pacchetti, collegati al sistema tramite l'interfaccia parallela, permettevano alle applicazioni che contenevano di essere caricate velocemente nella RAM del computer.

### Rete

Il LINK 480Z supportava una rete locale proprietaria ad 800 kBit/s detta CHAIN che usava un cavo coassiale similarmente all'Ethernet 10BASE2. Ogni stazione nella rete richiedeva un indirizzo di rete univoco ad 8 bit che era impostato tramite un DIP switch posto sul retro dell'unità centrale. Usando il firmware Z-Net integrato un LINK 480Z senza unità dischi poteva avviare un sistema operativo direttamente da un file server, generalmente un 380Z.

### Interfacce

La scheda madre del LINK 480Z conteneva il processore e fino a 128 kB di RAM, oltre alla circuiteria di molte delle interfacce esterne:
* due interfacce seriali (SIO-4 e SIO-2): fornivano rispettivamente un'interfaccia RS-232 completa ed una ridotta;
* porta parallela: usata sia come collegamento veloce per le unità dischi esterne ed i Pacchetti ROM sia come porta stampante;
* porta per registratore a cassette;
* interfaccia addizionale di input: gestiva 2 porte per joystick analogici;
* interfaccia video ed audio;
* uscita TV;
* connessione per rete (opzionale).
La scheda di espansione, che integrava sia la scheda grafica ad alta risoluzione sia i banchi di memoria addizionale, permetteva di montare fino ad un massimo di 128 kB di RAM extra ed includeva un'uscita RGB TTL per un monitor esterno. La scheda poteva essere completata con un'interfaccia IEEE 488 e con un coprocessore matematico in virgola mobile AMD 9511/9512.

## Firmware

Il computer era dotato di un firmware da 32 kB, che conteneva:
* sistema operativo ROS (8 kB);
* firmware per reti Z-Net (4 kB);
* BASIC su ROM (20 kB).

### ROS

Il ROS (Resident Operating System)) forniva un monitor rudimentale ed alcuni servizi di base. Il monitor poteva essere usato per lanciare il BASIC residente in ROM, caricare programmi tramite il registratore a cassette oppure avviare il sistema operativo. Il monitor del ROS forniva inoltre un pannello di controllo software che permetteva di visualizzare il contenuto dei registri del processore e della memoria, e supportava l'esecuzione di codice macchina per singole istruzioni o con breakpoint.

### Servizi del ROS

Il COS forniva un certo numero di funzioni base per il controllo dell'hardware come l'input da tastiera, la scrittura di testo sullo schermo tramite la scheda video e le operazioni di I/O da disco. Le funzioni del COS erano chiamate ricorrendo a pseudo-opcode che invocavano delle eccezioni chiamate tramite l'istruzione dello Z80 RST 30H. Il gestore delle eccezioni (EMT, da Emulator Trap) leggeva i primi byte successivi all'istruzione RST 30H per determinare quale funzione era richiesta; tutti i parametri erano passati tramite i registri della CPU.
I servizi del ROS erano per gran parte compatibili con i quelli offerti dal COS del precedente Research Machines 380Z.

### Z-Net

Il firmware Z-Net era utilizzato per permettere al computer di avviare un sistema disponibile su un file server presente nella rete locale. È stato disattivato dallo spazio indirizzi principale dopo l'avvio del sistema.

### BASIC su ROM

Research Machines forniva una versione completa del loro interprete BASIC come componente del firmware standard. Questo BASIC era utilizzato principalmente sui sistemi dotati di solo registratore a cassette ed era tolto dallo spazio indirizzi quando il sistema veniva avviato da disco o da rete.

### Versioni principali del ROS

Le versioni principali del ROS erano:
* ROS 1.0
* ROS 1.1
* ROS 1.2: aggiungeva il supporto ai dischi floppy
* ROS 2.2

## Software
### Sistemi operativi

I sistemi operativi principali erano il CP/M 2.2 se il computer era avviato da disco o il CP/NOS (una versione solo-rete del CP/M) se avviato da un file server. I sistemi con il CP/M in esecuzione potevano accedere ai servizi di rete usando il CP/NET.

### Applicativi

Erano disponibili molte diffuse applicazioni per il CP/M, come WordStar. Research Machines proponeva anche un proprio assembler (ZASM) ed un editor di testo (TXED). I programmi per i 380Z, se scritti in un linguaggio ad alto livello, come il BASIC, o usando solo le funzioni del CP/M e quelle del firmware standard, potevano essere eseguiti direttamente sul LINK 480Z; se invece essi accedevano direttamente all'hardware, ad esempio scrivendo sulla memoria della scheda grafica, allora erano generalmente incompatibili.