# Texas Instruments TMS1000

Il TMS1000 è una famiglia di microcontrollori introdotta da Texas Instruments nel 1974.
Combinava un'unità di elaborazione centrale a 4 bit, memoria di sola lettura (ROM), memoria di lettura / scrittura (RAM) e linee di input / output (I / O) come un "computer su un chip" completo.
Era destinato a sistemi integrati in automobili, elettrodomestici, giochi e strumenti di misurazione.
È stato il primo microcontrollore commerciale di massa. Nel 1974, i chip di questa famiglia potevano essere acquistati in grossi lotti per circa 2 $ ciascuno.
Nel 1979 circa 26 milioni di chip di questa famiglia furono venduti ogni anno.
Il TMS 1000 è stato utilizzato nel giocattolo educativo Speak & Spell di Texas Instruments, il veicolo giocattolo programmabile Big Trak e nel gioco elettronico Simon.

## Storia
### Serie TMS 0100

Lo Smithsonian Institution afferma che gli ingegneri TI Gary Boone e Michael Cochran sono riusciti a creare il primo microcontrollore (chiamato anche microcomputer) nel 1971. Il TMS1802NC era un microcontrollore a chip singolo annunciato il 17 settembre 1971 che implementava una calcolatrice a quattro funzioni.
Il TMS1802NC, nonostante la sua designazione, non faceva parte della serie TMS 1000; è stato successivamente riassegnato come facente parte della serie TMS 0100. Venne utilizzato nella calcolatrice TI Datamath e nella calcolatrice Sinclair Executive.

### Serie TMS 1000

La successiva serie TMS 1000 è stata lanciata sul mercato nel 1974. TI consigliava fortemente il TMS 1000 a 4 bit per l'utilizzo in applicazioni integrate preprogrammate.
Un computer su chip combina il core del microprocessore (CPU), la memoria e le linee I/O (input/output) su un unico chip.
Il brevetto computer-on-a-chip, chiamato all'epoca "microcomputer patent", (EN) US4074351, United States Patent and Trademark Office, Stati Uniti d'America., fu concesso a Gary Boone e Michael J. Cochran di TI.
A parte questo brevetto, il significato standard di microcomputer è un computer che utilizza uno o più microprocessori come CPU, mentre il concetto definito nel brevetto è più simile a un microcontrollore.
Esempio delle caratteristiche di qualche chip :
| Nome | Num.pin | IO Latches | IO max.voltaggio | ROM | RAM |
| TMS1000 | 28 | 11 | 20V | 1KB | 32B |
| TMS1200 | 40 | 13 | 20V | 1KB | 32B |
| TMS1070 | 28 | 11 | 35V | 1KB | 32B |
| TMS1270 | 40 | 13 | 35V | 1KB | 32B |
| TMS1100 | 28 | 11 | 20V | 2KB | 64B |
| TMS1300 | 40 | 13 | 20V | 2KB | 64B |

## Descrizione

La famiglia TMS1000 includeva varianti sia nella logica PMOS originale che in NMOS e CMOS. Le varianti del prodotto includevano diverse dimensioni di ROM e RAM, diverso numero di porte I/O e versioni senza ROM destinate allo sviluppo/test o all'uso con ROM esterne. Il TMS1000 originale aveva 1024 x 8 bit di ROM, 64 x 4 bit di RAM e 23 linee di ingresso/uscita.
La famiglia TMS1000 utilizzava ROM programmate da maschera. Una volta che l'utente aveva un programma di debug pronto per essere usato in produzione, inviava il programma a Texas Instruments che avrebbe quindi creato una maschera speciale per programmare la ROM su chip. La ROM non può essere successivamente modificata; i contenuti erano fissati dagli schemi stabiliti sul chip dal produttore. Sebbene questo processo avesse un costo iniziale elevato, il costo di produzione era molto basso, rendendolo adatto a prodotti venduti in grandi quantità (diciamo, più di qualche migliaio di articoli venduti all'anno).
Tutti i percorsi dati interni del processore erano larghi 4 bit. La ROM del programma e la RAM dei dati sono state indirizzate separatamente come in un'architettura di Harvard; questa è diventata una caratteristica tipica dei microcontrollori di molti altri produttori.
I set di istruzioni variavano leggermente in base al modello, con 43 istruzioni nel set di base e 54 disponibili in alcuni membri della famiglia; le istruzioni erano lunghe 8 bit. Sono state fornite istruzioni aritmetiche BCD, ma non erano disponibili istruzioni per AND logico o OR dei registri. Le subroutine erano limitate a 1 livello in alcune versioni (una subroutine non poteva chiamare un'altra subroutine), con 2 o 3 livelli disponibili su altre.
Ogni istruzione richiede tra 10 e 15 microsecondi per essere eseguita sulle versioni NMOS e PMOS, ma alcune delle versioni CMOS potevano esseguire le istruzioni alla velocità di 6 microsecondi. L'oscillatore interno forniva una velocità di clock effettiva di circa 0,3 megahertz.
Le diverse versioni del TMS1000 erano confezionate in dual in-line package a foro passante (PTH) con 28 o 40 pin, ma alcuni modelli per la prototipazione erano in package a 64 pin. Tutte le versioni avevano un intervallo di temperatura di funzionamento da 0 a 70 gradi C.