# HP 2100

La sigla HP 2100 indica una serie di minicomputer a 16 bit prodotti da Hewlett-Packard (HP) dalla metà degli anni '60 ai primi anni '90. Decine di migliaia di macchine di questa serie sono state vendute nel corso dei suoi venticinque anni di vita, facendo di HP il quarto produttore di minicomputer negli anni '70.
Il progetto, partito presso Data Systems Inc. (DSI), era originariamente identificato come DSI-1000. HP acquistò l'azienda nel 1964 e la inglobò nella divisione Dymec. Il modello originale, il 2116A, costruito utilizzando circuiti integrati e memoria a nucleo magnetico, fu distribuito nel 1966. Nei quattro anni successivi, furono rilasciati i modelli da A a C con diversi tipi di memoria ed espansioni, nonché i modelli economici 2115 e 2114. Essi furono sostituiti prima dalla serie HP 2100 nel 1971, e nel 1974 dalla serie 21MX, in cui la memoria a nucleo magnetico fu sostituita con la memoria a semiconduttore.
Tutti questi modelli furono anche venduti con la sigla HP 2000, che combinava una macchina della serie 2100 con componenti opzionali per eseguire il linguaggio di programmazione BASIC in modalità time sharing multiutente. HP Time-Shared BASIC era popolare negli anni '70 e molti dei primi programmi BASIC furono scritti su o per la piattaforma, in particolare il pionieristico videogioco di strategia Star Trek che era noto e diffuso durante la prima era dell'home computer e che fu modello per molti videogiochi successivi. La People's Computer Company pubblicò i propri programmi in formato HP 2000.
L'introduzione dell'HP 3000 nel 1974 introdusse un concorrente di alto livello per la serie 2100, linea che fu rinominata HP 1000 nel 1977 e presentata come sistema real time. Una versione notevolmente reingegnerizzata fu avviata nel 1979, e chiamata serie 1000 L, che usava chip di integrazione CMOS su larga scala e introducendo un modello con case a torre. Questa fu la prima versione a interrompere la compatibilità con le precedenti schede di espansione della serie 2100. L'aggiornamento finale fu la serie A, con nuovi processori in grado di fornire più di 1 MIPS di prestazioni, con l'ultimo A990 distribuito nel 1990.

## Storia
### Origini

HP fondò Dynac nel 1956 come laboratorio di sviluppo per i progetti che la società principale non avrebbe normalmente intrapreso. Il loro logo originale era semplicemente il logo hp capovolto, formando qualcosa di simile a "dy" e ispirando così il nome. Dopo avere scoperto che Westinghouse possedeva un copyright su quel nome, nel 1958 lo cambiarono in Dymec. L'azienda è stata incorporata in HP nel 1959 ed è stata chiamata prima Dymec Division e poi, nel novembre 1967, Palo Alto Division[5].
Dymec originariamente realizzò una varietà di prodotti per la famiglia HP, ma nel tempo diventò principalmente un integratore di soluzioni, costruendo apparecchiature di test e sistemi simili utilizzati da HP. Nel 1964, Kay Magleby e Paul Stoft iniziarono a sperimentare l'uso dei computer PDP-5 e PDP-8 come controller per i loro complessi sistemi di test, ma capirono che le macchine avrebbero richiesto modifiche per soddisfare veramente le loro esigenze. All'epoca, Digital Equipment Corporation (DEC) era ancora una piccola azienda obiettivo di acquisizione ma David Packard trovò troppo difficile trattare con Ken Olsen e i piani di acquisizione non andarono a buon fine.
Alla ricerca di un altro progetto da poter acquisire, Packard contattò la Data Systems, Inc. (DSI) di Detroit, una ditta formata da 5 persone. DSI era di proprietà della Union Carbide e quando Packard chiese come mai la Union Carbide fosse diventata proprietaria di un'azienda di computer, il manager di HP Labs Barney Oliver rispose: "Non ci interessa la ragione". Bill Hewlett inizialmente si rifiutò di prendere in considerazione lo sviluppo di un "minicomputer", ma quando Packard lo presentò come un sistema di controllo per strumentazione l'accordo fu approvato.
DSI fu acquistata nel 1964 e inizialmente costituita in Dymec con quattro dei cinque dipendenti originari di DSI e un certo numero di altri dipendenti provenienti dalle divisioni di strumentazione della HP. Il gruppo informatico in seguito si trasferì nei propri uffici a Cupertino, in California, in un edificio acquistato dalla Varian Associates, diventando la Cupertino Division.

### Primi modelli

Guidata da Magleby, la nuova divisione completò il progetto del 2116A, che fu presentato dal 7 al 10 novembre 1966 alla Joint Computer Conference di San Francisco. Fu uno dei primi mini-computer a 16 bit ad arrivare sul mercato, ma all'epoca era più noto come "un nuovo insolito computer strumentale" con un design altamente espandibile e supporto per elaborazioni real-time. Il sistema era caratterizzato da un cabinet sovradimensionato che poteva contenere fino a 16 schede di espansione ed essere ulteriormente ampliato con altre 48 schede tramite un modulo di espansione esterna.
Il sistema fu lanciato con 20 diverse schede di espansione, tra cui contatori, misuratori di radiazioni, termometri elettronici, voltmetri digitali, convertitori AC/Ohm, amplificatori di dati e scanner di input. Un modulo extra aggiunse dispositivi di input/output come unità a nastro, stampanti, schede perforate, nastri di carta e altre periferiche. La funzionalità real-time fu garantita assegnando ad ogni slot di scheda un vettore di interruzione fisso che richiamava il driver del dispositivo appropriato.
Quando la macchina fu messa in commercio, fu chiaro fin da subito che stava vendendo molto meglio nel mercato dell'elaborazione dati aziendali rispetto al mercato della strumentazione per cui era stata originariamente pensata. Ciò portò all'introduzione del 2115A nel 1967, modello privato di gran parte delle capacità di espansione in modo da offrire un'alternativa a basso costo per gli utenti commerciali. Un'ulteriore versione semplificata fu lanciata come 2114A nel 1968, con solo otto slot, lasciando spazio all'alimentatore che fu incorporato nel chassis principale. I modelli 2115 e 2114 erano anche senza il controllore DMA del 2116, mancavano alcune delle operazioni matematiche e funzionavano a velocità leggermente inferiori.
Questi sono i modelli originali che utilizzano la memoria principale e una CPU cablata:
* 2116A, clock a 10 MHz, tempo di ciclo di 1,6 microsecondi (µs). Normalmente fornito con 4Kword, espandibili a 8K internamente o 16K con un sistema di memoria esterno. Lo chassis include 16 slot I/O, anch'essi espandibili. Peso 230 libbre (104 kg). Introdotto nel novembre 1966. Ha segnato il primo utilizzo da parte di HP di circuiti integrati.
* 2116B, supportava una nuova opzione di espansione della memoria a 32K. Peso come sopra. Introdotto nel settembre 1968.
* 2116C, utilizzava un core più piccolo in modo che un modulo da 32K potesse essere installato nello chassis principale. Introdotto nell'ottobre 1970.
* 2115A, versione economica di breve durata che rimuoveva il DMA e alcune funzioni matematiche, aveva solo 8 slot I/O e aveva un clock a 8MHz con tempo di ciclo di 2.0 µs. Pesava 65 libbre (29,5 kg), necessitava di un ingombrante alimentatore esterno — peso totale: 160 libbre (72,6 kg). Introdotto nel novembre 1967.
* 2114A, 2115 ulteriormente semplificato con un nuovo pannello frontale e alimentatore interno. Interruttori tattili non meccanici sul pannello frontale. Peso 95 libbre (43,1 kg). Introdotto nell'ottobre 1968.
* 2114B, 2114A con un solo canale DMA e un nuovo pannello frontale con pulsanti illuminati. Introdotto nel novembre 1969.
* 2114C, come 2114B con una memoria massima di 16K. Introdotto nell'ottobre 1970.

### HP 2000

Nel novembre 1968 la società pubblicò il 2000A Timeshare System, in seguito noto come HP 2000/Access. Questo era basato sul 2116B (un 2116A con una memoria core espansa da 8K) che eseguiva HP Time-Shared BASIC e utilizzava un 2114 separato come terminal server. TS BASIC consentì la creazione di più account utente con un massimo di 16 utenti collegati contemporaneamente.
I modelli successivi, dalla B alla F, utilizzavano le versioni più recenti della CPU sottostante quando venivano introdotte. Alcuni modelli utilizzavano versioni di fascia bassa della stessa CPU del server terminal; il 2000F, ad esempio, utilizzava un 2100S come CPU principale e controller di archiviazione primario, mentre un 2100A fungeva da terminal server. I modelli B, C e F avevano un doppio processore. Nell'ultima versione, furono utilizzate la 2000F, una CPU 2100S e 2100A, con la 2100A collegata a un massimo di 32 terminali seriali tramite interfacce multiplexer seriali.
Nonostante i suoi costi relativamente elevati, il 2000F costava $ 105.000 nel 1974, equivalenti a $ 551,002 nel 2020, è stato il primo minicomputer a offrire il BASIC in modalità time-sharing che lo rese molto popolare nella prima metà degli anni '70.

### 2100

Durante gli anni '70, la gamma fu costantemente migliorata con nuovi modelli che rimasero compatibili con l'originale 2116 sia per il software che per le espansioni.
All'inizio del 1970, fu chiesto a Fred Allard, ex membro della Memory Core Division di Ampex, di progettare un nuovo sistema di memoria a nucleo magnetico per i sistemi piuttosto che continuare ad acquistarli da Ampex. Usando il più recente 18 mil core, derivato dal 22 mil, e utilizzando una singola linea di rilevamento/inibizione, si fu in grado di inserire 8 kW di memoria in una singola scheda di espansione. Questa fu installata a partire dai modelli 2116C.
Nel 1971, la 2100A aggiornata sostituì l'intera gamma 211x esistente. Il sistema complessivo era simile ai modelli precedenti e continuava a basarsi sulla memoria magnetica. Fisicamente, assomigliava di più al 2114, poiché l'alimentatore era integrato e aveva un'espansione interna limitata. Tuttavia, la CPU fu riprogettata con un microcodice che poteva essere programmato dall'utente, venne aggiunta la moltiplicazione e la divisione in hardware e si aggiunse un semplice sistema di protezione della memoria, che causava un'interruzione ad alta priorità quando attivato. Un controller DMA a due canali fornì un throughput più elevato. Era disponibile anche un'unità in virgola mobile opzionale. I pulsanti del pannello frontale erano illuminati da piccole lampade a incandescenza che si bruciavano con l'uso. L'uso di un alimentatore switching permise allo chassis di essere significativamente più piccolo rispetto ai modelli precedenti.
Nel 1972, HP consegnò 4.500 mini, diventando una delle più grandi aziende del mercato. Quell'anno furono fuse la Mountain View Division, che produceva unità a nastro magnetico, con la Cupertino Division per creare la Data Systems Division (DSD). In questo periodo, il progetto HP 3000 entrò in crisi e nel febbraio 1973 Packard inviò Paul Ely a rilevare la divisione. Le vendite della serie 2100 rimasero solide; il 6000º esemplare fu consegnato nell'agosto 1973, l'8000° nel febbraio 1974 e il 10.000° nel febbraio 1975. Furono dichiarati obsoleti nel 1978.
* 2100A, normalmente con 4 kW ma espandibile a 32 kW, 14 slot I/O espandibili a 45. Introdotto nel 1971.
* 2100S, un 2100A con inclusa l'opzione in virgola mobile, un generatore di base dei tempi per l'interfaccia con hardware dipendente dal tempo e una scheda di interfaccia per telescrivente. Introdotto nel 1973.

### 21MX

Nel 1972, la divisione decise di passare ai chip di memoria SRAM da 4kbit al posto della memoria magnetica. Questi erano circa due volte più veloci della memoria magnetica a basso costo e molto più piccoli, consentendo di costruire macchine da 32 kword in un fattore di forma simile a 2114. Al momento in cui venne presa questa decisione, le SRAM a 4 kbit non erano effettivamente disponibili, quindi inizialmente furono utilizzate macchine sperimentali che utilizzavano come base la serie 2100 con SRAM a 1 kbit. All'inizio sembrava che le memorie da 4k non sarebbero state disponibili prima del completamento del resto della macchina, quindi l'azienda sondò vari produttori e scoprì che alcuni stavano sviluppando a ritmi veloci moduli da 4k. In particolare, Intel, Mostek, Motorola e Texas Instruments promettevano che tali moduli sarebbero stati disponibili in quantità entro la fine del 1974.
L'utilizzo di tali memorie in un modulo di espansione come i sistemi precedenti significava che c'era spazio per molta più memoria, dell'ordine delle megaword. Tuttavia, l'utilizzo da parte della CPU di indirizzi a 15 bit limitava la dimensione a 32 Kword. Per soddisfare la richiesta di sistemi più grandi, HP sviluppò il "Dynamic Mapping System", o DMS. DMS ampliò il formato dell'indirizzo da 15 a 20 bit, consentendo un massimo di 1.048.576 parole, un miglioramento drammatica del sistema originale.
Questi cambiamenti portarono all'introduzione nel 1974 della prima delle macchine della serie 21MX. Le modifiche riguardarono il processore "21-M" e la memoria "21-X", poiché i sistemi di controllo della memoria erano separati dalla CPU per fornire flessibilità nel caso in cui le parti 4k scelte venissero cambiate durante la produzione. Ciò si rivelò utile poiché le macchine venivano fornite con memorie che utilizzavano parti Motorola o Texas Instruments e potevano essere mescolate in un'unica macchina, mentre il sistema a densità più elevata basato su parti Mostek a 16 pin poteva essere supportato sostituendo i normali 21 -X/2 controller con 21-X/1.
L'intera serie 2100 fu sostituita nel 1974 con la prima di queste macchine della serie 21MX. Utilizzando le parti a più alta densità, le nuove macchine poterono supportare fino a 1,2 MB nei modelli più grandi. Quando la CPU fu ulteriormente aggiornata nel 1976, i nuovi modelli diventarono la "21MX E-Series" e i modelli originali diventarono retroattivamente la "21MX M-Series". La differenza principale tra la M e la E era che la E usava un tempismo intelligente per migliorare la velocità a circa il doppio di quella della M. Una più ampia varietà di stili di macchine fu rilasciata come parte della serie 21MX, inclusi sistemi più piccoli con quattro slot e quelli più grandi con 9 o 14 slot.
La serie 21MX presentava un'unità di gestione della memoria e una memoria a semiconduttore espandibile a 1.048.576 parole (una megaparola). I display dei bit sui pulsanti del pannello anteriore utilizzavano piccoli diodi a emissione di luce rossa (LED), invece delle lampadine a incandescenza soggette a esaurimento utilizzate nelle versioni precedenti.
* serie M — 2105A, 2108A, 2112A (linea blu sul pannello frontale)
* E-series — 2109A, 2113A (linea gialla sul pannello frontale; E per esteso)
* serie F — 2111F, 2117F (linea rossa sul pannello anteriore; F per processore a virgola mobile in uno chassis 2U separato)
Il 21MX utilizzava il sistema operativo (OS) HP RTE (Real Time). I primi furono sistemi rack da 19 pollici delle dimensioni di un frigorifero con luci e interruttori sui pannelli frontali. Gli ultimi modelli avrebbero utilizzato un processore a 1 chip e si sarebbero adattati sotto una scrivania utilizzando un terminale di console anziché un pannello frontale.
I nuovi modelli della serie L e A erano compatibili con l'interfaccia HP-IB, ma come con tutti i sistemi HP in quel momento, le luci LED lampeggianti sono state rimosse dal pannello frontale. Nonostante le richieste dei clienti per avere funzionalità in tempo reale e gli sforzi di HP R&D di fornire una scheda in tempo reale opzionale, il sistema operativo RTE-A non era così performante nelle operazioni in tempo reale come RTE su un 21MX. Questa era una importante caratteristica, che rendeva difficile sostituire il 21MX visto che molte aziende utilizzavano operazioni in tempo reale per effettuare misurazioni, controllare i processi, accendere o spegnere pompe, riscaldatori, valvole, controllare motori, ecc.

### serie 1000

Alla fine del 1977 l'intera linea fu rinominata "HP 1000", diventando "HP 1000 M-Series" e "HP 1000 E-Series". L'anno successivo fu introdotta la "serie HP 1000 F", che era una serie E con un'unità in virgola mobile aggiunta. Nel 1978, il successo della linea spinse HP a diventare il quarto produttore più grande nel settore dei minicomputer, dietro solo a DEC, IBM e Data General.
Nel 1980 venne introdotta la serie "HP 1000 L". Questa utilizzava un nuovo processore basato sul processo di produzione di HP del circuito integrato basato su silicio-zaffiro (SOS). Inoltre, le schede di espansione erano dotate di processori propri che consentivano loro di accedere alla memoria principale e condurre input/output senza disturbare la CPU. Sebbene ciò rendesse per la prima volta le schede di espansione incompatibili con i modelli precedenti, le prestazioni complessive furono notevolmente migliorate. Questi modelli non avevano l'unità di gestione della memoria.
* CPU HP1000L silicio su zaffiro (SOS) e processori I/O
La serie L è stata, a sua volta, sostituita nel 1982 con la "serie HP 1000 A", che includeva un nuovo design della CPU "Lightning" che raggiunse 1 MIPS e la CPU "Magic" ancora più veloce a 3 MIP. Venne prodotta un'ampia varietà di modelli diversi, comprese le torri da scrivania e una varietà di sistemi di montaggio su rack di diverse dimensioni. Un modello A400 di fascia bassa fu introdotto nel 1986 e l'ultimo A990 di fascia alta venne distribuito nel 1990. Ciascuno indirizzabile fino a 32 MB di RAM.
* 1981:
** A600 — basato su processore bit-slice Am2900, 1 MIPS, 53k FLOPS Nome in codice: LIGHTNING
** A600+ — basato sul processore bit-slice Am2900, supporta la separazione del codice e dei dati, memoria ECC (correzione degli errori) opzionale.
* 1982:
** A700 — basato su processore AMD AM2903 bit-slice, processore hardware in virgola mobile opzionale, 1MIPS, 204kFLOPS, microprogrammazione, memoria ECC opzionale. Nome in codice: PHOENIX
* 1984:
** A900 — Fornisce percorso dati pipeline, 3MIPS, 500kFLOPS, memoria ECC. Nome in codice MAGIC
* 1986:
** A400 — prima CPU monoscheda comprensiva di 4 linee seriali; CPU fabbricata dalla tecnologia VLSI con il loro processo CMOS-40, 512 kB di RAM a bordo. Nome in codice Yellowstone
* 1992:
** A990 — La CPU implementata con due circuiti integrati specifici dell'applicazione (ASIC) CMOS a 208 pin, 298 istruzioni, supporta fino a 512 MB di memoria.
HP MiniComputers :
| Year | Machine | Microword Size | Microcode Size | Microword Types | ALU | Carry Generator | Micro Sequencer |
| 1973 | 2100S | 24 | 1K | 3 | 4×74181 | 74182 | Discrete |
| 1974 | 1000 M-Series | 24 | 4K | 4 | 4×74181 | 74182 | Discrete |
| 1976 | 1000 E-Series | 24 | 16K | 4 | 4×74S181 | 74S182 | Discrete |
| 1978 | 1000 F-Series | 24 | 16K | 4 | 4×74S181 | 74S182 | Discrete |
| 19?? | F-Series FPP | ? | ? | ? | 4×74S181 | 74S182 | Discrete |
| 1980 | 1000 L-Series | ? | ? | ? | Custom CMOS/SOS | Custom CMOS/SOS | Custom CMOS/SOS |
| 1981 | 1000 A600 | 56 | 4K | 5 | 4×2901B | 74S182 | 2910+2904 |
| 1982 | 1000 A700 | 32 | 16K | 11 | 4×2903 | 74S182 | 2911 |
| 1984 | 1000 A900 | 48 | 32K | 4 | 4×74S381 | 74S182 | Discrete |
| 1986 | 1000 A400 | 32 | 16K | 11 | Custom CMOS/SOS | Custom CMOS/SOS | Custom CMOS/SOS |
| 1975 | 13037 Controller | 24 | 4K | 7 | 4×74S181 | 74S182 | Discrete |
| 1980 | 13365 Controller | 24 | 3K | ? | 2×2901 | ? | |
| 1977 | 3000 Series I | 32 | 4K | 5 | 4×74181 | 74182 | Discrete |
| 1978 | 3000 Series III | 32 | 64K | 5 | 4×74S181 | 74S182 | Discrete |
| 1978 | 3000 Series 33 | 32 | 6K | ? | Custom CMOS/SOS | Custom CMOS/SOS | Custom CMOS/SOS |
| 198? | 3000 Series 48 | 48 | 12K | 2 | 4×74S181 | 74S182 | Discrete |
| 1982 | 3000 Series 64 | 64 | 8K | ? | 4× 100181 | 100179 | Discrete |
| 1985 | 3000 Series 37 | 64 | 10K | ? | Custom CMOS gate array | Custom CMOS gate array | Custom CMOS gate array |

### Ricadute

La serie HP 2000, introdotta nel 1969 e venduta fino a giugno 1978, è stata supportata fino al 1985.
Versioni di molti videogiochi BASIC sono state scritte o implementate in seguito su tale piattaforma. Notevole tra questi fu Star Trek di Mike Mayfield del 1971. (in realtà era stato scritto inizialmente per mainframe SDS Sigma 7, ma poi l'autore perse il codice sorgente e lo riscrisse da zero per HP 2000, e questa divenne la prima versione effettivamente pubblicata). La sua popolarità rese questa particolare versione del linguaggio BASIC una lingua franca e molti sorgenti BASIC furono forniti usando questa versione; la People's Computer Company pubblicò i propri programmi in formato HP 2000. I sistemi HP sono stati utilizzati anche per l'insegnamento della statistica, dell'analisi di regressione e dell'economia.

### XXI secolo

Le designazioni 2000 e 2100 sono state riutilizzate:
* HP 2000 fa riferimento a un computer portatile
* HP 2100 si riferisce a una stampante LaserJet

## Architettura
### Organizzazione della memoria

L'HP 2100 è stato progettato in un'epoca in cui la RAM sotto forma di memoria a nucleo magnetico stava scendendo dal costo di dollari a centesimi per bit, mentre l'implementazione dei registri del processore utilizzando transistor o l'integrazione su piccola scala rimaneva molto costosa. Ciò ha favorito i progetti con pochi registri e la maggior parte dello spazio di archiviazione nella RAM, che a sua volta ha spinto l'architettura del set di istruzioni (ISA) a prediligere istruzioni di trasferimento memoria-memoria o memoria-accumulatore. Questo concetto di base è stato ampiamente introdotto per la prima volta nell'innovativo PDP-8 a 12 bit, che ha poi generato molti progetti simili, come il 2100.
Nel 2100, gli indirizzi sono lunghi 15 bit, consentendo un totale di 32k parole di memoria a 16 bit (64kB in termini moderni). La più piccola unità di memoria indirizzabile è una parola a 16 bit, non ci sono istruzioni che recuperano un singolo byte a 8 bit. L'indirizzo è suddiviso in due parti, i 5 bit più significativi si riferiscono ad una delle 32 "pagine", mentre i 10 bit meno significativi sono lo "spostamento" che punta ad una singola parola all'interno della pagina di 1.024 parole. Con il sistema DMS della serie 21MX, i 5 bit superiori vengono invece utilizzati per selezionare uno dei 32 registri, ognuno dei quali contiene 12 bit. I 10 bit meno significativi del registro vengono quindi posti davanti allo spostamento di 10 bit originale per produrre un indirizzo di 20 bit. I due bit più significativi vengono utilizzati per implementare la protezione della memoria .
La maggior parte dell'elaborazione viene gestita nei due registri A e B, ciascuno 16 bit di larghezza. I registri sono accessibili anche nelle locazioni di memoria 0 e 1, rispettivamente. Ciò significa che si può caricare un valore in un accumulatore usando la normale operazione di salvataggio del registro, ad esempio, LDA 1 caricherà il valore del registro A nella locazione di memoria 1, copiando così il valore di A in B.
Oltre ai registri A e B, la CPU include anche il registro M che contiene l'indirizzo di memoria corrente e il registro T che contiene il valore a quell'indirizzo. Il registro P è utilizzato come program counter e incrementato automaticamente ad ogni istruzione, ma è anche utilizzato come indirizzo base per alcuni accessi alla memoria (vedi sotto) che vengono calcolati e posti in M. Ci sono anche due registri da 1 bit, Overflow ed Extend, in termini moderni, questi bit sarebbero considerati il registro di stato. Inoltre, è presente il registro S/D (Switch/Display) a 16 bit, utilizzato per l'ingresso e l'uscita dal pannello frontale.
Alcune aree di memoria sono riservate per scopi speciali, come le locazioni 0 e 1 utilizzate dagli accumulatori. Le parole aggiuntive nelle 64 locazioni più basse della memoria vengono utilizzate per l'accesso diretto alla memoria (DMA) e gli interrupt vettoriali (vedi sotto). Nei modelli successivi, le 64 parole più alte di memoria disponibile sono riservate per il boot loader .

### Istruzioni

Il set di istruzioni originale conteneva 68 o 70 istruzioni.
* Aritmetica — Aggiungi, Incrementa, E, O, Esclusivo o
* Controllo del programma — Salta, vai a, vai alla subroutine
* Sposta e ruota — Spostamenti aritmetici e logici, ruota a 16 e 17 bit
* Opzionale — Moltiplicazione, divisione, caricamento e memorizzazione a 32 bit, spostamenti a 32 bit
Tutte le 68 istruzioni nel set di istruzioni standard sono lunghe 16 bit. La maggior parte viene eseguita in un ciclo di memoria, o 16 cicli di clock, sebbene l'indirizzamento indiretto e l'ISZ possano utilizzare fino a 36 cicli. La ramificazione condizionale viene eseguita con un'istruzione condizionale skip-over-one, che normalmente è un'istruzione di salto . Non c'è stack per le subroutine; invece, la prima posizione di memoria della routine è riservata e l'indirizzo di ritorno scritto in quella posizione dall'istruzione JSB Ciò significa che non esiste un supporto interno per il codice rientrante; il supporto per questo deve essere aggiunto tramite uno stack implementato dall'utente.
Ci sono tre stili base di istruzioni nell'ISA; riferimenti di memoria, riferimenti di registro e input/output. Alcuni modelli hanno esteso l'ISA con hardware aggiuntivo, aggiungendo, ad esempio, istruzioni in virgola mobile o ulteriori istruzioni matematiche e di memoria intere, ma queste rientrerebbero nelle stesse tre categorie di base.
Le istruzioni di memoria utilizzano quattro bit per l'istruzione e altri due per flag speciali, per un totale di sei bit della parola a 16 bit. Questo lascia spazio per un indirizzo a 10 bit nell'istruzione, memorizzato nei bit meno significativi (LSB), da 0 a 9. Se il bit 15 è impostato, questo indica l'indirizzamento "indiretto" anziché "diretto". In modalità diretta, l'indirizzo nell'istruzione è l'indirizzo dell'operando, mentre in modalità indiretta, l'indirizzo era un puntatore a un'altra posizione di memoria che conteneva l'indirizzo dell'operando. Si potrebbe anche impostare il bit 15 su quella posizione, consentendo all'indiretto di essere di qualsiasi profondità richiesta, terminando quando una delle posizioni ha uno 0 nel bit 15.
Oltre alla modalità Diretto/Indiretto, il bit 10 dell'istruzione controlla il flag Z/C. Quando è impostato su 0, significa che i cinque bit superiori dell'indirizzo erano zero mentre i 10 inferiori erano il valore nell'istruzione. Ciò consente un rapido accesso alla pagina Z(ero), le prime 1.024 parole di memoria. Quando è impostato a 1, l'indirizzo è costruito combinando i 10 bit dell'istruzione con i primi 5 bit del registro P, la pagina C(corrente) della memoria, consentendo l'accesso alla memoria come 32 pagine di 1024 parole. Così 2.048 parole possono essere indirizzate in un dato momento; Di questi 1.024 all'interno della pagina zero e altri 1.024 all'interno della stessa pagina dell'istruzione che esegue il riferimento.
Le istruzioni di registro non richiedono un indirizzo e quindi hanno più bit liberi con cui lavorare. Questo è usato per impacchettare quattro o otto istruzioni in una singola parola di memoria, che, usata correttamente, può velocizzare notevolmente le operazioni. Sono incluse un totale di 39 operazioni di registro, che sono suddivise in istruzioni di spostamento e rotazione e le istruzioni di modifica e salto, indicate dal bit 10, mentre il bit 11 indica se questo viene applicato al registro A o B.
Ci sono due classi generali di istruzioni di registro, il gruppo shift-and-rotate e l'alter-and-skip. Il primo è utilizzato per la manipolazione bit a bit di base dei valori in un registro e può avere fino a quattro istruzioni per parola, sebbene le due istruzioni nel mezzo siano sempre CLE,SLA/B (cancella E, salta se A/B è zero). Il secondo gruppo ha otto istruzioni che eseguono incrementi sui registri e quindi un ramo condizionale. Questi sono normalmente usati per implementare i loop.

### I/O e interrupt

Le istruzioni di Input/Output comunicano normalmente attraverso gli accumulatori. Il formato dell'istruzione inizia con i bit "1000" nei bit più significativi, seguito da un singolo bit che indica quale registro utilizzare (A=0, B=1), seguito da un "1", il bit del flag H/C, e quindi tre bit per l'istruzione e i restanti sei bit per l'ID del dispositivo I/O, o il canale, consentendo fino a 64 dispositivi. Alcuni numeri di dispositivo vengono utilizzati dal sistema stesso.
L'I/O viene avviato azzerando il bit Flag con STF e quindi impostando il bit C utilizzando STC . L'hardware nota questo schema e inizia il suo funzionamento. Ad operazione completata, il dispositivo imposta il bit di Flag e quindi il programma carica i dati risultanti dalla scheda tramite l' LI*, oppure li invia alla scheda con OT* .
Il trasferimento effettivo dei dati viene normalmente effettuato utilizzando il sistema di interruzione. Le locazioni di memoria da 4 a 63 (decimale) contengono gli indirizzi delle routine a cui saltare quando viene attivato un interrupt, fornendo 60 livelli di interrupt. posizioni da 4 a 7 sono cablate per guasti di alimentazione, errori di controllo di parità e, nei modelli successivi, errori di protezione della memoria. Le posizioni 8 e successive sono vettori di interrupt accessibili all'utente, mappati su un canale I/O e disposti in ordine di priorità. Quindi, se il dispositivo I/O 13 ha prodotto un'interruzione, la CPU salta alla posizione nella posizione di memoria 13, ma solo se non è mascherata da un'interruzione con priorità più alta, da 1 a 12.
Un'altra caratteristica chiave della serie 2100 è un controller di accesso diretto alla memoria separato che utilizza la sottrazione del ciclo per accedere alla memoria quando la CPU non la utilizza, ad esempio durante i periodi in cui esegue calcoli interni. Utilizzando questa funzione, è possibile completare lunghi processi di I/O mentre la CPU lavora su altri problemi. Il sistema viene configurato inviando un'istruzione al controller DMA utilizzando i comandi di I/O; il controller DMA è il canale 6, e viene inizialmente inviata un'istruzione contenente il numero del dispositivo I/O che vuole utilizzare il DMA, sia esso un ingresso (scrittura in memoria dal dispositivo) o un'uscita (lettura dalla memoria al dispositivo), la posizione iniziale in memoria per i dati e il numero di parole. Questo codice di configurazione viene spesso installato in uno dei vettori di interruzione, automatizzando il processo. Il DMS ha tabelle separate per la CPU e il sistema DMA, quindi DMA può caricare i dati in parti separate della memoria estesa.

### Programmazione

HP ha fornito un assemblatore a tre passaggi per la macchina, utilizzando un formato delimitato da colonne. La prima area, a sinistra della riga di codice, è l'etichetta, che deve iniziare nella colonna 1 se presente. Segue il mnemonico dell'istruzione, quindi i parametri. Il resto della riga può essere utilizzato per un commento. L'assemblatore consente di scrivere direttamente le espressioni matematiche di base, invece di utilizzare i mnemonici, e include anche una serie di pseudo-istruzioni come ORG per impostare l'indirizzo di base del programma.
Oltre all'assemblatore e al linker associato, le macchine inizialmente venivano fornite con un compilatore FORTRAN 66, il sistema operativo e i driver di I/O. Nel tempo, sono state aggiunte altre lingue tra cui BASIC, ALGOL, FORTRAN IV e FORTRAN 77 .
HP portò le implementazioni di AGL sulla piattaforma, che aggiunse comandi al proprio BASIC per produrre la grafica sui propri terminali grafici e plotter. Un'espansione simile nel loro FORTRAN è stata chiamata GRAPHICS/1000.

### Sistemi operativi

I 2100 erano normalmente utilizzati con il sistema operativo "Real Time Executive", o RTE in breve. Sono state rilasciate diverse versioni di RTE per le diverse versioni della macchina; RTE-II per il 2114-2116, RTE-III per il 2100, RTE-IV per la serie 21MX e RTE-A per la serie "A".
La shell del sistema operativo, anche alla fine degli anni '70, era molto primitiva, con un file system a livello singolo, File Manager o FMGR. Ad esempio, il comando per eseguire un compilatore FORTRAN sarebbe il seguente:
il che significa eseguire il programma f77, utilizzando caratteri speciali per distinguere tra file sorgente, oggetto e file eseguibili.
L'HP 1000 era anche uno dei pochi minicomputer che limitava i nomi dei file a soli cinque caratteri, anziché i sei comuni all'epoca, il che rendeva difficile il porting e persino la scrittura di programmi. Il successivo RTE-A per HP 1000 fornì una struttura di directory convenzionale con nomi di file 16.4 e ha reso il comando ru opzionale.
TODS (Test Oriented Disk System) fu sviluppato da un tecnico presso il centro di riparazione schede HP per migliorare i tempi di consegna nel centro. Fu utilizzato per caricare la diagnostica da un archivio centrale anziché caricare singoli nastri di carta. TODS fu utilizzato anche sulle serie HP da 2116 a 21MX-F per sistemi di test per missili come Phoenix (9206B), Harpoon (9500D-354), Tomahawk e molti altri. I primi set di test erano il 9500A, che si è evoluto nel 9500D, seguito dall'ATS (Automated Test System); specifici sistemi di test HP, come il set di test dei componenti di lancio Minuteman 9500D-A46 e il set di test dei componenti di lancio ATS-E35 Peacekeeper/Minuteman; l'HP 8580/8542 Microwave ANA/ASA (Automatic Network Analyzer/Automatic Spectrum Analyzer) funzionava su TODS; e il set di prova del transponder a microonde TDRSS utilizzava TODS ed era un sistema molto grande.
C'era anche MTOS (Magnetic Tape Operating System) simile a TODS.

## Derivati e varianti

I computer desktop HP 9810, 9820 e 9830 utilizzano una versione TTL lenta e serializzata della CPU 2116, sebbene alla fine non abbiano utilizzato alcun sistema operativo o software applicativo, affidandosi invece a interpreti basati su ROM di facile utilizzo, come BASIC, che funzionano quando sono accesi e integrano tastiere e display anziché dischi o terminali standard. Nel 1975, HP introdusse il BPC, uno dei primi microprocessori a 16 bit al mondo, utilizzando il processo NMOS-II di HP. Il BPC era solitamente confezionato in un modulo ibrido ceramico con i chip EMC e IOC, che aggiungevano istruzioni matematiche e I/O estese. L'ibrido venne sviluppato come il cuore del nuovo computer desktop 9825. La successiva workstation 9845 aggiunse un chip MMU. Questi furono i precursori dei personal computer e delle postazioni di lavoro tecniche.
Le principali differenze tra l'architettura originale 2116 e il microprocessore BPC sono una struttura I/O completamente ridisegnata, la rimozione di più livelli di indirizzamento indiretto e la fornitura di un registro stack per la chiamata e il ritorno della subroutine. L'eliminazione dell'indiretto multiplo rese disponibile un bit aggiuntivo in una parola di memoria contenente un indirizzo indiretto, consentendo di aumentare la capacità di memoria massima da 32K parole a 16 bit a 64K. Il BPC aggiunse anche un input che consentiva alla "pagina corrente" di essere relativa alla posizione dell'istruzione corrente, piuttosto che a una pagina allineata a potenza di due.
Il BPC fu utilizzato in un'ampia gamma di computer, periferiche e apparecchiature di test HP, fino a quando non ne fu interrotta la produzione alla fine degli anni '80.
La Polonia produsse un clone HP 2114B dal 1973. I cloni polacchi erano chiamatii MKJ-28 (prototipo, 1973), SMC-3 (produzione pilota, 17 macchine, 1975-1977) e PRS-4 (produzione in serie di oltre 150 macchine, 1978-1987).
La Cecoslovacchia produsse i propri cloni compatibili con HP 1000, designati ADT4000 (4300, 4500, 4700, 4900). Più di 1000 unità furono consegnate dai fornitori Aritma Prague (sviluppo), ZPA Čakovice e ZPA Trutnov tra il 1973 e il 1990. Questi computer servivano nelle centrali elettriche, comprese quelle nucleari, in altre industrie, nell'esercito, nelle università, ecc. per la loro alta affidabilità e le caratteristiche in tempo reale. I sistemi operativi erano DOS/ADT (diverse versioni) e Unix. Il più vecchio ibrido ADT7000 (1974) era composto da parti digitali ADT4000 e analogiche ADT3000, ma solo la parte digitale era interessante per i clienti. L'ADT4316 (1976) aveva 16K parole di memoria a nucleo di ferrite, l'ADT4500 (1978) fino a 4M parole di RAM a semiconduttore. L'ADT 4900 fu progettato come computer a scheda singola, ma la sua produzione di massa non iniziò. L'esercito popolare cecoslovacco utilizzava minicomputer mobili MOMI 1 e MOMI 2 basati su ADT, integrati in un container trasportato dal camion Tatra 148.