Da Microcomputer n.30 del Maggio 1984
Allorquando, un paio d'anni orsono,
chi scrive voleva comprare un home computer che sostituisse lo ZX 81
(presto finito nel cassetto), poso' concupiscente occhio sull'allor nato
Oric 1, pubblicizzato sulla rivista inglese Personal Computer W orld (
PCW). Le alternative erano il VIC e lo Spectrum; e proprio del Sinclair
l'Oric I era antagonista anche lui nella versione da 16 e da 48K.
Nonostante le caratteristiche tecniche che contano siano a largo vantaggio
di questo home computer, lo Spectrum ha preso il volo, e le oltre 100.000
unita' vendute dalla Tangerine - tra l'altro anche lei, come Acorn,
Sinclair, Ace etc originaria di Cambridge - sono solo una piccola parte di
quelle vendute da zio Clive. Misteri del fascinoso baronetto!
Ci accingiamo comunque a parlarvi di un home computer di progetto
tradizionale, sul quale non abbiamo grossa documentazione (tipo gli
indirizzi delle routine accessibili dall'utente, oppure il disassemblato
della ROM ) ma che appare decisamente semplice da usare. Un solo
dubbio: un po' dopo la sua uscita sul mercato, diversi giornali inglesi
lanciarono i loro strali per alcuni presunti errori del sistema operativo,
nonche' per alcune stranezze in generale. Saranno vere? Andiamo a scoprirlo.
L'esterno
L'estetica dell'Oric e' quella tipica dell'home computer: contenitore in
plastica chiara che ricorda un po' una grossa calcolatrice, un numero
limitato di simboli stampati in corrispondenza ad ogni tasto, tastiera ad
elementi meccanici di ridotte dimensioni ma comunque dal robusto tocco (per
di piu' accompagnato da un breve suono dell'altoparlante interno); il peso e'
davvero limitato.
Dando un'occhiata ai lati nascosti del contenitore si osserva una buona
dotazione di connessioni varie: andando da sinistra a destra sul pannello
posteriore vediamo l'uscita modulata per TV (a colori o BN); seguono due
DIN, uno a 5 poli (disposti su un angolo piu' stretto del solito pentapolare
audio) per monitor RGB, e uno a 7 poli (compatibile con quello audio) che
fornisce il controllo di un registratore a cassette ed inoltre mette a
disposizione l'uscita audio, di qualita' nell'Oric in quanto realizzata
tramite un chip dedicato. Sulla destra c'e' una lunghissima porta utente a
34 piedini: pensandoci bene e' un po' restrittivo chiamarla cosi, visto che
si tratta dei terminali di una porta parallela Centronics completata dal
bus completo degli indirizzi e dei dati, piu' svariate linee di controllo di
quasi tutti i circuiti integrati presenti all'interno (ROM, RAM, Processore
6502, 6522 e ULA). Queste ultime linee dovrebbero mancare nella versione da
16K RAM, per intero o in parte, dato che nel 48K servono a gestire
direttamente i 64K di RAM interni per usare altri linguaggi e sistemi
operativi.
Per finire la descrizione dobbiamo menzionare la presa per alimentazione,
seminascosta in fondo al connettore da 17+17 e un tasto di reset
incredibilmente alloggiato all'interno della macchina ed accessibile DALLA
BASE e per di piu' solo tramite una matita che penetri nella fessura
sovrastante! Questa situazione, come e' evidente, origina una serie di
seccature, dato che da tastiera non e' previsto ne' un cold start ne' un
warm start che sia efficiente.
L'interno
L'architettura hardware dell'Oric e'
lineare: non siamo davanti al solito maxi-integrato che svolge tutte le
funzioni, dal VIA all'UART all'oscillatore audio etc, e alla prima
occhiata, infatti, si riconoscono le varie funzioni dei chip montati
sull'unica piastra, di ridotte dimensioni ma capace (c'e' anche un
altoparlante da 6 cm!). Il microprocessore, un 6502A della Synertec, si
trova in basso a destra, subito sopra al VIA 6522 che presiede alle
operazioni di I/O parallelo; per la scansione della tastiera, organizzata
come matrice 8x8 (ma non viene sfruttata interamente: ci sono solo 57
tasti), si adoperano due decodificatori ad 8 linee, un 4051 Hitachi montato
direttamente sulla base plastica della tastiera e una porta presente nel
chip di sintesi musicale, 1'8912, che rimane libera. La RAM disponibile
nella versione 48 (esiste anche l'Oric 1 16K) e' di ben 64K assemblati con
le solite 8 RAM 4164 da 64K bit = 8K byte l'una: e' evidente che, stante la
presenza di 16K di ROM tra Basic e sistema operativo (alloggiati nella ROM
Hitachi che si trova subito sopra al microprocessore) e togliendo le prime
5 pagine da 256 byte (mappate da $0000 a $0500) che servono al sistema,
avremo a disposizione del Basic 47K circa di RAM, una quantita' piu' che
sufficiente per la stragrande maggioranza degli usi domestici; vedremo poi
come e' ripartita. La configurazione da 64K RAM permette di riconfigurare il
sistema, caricando da disco un altro linguaggio (in GB e' disponibile il
Forth, ed era in preparazione un super Basic simile a quello del BBC) ed
eventualmente un diverso sistema operativo, funzione per la quale la
versione maggiore dell'Oric e' predisposta anche via hardware, tramite
alcune linee aggiuntive collegate alla maxi porta utente. Il resto delle
funzioni usuali, tipo la comunicazione con il video, e' organizzato da una
ULA a 40 piedini: questo integrato e la ROM sono gli unici due montati su
zoccoletto.
Una citazione a parte la assegnamo all'esistenza di un circuito dedicato
per le funzioni sonore: questo e' oramai un punto fermo negli home computer,
tanto che chi non lo ha non puo' espandersi nel settore dell'hobby musicale,
nel quale si sta avendo un grandissimo sviluppo dell'uso del computer.
L'Oric usa il citato 8912, che sullo stampato si trova tra le RAM e il VIA,
il quale provvede tre canali musicali piu' uno di rumore, con scelta della
forma d'onda tra ben 7 possibilita' (pero' fisse e non modellabili, come
nell'Electron o nel 64), e permette una semplice implementazione nel BASIC
di effetti sonori tramite una parola del linguaggio, che sono PING, SHOOT,
ZAP ed EXPLODE; inoltre rende possibile direttamente via hardware
l'emissione di un breve suono in corrispondenza della pressione dei tasti.
Il sistema
Sull'esemplare in nostro possesso era implementato un BASIC esteso della
Tangerine, versione 1.0. Si tratta, a parer nostro, di un linguaggio
abbastanza potente, ma comunque piuttosto essenziale.
La programmazione e' strutturata, sia con la variante ELSE che con il
REPEAT-UNTIL. L'editor funziona non su tutto lo schermo ma solo sulla linea
ove poniamo il prompt, che viene ricopiata premendo CTRL A.
Una ventina di comandi molto utili, parte dei quali di idea proprio della
Tangerine, vanno ad aiutare la stesura dei programmi che usano il suono, il
linguaggio macchina e l'alta risoluzione, trattata in modo essenziale e
piuttosto interessante, cosi come i caratteri definibili dall'utente.
Svariati anche i comandi diretti accessibili da tastiera, il cui uso e' pero'
spesso causa di problemi per l'organizzazione delle comunicazioni tra la
ULA e il video. Queste avvengono sotto forma di parole seriali di 8 bit,
che possono esser dati (in modo testo o alta risoluzione) ovvero
attribuiti. Quest'ultimo caso si verifica quando i bit 5 e 6 sono
contemporaneamente pari a O, nel qual caso i 5 bit bassi contengono uno dei
codici di controllo (che possono cosi essere 2^5 = 32); il modo testo,
invece, sceglie su 6 bit, per cui ha 2^6 = 64 caratteri (piu' gli inversi).
Per certe sequenze di codici di controllo il display video se ne va per i
fatti suoi: provate (EXC + R) (ESC + T) (ESC + Y), oppure print chr$ (152)
o 153.
La pagina testo e' organizzata come matrice 40 x 28, ma le prime due
locazioni di ogni riga sono riservate al sistema per i codici di colore del
carattere e dello sfondo (ovviamente invisibili all'utente), per cui la
schermata effettiva in bassa risoluzione si risolve in 38 x 28. Una cosa
insolita e' la struttura del carattere: questo e' si inscritto nella solita
matrice di punti, ma le dimensioni non sono 8x8, bensi' 6 x 8, e i bit
relativi sono quelli meno significativi. Una grande comodita' dell'Oric e'
che la mappa di caratteri, ordinata secondo i codici ASCII, e' in RAM a
partire da 46080, per cui per eventuali modifiche al simbolo di codice C
basta porre gli opportuni valori decimali nelle 8 locazioni che partono da
46080 + (C x 8). Una mancanza che sicuramente si sente e' quella di un
joystick, non previsto dalla casa. In Inghilterra sono gia' reperibili
alcuni modelli; per gli amanti del fai da te consigliamo due articoli
apparsi recentissimamente su Electronics & Computing Monthly, marzo e
aprile 84, dove si discute la connessione di un convertitore
analogico/digitale per l'Oric, un progettino che puo' essere veramente utile
non solo per i giochini.
Grafica e suono
La pagina grafica e organizzata in maniera assai intelligente: la schermata
in alta risoluzione sfrutta solo 25 delle 28 righe disponibili, lasciando
le ultime tre in modo testo, per list parziali, istruzioni dirette e
correzioni. La risoluzione, che si basa su una griglia 40 x 25 (in hires si
usano anche le prime due colonne) in cui ogni elemento e' di 6x8 punti mette
a disposizione una pagina di 240 x 200 punti. Questa occupa circa 8K byte,
che in modo testo potrebbero servire per il programma e/o i dati: per
riorganizzare la memoria c'e' la parola GRAB; per tornare alla
configurazione di base si usa RELEASE, e per inizializzare la grafica
(cancellando il vecchio disegno) si usa HIRES.
Per quel che concerne il suono, intanto diciamo che il beep dei tasti viene
abilitato o disabilitato con un print chr$ (4) oppure CTRL F. E veniamo al
grosso del discorso: abbiamo 3 comandi da usare, ovvero MUSIC, SOUND e
PLAY, che gestiscono i quattro canali audio (3 musicali piu' uno di rumore)
in frequenza, volume e forma d'onda. MUSIC canale, ottava, nota, volume
accetta 4 parametri: il canale puo' essere solo musicale, di codice 1, 2 o
3, l'ottava va scelta da O (la piu' bassa) a 7; la nota, da 1 a 12, con
tutti i suoni di un'ottava con partenza da 1 = DO (2 = DO diesis, etc).
L'ultimo parametro varia nella gamma 0-15. PLAY tono, rumore, tipo di onda,
freq. vuole sapere quali canali sono inseriti: se tono = 0 sono tutti
disinseriti, se tono = 7 sono tutti inseriti; analoga cosa avviene per
rumore. Il tipo di onda (valori da 1 a 7) puo' essere a sfumare o a salire
(di lunghezza finita), oppure in altri 5 modi ma con uscita continua, la
cui frequenza verra' rappresentata da un numero a due byte compreso tra O e
32767. SOUND canale, freq., volume serve per creare brevi effetti, piu' che
per suonare musichette (per quelle si usa PLAY). In chiusura di paragrafo
ripetiamo poi che sono gia' nel linguaggio quattro effetti: PING, ZAP,
EXPLODE e SHOOT.
Il linguaggio macchina
Pur non avendo a disposizione nulla che somigli ad un
assemblatore-disassemblatore, diverse cosine risultano utilissime per
semplificare la vita a chi desideri far uso di questo tipo di
programmazione. Innanzi tutto abbiamo le semplici DEEK = Double PEEK e DOKE
= Double POKE, la prima accetta un indirizzo I in RAM e stampa il valore
(conten. I) + 256x(conten. I+1); la seconda accetta un indirizzo I e un
numero N tra O e 65535, e realizza le seguenti funzioni:
POKE I+1, N/256;
POKE I , N-256 x INT(N/256).
Inoltre si possono usare direttamente dati in esadecimale, facendoli
precedere dal simbolo # (hash), cosa questa utilissima in LM soprattutto
per i codici operativi; inoltre, caricando le linee in DATA, un semplice
apice separera' i dati da un commento, che si consiglia essere il codice
mnemonico, ad esempio DATA #A9, #07 ' LDA #$07 o cose del genere.
Sempre direttamente dal Basic abbiamo la possibilita' di manipolare lo stack
del linguaggio, tramite le fasi dichiarative POP e PUSH, che
rispettivamente tirano fuori o spingono dentro l'ultimo valore dello stack.
Inoltre, come mostrato dalla mappa di memoria, le 32 locazioni da $400 a
$420 sono disponibili per brevi routine. La chiamata di esecuzione dei
programmi in LM viene fatta tramite la solita USR, che deve essere
inizialmente dichiarata come DEF USR = < indirizzo di partenza > e
poi chiamata con una PRINT USR (< parametro>), che per di piu' -
eventualmente servisse - passa alla routine un parametro dal Basic.
Periferiche e documentazione
Delle unita' accessorie fornite
direttamente dalla Tangerine noi sappiamo ben poco: sostanzialmente siamo a
conoscenza dell'esistenza di un print-plotter a colori e dell'ipotizzato
lancio di un sistema a microfloppy da 3,5 pollici di tipo Sony.
L'accessorio grafico si chiama MCP 40, usa carta da 10.5 cm e puo'
funzionare su 40 o 80 linee a 12 caratteri al secondo, con possibilita' di
controllare l'altezza dei caratteri stampati; essendo in effetti un plotter
si puo' sfruttare anche la scrittura nelle quattro direzioni. Le penne sono
4: nero, rosso, giallo e blu (montate su un cilindretto) ma e' possibile
combinare i punti per ottenere fino a 16 diversi tratti. La risoluzione
orizzontale, di 480 punti, e' di gran lunga superiore a quella dell'alta
risoluzione del computer. A prima vista sembrerebbe un'altra versione della
stessa macchina che abbiamo visto targata Casio, Commodore eccetera.
Dell'altra periferica di cui si parlava nella nazione madre, il microfloppy
da 3,5" con gestione automatica delle linee di I/O per consentire il
caricamento di altri linguaggi e sistemi operativi, noi sappiamo solo che
ne era stato annunciato l'inizio della produzione, ma ora come ora siamo
rimasti un po' indietro.
Il manuale in dotazione e' un po' scarso sia per i neofiti che - soprattutto
- per chi mastichi qualcosa; nulla sullo schema elettrico, poco sulle
parole speciali del Basic, niente sulle routine del SO disponibili
all'utente e cosi' via, ma c'e' da credere che in tempi tollerabili questa
lacuna verra' colmata. Inoltre l'uso di chip comuni (il 6522 e 1'8912)
facilita la documentabilita' in proprio. Il software esistente e' abbondante,
e copre sia i giochi che i soliti programmi di piccola gestione o
contabilita' domestica. Parecchi libri sono disponibili: tra le case che se
ne occupano vi segnaliamo la Duckwort e la Meibourne, i cui indirizzi sono
citati negli scorsi numeri di MC, sia nel settore delle recensioni che in
quello dei giochi, nonche' tra le mostre. Infine la Tansoft (Unit I & 2.
Cambridge Techno Park, Newmarket Road, Cambridge) pubblica un bimestrale
dedicato a questa macchina: Oric Owner.
Conclusioni
Dobbiamo dire che il Basic risponde pienamente ed in maniera assai semplice
alla maggior parte delle esigenze: non sapremmo dire se ci e' piaciuta di
piu' l'accessibilita' del set di caratteri, oppure le tre righe di testo
sotto la pagina in alta risoluzione, oppure i valori esadecimali nei DATA e
il REM con un apice; certo abbiamo gradito l'uso di una tastiera meccanica,
l'uso di un chip dedicato per il suono e l'altoparlante interno che evita i
problemi di sintonia tra video ed audio. L'unica cosa che veramente ci ha
sbalorditi e' la posizione del tasto di reset, che chiunque abbia un minimo
di pratica sicuramente portera' alla luce.
Riguardo ai problemi del sistema cui accennavamo nell'introduzione, ebbene
qualcuno e' uscito fuori mentre facevamo cose non del tutto pulite per
l'Oric (tipo far stampare tutti i caratteri, di controllo e non, con la
CHR$), ma pensiamo che con un minimo d'attenzione, almeno in ambiente
Basic, si possa stare del tutto tranquilli. e' del tutto sconsigliabile
avventurarsi nella pagina 3, ove sono mappati gli I/O e in particolare il
6522 della porta parallela.
In definitiva riteniamo che questo computer possa avere il suo posto nella
categoria, purche' l'utente abbia ben chiaro il limite degli home computer.