Oric-1

Pubblicato: giugno 24, 2011 in Oric
Tag:,

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), posò 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 unità 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, nonché per alcune stranezze in generale. Saranno vere? Andiamo a scoprirlo.
L’esterno

L’estetica dell’Oric è 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 più accompagnato da un breve suono dell’altoparlante interno); il peso è 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 più 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 qualità nell’Oric in quanto realizzata tramite un chip dedicato. Sulla destra c’è una lunghissima porta utente a 34 piedini: pensandoci bene è 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, più 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 più solo tramite una matita che penetri nella fessura sovrastante! Questa situazione, come è evidente, origina una serie di seccature, dato che da tastiera non è previsto ne’ un cold start ne’ un warm start che sia efficiente.

L’interno

L’architettura hardware dell’Oric è 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’è 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 8×8 (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) è di ben 64K assemblati con le solite 8 RAM 4164 da 64K bit = 8K byte l’una: è 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 quantità più che sufficiente per la stragrande maggioranza degli usi domestici; vedremo poi come è ripartita. La configurazione da 64K RAM permette di riconfigurare il sistema, caricando da disco un altro linguaggio (in GB è 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 è predisposta anche via hardware, tramite alcune linee aggiuntive collegate alla maxi porta utente. Il resto delle funzioni usuali, tipo la comunicazione con il video, è 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 è oramai un punto fermo negli home computer, tanto che chi non lo ha non può 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 più uno di rumore, con scelta della forma d’onda tra ben 7 possibilità (però 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 è 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 è però 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 (più 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 è 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 è la struttura del carattere: questo è si inscritto nella solita matrice di punti, ma le dimensioni non sono 8×8, bensi’ 6 x 8, e i bit relativi sono quelli meno significativi. Una grande comodità dell’Oric è che la mappa di caratteri, ordinata secondo i codici ASCII, è 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 è quella di un joystick, non previsto dalla casa. In Inghilterra sono già 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 può 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 è di 6×8 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’è 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 più uno di rumore) in frequenza, volume e forma d’onda. MUSIC canale, ottava, nota, volume accetta 4 parametri: il canale può essere solo musicale, di codice 1, 2 o 3, l’ottava va scelta da O (la più 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) può essere a sfumare o a salire (di lunghezza finita), oppure in altri 5 modi ma con uscita continua, la cui frequenza verrà rappresentata da un numero a due byte compreso tra O e 32767. SOUND canale, freq., volume serve per creare brevi effetti, più che per suonare musichette (per quelle si usa PLAY). In chiusura di paragrafo ripetiamo poi che sono già 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 separerà 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 possibilità 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 più — eventualmente servisse — passa alla routine un parametro dal Basic. 

Periferiche e documentazione 

Delle unità 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 può funzionare su 40 o 80 linee a 12 caratteri al secondo, con possibilità di controllare l’altezza dei caratteri stampati; essendo in effetti un plotter si può sfruttare anche la scrittura nelle quattro direzioni. Le penne sono 4: nero, rosso, giallo e blu (montate su un cilindretto) ma è possibile combinare i punti per ottenere fino a 16 diversi tratti. La risoluzione orizzontale, di 480 punti, è 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 è 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 così via, ma c’è da credere che in tempi tollerabili questa lacuna verrà colmata. Inoltre l’uso di chip comuni (il 6522 e 1’8912) facilita la documentabilità in proprio. Il software esistente è abbondante, e copre sia i giochi che i soliti programmi di piccola gestione o contabilità 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, nonché 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 è piaciuta di più l’accessibilità 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 è la posizione del tasto di reset, che chiunque abbia un minimo di pratica sicuramente porterà alla luce. 

Riguardo ai problemi del sistema cui accennavamo nell’introduzione, ebbene qualcuno è 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. È 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, purché l’utente abbia ben chiaro il limite degli home computer.

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...