P101 Manuale Generale
P101 Manuale Generale
Sept 2017)
Questo manuale presenta le caratteristiche e la
logica operativa del calcolatore elettronico da
tavolo Olivetti Programma 101.
Esso contiene la descrizione del calcolatore, la
spiegazione del linguaggio di programmazione e
l'illustrazione delle procedure relative al suo im-
piego.
Descrizione
Memoria 9
Dispositivi esterni e tastiera 11
Programmazione
Funzioni aritmetiche 14
Funzioni di trasferimento 17
Funzioni logiche 18
Funzioni di servizio 20
Costanti 20
Registri divisi 21
Predisposizione dei decimali 22
Norme operative
Registrazione dei programmi 23
Stampa dei programmi 25
Lettura dei programmi 26
Esecuzione dei programmi 26
Scheda parziale 27
Istruzione RS 28
Uso manuale 29
Controlli automatici 29
Esempio di applicazione
Esecuzione manuale 31
Stesura del programma 32
Tecniche di programmazione
Arrotondamento per difetto o per eccesso 33
Uso promiscuo dei registri F, E, D
per memorizzazione dati e istruzioni 35
Generazione di costanti 36
Programmazione di un contatore 36
Registrazione di più dati in un unico registro 37
Tecnica di rotazione dei registri 38
Programmi su più schede 39
Appendice
Sostituzione del nastro 40
Sostituzione del rotolo di carta 40
Dimensioni ed installazione 41
Schede programma 41
Indice analitico 43
MEMORIA
stra cifre.
I registri (interi o divisi) possono anche
contenere dati e istruzioni in proporzioni
differenti, come illustrato in seguito trat-
tando dell'uso promiscuo dei registri per
dati e istruzioni.
2. Segnalazione di errore: la luce rossa segnala l’interruzione del calcolo per operazione o pre-
disposizione errata.
4. Introduttore per la scheda magnetica dotato di apposito dispositivo per il trascinamento au-
tomatico della scheda.
6. Scheda magnetica di plastica ricoperta di ossido di ferrite con 2 piste per la registrazione dei
programmi, in posizione di introduzione e di estrazione.
8. Comando libera-carta.
9. Zona di stampa.
10. Tastiera.
11. Posizione di uscita della scheda magnetica: dopo essere stata letta o registrata, la scheda
si arresta nella posizione di uscita da dove può essere estratta.
Tastiera numerica ridotta: 10 tasti per l'impostazione dei dati, più i tasti di virgola decimale e
di segno algebrico.
Tasti di indirizzo per operare sui registri; il registro M non ha il corrispondente tasto di indirizzo
in quanto riceve automaticamente i dati impostati.
Comando «stampa programma»: inserito, consente la stampa del programma contenuto nella
memoria del calcolatore.
Annullatore generale: annulla tutti i dati e le istruzioni contenuti nella memoria del calcolatore.
Indicatore del decimali: può essere predisposto per ottenere da 0 a 15 decimali nei risultati
delle operazioni e nella stampa del contenuto dei registri.
Sblocco della tastiera: libera la tastiera dal bloccaggio provocato dalla pressione contempora-
nea di due o più tasti.
L'Olivetti Programma 101 opera automaticamente su programma, esegue cioè una serie di i-
struzioni ordinate in sequenza logica in base ai calcoli da eseguire.
Il programma viene registrato in memoria a partire dalla prima posizione dei registri program-
ma e può estendersi sequenzialmente anche ai registri F, E, D, fino ad un massimo di 120 i-
struzioni.
Ogni istruzione occupa in memoria una sola posizione di ampiezza costante e viene codificata
con un numero variabile di simboli direttamente corrispondenti alla nomenclatura in tastiera; i
simboli costituiti da lettere minuscole si ottengono dalla tastiera usando la corrispondente ma-
iuscola seguita dal tasto «/».
Dalla memoria il programma può inoltre essere registrato su scheda magnetica. Ciò consente
la conservazione permanente dei programmi su un supporto esterno al calcolatore e la loro
immediata reintroduzione in memoria ogniqualvolta si desideri utiizzarli.
La scheda magnetica dispone di due piste di registrazione, ciascuna delle quali può contenere
fino a 120 istruzioni di programma oppure istruzioni e dati numerici.
Le istruzioni del programma possono essere classificate: in base alle funzioni che comandano:
Funzioni di trasferimento: trasferimenti semplici e scambi dei contenuti dei registri per memo-
rizzare dati, risultati, costanti.
FUNZIONI ARITMETICHE
Risultato
Istruzione Fase 1 Fase 2 richiesto completo
+ A+M A R
R+ R M A+M A R
A+ A M A+M A R
b+ b M A+M A R
B+ B M A+M A R
c+ c M A+M A R
C+ C M A+M A R
d+ d M A+M A R
D+ D M A+M A R
e+ e M A+M A R
E+ E M A+M A R
f+ f M A+M A R
F+ F M A+M A R
Esempio decimali 2
M A R B
prima 5.4321 6,18 9 8.4397
B+
dopo 8.4397 14,61 14,6197 8.4397
SOTTRAZIONE -
Un'istruzione contenente la funzione «-» fa eseguire la sottrazione algebrica del contenuto del
registro selezionato da quello del registro A.
Il registro M non richiede una selezione esplicita. L'istruzione è eseguita in due fasi:
1a fase: scrittura in M della cifra contenuta nel registro selezionato.
2a fase: sottrazione del contenuto del registro M da quello di A.
Il risultato, dopo l'operazione, è nel registro A, con il numero di decimali predisposto.
Il registro R contiene il risultato aritmeticamente completo.
Il registro M conserva il suo contenuto.
Risultato
Istruzione Fase 1 Fase 2 richiesto completo
- A-M A R
R- R M A-M A R
A- A M A-M A R
b- b M A-M A R
B- B M A-M A R
c- c M A-M A R
C- C M A-M A R
d- d M A-M A R
D- D M A-M A R
Esempio decimali 2
M A R B
prima 5.4321 8,4397 9 6,18
B-
dopo 6.18 2,25 2,2597 6,18
(pag. 16)
MOLTIPLICAZIONE x
Un'istruzione contenente la funzione « x » fa eseguire la moltiplicazione tra il contenuto del re-
gistro A e quello del registro selezionato. Il risultato è ottenuto con il suo segno algebrico.
Il registro M non richiede una selezione esplicita. L'istruzione è eseguita in due fasi:
1a fase: scrittura in M della cifra contenuta nel registro selezionato.
2a fase: moltiplicazione del contenuto di A per quello del registro M.
Il risultato, dopo l'operazione, è nel registro A, con il numero di decimali predisposto.
Il registro R contiene il risultato completo.
Il registro M conserva il suo contenuto.
Risultato
Istruzione Fase 1 Fase 2 richiesto completo
x AxM A R
Rx R M AxM A R
Ax A M AxM A R
bx b M AxM A R
Bx B M AxM A R
cx c M AxM A R
Cx C M AxM A R
dx d M AxM A R
Dx D M AxM A R
ex e M AxM A R
Ex E M AxM A R
fx f M AxM A R
Fx F M AxM A R
Esempio decimali 2
M A R B
prima 5.4321 6,18 9 8,4397
B-
dopo 8,4397 52,15 52,157346 8,4397
DIVISIONE :
Un'istruzione contenente la funzione « : » fa eseguire la divisione del contenuto del registro A
per il contenuto del registro selezionato. Il risultato è ottenuto con il suo segno algebrico.
Il registro M non richiede una selezione esplicita. L'istruzione e eseguita in due fasi:
1 a fase: scrittura in M della cifra contenuta nel registro selezionato.
2 a fase: divisione del contenuto di A per quello del registro M.
Il risultato, dopo l'operazione, è nel registro A, con il numero di decimali predisposto.
Il registro R contiene il resto della divisione.
Il registro M conserva il suo contenuto.
: A:M A R
R: R M A:M A R
A: A M A:M A R
b: b M A:M A R
B: B M A:M A R
c: c M A:M A R
C: C M A:M A R
d: d M A:M A R
D: D M A:M A R
e: e M A:M A R
E: E M A:M A R
f: f M A:M A R
F: F M A:M A R
Esempio decimali 2
M A R B
prima 5.4321 15,3786 9 3,25
B-
dopo 3,25 4,73 0,0061 3,25
(pag. 17)
RADICE QUADRATA √
Un'istruzione contenente la funzione «√» fa eseguire l'estrazione della radice quadrata del va-
lore assoluto del contenuto del registro selezionato.
Il registro M non richiede una selezione esplicita. L'istruzione è eseguita in due fasi:
1 a fase: scrittura in A della cifra contenuta nel registro selezlonato.
2 a fase: estrazione della radice quadrata del valore assoluto del contenuto di A.
Il risultato, dopo l'operazione, è nel registro A, con il numero di decimali predisposto.
Il registro R contiene un dato non significativo.
Il registro M contiene il doppio della radice.
Risultato
Istruzione Fase 1 Fase 2 Richiesto
√ √A A
R√ R M √A A
A√ A M √A A
b√ b M √A A
B√ B M √A A
c√ c M √A A
C√ C M √A A
d√ d M √A A
D√ D M √A A
e√ e M √A A
E√ E M √A A
f√ f M √A A
F√ F M √A A
Esempio decimali 2
M A R B
prima 5,28 9,24 4 25,3214
B√
dopo 10,06 5,03 - 25,3214
Esempio decimali 2
M A R B
FUNZIONI DI TRASFERIMENTO
TRASFERIMENTO DA M
Istruzione Risultato
↑ non opera
R↑ non opera
a↑ costanti in M (vedi pag. 21)
A↑ codifica costanti (vedi pag. 21)
b↑ M b
B↑ M B
c↑ M c
C↑ M C
d↑ M d
D↑ M D
e↑ M e
E↑ M E
f↑ M f
F↑ M F
Esempio
M A R B
(pag. 18)
TRASFERIMENTO IN A
Istruzione Risultato
↓ M A
R↓ R A
A↓ non opera
b↓ b A
B↓ B A
Esempio
M A R B
SCAMBIO CON A ↕
Un'istruzione contenente la funzione «↕» comanda lo scambio del contenuto di A con quello
del registro selezionato.
Istruzione Risultato
↕ M↓A
R↕ (opera come R↓A) R A
A↕ valore assoluto
b↕ b↔A
B↕ B↔A
c↕ c↔A
C↕ C↔A
d↕ d↔A
D↕ D↔A
e↕ e↔A
E↕ E↔A
f↕ f↔A
F↕ F↔A
Esempio
M A R B
PARTE DECIMALE DI A IN M /↕
L'istruzione /↕ fa scrivere in M la parte decimale del contenuto di A, che non viene modificato.
Esempio
M A R B
1. creare dei «cicli» che permettono di ripetere l’esecuzione di una sequenza di calcolo nel
corso di un programma
2. scegliere programmi o sottoprogrammi diversi, a discrezione dell'operatore
3. scegliere programmi o sottoprogrammi diversi, a seconda del valore di un dato, in base
ad una scelta automatica del calcolatore.
• Salti incondizionati
• Salti incondizionati
(pag. 19)
Ogni funzione logica richiede l'uso di 2 istruzioni:
Per raggiungere un unico punto di destinazione da diversi punti di origine, viene utilizzata per
ogni punto la stessa istruzione di origine.
Ogni istruzione di destinazione non può essere; utilizzata che una sola volta per ciascun pro-
gramma. Dopo ogni istruzione di origine la ricerca dell'istruzione di destinazione corrisponden-
te comincia a partire dall'istruzione n. 1 del programma. Se per errore sono state poste due o
più istruzioni di destinazione uguali, il calcolatore si porterà sempre sulla prima ignorando le
successive.
SALTI INCONDIZIONATI
Origine Destinazione
V AV
W AW
Y AY
Z AZ
CV BV
CW BW
CY BY
CZ BZ
DV EV
DW EW
DY EY
DZ EZ
RV FV
RW FW
RY FY
RZ FZ
∆ A∆
C∆ B∆ ∆ = V, W, Y, Z
D∆ E∆
R∆ F∆
SALTI CONDIZIONATI
Origine Destinazione
/V aV
/W aW
/Y aY
/Z aZ
cV bV
cW bW
cY bY
cZ bZ
dV eV
dW eW
dY eY
dZ eZ
rV fV
rW fW
rY fY
rZ fZ
Per rappresentare le suddette coppie di istruzioni si può adottare la seguente forma abbrevia-
ta:
/∆ a∆
c∆ b∆ ∆ = V, W, Y, Z
d∆ e∆
r∆ f∆
AZZERAMENTO *
Un'istruzione contenente la funzione «*» comanda l'azzeramento del registro selezionato.
Questa istruzione non opera su M ed R.
Esempio
M A R B
STAMPA
Un'istruzione contenente la funzione « » comanda la stampa del contenuto del registro sele-
zionato.
STOP S
L'istruzione «S» arresta lo svolgimento del programma, riattiva la tastiera, e permette:
Per riavviare il programma occorre premere il tasto «S» oppure il tasto di selezione di un sot-
toprogramma.
INTERLINEA /
L'istruzione «/ » fa avanzare di un'interlinea senza stampa la striscia di carta.
L'interlinea avviene automaticamente dopo ogni operazione dl stampa.
COSTANTI
Il calcolatore Olivetti Programma 101 può registrare su scheda magnetica, oltre alle istruzioni
anche dati numerici e costanti utilizzati nel corso di un programma. La registrazione di costanti
su scheda può avvenire in 2 modi:
Quando dei dati numerici siano stati introdotti nei registri D, d, E, e, F, f, essi possono essere
direttamente registrati su scheda magnetica, insieme alle istruzioni di programma. (pag. 21)
Questo metodo consente di registrare dati numerici sotto forma di istruzioni di programma.
Ogni cifra è rappresentata da un'istruzione; queste istruzioni - compilate automaticamente nel
modo descritto più avanti - sono precedute, nel programma, dall'istruzione «a », che serve a
qualificarle come dati numerici, anziché come funzioni operative.
Quando il programma viene eseguito il dato numerico è formato nel registro M e può quindi
essere direttamente utilizzato per le successive operazioni previste dal programma.
Questa metodo è generalmente usato per la registrazione di dati numerici composti da poche
cifre e/o da utilizzare una sola volta nel corso dello stesso ciclo operativo.
Per la compilazione automatica delle istruzioni corrispondenti ai dati numerici da registrare, si
opera come segue:
Esempio
impostando 3,14 A
il calcolatore scrive R+
R
d↕
La sequenza di istruzioni così compilata va inserita nel programma, alla posizione prevista,
preceduta ogni volta dall'istruzione «a ».
Esempio
M A R B
prima 25 15 15,25 33
a
R+
R
d↕
dopo 3,14 15 15,25 33
REGISTRI DIVISI
Esempio
Nella 1a fase di un programma il registro B è impiegato (B, b).
Al termine di tale fase, l'istruzione b * azzera la parte sinistra del registro consentendo, nella
2a fase l'uso del registro intero.
Al termine della 2a fase, l'istruzione B * azzera l'intero registro consentendo nuovamente l'uso
del registro diviso per la 1a fase.
E’ possibile ottenere il numero di decimali desiderato nel risultato delle operazioni e nella
stampa del contenuto dei registri, predisponendo l'indicatore dei decimali.
OPERAZIONI ARITMETICHE
Divisione
Dopo l'operazione, il registro A contiene il quoziente con il numero di decimali corrispondente
alla posizione dell'indicatore.
Il registro R contiene il resto della divisione.
Radice quadrata
Dopo l'operazione, il registro A contiene il risultato con il numero di decimali corrispondente al-
la posizione dell'indicatore.
Il registro R contiene un dato non significativo.
TRASFERIMENTI
La predisposizione dei decimali non opera quando i dati numerici vengono trasferiti da un regi-
stro a un'altro.
INTRODUZIONE DA TASTIERA
I dati introdotti da tastiera, premendo il tasto «S», o qualsiasi tasto operativo di funzione, sono
stampati esattamente come vengono impostati, indipendentemente dalla posizione dell'indica-
tore dei decimali; la virgola decimale si imposta nella sua naturale posizione, con il tasto appo-
sito.
Il contenuto dei registri, sia interi che divisi, viene stampato con il numero di decimali corri-
spondente alla posizione dell'indicatore; fa eccezione il registro R, il cui contenuto è stampato
nella sua struttura completa, indipendentemente dalla posizione dell'indicatore.
Esempio
Per eseguire un programma, registrato in memoria direttamente dalla tastiera o letto dalla
scheda magnetica, si opera nel seguente modo:
derata.
(pag. 27)
Lo svolgimento del programma avviene secon-
do quanto previsto dalle relative norme opera-
tive. La tastiera rimane bloccata automatica-
mente e si libera ad ogni istruzione di Stop per
permettere l'introduzione dei dati. Lo svolgi-
mento del programma riprende abbassando il
tasto «S».
E’ possibile registrare su scheda magnetica «parziale» istruzioni e/o dati numerici destinati ad
essere introdotti esclusivamente nei registri E, D, senza alterare il contenuto degli altri registri.
Tale procedura consente di:
2. introdurre la scheda magnetica; il contenuto dei due registri E, D viene registrato sulla
scheda.
ISTRUZIONE RS RS
Questa istruzione comanda il trasferimento del contenuto del registro D in R e viceversa; essa
ha caratteristiche speciali e può essere utilizzata nei seguenti due casi:
1. Programmi registrati su più schede, per conservare temporaneamente nel registro R dati o
risultati parziali contenuti nel registro D (D, d). Tale registro infatti, unitamente ai registri E ed
F, viene automaticamente azzerato non appena ha inizio la lettura di una scheda. Con l'istru-
Esempio
situazione a fine scheda
M A R b B c C d D
13 11 20 17 19 8 3 31
istruzione RS
M A R b B c C d D
13 11 3 31 20 17 19 8
M A R b B c C d D
13 11 20 17 19 8 3 31
2. Programmi che usano il registro D, per istruzioni nella parte iniziale del programma e, suc-
cessivamente, per contenere dati numerici.
Un sistema interno di controlli impedisce che un registro contenente istruzioni venga usato per
accogliere dati.
Mediante le istruzioni R * ed RS, nell'ordine, è possibile liberare il registro D dalla parte di pro-
gramma in esso contenuta, dopo che è stata eseguita; il registro D può quindi essere utilizzato
nel successivo corso del programma per contenere dati numerici.
Le istruzioni R * ed RS vanno situate nel programma in posizione tale da essere eseguite dopo
le istruzioni contenute in D.
Si può in tal modo ottenere un programma di 120 istruzioni e, al tempo stesso, fare uso del
registro D come registro numerico.
Per ripetere il programma è necessaria ogni volta la lettura della scheda magnetica.
(pag. 29)
Esempi inizio fase 1
Istruzioni
1 AY Registri: 1,2, F, E
2 R*
3 RS
.
.
.
96 V
97 AV Registro: D
.
.
Istruzioni
1 AY Registri: 1,2, F, E
2 R*
3 RS
.
.
.
96 V
USO MANUALE
Il calcolatore può anche essere usato manualmente. Le diverse funzioni vengono comandate
premendo i tasti operativi nelle stesse combinazioni e con le stesse regole previste per la pro-
grammazione, con le seguenti eccezioni:
1. l'uso del tasto «S» non è mai richiesto, in quanto la tastiera, alla fine di ogni singola
operazione, è libera per ricevere l'impostazione di nuovi dati (pag. 29)
2. l'uso dei tasti di selezione non è mai richiesto data l'assenza di un programma
CONTROLLI AUTOMATICI
a) per indicare che la scheda magnetica è stata letta in modo non corretto o non è stata letta,
perchè danneggiata o introdotta irregolarmente. In questo caso bisogna ripetere l’operazione,
dopo aver verificato lo stato della scheda
b) «fuori capacità», derivante dall'esecuzione di operazioni (il contenuto originale dei registri A
ed R viene alterato o distrutto)
In casa di accensione del segnalatore di errore, è possibile ricercarne la causa nei seguenti
modi:
La soluzione di ogni problema può essere ottenuta sia con l'impiego programmato del calcola-
tore che con il suo uso manuale.
p + q = n1
p – q = n2
p x q = n3
n1 + n2 + n3 = N
se N > 0, calcolare √ N
se N ≤ 0, calcolare p : q
ESECUZIONE MANUALE
Introdurre p in b.
Introdurre q in B.
Trasferire p in A.
Sommare p + q = n1.
Stampa del risultato in A.
Scambio tra C cd A.
Trasferire p in A.
Sottrarre p – q = n2.
Stampa del risultato in A.
Accumulo dei risultati.
Scambio tra C cd A.
Trasferire p in A.
Moltiplicare p x q = n3.
Stampa del prodotto.
Accumulo dei risultati = N.
Stampa dell'accumulo in A.
Se positivo
Radice quadrata dell'accumulo N.
Stampa del risultato.
Se negativo
Trasferire p in A.
Dividere p : q.
Stampa del quoziente.
Poiché le istruzioni per l'impiego manuale o a programma della macchina sono eguali (salvo le
istruzioni di salto e di stop per l'introduzione delle variabili), per verificare un nuovo program-
ma basta eseguire manualmente le istruzioni, controllando dopo ogni operazione il contenuto
dei registri.
Alcune espressioni matematiche di uso frequente possono essere facilmente risolte con le sot-
toelencate istruzioni (supponendo che il valore « a» ≠ 0 si trovi già nel registro A):
L'arrotondamento per difetto o per eccesso (a seconda della posizione dell'indicatore dei deci-
mali) si ottiene in addizione, sottrazione o moltiplicazione con la tecnica indicata nelle tabelle
che seguono. Si supponga che un determinato valore sia conservato nel registro B ed un se-
condo valore nel registro C.
(pag. 34)
Contenuto del registro d Arrotondamento
0,2 a5
0,1 a 10
0.01 a 100
L'arrotondamento per difetto o per eccesso dell'ultima cifra richiesta (secondo il posizionamen-
to dell'indicatore dei decimali) si ottiene in divisione con la seguente tecnica:
Se il divisore si trova nel registro B e il dividendo nel registro C, le istruzioni saranno le se-
guenti:
Se il divisore si trova nel registro B e il dividendo nel registro A, le istruzioni saranno le se-
guenti:
Questa sequenza richiede 10 istruzioni ed è consigliabile quando non vi sia sufficiente disponi-
bilità nei registri di deposito per contenere il dividendo. Per ottenere l'arrotondamento dopo
una moltiplicazione o divisione con un numero di decimali inferiori a quello predisposto con il
posizionamento dell'indicatore (ad esempio, l'arrotondamento a due decimali quando l'indicato-
re è a 5) si utilizzano le istruzioni che seguono. Al punto di inizio della sequenza di programma
Questa sequenza richiede 7 istruzioni ed un registro per contenere la costante 10n (dove n è
uguale al numero di decimali che si desidera ottenere nell'arrotondamento).
E' possibile utilizzare i registri F, E, D in modo promiscuo; sfruttare cioé le posizioni non occu-
pate da dati numerici per ospitare istruzioni. La tecnica qui illustrata consente di utilizzare cia-
scuno di questi registri (interi o divisi),
per dati e istruzioni, ed eseguire quindi
trasferimenti, operazioni aritmetiche o di
stampa sui dati memorizzati senza altera-
re le istruzioni e senza provocare l'accen-
sione della luce rossa dell'indicatore di er-
rore.
Il dato numerico (costante o dato inter-
medio) deve precedere le istruzioni, e
non deve superare la capacità assegnata-
gli. A tale scopo il registro deve essere
considerato capace di 24 posizioni: la se-
zione destra (F, E, D) contiene le posizio-
ni dall'1 al 12 e quella sinistra (f, e, d) dal
13 al 24.
Un numero di due cifre nella parte destra
occuperà ad esempio, le posizioni 1 e 2;
un numero di due cifre nella parte sinistra, le posizioni 13 e 14.
La tecnica da seguire per memorizzare in modo promiscuo istruzioni e dati nella stessa sezione
di registro è la seguente:
L'istruzione che precede le posizioni destinate ad ospitare un numero può essere un'istruzione
qualsiasi di programma, ad eccezione di S. Normalmente sarà un'istruzione di origine di salto
incondizionato onde eludere durante l'esecuzione del programma le posizioni di memoria desti-
nate a dati numerici e continuare con le istruzioni successive (3 e 4).
(pag. 36)
GENERAZIONE DI COSTANTI
Per generare costanti decimali di lunghezza pari a quella stabilita con il posizionamento dell'in-
dicatore dei decimali (ad esempio la costante 0,0003 con l'indicatore dei decimali posizionato a
4, supponendo che il registro C contenga un dato > 0), si utilizzano le seguenti istruzioni:
PROGRAMMAZIONE DI UN CONTATORE
Un contatore che permetta l'interruzione dell’esecuzione di una sequenza ciclica allorché sia
stata eseguita n volte, può essere realizzato sia per successivi incrementi che per successivi
decrementi.
Nel primo caso (supponendo che il numero n sia già memorizzato nel registro B, che il registro
C sia già stato azzerato, la sequenza di istruzioni sarà la seguente:
A/V Destinazione di salto condizionato / V quando il valore n, diminuito del contenuto del contatore, sia
> 0.
B Trasferimento del valore n in A.
A : Divisione del contenuto di A per se stesso (n : n = 1); si crea così il valore 1 che permette
l'aggiornamento del contatore di una unità ad ogni ciclo.
C + Somma del contenuto di C con il contenuto di A (incremento di una unità del contatore).
C ↕ Scambio del contenuto di C con quello di A.
B n in A.
C - n - il valore del contatore.
/V Confronto e salto se il contenuto di A è > 0.
…… Proseguimento delle istruzioni, per A = 0.
Per programmare invece un contatore che funzioni per decrementi successivi la sequenza sarà
la seguente (supponendo che n sia memorizzato nel registro B e nel registro A):
A/V Destinazione di salto condizionato / V quando il valore del registro A sia > 0.
B Trasferimento di n nel registro A.
A : Creazione del valore 1 (n : n = 1) che permette l'aggiornamento del contatore di una unità ad ogni
ciclo.
B ↕ Scambio del contenuto di B con quello di A.
B - n - 1 (aggiornamento del contatore).
B ↕ Scambio del contenuto di B con quello di A (n - 1 in B).
B n - 1 in A.
/ V Confronto e salto se n - 1 > 0.
…… Proseguimento delle istruzioni, per n - 1 = 0.
Alla fine della sequenza il registro B non conterrà più il valore n, che sarà stato annullato.
Spesso si ha la necessità di memorizzare più dati di poche cifre (ad es. costanti) in un unico
registro. Si debbano ad esempio memorizzare in un unico registro le costanti 453, 281, 397 e
24. Per far ciò occorrerà memorizzare nel registro voluto (ad es., D) il numero composto
453281397,024. Lo zero è stato aggiunto nell'ultimo dato (prima di 24) per fare in modo che
ogni costante abbia lo stesso numero di cifre. Creando ed utilizzando il numero 0,001 sarà
possibile isolare ciascuna delle costanti che sono riunite nel numero composto, dividendo ogni
volta tale numero per mille. Il numero che si desidera isolare si troverà, al termine di ogni divi-
sione, nel registro R.
Le sequenze di programma qui riportate illustrano una particolare procedura che viene chiama-
ta anche «tecnica di rotazione dei registri» e che è particolarmente utile in talune applicazioni
(ad esempio, una media mobile) nelle quali l'introduzione di ogni successivo termine sposta il
contenuto di ogni registro in un senso prestabilito mandandolo ad occupare il registro adiacen-
te.
Si supponga ad esempio di calcolare una media mobile dove N=5:
Gli spostamenti provocati dalla suddetta tecnica appaiono chiaramente dalla seguente tabella
che mostra la situazione di tutti i registri ad ogni istruzione:
Ci si trova spesso di fronte a programmi complessi, che richiedono più di 120 istruzioni.
In tal caso occorre spezzare il programma in più parti, ciascuna delle quali, preposta all'esecu-
zione di una determinata sequenza, viene registrata in memoria dopo l’esecuzione della prece-
dente.
Poiché soltanto cinque dei registri del calcolatore sono interessati nella registrazione di una
scheda magnetica, gli altri cinque possono essere utilizzati per accogliere fino ad otto dati in-
termedi e conservarli per ulteriore elaborazione.
Per collegare più schede in un'unica sequenza di programma occorre interromperlo in un punto
conveniente dopo aver memorizzato nei registri M, A, R, B, C, i dati da utilizzare in seguito. Si
supponga che si siano memorizzati i dati intermedi, per le successive elaborazioni, nei seguenti
registri:
Prima
M A R b B c C D E F
n Σx Σy Σx2 Σ y2 Σ xy
Occorrerà in tal caso aggiungere al programma una serie di istruzioni simili a quelle qui elenca-
te, cosicché l'operatore, dopo aver introdotto tutti i valori x ed y, prema il pulsante di selezione
Z per trasferire e memorizzare i risultati intermedi prima del cambio di scheda.
AZ
F Trasferimento da F ad A
Dopo
M A R b B c C D E F
Σ y2 Σ xy Σx2 n Σx Σy
AV
RS
F↕
E
La prima serie di istruzione della scheda successiva deve contenere un’istruzione RS (per ritra-
sferire il contenuto di R al registro D prima di qualsiasi operazione aritmetica o di trasferimento
che interessi il registro R) seguita da due istruzioni di trasferimento per ricostituire la situazio-
ne originale.
DIMENSIONI ED INSTALLAZIONE
Alimentazione elettrica: 50 Hz
110/220 Volt
350 Watt (circa)
Dimensioni
Altezza: 19 cm.
Larghezza: 48 cm.
Profondità: 61 cm
Peso: 35,5 kg.
MATERIALI D'USO
SCHEDE PROGRAMMA
A I
Addizione 15 Impostazione (annullatore di) 12
Annullatore di impostazione 12 Indicatore dei decimali 13,22
Annullatore generale 13 Indirizzo (tasti di) 13
Applicazione (esempio di) 31 Installazione 41
Arrotondamento per difetto o per Interlinea 19
eccesso 33 Interruttore dell'alimentazione 11
Azzeramento (funzione di) 18 Introduttore per la scheda magnetiche 11
Azzeratore 13 Istruzione RS 28
Istruzioni di destinazione 19,20
C Istruzioni di origine 19,20
Codifica costanti 17,21 Istruzioni di programma 14
Comando manuale per l'avanzamento
della carta 11 L
Contatore (programmazione di un) 36 Lettura dei programmi 26
Controlli automatici 29 Libera-carta (comando) 11
Costanti (codifica e richiamo) 17,20,21
M
D Materiali d'uso 41
Decimali (indicatore dei) 13 Memoria 9
Decimali (predisposizione dei) 13,22 Moltiplicazione 16
Dimensioni 41
Divisione 16 N
Divisione dei registri 10 Nastro (sostituzione del) 40
E O
Esecuzione dei programmi 26 Operazioni aritmetiche 14,22
Operazioni aritmetiche (tasti delle) 13
Origine (istruzioni di) 19,20
F P
Funzione di azzeramento 18 Parte decimale di A in M 18
Funzioni aritmetiche 14 Predisposizione dei decimali 22
Funzioni di servizio 14 Programma (stesura del) 32
Funzioni logiche 14, 19 Programmazione 14
Fuori capacita 30 Programmi (esecuzione dei) 26
Programmi (lettura dei) 26
G Programmi (registrazione dei) 23
Programmi su più schede 28,39
Generazione di costanti 36 Programmi (stampa dei) 13,25
T
Tasti delle operazioni aritmetiche 13
Tasti di indirizzo 13