Uit Hack42
Ga naar: navigatie, zoeken
Regel 1.705: Regel 1.705:
 
Lo stato di destinazione dipende sia dallo stato di provenienza, esso può essere senza alternative come da SH a SK, o dipendere da condizioni anche multiple, vedi SE che può essere seguito da SA, SF, SM, SP, SS.
 
Lo stato di destinazione dipende sia dallo stato di provenienza, esso può essere senza alternative come da SH a SK, o dipendere da condizioni anche multiple, vedi SE che può essere seguito da SA, SF, SM, SP, SS.
  
====VA====
+
==== VA ====
  
 
La rete logica VA viene utilizzata per scrivere il segno meno nei registri A e R nella
 
La rete logica VA viene utilizzata per scrivere il segno meno nei registri A e R nella
Regel 1.735: Regel 1.735:
 
Registro R.
 
Registro R.
  
====XX===
+
==== XX====
  
 
XX è usato per commutare NL, flip flop fornente in cartolina, la forma d’onda da registrare
 
XX è usato per commutare NL, flip flop fornente in cartolina, la forma d’onda da registrare
Regel 1.791: Regel 1.791:
 
• Somma di bit.
 
• Somma di bit.
 
• Somma di digit decimali.
 
• Somma di digit decimali.
PA, PM, TP e TM.
+
===PA, PM, TP e TM===
 
PA, PM e TP, delimitano la parte di registro contenente dati validi. Il criterio di scelta è
 
PA, PM e TP, delimitano la parte di registro contenente dati validi. Il criterio di scelta è
 
presenza di bit TB = 1 contigui.
 
presenza di bit TB = 1 contigui.
Regel 1.810: Regel 1.810:
 
L a caduta di TM setta TP all’inizio del registro, 1° o 13° Crt.
 
L a caduta di TM setta TP all’inizio del registro, 1° o 13° Crt.
 
TP, è set per la parte di registro individuata da HD e con Crt contigui aventi TB=1.
 
TP, è set per la parte di registro individuata da HD e con Crt contigui aventi TB=1.
HP.
+
===HP===
 
Il flip flop HP indica che è in esecuzione un programma.
 
Il flip flop HP indica che è in esecuzione un programma.
 
Esso è settato da XI (CS * LR * TA * SA \ * NH \ ), segnale che inizia la fase di fetch da
 
Esso è settato da XI (CS * LR * TA * SA \ * NH \ ), segnale che inizia la fase di fetch da
Regel 1.817: Regel 1.817:
 
Istruzione che a seconda della logica del programma, pone lo stesso in attesa
 
Istruzione che a seconda della logica del programma, pone lo stesso in attesa
 
dell’intervento dell’operatore o ne segnala la fine.
 
dell’intervento dell’operatore o ne segnala la fine.
56Decodifica codice istruzione.
+
===Decodifica codice istruzione===.
 
P101- Fogli logici. Foglio 3.
 
P101- Fogli logici. Foglio 3.
 
Il registro H contiene il codice dell’istruzione in esecuzione, specificamente in:
 
Il registro H contiene il codice dell’istruzione in esecuzione, specificamente in:
Regel 1.827: Regel 1.827:
 
Codice operativo.
 
Codice operativo.
 
Dai codici derivano specifici decodificati hardware di indirizzo e codice operativo.
 
Dai codici derivano specifici decodificati hardware di indirizzo e codice operativo.
Decodifica codice indirizzo registro - DX.
+
====Decodifica codice indirizzo registro - DX====
 
P101- Fogli logici. Foglio 3.
 
P101- Fogli logici. Foglio 3.
 
I decodificati di registro sono 8, la lettera dopo la D è quella del registro.
 
I decodificati di registro sono 8, la lettera dopo la D è quella del registro.
Regel 1.888: Regel 1.888:
 
istruzione.
 
istruzione.
 
dal tasto Split (\), inserito tra il tasto indirizzo e quello
 
dal tasto Split (\), inserito tra il tasto indirizzo e quello
57Decodifica codice operativo - ZX .
+
====Decodifica codice operativo - ZX====
 
P101- Fogli logici. Foglio 3.
 
P101- Fogli logici. Foglio 3.
 
I decodificati delle istruzioni sono utilizzati per identificare sia un solo codice operativo
 
I decodificati delle istruzioni sono utilizzati per identificare sia un solo codice operativo
Regel 1.975: Regel 1.975:
 
ZC si attiva per moltiplicazione, divisione , radice quadrata.
 
ZC si attiva per moltiplicazione, divisione , radice quadrata.
 
ZO viene attivato per i codici di trasferimento registri, stampa, e ZA * SB * NH \ .
 
ZO viene attivato per i codici di trasferimento registri, stampa, e ZA * SB * NH \ .
58Schema a blocchi.
+
==Schema a blocchi==
59Parte 3. Hardware comune.
+
 
Lettura o scrittura in Linea di Ritardo.
+
'''image'''
 +
=Parte 3. Hardware comune=
 +
==Lettura o scrittura in Linea di Ritardo==
 
L’operazione di lettura o scrittura in LDR, in caso di interazione con tastiera, cartolina e
 
L’operazione di lettura o scrittura in LDR, in caso di interazione con tastiera, cartolina e
 
stampa, utilizza una struttura hardware unica indipendentemente dal contenuto
 
stampa, utilizza una struttura hardware unica indipendentemente dal contenuto
Regel 2.025: Regel 2.027:
 
Abilita la scrittura del TA in RA ritardato di 1 Crt.
 
Abilita la scrittura del TA in RA ritardato di 1 Crt.
 
Setta il flip flop NG che bloccando XE impedisce cicli supplementari di NA – NB .
 
Setta il flip flop NG che bloccando XE impedisce cicli supplementari di NA – NB .
Introduzione dati.
+
==Introduzione dati==
 
La via primaria di introduzione dati è la tastiera.
 
La via primaria di introduzione dati è la tastiera.
 
L’introduzione di dati è permessa solo in SA, stato in cui la tastiera è sbloccata.
 
L’introduzione di dati è permessa solo in SA, stato in cui la tastiera è sbloccata.
Regel 2.062: Regel 2.064:
 
NB
 
NB
 
Attivo sul Crt seguente il TA in R.
 
Attivo sul Crt seguente il TA in R.
Dato numerico.
+
 
61I dati numerici, contraddistinti da AE e AF entrambi a 0, sono memorizzati nel registro
+
===Dato numerico===
 +
 
 +
I dati numerici, contraddistinti da AE e AF entrambi a 0, sono memorizzati nel registro
 
M.
 
M.
 
La cifra (digit) è inserita nel Crt seguente quello corrispondente al TA di R.
 
La cifra (digit) è inserita nel Crt seguente quello corrispondente al TA di R.
Regel 2.100: Regel 2.104:
 
Un successivo tasto numerico o istruzione, attivando XW resetta NC.
 
Un successivo tasto numerico o istruzione, attivando XW resetta NC.
 
Diagramma Tasto Clear.
 
Diagramma Tasto Clear.
Indirizzo.
+
===Indirizzo===
 
Un tasto indirizzo attiva entrambi AE ed AF.
 
Un tasto indirizzo attiva entrambi AE ed AF.
 
La sequenza di eventi di gestione del tasto è uguale a quella dei tasti numerici con la
 
La sequenza di eventi di gestione del tasto è uguale a quella dei tasti numerici con la
Regel 2.114: Regel 2.118:
 
finale sarà F7. Il 7 sarà espulso da H dal codice istruzione.
 
finale sarà F7. Il 7 sarà espulso da H dal codice istruzione.
 
Diagramma Tasto Split Indirizzo.
 
Diagramma Tasto Split Indirizzo.
63Istruzione.
+
===Istruzione===
 
Vale quanto detto per l’indirizzo, con XW (SA * AE \ * NB * TK \ * SO \) al posto di XK.
 
Vale quanto detto per l’indirizzo, con XW (SA * AE \ * NB * TK \ * SO \) al posto di XK.
 
XW scrive il codice istruzione in K col 1° fronte, nei successivi 4 bit in TK /, il codice è
 
XW scrive il codice istruzione in K col 1° fronte, nei successivi 4 bit in TK /, il codice è
Regel 2.120: Regel 2.124:
 
Risultato finale mostrato nell’esempio è 2F (↑e).
 
Risultato finale mostrato nell’esempio è 2F (↑e).
 
Diagramma Tasto Istruzione.
 
Diagramma Tasto Istruzione.
Esecuzione istruzione singola da tastiera.
+
==Esecuzione istruzione singola da tastiera==
 
Nello stato SA, tastiera sbloccata, WL (SA * TA * NM \ * SO \) in TA abilita UC4 la sino
 
Nello stato SA, tastiera sbloccata, WL (SA * TA * NM \ * SO \) in TA abilita UC4 la sino
 
alla battuta del 1° tasto che setta NM. UC4 clock di H lo azzera.
 
alla battuta del 1° tasto che setta NM. UC4 clock di H lo azzera.
Regel 2.167: Regel 2.171:
 
Diagramma Tasto Indirizzo splittato.
 
Diagramma Tasto Indirizzo splittato.
 
Diagramma Tasto Istruzione.
 
Diagramma Tasto Istruzione.
6566Stampa.
+
 
 +
==Stampa==
 +
 
 
La stampa viene eseguita dalla sequenza di 3 stati SM, SN ed SS.
 
La stampa viene eseguita dalla sequenza di 3 stati SM, SN ed SS.
 
L’or di stati SM + SN origina CD che pilota il movimento del carrello.
 
L’or di stati SM + SN origina CD che pilota il movimento del carrello.
Regel 2.209: Regel 2.215:
 
Viene caricato 0 (0000).
 
Viene caricato 0 (0000).
 
Il riporto si ha dopo 16 conte e la battuta in corrispondenza del 17° dente.
 
Il riporto si ha dopo 16 conte e la battuta in corrispondenza del 17° dente.
68Parte 4 - Istruzioni.
+
 
 +
=Parte 4 - Istruzioni=
 +
 
 
Le istruzioni possono essere eseguite in modo manuale, isolatamente, oppure inserite in
 
Le istruzioni possono essere eseguite in modo manuale, isolatamente, oppure inserite in
 
un programma precedentemente caricato da tastiera o cartolina.
 
un programma precedentemente caricato da tastiera o cartolina.
Regel 2.227: Regel 2.235:
 
Le stampe dei registri devono essere comandate da istruzioni specifiche.
 
Le stampe dei registri devono essere comandate da istruzioni specifiche.
 
A fine esecuzione la macchina ritorna in SP ed estrae l’istruzione seguente.
 
A fine esecuzione la macchina ritorna in SP ed estrae l’istruzione seguente.
69Trasferimento.
+
==Trasferimento==
 
Le istruzioni di trasferimento che interessano i registri , sono tre, come da tabella:
 
Le istruzioni di trasferimento che interessano i registri , sono tre, come da tabella:
 
Codice Decodificato Descrizione
 
Codice Decodificato Descrizione
Regel 2.240: Regel 2.248:
 
Il trasferimento viene attuato in SE, dopo che il contenuto dei registri A e M è stato
 
Il trasferimento viene attuato in SE, dopo che il contenuto dei registri A e M è stato
 
allineato in SC o SD, con la cifra meno significativa sul 1° o 13° Crt.
 
allineato in SC o SD, con la cifra meno significativa sul 1° o 13° Crt.
Trasferimento da M.
+
 
 +
===Trasferimento da M===
 +
 
 
Il gate ( ZH * SE * LM * NH * TA \), nel multiplexer RN, attua il trasferimento di M nei
 
Il gate ( ZH * SE * LM * NH * TA \), nel multiplexer RN, attua il trasferimento di M nei
 
registri deposito nel 2° ciclo di SE con NH set.
 
registri deposito nel 2° ciclo di SE con NH set.
Regel 2.251: Regel 2.261:
 
La cancellazione del vecchio contenuto del registro si ottiene automaticamente in quanto
 
La cancellazione del vecchio contenuto del registro si ottiene automaticamente in quanto
 
la selezione diretta del registro seleziona RN escludendone la richiusura.
 
la selezione diretta del registro seleziona RN escludendone la richiusura.
Trasferimento in A.
+
 
 +
===Trasferimento in A===
 +
 
 
L’istruzione X↓, trasferisce il contenuto del registro X nel registro A.
 
L’istruzione X↓, trasferisce il contenuto del registro X nel registro A.
 
Il trasferimento avviene nel 2° ciclo di SE, NH set.
 
Il trasferimento avviene nel 2° ciclo di SE, NH set.
Regel 2.262: Regel 2.274:
 
Il diagramma, mostra il trasferimento di M (3,14) in A.
 
Il diagramma, mostra il trasferimento di M (3,14) in A.
 
Diagramma. Trasferimento X↓ .Stato SE .
 
Diagramma. Trasferimento X↓ .Stato SE .
71Scambio con A.
+
 
 +
===Scambio con A===
 +
 
 
L’istruzione X↨, scambia il contenuto del registro X con quello di A.
 
L’istruzione X↨, scambia il contenuto del registro X con quello di A.
 
Lo scambio avviene nel 2° ciclo di SE con NH set.
 
Lo scambio avviene nel 2° ciclo di SE con NH set.
Regel 2.279: Regel 2.293:
 
evidente ingrandendo il diagramma al 500%.
 
evidente ingrandendo il diagramma al 500%.
 
Diagramma. Scambio X↨ . Stato SE.
 
Diagramma. Scambio X↨ . Stato SE.
72Trasferimento di parte decimale.
+
 
 +
===Trasferimento di parte decimale===
 +
 
 
L’istruzione /↨, trasferisce la parte decimale del contenuto di A in M. A resta invariato.
 
L’istruzione /↨, trasferisce la parte decimale del contenuto di A in M. A resta invariato.
 
La sequenza di stati esecutivi è quella comune alle istruzioni di trasferimento. Stato di
 
La sequenza di stati esecutivi è quella comune alle istruzioni di trasferimento. Stato di
Regel 2.297: Regel 2.313:
 
A in LX che in WK riscrive A su se stesso. Si impedisce la scrittura di M in A.
 
A in LX che in WK riscrive A su se stesso. Si impedisce la scrittura di M in A.
 
Diagramma Stato SE.
 
Diagramma Stato SE.
73Aritmetiche.
+
 
 +
==Aritmetiche==
 +
 
 
Le istruzioni aritmetiche sono eseguite nella sequenza di stati :
 
Le istruzioni aritmetiche sono eseguite nella sequenza di stati :
 
SB, SC, SD, SE, SF, SG, SH, SK, SL.
 
SB, SC, SD, SE, SF, SG, SH, SK, SL.
Regel 2.318: Regel 2.336:
 
In SK avviene lo scambio tra A ed M, alla fine del doppio ciclo l’informazione logica in A
 
In SK avviene lo scambio tra A ed M, alla fine del doppio ciclo l’informazione logica in A
 
ed M è ripristinata.
 
ed M è ripristinata.
Stati preparatori aritmetiche.
+
 
Stato SB.
+
===Stati preparatori aritmetiche===
 +
 
 +
====Stato SB====
 +
 
 
Lo stato SB è di 2 cicli di LDR . La distinzione tra i due cicli è data da NH settato da TT al
 
Lo stato SB è di 2 cicli di LDR . La distinzione tra i due cicli è data da NH settato da TT al
 
termine del 1° ciclo.
 
termine del 1° ciclo.

Versie van 31 dec 2014 13:05

Olivetti Programma 101 Descrizione tecnico funzionale dell’elettronica Release 1.0 Ivrea 1 Giugno 2010 Gaiti GiulianoSommario

Documentazione e strumenti di supporto

La descrizione in oggetto è frutto dell’utilizzo di:

  • Programma 101 del museo Tecnologic@mente.
  • Schemi logici Programma 101 originali.
  • Data base.
  • Simulatore CAD su PC.

Tutta la documentazione, compresi gli schemi logici della macchina tradotta e simulata ed il materiale di supporto, è in formato elettronico e sono disponibili presso il Museo – Laboratorio Tecnologic@mente di Ivrea.

La comprensione di questo documento è facilitata dalla conoscenza e uso dell’insieme della documentazione e del simulatore.

La descrizione riporta diagrammi frutto di simulazione CAD delle funzioni descritte. La macchina simulata è a tutti gli effetti una traduzione 1:1 della P101. La “traduzione” è stata necessaria per adattare la tecnologia, RTL della P101 a quella DTL, del simulatore. Non è stata simulata la logica relativa alle segnalazioni di errore.

La macchina simulata non usando gli stessi componenti logici della P101, comporta differenze implementative, non logiche. La differenza principale tra P101 e Simulatore, è costituita dai comandi dei flip flop. Nella P101 sono utilizzati circuiti derivatori, senza transistor, che commutano il flip flop sul fronte di discesa del segnale. Il simulatore, porte logiche (gate), che operano con il livello.

Per contenere i tempi di esecuzione della simulazione, il simulatore rispetta la sequenza degli eventi ma non i valori assoluti dei tempi della P101. I nomi dei segnali logici, usati nella macchina simulata, hanno la stessa radice di quelli della P101.

La differenza tra logica NOR (P101) e NAND (Simulatore), comporta che la stessa funzione può essere riportata sul diagramma nella forma negata. Il simulatore onde rendere più semplice la lettura del simbolo stampato, utilizza un registro per visualizzarne il codice binario, OU[3:0], non presente nella P101. Per presentare nei diagrammi, dati con parallelismo >1, il simulatore nella radice del nome del segnale scambia una lettera con un valore numerico. Per questo motivo ad esempio il registro:

P101 Simulatore
HH – HA H[7:0].
HK – HM C[2:0].
AA – AF A[5:0].
... ...

Documentazione tecnica funzionale

La seguente è la documentazione relativa alla famiglia P101, P102, P203, attualmente disponibile in formato elettronico.

  • Manuale di programmazione P101
  • P102 - P203 Connettore 50 contatti
  • P203 Addendum descrizione tecnica
  • Fogli logici :
    • Fogli Logici P101
    • Fogli Logici P102
    • Fogli Logici P203
  • Legenda dei fogli logici.doc
  • Raccolta Circuiti Elettrici.doc
  • CAD e Simulatore P101.doc


Documentazione costruttiva

Questa documentazione è struttutata in un database Access (già corredato di query e macro) e dei relativi dati da importare. Il materiale è tutto all’interno della cartella “DB Origine”, e per utilizzarlo occorre seguire le istruzioni descritte nel documento “Introduzione a DB P101”. Nella cartella sono presenti: • File Database per ciacun modello della famiglia Programma 101 • P101.mdb • P102.mdb • P203.mdb • Tabelle di specializzazione prodotto contenenti la lista completa dei generatori segnali: • P101 – T1 Segnali.xls • P102 – T1 Segnali.xls • P203 – T1 Segnali.xls Nota. La descrizione si presta ad una migliore lettura utilizzando un PC, in quanto è possibile effettuare ingrandimenti dei diagrammi, che su carta risultano meno leggibili.

Introduzione

La Programma 101 incorpora nuove esperienze e tradizione Olivetti (Ivrea). Essa nasce nel 1965, dalla integrazione della nascente elettronica con la raffinata meccanica, che al tempo vedeva la prima risiedere nel Laboratori Elettronici di Pregnana Milanese (MI) e la seconda ad Ivrea. Responsabile del progetto è stato il compianto Ing. Pier Giorgio Perotto, da cui deriva il nomignolo di “perottina”. Per comprendere struttura e algoritmi della Programma 101 occorre tenere presenti tecnologia e costi relativi di produzione degli anni 1962-65, periodo del suo progetto. La tecnologia è la RTL, transistor, diodi, resistenze e condensatori non integrati. Nel 1960 , l’Elea primo grande calcolatore a transistor, aveva i componenti montati su piastrini i quali a loro volta inseriti in “pacchi”. Pacchi e piastrini erano connessi per mezzo di filature. Nello standard NOR, utilizzato dalla P101, un registro connesso a shift di 8 bit, necessitava di almeno 36 micromoduli con relativi circuiti stampati micro, più: • 16 Micromoduli tipo N20, Flip Flop 16 transistor 48 resistenze • 4 Micromoduli tipo N31, logica di clock ed input dati 4 transistor 12 resistenze • 16 Micromoduli tipo M04, maschere di commutazione Flip Flop 16 diodi 16 condensatori 32 resistori Tenendo presente il prezzo del transistor, si aggirava sulle 1.000 Lire, con il montaggio il costo di produzione del nostro registro (8 bit) si avvicinava allo stipendio mensile di un operaio, 40.000 Lire. Questo spiega la scelta del parallelismo dati (1 bit), l’attenzione estrema all’impiego di ogni transistor comportante l’impiego dello stesso flip flop in fasi e/o funzioni diverse, quali introduzione dati, stampa o cartolina. Quanto sopra si è ottenuto a scapito della linearità e semplicità del progetto. Questa descrizione è frutto della rilettura dei fogli logici originali, da cui si è formato il database e la documentazione costruttiva. Dalla documentazione si è passati alla comprensione degli algoritmi e loro test sul banco di lavoro fornito da simulatore software su personal computer. La descrizione utilizza tabelle e diagrammi, frutto anche degli output derivanti dagli elaborati da Data Base e Simulatore. Le forme d’onda, derivate dall’output del simulatore, rispettano la realtà nella sequenza dei segnali, mentre i tempi sono diversi nei loro valori assoluti.

Laboratorio Olivetti di Pregnana Milanese

La Divisione Elettronica dell’Olivetti”, nel 1962 è stata trasferita da Borgolombardo periferia est, a Pregnana Milanese periferia ovest di Milano. All’epoca il laboratorio occupava 400 tra laureati e diplomati e 100 operai. L’età media era attorno ai 25 anni. Erano passati 2 anni da quando l’istituto tecnico Feltrinelli di Milano aveva licenziato i primi periti elettronici italiani. Foto Laboratorio Olivetti di Pregnana Milanese 1963. La data è fissata dai vetri trasparenti del laboratorio, dopo la vendita della Divisione Elettronica Olivetti alla General Electric, i vetri sono stati colorati con biacca per assicurare riservatezza al progetto. Sono distinguibili: Gruppo piastre elettronico, cablato formato libro, anticipatore della cassettiera. Console debugger con simulatore di tastiera. Prototipo di stampante su striscia. L’oscilloscopio 2 tracce privo di memoria. Manca tester, saldatore, filo e fondamentale stagno. Gli elenchi filature erano prodotti dall’ ELEA 9000, input da schede perforate.

Scheda prodotto

Luogo di progettazione Laboratorio Olivetti – Pregnana Milanese (MI) Italia. Anni 1962 - 1965 Foto P101.

Capo progetto Ing. Pier Giorgio Perotto Designer Mario Bellini del team Sottsass. Carrozzeria in alluminio spessa circa 3 mm. Dimensioni 48x61x19 cm. Peso 29 Kg. Alimentatore 340 Watt. Operabile in modo manuale o da programma. Stampante 30 caratteri al secondo. Cartolina magnetica 120 istruzioni. Registri numerici con 23 cifre. Fino a 15 cifre decimali. Operazioni aritmetiche: Somma. Sottrazione. Moltiplicazione. Divisione. Radice quadrata. Salti assoluti e condizionati

Parte 1. Struttura logica

In Figura 1, lo schema di principio, semplificato, con LDR, registri ed hardware coinvolto nel ciclo di elaborazione dati. Sono evidenziati : 1. Memoria sequenziale data da linea di ritardo. o 10 registri con 24 caratteri di 8 bit. Totale 1920 bit o Frequenza di 1 Mbit / Sec . Periodo di bit 1 μSec . 102. Amplificatore di lettura . 3. Messa in parallelo dell’informazione, 1 bit per i 10 registri (10 μSec). 4. Logica combinatoria, in caso di macchina in attesa assicura la chiusura dell’anello su cui viaggia l’informazione. 5. Serializzazione del bit dei 10 registri. 6. Circuito di scrittura \ richiusura dei bit in linea di ritardo. 7. Registro shift, 8 bit, contenete 1 Crt da registro (M, A, R) o da sommatore. 8. Sommatore serie di 1 bit. Schema di principio Pogramma 101.

Organizzazione della memoria

La memoria, linea di ritardo costituita da filo di acciaio, è per natura ad accesso sequenziale, parallelismo 1 bit. La memoria è organizzata in registri (10), dedicati a dati ed istruzioni. I dati su cui opera la macchina sono solo numerici, con segno e virgola naturale. Il registro può contenere un dato di massimo 23 cifre, l’istruzione opera sul contenuto del registro come entità unica, la cifra non è indirizzabile singolarmente. Le istruzioni sono mono carattere, espresse su 8 bit. Il programma attua le scelte tramite una coppia di istruzioni, salto e riferimento relativo. Il riferimento è posto, nella sequenza delle istruzioni, dove il programma riprende l’elaborazione in caso di condizione di salto verificata. Il riferimento è unico specifico per ogni istruzione di salto. La sua ricerca è fatta sequenzialmente a partire dal 1° carattere del 1° registro di programma. L’individuazione di singole posizioni di carattere, necessarie al processo di esecuzione dell’istruzione, sono adempiute tramite bit di servizio.

Informazione interlacciata

L’acceso all’informazione della Programma 101, dati e programma, essendo la memoria una linea di ritardo è sequenziale. Il tempo di accesso massimo è pari alla lunghezza della linea di ritardo, circa 2,1 mSec. Lo schema di principio mostra l’hardware, in grado di memorizzare informazione strettamente in forma seriale, 1 bit per registro. Eccezione il registro di shift (7), connesso al sommatore memorizza il carattere ed è indispensabile per assolvere ai compiti di conta e scorrimento relativo di un registro rispetto gli altri. Il contenuto dei registri è interlacciato a livello di bit. Al 1° bit del 1° registro (B), segue il 1° bit del 2° registro (C) ed a seguire sino al 1° bit del 10° registro (M). La stessa sequenza è mantenuta per tutti i 7 bit sino al completamento del 1° carattere e prosegue dal 2° carattere per gli altri 23. La capacità hardware di memorizzazione dell’informazione si limita agli 8 bit dei 10 registri interlacciati. L’hardware dedicato alla conta del tempo è ciclico e si limita al carattere singolo. Con un tempo di bit di 1 μsec, il periodo di Crt è quindi, 8*10=80 μSec. ed è realizzato dal registro TA - TH. Lo schema di principio rappresenta la memorizzazione dei 10 registri. Esso permette la contemporaneità dell’informazione di un bit per registro. Lo schema mostra l’ interlacciamento a livello bit dei registri. Quindi se per 10 μSec ho nei flip flop dei registri l’ 8° bit del 13° Crt, nei 10 μSec precedenti avevo il 7° bit del 13° Crt e nei 10 μSec seguenti avrò il 1° bit del 14° Crt. La temporizzazione si ripete identica per ogni ciclo di LDR. Essa può essere divisa in 3 fasi: • • Iniziale. Lettura da LDR di 1 bit per registro nel registro serie – parallelo. Centrale. Elaborazione del bit di registro in logica combinatoria o sommatore, 12• Finale. Scrittura del bit da logica nel registro parallelo – serie quindi in LDR. La parte centrale ha un tempo pari a : 8 bit * 10 Registri * 24 Crt = 1920 μSec. Il tempo totale di attività della temporizzazione comprende quello necessario alle parti iniziali e finali, rispettivamente per la lettura da linea di ritardo del 1° e la scrittura in linea di ritardo del 24° Crt.

Bit di servizio

I bit di servizio non sono aggiuntivi a quelli dei registri. Essi sono bit dei registri B, C, A, M, R, registri che non possono ospitare istruzioni, dedicati ad uno scopo specifico. Il registro numerico dispone di 24 caratteri di 8 bit, di cui 23 utili a contenere 23 cifre. La cifra viene espressa dal contenuto dei 4 bit più significativi. I restanti 4 bit, meno significativi, sono disponibili e definiti bit di servizio. I bit di servizio svolgono funzioni multiple, tra le quali: • Temporizzazione di base. Inizio e fine dati in linea di ritardo. • Puntatore carattere. Introduzione dato, esecuzione programma, stampa. • Specificazione del dato numerico. Dato valido, virgola, segno meno. • Correzione della cifra BCD. I bit di servizio della temporizzazione di base, sono scritti nel 1° ciclo di macchina dopo il reset. Essi permangono nella stessa posizione di linea di ritardo, sino allo spegnimento della macchina o tasto di reset. Negli altri tre casi, i bit di servizio pur mantenendo costante il significato logico, sono mobili all’interno dei 24 caratteri del registro.

Temporizzazione

Per inizializzazione della temporizzazione, si intende la fase che pone nella linea di ritardo, le informazioni necessarie all’ hardware per auto riprodurre le condizioni di operabilità iniziale della macchina. L’hardware della temporizzazione supporta il trattamento dell’informazione a partire dal bit sino a livello carattere per tutti e 10 i registri. Non esiste hardware dedicato alla conta caratteri. Il funzione di conta caratteri, nel 1° ciclo dopo il reset, è svolta dal sommatore che essendo libero di altri compiti, indica il tempo di scrittura dei bit di servizio relativi ad inizio e fine linea di ritardo. La conta di 24 caratteri, con un contatore logico di 4 bit, la si compie in 2 cicli. Si sfrutta la fine del 1° ciclo per scrivere, a metà ciclo, il bit di servizio indicante inizio di registro dati splittato. Con i bit di servizio dedicati alla temporizzazione operanti, i cicli di linea di ritardo sono riavviati dal bit di inizio ciclo, che avvia la temporizzazione di bit, la quale senza intervento si ripete all’infinito. Dopo 23 cicli caratteri, viene letto il bit di fine ciclo segnalante la fase di stop, che con la scrittura del 8° bit, 24° carattere del 10° registro (M) ferma la temporizzazione. Trascorso il tempo di tolleranza (gap), dopo aver percorso tutta la linea di ritardo, il 1° bit di servizio riavvia il ciclo. 13I bit di servizio di avvio e termine temporizzazione, per la loro funzione devono essere posti nel 1° bit del 1° registro (B). Il bit di servizio per registro splittato è posto nel 1° bit del 2° registro (C). Questi bit per la loro funzione sono gli unici che possono trovare posto nella posizione di 1° bit del carattere dei 2 registri (B, C).

Puntatore carattere

La necessità di individuazione del punto di lavoro a livello carattere è richiesta durante le operazioni di: • Introduzione dati o programma da tastiera o cartolina. • Esecuzione del programma. • Numero cifre decimali. • Correzione della cifra BCD. Allo scopo sono dedicati tre bit di servizio posti nel 1° bit del carattere nei registri (A, R e M). Questi bit sono ovviamente unici nel registro. Il bit del registro è unico A e indica l’ultima cifra decimale. Il bit del registro R è unico e indica l’istruzione da eseguire o il punto di introduzione da tastiera di dati ed istruzioni. I bit del registro M, individuano le cifre da correggere. L’esigenza di avere tre registri deriva dalle istruzioni di calcolo. Esse in esecuzione programma, hanno contemporaneamente l’esigenza puntare l’istruzione in esecuzione, l’ultima cifra decimale e correzione della cifra BCD. Avendo lo stesso bit in R, che serve come puntatore di programma ed inserimento carattere da tastiera, ne segue che se si sospende l’esecuzione di un programma per introdurre un dato da tastiera, il punto di inserimento coincide con quello dell’istruzione in corso. Pertanto esso può essere uno tra i 24 disponibili. Nella esecuzione di somme di due cifre codificate in BCD (Binary Coded Decimal), in caso di riporto, si ottiene la cifra corretta mediante la somma di 6. Questa operazione prende il nome di correzione. La correzione non necessita nelle operazioni di conta, eseguite sempre in binario. Il bit di servizio utilizzato per segnalare la cifra da correggere è il 1° bit del registro M. Con codice BCD si ha riporto per valori maggiori di 9. A seconda della cifra risultante vi sono due casi: • Cifra maggiore di 15. • Cifra compresa tra 10 e 15 inclusi. La correzione per cifra maggiore di 15, si ha in tutte le istruzioni di calcolo. La correzione per cifra risultante compresa tra 10 e 15, si ha solo nell’esecuzione di istruzioni di somme logiche e moltiplicazioni. Il riporto di cifra, nel corso di un ciclo di calcolo, può aversi serialmente su più cifre del risultato, a fine ciclo in A saranno presenti tanti bit di correzione quante sono le cifre a cui sommare il 6. Il sommatore ha capacità di sommare il bit non la cifra, quindi il riporto di cifra si manifesta quando il carattere da correggere è già stato elaborato. La correzione è fatta facendo seguire un ciclo ulteriore per le cifre marcate dal bit di correzione.

Specificazione cifra del dato numerico

La specificazione della cifra utilizza i bit 2°, 3°, 4° del carattere: • 2° bit. Carattere valido. • 3° bit. Segno meno. • 4° bit. Virgola. Carattere valido è su tutti i caratteri che formano il dato nel registro. Segno meno, dato negativo, su tutti i caratteri che formano il dato nel registro. Virgola, è sempre presente sulla cifra delle unità anche se zero. La tastiera inserisce le cifre (digit) nei registri della linea di ritardo della in modo naturale a partire dalla cifra più significativa, comprendendo eventualmente virgola e segno meno. Il punto di inserimento delle cifre durante la fase di introduzione del dato da tastiera è fisso, con scorrimento (ritardo), di 1 carattere delle cifre introdotte in precedenza. A fine introduzione dato, la sequenza logica con cui le cifre sono lette, parte dalla meno significativa l’ultima introdotta. Dato che il punto di inserimento cifra nell’esecuzione di un programma può scorrere, il dato inserito dopo, può trovarsi a cavallo del gap. In questo caso nello stesso ciclo di linea di ritardo, fisicamente alcune cifre più significative precedono, le cifre meno significative che lo concludono. Da quanto precede segue che manca l’esigenza di indirizzamento all’interno dell’entità logica contenente l’unità elementare di informazione. L’ istruzione e di conseguenza l’hardware provvede ad indirizzare il registro non il carattere.

Struttura dell’informazione

Registro

L’informazione della P101 è strutturata su 10 registri. I registri sono di 24 caratteri (Crt), 8 bit, di cui se dato numerico 23 utili. I registri prendono il nome da una lettera. L’ordine in cui sono scritti nella linea di ritardo è : B, C, D, E, F, A, I, R, G e M. Di essi : 1. 2. 3. 4. 5. M M, A , R B, C D, E , F I, G Memorizza i dati da tastiera. Algoritmi di esecuzione istruzione. Deposito dati. Divisibili in due parti di 12 Crt. Deposito dati o programma. Splittabili se deposito dati o misti. Deposito programma. I registri deposito dati, tutti o in parte secondo necessità, possono essere raddoppiati (splittati), riducendone la capacità del singolo registro a 12 Crt . L’effetto si ottiene accompagnando il tasto indirizzo con il tasto split (/). La seconda parte del registro, definita splittata, è indirizzata con lettera minuscola, b, c, d, e, f. La lunghezza di un dato, introdotto da tastiera o risultante dal calcolo, non può superare i 23 Crt nel registro intero o 11 Crt nel registro splittato. I registri sono specializzati per: 1. Tipo di informazione. Dati o programma. 2. Tipo di utilizzo. Calcolo e/o deposito oppure solo deposito. 3. Dimensione. Intero (24 Crt) o Splittato (12 Crt). Se l’istruzione non contiene l’indirizzo del registro, bit TA – TC = 0, viene selezionato implicitamente il registro M. Il registro A per la sua funzione in calcolo viene anche detto “accumulatore”. I registri M, A e R sono richiamati e modificati durante il calcolo in modo implicito. I registri deposito dati B, C, D, E, F, sono sempre caricati da istruzioni di trasferimento che hanno come indirizzo implicito M o A. Le istruzioni eseguono il trasferimento, dopo l’allineamento di M ed A, sul 1° Crt se registro intero o sul 13° Crt se splittato. I dati nei registri deposito saranno sempre allineati.

I registri F, E, D, splittati possono contenere promiscuamente dati e programma. I registri G e I non sono selezionabili da programma, essi sono anche indicati come registro programma 1 e 2 e possono contenere solo istruzioni.

Il programma ha disponibili massimo 5 * 24 = 120 istruzioni.

16In introduzione programma, da cartolina o tastiera, i registri di programma sono ad accesso sequenziale e in sequenza fissa a partire da G (1), I (2), F, E , D e sempre a partire dal 1° Crt.

Se il programma è avviato mediante tasto di salto, la prima istruzione eseguita è quella seguente il riferimento corrispondente. Se il programma viene avviato per la prima volta con il tasto S, la prima istruzione eseguita è quella contenuta nella posizione del primo carattere del registro G. Il registro contenente l’istruzione in esecuzione, cambia a fine esecuzione dell’istruzione nel suo 24° Crt o in seguito dell’esecuzione di una istruzione di salto con riferimento posto in altro registro.

Carattere del registro

I registri A, M, R , B, C possono contenere solo dati. I registri D, E, F possono contenere sia dati che istruzioni. è la logica del programma a definire il tipo di informazione nel registro. I registri G (Programma 1), I (Programma 2) possono contenere solo istruzioni. Il numero indirizzabile di registri dati oggetto di istruzioni, può variare da : Minimo Massimo 5 13 Registri M, A, R, C ,D Registri M, A, R Registri B, C, D, E, F, b, c, d, e, f Interi. Interi. Splittati.

Dato

Il Crt è diviso logicamente in due parti : TA – TD TE – TH Bit di servizio: TA Bit riservato per funzioni sia di sistema che calcolo numerico. TB Cifra valida. TC Dato negativo. TD Cifra accompagnata da virgola. Bit specificanti la cifra . Peso del bit TE 2 0 , TF 2 1 , TG 2 2 , TH 2 3 . I bit TA e TD o sono assenti o compaiono nel registro su un solo Crt. Il bit TB compare su tutte le cifre decimali o intere valide. Il bit TC compare su tutte le cifre se il numero è negativo. Il bit TD è inserito nella cifra delle unità (10 0 ). 17Al reset, i registri M, A e R sono inizializzati con i bit di servizio TA – TD, del 24° Crt = 1. Si ha il duplice effetto di inizializzare i registri con: • Digit –0. • TA, bit che individua il punto di inserimento dei dati da tastiera o cartolina. Il trasferimento di un registro deposito in A comporta la scrittura di -0 sul 24° Crt. I dati in B, C, D, E, F , b, c, d, e, f, registri deposito sono sempre allineati, cifra meno significativa nella 1 a posizione dopo il gap. Se registro splittato cifra meno significativa nella 13 a posizione dopo il gap. Tutte le altre cifre seguono senza intervalli. Essendo i primi 4 bit del Crt di servizio, un Crt contiene una cifra (digit) . Il dato significativo può avere un numero di cifre variabile, sia totale che decimali. Il limite massimo è di 23 Crt se registro intero, 11 Crt se registro splittato. Il numero di cifre decimali può alla fine del calcolo essere massimo di 22. Esempio 9,1234567890123456789012 totale 23 cifre. Il risultato formattato nel registro A, avrà sempre un numero di cifre decimali pari a quanto impostato sulla rotella decimali. Massimo 15. I dati nei registri, M A o R , in conseguenza delle istruzioni di calcolo scorrono nei registri e alla fine non sono più allineate ai riferimenti iniziali. La posizione finale dipende dall’istruzione e dal valore dei dati. La natura sequenziale dell’algoritmo di calcolo e del flusso dei dati non richiede di conoscere il peso della cifra. Si deve controllare solo la sua posizione relativa rispetto la virgola. L’informazione di dato valido, necessaria per iniziare e finire il calcolo, è data da flip flop mantenuti set dalla presenza di bit TB e reset dalla sua assenza. Si ottiene un effetto “integratore”, forma d’onda a 1 con TB=1, a partire dalla cifra meno significativa, a 0 con TB=0 nel Crt che segue la cifra più significativa. I flip flop che implementano la funzione dato valido sono tre:


PM PA TP Registro M. Registro A. Registro dati selezionato dal codice istruzione.

Istruzione

Le istruzioni, tranne quelle di salto e relativi riferimenti, rispettano tutte lo stesso tipo di codifica. I primi quattro bit TA – TD, codificano la selezione del registro. Essendo esclusi dalla selezione i registri I e G dedicati a solo programma, i restanti 8 registri sono selezionati tramite i primi 3 bit TA – TC. Il quarto bit TD se posto a 1, indica la condizione di split, registro diviso in due. Nel foglio di programmazione la lettera specificante il registro, indica se: • Maiuscola Registro intero o 1 a parte di registro splittato. • Minuscola 2 a parte di registro splittato. Tabella codifica indirizzi di selezione registro. Bit TA – TD. Registro TA TB TC TD 0 1 0 1 0 1 0 1 0 0 0 1 1 0 0 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 1 c HEX 0 1 2 3 4 5 6 7 8 9 0 0 0 1 R d A b f e A B C D E F 0 1 0 1 0 1 1 1 0 0 1 1 0 0 1 1 1 1 1 1 1 1 1 1 M C R D A B F E / I secondi quattro bit TE – TF, codificano la selezione della istruzione. Il codice A esadecimale non è utilizzato. Tabella codifica istruzioni. Bit TE – TH. 19Istruzione Tasto Start Registro in A M in registro Scambio Registro con A Somma Sottrazione Moltiplica Divisione Stampa S ↓ ↑ ↕ + - Azzera Registro Codice Libero Radice Quadrata Salto V Salto W Salto Y Salto Z TE TF TG TH 0 1 0 1 0 1 0 1 0 0 0 1 1 0 0 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 1

  • HEX

0 1 2 3 4 5 6 7 8 9 0 0 0 1 NU √ V W Y Z A B C D E F 0 1 0 1 0 1 1 1 0 0 1 1 0 0 1 1 1 1 1 1 1 1 1 1 x

Salto

Le istruzioni di salto utilizzano bit riservati nelle altre istruzioni alla selezione del registro : 1. TA e TB 2. TC 3. TD Estendono i codici riservati ai salti. Distingue tra salto(0) e riferimento (1). Distingue tra salto incondizionato (0) o condizionato (1). I codici operativi delle istruzioni di salto sono 4, ad essi sono riservati i codici CX, DX, EX ed FX a cui si fanno corrispondere i tasti V, W, Y e Z. Il decodificatore in hardware dei salti è ZM. La condizione da verificare nel salto condizionato, è data dal dato del registro A, esso deve essere positivo, precisamente >0, perché il salto venga eseguito. I codici di salto utili diventano 16, dato che ogni codice operativo, utilizza i bit TA e TB del Crt, per distinguerne 4 diversi. Riassumendo si hanno 16 salti incondizionati, 16 condizionati e 16 riferimenti.

Cartolina

La cartolina è il supporto magnetico utilizzato per memorizzare permanentemente i programmi della P101. La cartolina ha una capacità massima di 5 registri (G, I, F, E, D), 120 Crt di coppie indirizzo – istruzione. La lettura della cartolina richiede: • Macchina in stato SA. • Introduzione di cartolina nel meccanismo di trascinamento. La scrittura della cartolina richiede: • Macchina in stato SA. • Abbassamento del pulsante bistabile AP. • Introduzione di cartolina nel meccanismo di trascinamento. L’abbassamento di AP ed AZ, determina la registrazione / lettura di una cartolina corta, 2 registri (E, D), 48 istruzioni. La presenza della cartolina sotto la testina è segnalata da un μswitch (AO). Il flip flop SO che memorizza lo stato di AO, indica il periodo utile di registrazione/lettura del supporto. Il flip flop NM, mantiene la sua funzione di pulizia dei registri, la stessa utilizzata per introduzione dati da tastiera, prima di essere settato dal primo ciclo di trasferimento Crt. NM riposiziona il TA di R in TR, cancellando quello precedente. In caso di lettura cartolina, NM tramite XY, blocca la richiusura sulla LDR dei registri G, I, F, E, D azzerandoli.

Formato carattere cartolina

Diagramma Formato Crt cartolina. La cartolina è un supporto di memoria il cui contenuto, fino a 120 Crt, è gestito come stringa di bit unica e continua senza interruzione, sia a livello Crt che registro. Sorgente o destinazione dei dati, nel nostro caso è la LDR, essa ha un tempo di accesso di 2,1 mSec. Pertanto o si provvede con un registro di supporto o si dedica una parte del supporto stesso allo scopo di fornire il tempo di accesso mancante. In stampa la stessa esigenza è risolta dal settore privo di denti della ruota fonica, che rendendo disponibile un tempo superiore al tempo di accesso della LDR (2,1 mSec.), garantisce l’ accesso al Crt in LDR in tempo utile. Per analogia in cartolina, onde ridurre l’hardware, il problema è risolto con l’inserimento di 4 bit supplementari nel Crt. Ogni Crt di cartolina è quindi composto da 12 bit, 8 informazione e 4 di servizio. 21In totale su ogni pista della cartolina vengono registrati 960 + 480 = 1440 bit.

Sistema di registrazione con ritorno a zero (RZ)

I dati su cartolina vengono registrati utilizzando il sistema di ritorno a zero RZ, esso prevede che ogni periodo di bit abbia almeno una commutazione dovuta al clock. In registrazione (AP On), il periodo di bit è definito tramite l’oscillatore OR . In ogni periodo di bit si ha la commutazione iniziale di clock, seguita dalla eventuale commutazione a metà periodo in caso di informazione di bit = 1. In lettura, la prima commutazione magnetica, rilevata dalla testina, viene considerata come clock del 1° bit di informazione. Il clock fa partire il monostabile OS, che ha una durata pari a 2/3 del periodo di bit. Le commutazioni magnetiche con OS attivo sono considerate come bit 1. Le commutazioni magnetiche durante OS passivo sono considerate come clock e come tali fanno ripartire OS.

Bit di parità

Diagramma Bit di parità. L’inserimento dei 4 bit di servizio viene utilizzato per provvedere un bit controllo di parità a livello Crt. L’informazione da registrare è data da NL, la cui forma d’onda alla fine del Crt (HN), in caso di numero di bit = 1 pari è reset. Se NL è e set, bit dispari, esso viene resettato durante il primo bit di servizio che assume la funzione di bit di controllo della parità. In lettura, viene controllato che il Crt di 12 bit il numero di bit = 1 sia pari, in caso contrario si attiva la condizione di errore (ER) .

Info su processi fondamentali

L’hardware della Programma 101 non essendo strutturato, rende complicata la lettura dei fogli logici anche per chi desidera una conoscenza non approfondita del suo funzionamento. Quanto segue vuole fornire alcune informazioni su “processi base”, utili anche per facilitare un successivo approfondimento dei dettagli.

Introduzione dati

I dati sono di due tipi: numerici ed istruzioni di programma. Essi possono essere introdotti per mezzo di tastiera e cartolina magnetica. La cartolina tipicamente è utilizzata introdurre il programma.

Dato numerico

Il dato numerico, tipicamente introdotto da tastiera, viene inserito sempre implicitamente nel registro M. Esso viene battuto in modo naturale, a partire dalla cifra più significativa. Nel caso di numero senza decimali, la virgola è comunque sempre sulla cifra delle unità. Prima che venga battuta, la virgola accompagna sempre l’ultima cifra introdotta, la sua introduzione ha l’effetto di bloccarne la posizione. L’eventuale cifra seguente costituirà il valore dei decimi di unità. Il riferimento,TA in R, indica il carattere precedente quello in cui è scritta la cifra attuale, le cifre eventuali precedenti sono spostate in blocco di un carattere per farle posto. Il segno meno può essere introdotto in qualsiasi momento, a partire da prima battuta, sino a quella che precede il tasto istruzione che chiude la fase dell’introduzione. A fine introduzione, il dato in M rispetto il riferimento TA in R presenta sul carattere seguente la cifra ultima battuta, la meno significativa, dopo le cifre interposte chiude le cifre quella più significativa. Fisicamente il dato può presentarsi a cavallo del gap, possibile nel caso che il riferimento sia stato spostato dopo l’inizializzazione. Il dato è sempre visto nella sua interezza, l’informazione di inizio e fine è data da un flip flop che memorizza la persistenza del bit dato valido (TB) nel registro.

Programma

La fase di introduzione del programma, sia da tastiera che da cartolina, parte sempre dal 1° carattere, del registro che memorizza la 1 a istruzione. Il registro sarà G se programma utilizzante 5 registri, E se programma parziale 2 registri. Le istruzioni successive sono inserite nel registro a seguire a partire dal 2° carattere. I registri seguenti sono interessati a seguito della scrittura nel 24° carattere di quello attuale. La sequenza G, I, F, E, D è bloccata.

Allineamento registri deposito dati

I registri deposito dati sono B, C, D, E, F se interi, b, c, d, e, f se splittati. Le istruzioni operano sui registri dati, splittati o interi, senza differenza. I registri A ed M sono i soli che possono fare scorrere l’informazione in ciclo nei loro 24 caratteri. Lo scorrimento di un carattere è ottenuto , introducendo nel ciclo di richiusura del registro sulla linea di ritardo, il registro K. L’allineamento del registro A o M, avviene tra il riferimento di inizio registro ed a seconda dell’istruzione in alternativa con cifra più significativa o virgola o cifra meno significativa,. Le istruzioni che scrivono dati nei registri deposito sono solo quelle di trasferimento dal registro M o di scambio con A. Esse fanno precedere la scrittura del dato da una fase di allineamento, che pone la cifra meno significativa nel 1° carattere del registro, se intero, nel 13° carattere se splittato. Tutte le altre istruzioni che indirizzano un registro deposito, possono leggerlo lasciandolo invariato o cancellarlo.

Calcolo

I registri interessati dalle istruzioni di calcolo sono A, M, R. Il registro A contiene tipicamente, all’inizio dell’istruzione il 1° operando ed alla sua fine il risultato. Le istruzioni con 2 operandi trasferiscono il registro indicato dall’istruzione in M, 2° operando, prima di eseguire il processo dell’informazione. In caso di radice quadrata, il registro indicato dall’istruzione viene prima trasferito in A poi elaborato. Tutte • • • • • le istruzioni di calcolo seguono un processo di cinque fasi in sequenza: Collocamento dei dati di inizio calcolo nei registri. Allineamento relativo dei registri. Scrittura riferimento numero cifre decimali. Ciclo di calcolo. Formattazione risultato. L’hardware è in grado di eseguire in un ciclo una somma o sottrazione, tra il dato in A e quello in M. Se l’istruzione richiede cicli multipli come in moltiplicazione, divisione e radice quadrata, conta in R il numero di cicli che costituisce per queste istruzioni il risultato. L’hardware decide in base all’istruzione e al segno degli operandi, l’esecuzione di un ciclo di somma o sottrazione.

Stampa

La stampante viene utilizzata per:

• Stampa dato e istruzione introdotte da tastiera. • Istruzioni di stampa. • Stampa programma. • Interlinea.

Le diverse stampe e l’interlinea eseguono tutte lo stesso ciclo che comprende: • Attivazione elettromagnete moto del carrello porta martello. • Attesa della chiusura micro carrello in moto. • Attesa da 4 a 28 giri del tamburo – Funzione del dato da stampare. • Disattivazione elettromagnete moto del carrello porta martello. • Attesa della apertura micro carrello in moto – Carrello fermo.

La differenza è data dalla eventuale battuta del martello per la stampa di simboli. La sincronizzazione tra tamburo porta simboli e rotella dentata, ad esempio, il 2° dente si presenta in coincidenza, ogni giro di tamburo, del primo simbolo. Al 16° dente corrisponderà il 16 simbolo, ultimo stampabile prima del gap.

Il gap, la cui durata essendo superiore al tempo di accesso alla linea di ritardo, permette la lettura del codice, istruzione, indirizzo o cifra stampato il giro seguente.

Il codice viene caricato nel sommatore complementato, ad esempio, se si deve stampare il 1° simbolo il codice sarà 0000 (0 Hex), che complementato diventa 1111 (F Hex). Il 1° dente incrementa il sommatore a 0000 (0 Hex), causando il riporto sul 4° bit o riporto di 24cifra. Ne segue che per stampare il 6° simbolo, codice 0101 ( 5 Hex), con complemento 1010 (A Hex) avrò un riporto sul 4° bit dopo 6 denti.

Onde assorbire le tolleranze introdotte dalla circuiteria di rilevamento del riporto, si sincronizza il comando all’elettromagnete di battuta martello attivandola con la fine del dente che genera il riporto e disattiva con la fine del dente seguente.

Processo dell’informazione - Stati logici

P101- Fogli logici. Foglio 2.

L’elaborazione dell’informazione nell’esecuzione dell’istruzione, è suddivisa in fasi funzionali denominate stati. Gli stati sono 15, il nome varia da SA a SS, essi sono tra loro esclusivi e implementati con flip flop. La sequenza dei nomi non è sempre indicativa della sequenza di esecuzione. Sequenza e numero degli stati dipende dalla istruzione e dal modo, manuale o programma. La durata dello stato, misurata in numero di cicli di LDR, è variabile. Pure variabile è il punto del ciclo in cui avviene la transizione tra stato e stato, tipicamente il gap della linea di ritardo o inizio dell’informazione valida nel registro. Lo stato di posizionamento all’accensione o reset da tastiera è SE.

Con il reset si inizializzano, temporizzazione (scrittura dei bit di servizio base) e registri M, A ed R con uno zero negativo, dopo tre cicli di linea di ritardo si ha il cambio stato da SE a SA.

Lo stato SA è segnalato dall’accensione della luce verde fissa, in questo stato il sistema è in attesa dell’intervento dell’operatore, sia per calcolo manuale, introduzione cartolina, avvio o prosecuzione del programma.

La fase di attesa intervento dell’operatore termina con la battuta di un tasto istruzione che resetta SA. Lo stato seguente dipende dal codice della istruzione Al termine di un calcolo manuale o di esecuzione di un programma, senza errore, si ritorna sempre allo stato SA con lampada verde accesa fissa.

In caso di errore, si interrompe la sequenza standard degli stati e si forza il ritorno in SA con lampada rossa accesa fissa.

La fase di lettura o scrittura della cartolina avviene interamente in SA. Gli stati in genere, sono eseguiti una sola volta per istruzione, tranne le istruzioni di moltiplicazione, divisione e radice quadrata che richiedono l’esecuzione multipla del ciclo di stati SF, SG, SH e SK.

Elenco Stati e loro funzione

Trascurando utilizzi non generalizzabili si elencano in ordine alfabetico gli stati e la funzione che li caratterizza.

SA - Attesa intervento operatore.

Lo stato è raggiunto automaticamente al termine di : • Fase di inizializzazione (SE). • Istruzione manuale. • Esecuzione di un programma. • Stampa programma. Lo stato di SA in presenza di lampadino Rosso On, segnala un errore accaduto durante l’esecuzione dell’ultima istruzione. L’errore interrompe la sequenza delle istruzioni e pone la macchina in SA. La condizione di errore è riposta dall’operatore tramite: • Battuta di un tasto. • Introduzione cartolina. • Reset generale. Le operazioni sulla cartolina avvengono tutte all’interno dello stato SA. Esse sono caratterizzate dall’impostazione dei pulsanti di modo, AP e AZ, oltre che da SO che segnala presenza di cartolina sotto testina magnetica. L’ uscita da SA avviene a seguito della battuta di un tasto istruzione , le istruzioni di salto e tasto Start avviano il programma.

SB - Preparatorio all’esecuzione dell’istruzione

SB ha una durata tipica di 2 cicli di LDR. NH = 0 indica 1°giro, NH = 1 2° giro. In SB, in presenza di una istruzione di salto condizionato, si verifica la condizione, A > 0, prima di passare a SP per l’estrazione dell’istruzione seguente. Il passaggio ad SP avviene comunque se in presenza di salto o riferimento. Se l’istruzione è di calcolo, tranne radice, avviene il trasferimento del registro indicato nell’istruzione in M , tramite SB * ZA * LX * ZK \ * VX \ . Se radice, il registro con il radicando viene trasferito in A tramite WK * LX, M viene inizializzato con 1 tramite SB * ZK * NH * TR * (TB+TD+TE). Il diagramma mostra la preparazione nei registri A ed M in caso di radice con registro splittato d. In A viene trasferito, a partire dal 13° Crt, il numero 1234,7 contenuto in d. Il trasferimento avviene nel 1° giro di LDR. In M, cancellato nel 1° giro, nel 2° durante TR viene scritto 1. Diagramma Stato SB. Radice preparazione registri. 27Per le altre istruzioni e un dettaglio maggiore la descrizione è inserita nelle pagine loro dedicate.

SC,SD - Allineamento registri M ed A

SC e SD servono allineare il contenuto di M e A, rispetto il 1° o 13° Crt di LDR. La cifra da allineare dipende sia dalla istruzione che registro. Il numero di cicli è variabile, esso incide notevolmente sulla durata dell’esecuzione dell’istruzione, può essere ridotto alternando selezione di registri interi con splittati, in quanto il riferimento per l’allineamento TM, si sposta alternativamente a inizio o metà registro. L’allineamento avviene per mezzo di uno spostamento relativo del contenuto di un registro rispetto gli altri 9 registri. Lo spostamento si ottiene con l’inserimento di un registro (K) di 1 Crt prima della scrittura in LDR. Si ha quindi il ritardo di 1 Crt per ogni giro di LDR con K connesso. Quindi il registro M in SC o A in SD, rallenta e scorre all’indietro, avvicinandosi al punto di traguardo (TM) a partire dalla cifra più significativa. Ultima cifra del numero nel registro ad uscire da LDR. Quando la cifra passa oltre il 24° Crt. si trova riscritta sul Crt seguente dell’anello che è il 1° Crt. Il passaggio della cifra più significativa traverso il gap è segnalato dal set di NF, tramite il gate NA*RK*XO. Il giro seguente le cifre più significative nel registro precederanno quelle meno significative nella lettura della LDR. Il meccanismo hardware utilizza il flip flop di temporizzazione TM, che in caso di operazioni su registro intero, corrisponde al 24° Crt, se splittato al 12°. Il Crt su cui si decide l’allineamento è dato dal momento del suo ingresso nel registro K, quindi 1 Crt prima della effettiva scrittura in LDR. A scrittura completata, l’esito è che il dato si trova allineato sul Crt. successivo (1° o 13° Cr). A seconda dell’istruzione, l’allineamento di M e A avviene su : 1. Cifra più significativa. Divisione, radice quadra e se A moltiplica. 2. Virgola. Somma algebrica ( + e -) , radice quadra, e se M per moltiplica. 3. Cifra meno significativa. Caso di default, per le altre istruzioni. 28In caso di istruzioni di calcolo, in caso di una sola cifra per la parte intera, l’allineamento su cifra più significativa coincide con quello sulla virgola. I due stati SC e SD, sono simili, svolgono le stesse operazioni con oggetto il dato in M e A. Il periodo di osservazione dell’informazione è dato da PO, che definisce il tempo nel quale si leggono cifre valide. PO in stati diversi da SC e SD è l’or di PM e PA, in SC, PO coincide con PM (M) essendo bloccato PA e in SD con PA (A) essendo bloccato PM. Il flip flop ND, abilita lo scorrimento del registro attraverso K, esso è settato dal 2° fronte di PO onde evitare lo spezzamento in due tronconi del numero. Il flip flop NG, in caso di sovrapposizione iniziale di PO a TM, attende che il registro scorra sino ad evitare detta sovrapposizione, quindi abilita con XO il traguardo delle condizioni di allineamento. Eventuali resti da operazioni precedenti di bit di servizio (TA, TB, TC) “orfani” nel registro, sono cancellati sino alla lettura del 1° bit di cifra o virgola. Allo scopo ogni TD in TM si mette in moto il duo NA – NB : • NA • NB Il flip • • • Pone fine con UI1 (NA*XO*RK) che setta NF, al blocco dei bit di servizio “orfani”. Attua con XH1 (NB*CA*NH\) il blocco della scrittura sul Crt seguente dei bit di servizio. flop NH viene settato dai segnali di raggiunto allineamento, i quali sono dati da: Gate 02 A 13 Condizione di cifra più significativa. Gate 02 A 9 Condizione di virgola. Gate 02 M 1 Condizione di fine numero. Lo scorrere in sequenza dell’informazione dei registri nella LDR, fa si che l’accadimento della prima condizione, se abilitato dalla istruzione, impedisce le altre. Lo stesso vale per la seconda condizione nei confronti della terza. NH stesso con il giungere del 1° fronte di PO genera YD da cui MS e quindi il cambio stato.

SE - Funzione multiple

SE ha una durata tipica di 2 cicli di LDR. Lo stato di NH = 0 indica 1°giro, NH = 1 2° giro. In inizializzazione,1° stato eseguito, SE dura 3 cicli di LDR. Le sue funzioni principali sono: Al Power On, scrive i bit di servizio in B e C che delimitano i confini di LDR e split. Inoltre pone un -0, sul 24° Crt dei registri M, A ed R. Se istruzione di calcolo, scrive in A il TA che precede la virgola del numero di Crt impostati nella rotella decimali. Se istruzione di trasferimento lo attua nel suo 2° ciclo. Per le altre istruzioni ed un dettaglio maggiore la descrizione è inserita nelle pagine ad esse dedicate.

SF,SG,SH,SK,SL - Esecuzione istruzioni di calcolo

Tutti gli stati del gruppo durano 1 ciclo di LDR. Lo stato SL, ultimo del gruppo viene eseguito una sola volta e conclude il calcolo. SF, SG, SH, SK compongono un ciclo e sono eseguiti in sequenza. In somma e sottrazione il ciclo viene eseguito una sola volta. Nelle altre istruzioni il numero di cicli dipende dal numero di cifre e dal loro valore. In moltiplica l’uscita dal ciclo con il passaggio a SL avviene dopo SK, in divisione e radice dopo SF. In radice il numero di cicli è raddoppiato. La funzione tipica degli stati nel ciclo di calcolo è: SF SG SH SK Verifica se M > A. Somma 1 al contenuto di R. Esegue la somma algebrica tra M e A. Corregge il risultato della somma algebrica. Ogni istruzione di calcolo termina con lo stato SL che ha la funzione di formattarne il risultato.

SM,SN,SS - Riservati alla stampa

La sequenza degli stati di stampa è fissa a SM, segue sempre SN quindi SS. La sequenza è innescata da : • SA Tutte le istruzioni tranne che di stampa. • SE Istruzioni di stampa. • SP Stampa programma (AZ). Funzione dei singoli stati: • SM Stampa simbolo istruzione, registro e spazio distanziatore. • SN Stampa dato numerico. • SS Attesa del carrello di stampa a riposo. Con stampa di 30 Crt/Sec. La stampa di un simbolo necessita di 33,33 mSec. Il carrello di stampa è messo e tenuto in movimento da CD, or di SM e SN. La durata di SM è quasi costante, essendo la variabilità, dovuta al sincronismo tra posizione istantanea del tamburo e comando stampa. Costante è il tempo di 100 mSec. di stampa dei simboli indirizzo, istruzione e spazio. SN ha durata proporzionale al numero di cifre da stampare a cui vanno aggiunti virgola e segno. SS ha una durata funzione del tempo di ritorno a casa del carrello di stampa indicato dal μswitch AW. Nel caso di stampa forzata del risultato del calcolo di moltiplicazione, divisione e radice, a seguito della forzatura del codice di stampa A (84H), la sequenza segue la modalità standard. Unica eccezione, esecuzione da programma dell’istruzione Azzera Registro (*), lo stato SS, segue SE mediante YX ( SE * ZL * HE * HP ). In questo caso l’istruzione non comporta movimento del carrello.

SP - Fetch istruzione di programma

SP ha la funzione di estrarre il codice dell’istruzione da eseguire caricandola nel registro H . Lo stato SP è raggiunto nei casi di : • Fine esecuzione istruzione data da YT, se HP = 1 esecuzione programma. • SB Salto o riferimento di salto. • SE Istruzione S di start programma. • SD Stampa programma. SP ha una durata di 2 - 6 cicli di LDR. Il numero di cicli massimo si ha con il riferimento di salto posizionato nel 5° registro. Se l’istruzione estratta è S (0) si ha il reset di HP, stop all’esecuzione del programma ed il rientro in SA

SO - Cartolina nel trascinatore

SO deriva dalla “squadratura” del segnale da Switch AO attivato dal passaggio sotto la testina magnetica della cartolina.

Dispositivi di interfaccia utente fisici

Tasto accensione

31Il tasto è posto, fronte macchina, in basso a destra. Foto. Tasto Accensione Alla sua impostazione si applica la tensione alternata all’alimentatore. L’alimentatore fornisce le tensioni continue che garantiscono il corretto funzionamento sia dei circuiti in cassettiera che quelli delle attuazioni comandi verso la meccanica. Lo stato di inizializzazione macchina minimo è garantito da un flip flop (SR). Nella fase di stabilizzazione delle tensioni continue, SR sbilanciato da una rete RC, si setta e agendo sui flip flop base, blocca possibili azioni casuali. L’azionamento del tasto di reset pone SR = 0.

Tasto Reset

Il tasto, incorporato nelle tastiera è il primo in alto a sinistra. Foto. Tasto reset. Il tasto di Reset genera 2 cicli di tastiera: • 1° Aziona il μSwitch AG • 2° Aziona 2 μSwitch AT e AK Reset generale. Avvio temporizzazione + strobe Crt. Sul tasto di reset non agisce il blocco meccanico della tastiera. L’azionamento del Reset, provoca la inizializzazione della P101 mediante la scrittura nel registro B e C dei bit di servizio (TA) che gestiscono la temporizzazione base. Nei registri M, A, R è posta la cifra -0 sul 24° Crt. I registri deposito e programma, hanno tutti i bit a zero, tranne quelli utili alla temporizzazione.

Tastiera

La tastiera costituisce il dispositivo primario di introduzione dati nella P101. Foto. Tastiera. 32La tastiera dispone di 37 tasti. Reset generale (1). Dato numerico (12). Cifre, virgola e meno. Clear (1). Indirizzi di registro (7). A, R, B, C, D, E, F . Registro splittato (1). Istruzioni (10). Start (1). Salti programma (4). Tutti i tasti attivano 1 ciclo meccanico, il Reset 2. Il ciclo meccanico originato dalla pressione sul tasto agisce su 12 μswitch : • AG Reset generale. • AT Individua 2° ciclo di reset. • AK Strobe Crt pronto. • AA – AD Codice dato numerico / Indirizzo / Istruzione. • AE Indirizzo. • AF Indirizzo / Istruzione. • AM Segno meno in dato numerico. • AN Azzera dato. Se premuto prima di tasto Istruzione. • AV Virgola. I μswitch AE, AF, AK, AN, AT forniscono in uscita segnali diritto e negato. La virgola e il segno meno non attivano il μswitch di strobe Crt valido AK. Il ciclo meccanico dopo aver commutato i μswitch li lascia impostati sino al ciclo seguente ad eccezione del μswitch di strobe AK che ritorna a riposo. AN Clear ha l’effetto di azzerare M , predisponendolo a un nuovo dato. Foto μSwitch Tastiera e Trascinamento cartolina.

La cifra introdotta mediante un tasto numerico viene inserita nel Crt della LDR corrispondente al TA di R, le cifre precedenti, se presenti vengono ritardate di un Crt. I tasti virgola e meno, non essendo accompagnati da uno strobe di Crt, non originano un ciclo di inserimento Crt in LDR. L’informazione dei due tasti è posta in bit dei Crt introdotti precedentemente, TC per segno meno e TD per la virgola. In caso di battuta di segno meno, sono posti a 1 i TC di tutte le cifre valide. Il dato è introdotto a partire dalle cifre più significative, il bit TD specificante la posizione della virgola rimane sul Crt, individuato dal TA in B, sino alla battuta del tasto virgola. La battuta della virgola, fissando la posizione della cifra di peso 10 0 (unità), fissa il TD alla cifra che l’ ha preceduta. La battuta di altri tasti cifra, procura lo spostamento di tutta l’informazione introdotta prima , bit TD di virgola compreso. Durante il tempo in cui la macchina non è in attesa di dati la tastiera è bloccata tramite elettromagnete. In caso di più tasti contemporanei la tastiera si blocca meccanicamente. La tastiera permette la battuta in successione di due tasti senza l’intervento del blocco meccanico. A fianco dei pulsanti di modo è posto il tasto di sblocco meccanico tastiera. 34In Appendice A. Codici da tastiera si trova il dettaglio dei codici attribuiti ai tasti.

Lampadini

Il sistema, mediante lampadini, comunica all’operatore lo stato di: • • • Attesa introduzioni dai o programma. Luce verde fissa. Programma in esecuzione. Luce verde intermittente. Condizione di errore. Luce rossa fissa.

Pulsanti introduzione - stampa programma

I pulsanti “bistabili” di modo introduzione o stampa programma sono 2: • • Registra Programma Determina la scrittura delle istruzioni nei registri . programma. Input tastiera o cartolina. Stampa programma Seguito da istruzione S o salto, comanda la stampa del programma nei registri. Foto. Pulsanti di modo. Le istruzioni possono essere introdotte sia da tastiera che da cartolina. La lettura o scrittura delle istruzioni in LDR è sequenziale e fissa. Inizia dal registro G seguono I, F, E , D fino a un massimo di 120 istruzioni. La lettura della cartolina avviene con macchina in attesa, luce verde fissa, tastiera sbloccata ed introduzione della cartolina. Programma corto L’impostazione di entrambi i pulsanti restringe a E, D i registri coinvolti nelle operazioni di lettura e scrittura. Le istruzioni sono massimo 48. Gli altri registri restano immutati. La battuta del tasto della prima istruzione o il passaggio della cartolina provocano la cancellazione dei registri di programma. Sblocco Tastiera, sblocca la stessa tastiera nel caso di blocco meccanico per battuta contemporanea di più tasti.

Stampante

La stampa avviene con movimento del carrello da destra a sinistra. Il ciclo di stampa registro comporta automaticamente una interlinea, ne segue che ogni riga di stampa contiene un solo dato. Il fine ciclo prevede il ritorno alla posizione di partenza del carrello. È disponibile l’istruzione di interlinea singola, non quella di tabulazione carrello. Foto. Gruppo stampa. Il gruppo di stampa è formato da :

# Tamburo cilindrico portante in rilievo i caratteri in rotazione continua. I caratteri corrispondono ai simboli delle istruzioni, indirizzi, cifre numeriche, virgola e segno meno. Il numero di colonne sul tamburo è 28, la 1 a riservata all’istruzione, la 2 a all’indirizzo, le altre alle cifre, segno meno e virgola. La 3 a colonna non è comunque mai utilizzata, producendo la separazione tra istruzione-indirizzo e dato numerico.

Il numero di cifre massimo stampabili, sottratti segno e virgola è 23. Il numero di righe di simboli sul tamburo è 24. Le prime 16 righe di simboli sono utilizzate. Le 8 restanti righe di simboli hanno lo scopo di equilibrare il tamburo in rotazione.

# Rotella dentata, in rotazione solidale con il tamburo. La variazione di flusso magnetico, data dal passaggio del dente in

corrispondenza di una bobina origina un segnale il cui passo angolare è uguale a quello dei simboli sul tamburo. La rotella fornisce quindi l’informazione che sincronizza posizione del martelletto e simboli sul tamburo. Il numero di denti della rotella è 17. I denti non sono distribuiti sull’intera circonferenza della rotella, ma ne lasciano un settore libero. Il tempo di rotazione corrispondente al settore senza denti, fornisce il tempo che permette l’accesso alla LDR per il prelievo del Crt. da stampare.

# Carrello porta martello di battuta, comandato da elettromagnete, dotato di moto continuo rettilineo parallelo all’asse maggiore del tamburo porta

caratteri. Il carrello avanza di un passo Crt ad ogni giro del tamburo.

# Martelletto di stampa di un simbolo a battuta, solidale al carrello, anche esso

comandato da elettromagnete. Onde recuperare i ritardi circuitali variabili tra il momento di rilevamento del dente e il set del flip flop che abilita la battuta, si è inserito un flip flop di servizio onde assicurare sincronismo e tempo costante di battuta.

Appendice C. Tabella di corrispondenza tra simboli e denti.

Rotella decimali

Il calcolo avviene con virgola naturale.

Il numero di decimali con cui viene normalizzato il risultato delle istruzioni aritmetiche e la stampa da programma, è quello impostato tramite una rotella impostata manualmente. La scelta possibile è 0 – 15 cifre decimali.

In introduzione manuale , il dato viene stampato con il numero di cifre decimali introdotto dall’operatore.

Foto. Rotella decimali.

Cartolina

La cartolina è il supporto per il trasporto dei programmi della P101.

L’operatore posizionando il pulsante Stampa Programma, sceglie tra 2 formati di cartolina:

• Intero 120 Crt 5 Registri G(1), I(2), F, E, D. • Ridotto 48 Crt 2 Registri E,D.

Il programmatore oltre le istruzioni. ha la possibilità di inserire nei registri di programma dei numeri. Le tecniche utilizzate sono descritte in P101 Manuale di programmazione P101.

L’esecuzione di un programma può prevedere l’inserimento di più cartoline in tempi diversi. Foto . Inserimento Cartolina.

Ogni pista ha la capacità massima di 5 registri programma, 24 X 5= 120 Crt.

La testina di lettura – scrittura della cartolina non coincidente con l’asse del supporto, permette mediante semplice capovolgimento della cartolina, il riutilizzo dello stesso supporto per altre 120 istruzioni.

La faccia del supporto non ricoperto da ossido magnetico è divisa orizzontalmente in due parti uguali, con scritte speculari fornenti lo spazio a un breve memo relativo ai due programmi registrati.

Struttura fisica dell’unità di calcolo

Cassettiera

La struttura della cassettiera è di lamiera aperta sul lato posteriore per permettere l’inserimento delle piastre. Sul lato posteriore è, fissato con viti il circuito stampato del back panel. Foto. Cassettiera. Per ottenere una riduzione in altezza, le piastra pari sono inserite capovolte in modo che le colonne dei micromoduli della piastra pari scorrono tra le colonne delle piastre dispari. La cassettiera accoglie 9 piastre, la prima piastra NR. 1 è quella in basso, l’ultima la nona, in alto, è una piastra ridotta per poter essere affiancata dalla linea di ritardo (LDR). La piastra 9° ridotta, metà colonne ed un numero ridotto di righe, permette alla carrozzeria di essere più bassa in coda e quindi appaia più corta. L’inserimento delle piastre è facilitato da guide laterali. Il raffreddamento delle piastre in cassettiera è data da una ventola azionata mediante cinghia dal motore unico di macchina.

Back panel

Foto Intercablaggi P101. Il circuito stampato monta 34 connettori a 28 contatti, disposti su 9 righe e 4 colonne. La 9 a riga, in figura monta solo 2 connettori.

Alla base del back panel, in orizzontale sono saldati i pin di connessione “maschi” di 4 connettori a 12 vie per i segnali ai circuiti attuatori di stampante, tastiera, cartolina. Appendice B. Connettori Pacco Elettronica – Attuazioni.

Memoria – Linea di ritardo

Foto. Linea di ritardo.

Il tipo di memoria usato è una linea di ritardo realizzata utilizzando le proprietà magnetostrittive di un filo d’acciaio armonico.

41L’informazione è contenuta nella successione delle torsioni inflitte al filo dal circuito di scrittura nella linea di ritardo (LDR). In caso di bit posto a 1 (ON). la forma d’onda di scrittura ha una commutazione a metà del periodo di bit.

Il mezzo è quindi ad accesso strettamente sequenziale con un tempo di latenza proporzionale alla lunghezza del filo d’acciaio. Grado di parallelismo 1 bit.

Data una frequenza di scrittura di 1 MBit / Sec , una capacità totale è di 1920 Bit e un gap per incorporare le tolleranze nel sistema elettro meccanico, si ha un tempo di riciclo o latenza di 2,1 mSec .

La linea di ritardo con un piastrino con il circuito di amplificazione di lettura, per protezione è inscatolata in una struttura di lamiera.

Una cornice di metallo fornisce la struttura per il montaggio affiancato della LDR e di una semipiastra da inserire nella 9° posizione della cassettiera.

Il circuito è suddiviso in tre blocchi funzionali: l’amplificatore del segnale generato dal trasduttore elettromagnetico, uno squadratore ed un generatore di impulso di durata di 0.5 μSec.

Descrizione LDR a cura di Alessandro Graciotti

Schema a blocchi amplificatore Linea di ritardo.

L’amplificazione del segnale di ingresso è effettuata da un amplificatore differenziale a due stadi NPN-PNP (T6 – T9) seguito da un circuito di uscita NPN single-ended (T1). Il trasduttore è collegato all’ingresso non invertente dell’amplificatore; il segnale di uscita è retrocesso sull’ingresso invertente, interamente per la componente continua, attenuato di circa 400 volte per la componente alternata. Il guadagno open-loop calcolato dell’amplificatore è di circa 500; per effetto della contro reazione il guadagno effettivo in ac risulta quindi essere di circa 220 (confermato dalle misure).

Il ritorno del filtraggio del feed-back (C4 e C5) è collegato con il ritorno del trasduttore ad una tensione costante di circa +9V ricavata con lo zener Z2 (1N756) in serie ad un diodo, in questo modo un eventuale rumore presente sull’alimentazione non verrà amplificato 42essendo presentato in modo comune sui due ingressi. La tensione di uscita a riposo si stabilizza, per effetto della contro reazione totale in dc , allo stesso livello dell’ingresso.

Il segnale amplificato pilota un classico trigger di schmitt (T4 T5) la cui soglia è posizionata a circa 7V cioè due volt al di sotto della tensione di uscita a riposo dell’amplificatore; l’isteresi è di circa 1V. La tensione al trasduttore necessaria a eccitare il trigger di schmitt risulta quindi essere di circa -8mV. L’uscita dello squadratore è un segnale positivo di circa 5V la cui durata dipende dalla forma del segnale di ingresso.

Il segnale squadrato pilota un oscillatore monostabile di 500nS costituito da T2 e T3. L’uscita dell’ univibratore è di circa 12V senza carico.

Piastra

Foto. Piastra.

La piastra è supporto di circuito stampato a uno strato su 2 facce. Le tracce sulle 2 facce sono connesse tramite fori metallizzati.

I componenti, micromoduli, sono montati solo sulla faccia superiore.

La piastra permette di montare i micromoduli disposti su 12 colonne.

Il numero di micromoduli per colonna non è fisso, in quanto gli stessi hanno dimensioni diverse, 2 / 4 righe.

La sbrogliatura dei circuiti stampati è stata fatta manualmente. Le piste sono state tracciate mediante incollamento manuale di nastrini.

La posizione di montaggio dei micromoduli sulla piastra è data da una lettera identificante la colonna (A – Q ) e da un numero ( 1- 32) per la riga.

La posizione riportata sui fogli logici, nella documentazione, è quella della 1° riga occupata dal micromodulo, indipendentemente dal verso, diritto o capovolto, del suo inserimento nel circuito stampato.

Ad esempio la scritta 04C21, indica piastra 4,colonna C riga 21.

43La connessione tra piastre tramite back panel è permessa da 4 tenoni, disposti sul lato maggiore in basso del circuito stampato, ognuno di essi riporta 28 madonnine dorate.

Il totale dei punti di connessione è 28*4= 112.
I piedini 1 e 2 del 1° connettore sono sempre connessi a massa

I piedini 3 e 4 del 1° connettore sono sempre connessi a +20 Volt.


Le operazione di manutenzione dispongono di un tenone, posto sul lato maggiore, in alto a sinistra, con 8 madonnine dorate.

Con vista piastra lato componenti, la numerazione di colonne, tenoni e delle madonnine parte sempre da destra

L’inserimento capovolto delle piastre pari comporta anche quello dei segnali sul circuito stampato del back panel.

Occore panel quindi distinguere , per le piastre pari tra documentazione di piastra e back

Nota. In Olivetti, il primo tentativo di sbrogliatura di circuito stampato complesso è stato fatto a Pregnana Milanese dall’ing Lerda. La piastra utilizzata era la piastra della temporizzazione della Programma 101.

Micromodulo

Foto. Micromodulo.

Il micromodulo è “l’invenzione” che ha anticipato i circuiti integrati i cui primi prototipi sono stati presentati alla stessa mostra, BEMA di NEW YORK, a cui era la P101 in prima mondiale la P101.

Esso permette un montaggio, su linea separata dei componenti discreti, transistor, diodi, condensatori e resistenze su un piccolo circuito stampato portante inciso il codice micromodulo

Il circuito stampato del micromodulo dipende dal circuito realizzato e riporta una sigla identificativa dello stesso.

Esso ha sempre 2 colonne, il numero di righe 2 / 4, dipende dal circuito. I componenti discreti sono montati in verticale, lasciando un reoforo libero da inserire sulla piastra madre.

I micromoduli di 2 righe montano tipicamente resistenze usate come zavorre, riduttrici di tensione dei segnali e quindi dei disturbi indotti.

Quelli di 4 righe sono tipicamente circuiti NOR, 4 / 5 Ingressi.

Il transistor tipico utilizzato è il 2N708 o equivalente 1W8723. Il diodo è l’ OA95.

Raccolta Circuiti Elettrici.doc

Parte 2 – Struttura Hardware

Temporizzazione dettaglio

Lo schema dei circuiti è in P101- Fogli logici. Foglio 1.

L’hardware della temporizzazione è composto da:

Oscillatore OT. Frequenza base 1 MHz.
Registro shift ML – MP. Assegna l’informazione da LDR a banchi di 5 registri.
Flip flop MT. Aggiunge un 2° banco di registri.
Flip flop MK. Individua il periodo di lettura da LDR del bit nei 10 registri. Frequenza base/10.
Registro shift TA – TH. Periodo di Crt. Richiuso ad anello TH su TA. Frequenza base/10/8= 12,5 KHz.
Flip flop TK. Periodo del Crt . Set in TA – TD.
Flip flop TT. Abilita oscillatore OT. Settato dalla lettura 1° TA di B. Resettato dalla scrittura dell’ultimo bit del 24° Crt di M in LDR.
Flip flop TR. Settato dal 2° TA di B. Inizio del 24° Crt. Reset in TT \.
Flip flop TS. Set da fine TH del 24° Crt. Reset con scrittura 1° TA in B. Copre la temporizzazione priva di TA – TH.

Diagramma Ciclo di temporizzazione .Stato SE.

La temporizzazione è generata da un hardware progettato per essere realizzato con un numero minimo di componenti.

I confini della memoria sono stabiliti mediante bit di servizio TA scritti in B, l’accesso è sequenziale, pertanto non è necessario disporre di un contatore hardware specifico dei 24 Crt.

La scansione del tempo è data dall’oscillatore OT (1 MHz). OT pilota uno registro shift di 5 Bit (ML – MP) connesso ad anello per tutto il tempo di attività della temporizzazione.

Ad ogni set di ML si ha una commutazione del flip flop MK, il quale con la frequenza 1\10 di quella di bit, indica il tempo di bit per i 10 registri interlacciati.

MK , ad ogni suo fronte di salita, determina lo scorrimento del registro ad anello TA – TH (8 Bit). Il periodo del registro determina quello di Crt, essendo i registri interlacciati racchiude 80 Bit.

Il flip flop TK, set con TA, indica bit di servizio o di selezione del registro (TA – TD). Reset con TE, indica il codice della cifra numerica o dell’istruzione (TE – TH).

I flip flop che memorizzano i bit di registro sono divisi in 2 banchi.

1° Banco registri B, C, D, E, F
2° Banco registri A, I, R, G, M

Il flip flop MT set attribuisce i bit nel registro serie in uscita della LDR al 1° banco di flip flop. Con MT reset, i bit nel registro serie saranno attribuiti al 2° banco.

I flip flop serie in uscita alla LDR sono 4 (ME , MF, MG, MH ), avendo ogni banco 5 registri, l’informazione relativa al 5° registro del banco è caricata “al volo” rispettivamente in F e M.

Il momento di informazione nel registro pronta è definito dal flip flop MP.

MP con MT set (MR), attribuisce l’informazione del registro serie al 1° banco.
MP con MT reset (MX), attribuisce l’informazione del registro serie al 2° banco.

MR precede MX di 5 μSec, avendo entrambi un periodo di 10 μSec. Ne segue che l’informazione valida appartenente allo stesso bit, permane nei 2 banchi contemporaneamente per soli 5 μSec.

Diagramma Temporizzazione - 1° Ciclo di Linea di ritardo. Vedere al 300-500%.

Gap della Linea di Ritardo

Essendo la memoria fatta di filo d’acciaio, è necessario che una parte di filo sia aggiunta per assorbire le tolleranze di sistema. Si genera quindi un tempo (Gap) tra la scrittura dell’8° Bit del 24° Crt in M e la rilettura del 1° Bit del 1° Crt di B.

Durante il periodo di gap l’oscillatore OT è bloccato. Il flip flop TT definisce il periodo di attività dell’oscillatore base OT. Durante TT si sovrappongono 3 tipi di attività necessarie per la lettura e scrittura dell’informazione nella LDR.

  1. Trasformazione da serie a parallela di 1 Bit per banco dell’informazione.
  2. Elaborazione dell’informazione dei registri.
  3. Trasformazione da parallela a serie di 1 Bit per banco dell’informazione.

L’ attività 1, precede del tempo di lettura dei bit del 1° banco di registri (5 μSec), il possibile utilizzo del banco di registri interessato.

L’attività 2, dispone di 10 μSec per l’elaborazione dell’informazione.

L’attività 3, segue la 2 e si conclude 5 μSec dopo l’attività 2 con la scrittura del 2° banco di registri.

La fase 2 è pertanto preceduta, inizialmente, da un periodo di tempo di lettura del 1° banco e seguita alla fine, da un periodo di scrittura del 2° banco di registri in LDR.

In questi 2 periodi, iniziale e finale, l’informazione non è valida, pertanto la temporizzazione di Crt fornita dal registro TA – TH è bloccata.

Il flip flop TS copre i momenti, iniziale e finale, di non validità dei dati nei registri.

Il flip flop TR, essendo settato dal TA in B posto sul 24° Crt, indica inizio della fase di fine temporizzazione. Ultimo ciclo TA – TH.

Diagramma Fine Ciclo Linea di ritardo.

Ciclo di rinfresco dell’informazione in LDR

Si è in un ciclo di rinfresco dell’informazione dopo che la macchina ha eseguito un ciclo di reset ed è in attesa che l’operatore dia il via a qualche operazione.

Questa è la condizione al termine dell’esecuzione sia di comandi manuali che di programmi.

In questo caso, ogni 2,1 mSec circa, l’informazione nella LDR compie un ciclo in cui viene ogni volta rinnovata.

La sequenza degli eventi è:

  1. 1° Bit da LDR dopo il gap setta TT .
  2. TT sblocca l’oscillatore OT .
  3. OT avvia il registro di temporizzazione di bit ML – MP.
  4. ML comanda la commutazione di MK. MK segnala che il bit in B, C, D, E, F, A, I, R, G e M è pronto.
  5. MK comanda lo shift del registro TA – TH. Il registro TA – TH provvede la temporizzazione di Crt.

La temporizzazione sincronizza l’informazione da linea di ritardo con i flip flop di registro facente parte di (3) in Figura 1.

La logica combinatoria (4), con la macchina in attesa di azione dell’operatore, copia l’informazione di bit in (3), nel registro di uscita verso LDR (5) .

Diagramma Ciclo Linea di ritardo

La temporizzazione avviata dal 1° bit letto da LDR , che per settaggio hardware è attribuito al registro B, prosegue in modo ciclico, per il tempo corrispondente a 23 caratteri. Nello slot di tempo corrispondente al bit TA del 24° Crt di B, viene letto il bit che con il set del flip flop TR segnala l’ultimo Crt del ciclo.

  • Il 2° bit in TA di B setta TR . Ultimo Crt del ciclo.
  • TR abilita al termine di TH il set di TS . Fine del 24° Crt .
  • TS scritti gli ultimi bit nel serializzatore in LDR resetta TT .
  • TT resettato, blocca OT e quindi tutta la temporizzazione da lui derivante.
  • Il blocco della temporizzazione provoca un periodo di attesa (Gap), pari al tempo necessario al 1° bit di B di giungere alla fine del filo di acciaio e di riavviare la temporizzazione per un nuovo ciclo.

La durata della temporizzazione dipende da posizione e presenza del 2° bit in B. Una sua anticipazione determina una numero di Crt minore di 24. Con la sua scomparsa la temporizzazione non si arresta determinando la mancanza di gap ed una perdita di sincronismo con i dati in LDR.

Registro K

Lo schema del circuito è in P101- Fogli logici . Foglio 3.

Il registro K, composto da 8 bit ( KA – KH ) ha la funzione di :

  • Contatore di Crt in inizializzazione della temporizzazione e numero decimali.
  • Contatore dei denti della ruota fonica in stampa.
  • Interfaccia di dati numerici ed istruzioni con:
    • Tastiera.
    • Stampante.
    • Cartolina.
  • Allinea il registro selezionato ritardandolo di un Crt per ogni giro di LDR.
  • In calcolo contenendo il Crt utilizzato precedentemente nel sommatore, in caso di riporto permette l’inserimento di un TA che segnalerà il Crt durante il ciclo seguente per la correzione della cifra.

Nelle funzioni di conta o di calcolo, con il registro K connesso al sommatore, l’informazione utile è quella di digit ed è nei 4 bit KE – KH.

Il clock del registro K viene generato da:

  • MX tranne che durante la lettura o scrittura cartolina.
  • OS , clock di bit cartolina per i soli 8 bit di codice istruzione.

Il clock è continuo tranne che nei 2 casi seguenti :

a) In stampa sulla seconda colonna dell’indirizzo, TK blocca i primi 4 bit, per caricare in KE – KH il codice dei primi 4 bit del Crt contenente l’indirizzo.

b) Durante la fase di scambio Crt con la cartolina, nel periodo di lettura o scrittura dei 4 bit di servizio aggiuntivi, si inserisce MX per 8 bit abilitati da NB, per scambiare il Crt con la LDR.

Il dettaglio dell’utilizzo del registro K è inserito nel contesto di descrizione relativo alla specifica funzione.

Registro H

Lo schema del circuito è in P101- Fogli logici . Foglio 3. I bit del registro H sono 8 ( HA – HH ). In esecuzione istruzione contiene il codice dell’istruzione. Tipicamente i bit del registro indicano:

HA – HC Registro.
HD Split.
HE – HH Istruzione.

In lettura / scrittura programma o cartolina, seleziona il registro di programma contenente le istruzioni.

Multiplexer registri

51I circuiti multiplexer sono utilizzati per convogliare su un segnale unico il contenuto di più registri. L’informazione del segnale sarà quella del registro selezionato dalla istruzione in esecuzione.

La figura mostra l’utilizzo dei registri dati B, C, D, E, F e dei registri programma G, I ed eventualmente F, E, D.

La tecnica è resa possibile in quanto le istruzioni prevedono la possibilità di selezionare un solo registro per istruzione, oltre se utile, un secondo selezionato in modo implicito e comunque predeterminato in funzione dell’istruzione.

LN, RN, LT - Multiplexer registri dati e programma

image

Il flip flop LN , set con MM*MK e reset con MX, ha la funzione di ritardare il contenuto dei registri del 1° banco, B, C, D, E, F, riallineandolo al contenuto dei registri del 2° banco, M ed A e rende possibili le istruzioni di calcolo, trasferimento. Lo stesso rifasamento viene utilizzato per la stampa dei simboli istruzione ed indirizzo o input output verso cartolina, senza dover badare al banco di appartenenza del registro interessato.

LT – LX viene utilizzata per la stampa del dato numerico. Nelle istruzioni di calcolo, durante lo stato SB, LT – LX serve per trasferire il registro selezionato nell’operando implicito M.

RN nelle istruzioni di trasferimento trasporta il segnale del registro selezionato tra i registri B, C, D, E, F sostituendolo alla richiusura del dato precedente.

LP - Multiplexer registri programma

I registri programma D, E, F, appartengono al 1° banco, mentre G ed I al 2°. Il flip flop LP provvede al riallineamento dell’informazione contenuta nel registro selezionato del 1° banco alla temporizzazione dei registri del 2° banco.

Il flip flop LP viene utilizzato per la lettura dell’istruzione (fetch), durante SP.

image

Reti logiche

CX – OR di stati

image: P101- Fogli logici. Foglio 2

OR logici di stati sono utili per utilizzare le parti hardware utilizzate in fasi diverse della stessa istruzione o in istruzioni diverse.

Si fornisce l’elenco e gli stati che li originano . Onde semplificare l’hardware, un OR di stati logici può avere come suo ingresso un altro OR di stati logici.

CA SC, SD, SE.
CB SE, SG, SH, SM, SN.
CC CH, SE, SM, SN.
CD SM, SN.
CE SF, SH .
CG SA, SB, SC .
CH SF, SG, SH, SK .
CK SM, SN, SP, VX .
CM SB, SE .
VX Originato da SB * ZH * HD * DA, indica stato SB in esecuzione istruzione di costante da programma.


MS – Cambio stato

document: P101- Fogli logici. Foglio 2.

MS fornisce il segnale che temporizza il passaggio di stato.

MS pilota tutti i reset dello stato attuale tranne SS, attuato da SS * TT \ * VP \ . Lo stato di destinazione dipende sia dallo stato di provenienza, esso può essere senza alternative come da SH a SK, o dipendere da condizioni anche multiple, vedi SE che può essere seguito da SA, SF, SM, SP, SS.

VA

La rete logica VA viene utilizzata per scrivere il segno meno nei registri A e R nella formalizzazione risultato, stato SL. • Nelle istruzioni di moltiplicazione, divisione e radice, ZC * LR * TK \ trasferisce R in A, bit TE – TH del risultato. • Tramite SE * ZG * NH (rete RA), forza WK che abilita XC, contenuto di A durante l’istruzione di scambio registro. ( WK * HF * LA * WA \ ) . • Se il decodificato di M è attivo, ZG * DM * VA * NK \ ,introduce in SE A in M.

Ricordando che nelle operazioni di calcolo i flip flop : NK Set ha il significato di A negativo. NL Set ha il significato di segno in A ed M discorde. Il segno del risultato viene introdotto in VA da: ZC * NL * TC

Moltiplicazione, divisione con segno discorde. ZB * NK * NM \ * TC Somma algebrica A negativo e A > M. ZB * NK \ * NM * TC Somma algebrica A positivo e A < M .

La richiusura sui registri A ed R tramite VA è fatta da: SL * PA * VA * NC Registro A. SL * PA * VA * ZF \ * ZK \ Registro R.

XX

XX è usato per commutare NL, flip flop fornente in cartolina, la forma d’onda da registrare o il bit letto.

In registrazione cartolina: OR * HN * KA * NB \ . Commuta NL se bit (KA) = 1. OR * HN \ * NK * NL \ . Scrive il bit di parità.

In lettura cartolina OS * LS * AP \ memorizza i bit letti.

In radice quadrata abilita il 2° ciclo degli stati SF, SG, SH, SK. WR (ZK * SK * NM \) commuta NL ogni SK se NM negato.

Sommatore

document: P101- Fogli logici. Foglio 5. Con sommatore si intende un complesso circuitale utilizzato per operazioni di conta, somma algebrica o confronto. Il sommatore è composto da: • Sommatore binario parallelismo 1 bit. • NL - Rete logica di segno discorde in A e M. Segno discorde NL = 1. • NK - Segno registro A, accumulatore. Segno meno NK = 1. • VB - Rete logica di decisione somma algebrica. Ciclo di somma VB = 1. • XM – Rete logica combinatoria. Bit 1 di somma, confronto o conta. • XS - Rete logica combinatoria. Bit 2 di somma o confronto. • ND - Riporto di bit e digit. • NE – Riporto bit o digit precedente e\o incremento contatore. • NM – Risultato confronto A > M. • VS – Formattazione output sommatore. A completamento è incluso il registro di uso multiplo(KA–KH), utilizzato dal sommatore per: • Far scorrere il registro di un Crt rispetto gli altri. • Inserire a posteriore un bit di servizio, per la eventuale correzione. • Conta posizioni Crt in LDR . I dati oggetto di calcolo sono posti in M e A, registri interi. Il risultato del calcolo, a fine calcolo, si trova formattato in A, stato SL. Il registro R è utilizzato, durante il calcolo, come registro di servizio. A fine calcolo contiene dati utili, il cui significato diverso, dipende dall’istruzione. Le funzioni che utilizzano il sommatore sono: 55• • • • Scrittura dei bit di controllo temporizzazione della LDR. Impostazione della numero di cifre decimali da rotella. Esecuzione delle istruzioni di calcolo. Conta denti ruota in stampa. Le operazioni elementari sono: • Conteggio Crt. • Confronto registri. • Somma di bit. • Somma di digit decimali.

PA, PM, TP e TM

PA, PM e TP, delimitano la parte di registro contenente dati validi. Il criterio di scelta è presenza di bit TB = 1 contigui. Questa funzione risolve il problema di registri che durante l’elaborazione possono far scorrere, shiftare, la loro posizione in linea di ritardo. PA, PM sono correlati al registro A e M. TP svolge la stessa funzione logica per il registro selezionato tra quelli in LT (A, M, R, B, C, D, E, F) . PA e PM in or originano PO, segnale che spesso determina il cambio stato. Con i registri deposito splittati che possono contenere due dati numerici, la scelta del dato indicato dall’istruzione è fatta tramite il flip flop TM. Il set di TM dipende dal bi HD dell’istruzione: • HD = 0 Set tramite TA in B sul 24° Crt. • HD = 1 Set tramite TA in C sul 12° Crt. TM permane per 1 solo Crt, il suo reset avviene il TA seguente L a caduta di TM setta TP all’inizio del registro, 1° o 13° Crt. TP, è set per la parte di registro individuata da HD e con Crt contigui aventi TB=1.

HP

Il flip flop HP indica che è in esecuzione un programma. Esso è settato da XI (CS * LR * TA * SA \ * NH \ ), segnale che inizia la fase di fetch da registro programma dell’istruzione da eseguire. Il reset di HP avviene con l’estrazione, da registro di programma, dell’istruzione S Istruzione che a seconda della logica del programma, pone lo stesso in attesa dell’intervento dell’operatore o ne segnala la fine. ===Decodifica codice istruzione===. P101- Fogli logici. Foglio 3. Il registro H contiene il codice dell’istruzione in esecuzione, specificamente in: HA – HC Codice del registro. HD Registro intero (0), splittato (1). HE – HH Codice operativo. Dai codici derivano specifici decodificati hardware di indirizzo e codice operativo.

Decodifica codice indirizzo registro - DX

P101- Fogli logici. Foglio 3. I decodificati di registro sono 8, la lettera dopo la D è quella del registro. In ordine binario: Decodificato DM DC DR DD DA DB DF DE Hex 0 1 2 3 4 5 6 7 HA 0 1 0 1 0 1 0 1 HB 0 0 1 1 0 0 1 1 HC 0 0 0 0 1 1 1 1 Per i soli registri deposito B, C, D, E, F , ponendo il bit HD = 1, si seleziona il registro indicato in HA – HC, di soli 12 Crt con inizio dal 13° Crt. I registri aventi HD = 1 sono detti splittati e nei fogli di programmazione sono indicati con lettere minuscole. I registri solo programma G ed I, essendo acceduti in sequenza non necessitano di specifico indirizzo. Dovendo comunque essere distinti per essere utilizzati, si usano i decodificati DM e DA, rispettivamente per G ed I. La condivisione dei due decodificati è resa possibile dalle funzioni, tra loro esclusive, che utilizzano i due tipi di registri. Da tastiera HD è posto a 1 istruzione. dal tasto Split (\), inserito tra il tasto indirizzo e quello

Decodifica codice operativo - ZX

P101- Fogli logici. Foglio 3. I decodificati delle istruzioni sono utilizzati per identificare sia un solo codice operativo che un insieme di codici operativi. Un solo codice operativo può attivare più decodificati. Ad esempio la radice quadrata , codice operativo B Hex, attiva i decodificati: ZA ZC ZK Calcolo Moltiplicazione, Divisione, Radice quadrata. Radice quadrata. In ordine binario: Decodificato ZN ZG ZH ZB ZE ZF ZL ZK ZM Istruzione S ↓, ↕ ↑ +, - X

<>, * √ V, W,X,Y Hex 0 1, 3 2 4, 5 6 7 8, 9 B C- F HE 0 X 0 X 0 1 X 1 X HF 0 0 1 0 1 1 0 1 X HG 0 0 0 1 1 1 0 0 1 HH 0 0 0 0 0 0 1 1 1 Il codice operativo A Hex non è utilizzato. ZA si attiva per tutti i codici operativi di calcolo più VX, costante da programma. ZC si attiva per moltiplicazione, divisione , radice quadrata. ZO viene attivato per i codici di trasferimento registri, stampa, e ZA * SB * NH \ .

Schema a blocchi

image

Parte 3. Hardware comune

Lettura o scrittura in Linea di Ritardo

L’operazione di lettura o scrittura in LDR, in caso di interazione con tastiera, cartolina e stampa, utilizza una struttura hardware unica indipendentemente dal contenuto semantico del dato scambiato (Esempio numero o istruzione). I segnali di • AK • WX • HN • VZ richiesta sono: Crt da tastiera. Crt da stampare. Crt in input o output verso cartolina. Avvio stampa per risultato calcolo manuale X : e radice. La struttura si compone di: • WZ Or delle richieste. • PS Flip flop si sincronizzazione con temporizzazione di Crt. • NG Flip flop di abilitazione richiesta. • NA – NB Coppia di Flip flop di attuazione della richiesta. Il flip flop PS, sincronizza l’insieme delle richieste asincrone di scambio Crt, rispetto la temporizzazione di sistema, usando il 1° fronte di TD per il set e di TH per il reset. Il flip flop NA: Set con XE: • TA in R Tastiera e Cartolina. • TA in A Stampa. Blocca la scrittura del TA in R o A se occorre spostarlo sul Crt seguente. Abilita la scrittura del Crt nel registro K. Il reset di NA avviene il TA seguente e con esso si ha il set di NB . Il flip flop NB: Scrive il TA in R o A, se occorre sul carattere seguente. Setta NG impedendo che il ciclo seguente si abbia un nuovo ciclo NA – NB . Un nuovo ciclo si riavrà solo a seguito di un nuova richiesta di scambio Crt con LDR con NG reset. Il diagramma mostra il caso di stampa della cifra 6 in M. Diagramma Ciclo NA - NB Il TA di A è sul 1° Crt, esso genera XE che setta NA. NA blocca la riscrittura del TA in RA. 60La cifra 6 in LM, complementato 9, viene caricata in K per il conteggio successivo coi denti della ruota fonica. Il reset di NA setta il flip flop NB . Il flip flop NB: Abilita la scrittura del TA in RA ritardato di 1 Crt. Setta il flip flop NG che bloccando XE impedisce cicli supplementari di NA – NB .

Introduzione dati

La via primaria di introduzione dati è la tastiera. L’introduzione di dati è permessa solo in SA, stato in cui la tastiera è sbloccata. Da tastiera si introducono sia i dati per l’utilizzo della P101 come esecutore di singole istruzioni, che i codici delle istruzioni di un programma da eseguirsi successivamente. La distinzione tra le diverse modalità è descritta a pagina 36 di questo documento (Pulsanti Introduzione e Stampa Programma). Se i dati numerici, sono seguiti da istruzioni di salto o start, si avvia il programma precedentemente inserito. Se l’istruzione introdotta è diversa da salto o start, si ha l’esecuzione immediata dell’istruzione con : • Stampa dati e istruzione. • Esecuzione immediata della istruzione. • Ritorno in SA in attesa nuovo intervento operatore. Anche con programma introdotto da cartolina, il suo avvio avviene da tastiera con l’inserimento del codice dell’istruzione tra S, V, W, Y, Z. I cicli meccanici di tastiera, attivano con i μSwitch di codice, il μSwitch AK avente funzione di strobe. Fanno eccezione il 1° ciclo di reset ed i tasti virgola e segno meno che non attivano AK. I micro AE ed AF codificano con: • 00 Dato numerico. • 11 Indirizzo di registro. • 01 Codice di istruzione. I micro AA – AD, rappresentano il codice di dato numerico, indirizzo o istruzione. In ogni caso detto codice viene memorizzato nel registro K (KA – KD). In Appendice A. Codici da tastiera, si trova il dettaglio dei codici attribuiti ai tasti. La sequenza degli eventi di gestione è la stessa per ogni tipo di tasto, con: AK Strobe del codice. PS Strobe sincronizzato alla temporizzazione di Crt. NG Assicura 1 solo codice a battuta tasto. NA Attivo sul Crt del TA in R. NB Attivo sul Crt seguente il TA in R.

Dato numerico

I dati numerici, contraddistinti da AE e AF entrambi a 0, sono memorizzati nel registro M. La cifra (digit) è inserita nel Crt seguente quello corrispondente al TA di R. L’inserimento della 1° cifra numerica con WE ( SA * PS * NM \ * AF \ * CT \), azzera di M cancellando il numero precedente. La posizione del puntatore TA in R è indeterminata. Il TA in R, è utilizzato pure come puntatore dell’istruzione da eseguire, quindi la sua posizione dipende dalla logica di un eventuale programma. Durante la fase di introduzione del dato il TA in R, rimane fisso, i Crt inseriti precedentemente lasciano il posto al nuovo essendo ritardati in blocco da un giro con K inserito, XD ( CG * LM * ND * WM \ * YD \). Ciò è necessario se si è interrotta l’esecuzione del programma per introdurre un dato e riavviare il programma dal punto di interruzione. La battuta dei tasti segno meno (AM), virgola (AV), clear (AN), viene memorizzata rispettivamente in NE, NF, NC. A seguito del tasto di segno meno (AM), SA * NE * PM * TC * CT \, inserisce il bit TC, su tutti i Crt di M con PM attivo. Il tasto di segno meno esegue la sua funzione anche se è battuto prima del tasto istruzione . Il codice è completato da XG (SA * NB * UH4 * AF \ * CT \), che inserisce tramite UH4 (WM + TB), i bit di servizio TB e TD sull’ultima cifra introdotta. La virgola rappresentata dal bit TD in WM ( SA * TD * NF \), è bloccata se NF = 1. WM stesso blocca il TD in XD (CG * LM * ND * WM \ * YD \), via di richiusura tramite K di M. Si ottiene che la virgola (TD), accompagna sempre l’ultima cifra battuta sino alla battuta del tasto di virgola, che attivando NF ne fissa la posizione sulla cifra delle unità. Si nota che in ogni caso, un numero senza decimali la cifra delle unità ha il TD =1. Il diagramma presenta l’introduzione di 234,56 e↑, l’operatore dopo aver introdotto 234 erra battendo il meno (AM), corregge con Clear (AN), termina introducendo correttamente 234,56 e↑. Diagramma Introduzione dato con tasto Clear. Il diagramma mostra l’inserzione dell’ultima cifra decimale 6, nel Crt individuato da NB con il shift relativo delle cifre 234,5 , introdotte precedentemente. Diagramma Inserzione cifra. 62Il tasto Clear (AN) setta NC e il gate VW (SA * AN * AP \), resetta NE ed NM. VH (SA * AK * NM \), tasto con NM reset, resetta NF. Un successivo tasto numerico o istruzione, attivando XW resetta NC. Diagramma Tasto Clear.

Indirizzo

Un tasto indirizzo attiva entrambi AE ed AF. La sequenza di eventi di gestione del tasto è uguale a quella dei tasti numerici con la differenza che AF = 1, indirizzo o istruzione, blocca la scrittura del codice in M. In alternativa AE abilita XK (SA * AE * NB * TK ), di conseguenza WV, che scrivono il codice in K col 1° fronte, nei successivi 4 bit in TK, il codice è trasferito in HE – HH. Si ricorda che in caso di indirizzo M si può omettere la battuta del tasto. Diagramma Tasto Indirizzo. La battuta del tasto split, appartenente alla famiglia degli indirizzi ne ripete gli eventi, in più con (SA * AE * AD * HE * CT \) si ha la richiusura dei 4 bit più significativi di H (HE – HH), che si sovrappongono al codice del tasto (8). Oltre alla richiusura il vecchio contenuto (7) viene spostato pure in HA – HD, il risultato finale sarà F7. Il 7 sarà espulso da H dal codice istruzione. Diagramma Tasto Split Indirizzo.

Istruzione

Vale quanto detto per l’indirizzo, con XW (SA * AE \ * NB * TK \ * SO \) al posto di XK. XW scrive il codice istruzione in K col 1° fronte, nei successivi 4 bit in TK /, il codice è trasferito in HE – HH. L’indirizzo è trasferito in HA – HD. Risultato finale mostrato nell’esempio è 2F (↑e). Diagramma Tasto Istruzione.

Esecuzione istruzione singola da tastiera

Nello stato SA, tastiera sbloccata, WL (SA * TA * NM \ * SO \) in TA abilita UC4 la sino alla battuta del 1° tasto che setta NM. UC4 clock di H lo azzera. Ogni • • • • • • battuta di tasto è seguita dalla sequenza: AK Strobe da. AA – AF Codice da μSwitch tastiera. Appendice A. Codici da tastiera . PS Strobe sincrono con temporizzazione Crt. NG Settato sul fronte di discesa di PS, Abilita gestione Crt. NA Set da TA il R (SA * NG * LR * TA * LR) per un Crt. NB Set alla caduta di NA, attivo per il Crt seguente NA. NA – NB sono utili per l’inserimento in M, del codice numerico nel Crt seguente quello individuato dal TA in R. Per i tasti indirizzo o istruzione si utilizza lo stesso dispositivo hardware. Il tasto indirizzo attiva XK (SA * NB * AE * TK). XK in NB abilita 4 clock in TK, che caricano l’indirizzo contenuto in K in HE – HH. La battuta del tasto \ registro splittato, emette un codice indirizzo che attivando XK ne ripete il ciclo. Il gate SA * AD * AE * HE * CT \ in RH permette la sovrapposizione del bit TD del tasto \, ai bit introdotti in H dal tasto precedente. Risultato finale, in HE – HG si ha il codice del registro e in HH il bit di split. 64Il tasto istruzione attiva XW (SA * NB * AE \ * TK \ * SO \) , il quale in NB abilita 4 clock TE – TH, che caricano l’istruzione contenuta in K in HE – HH , l’indirizzo precedentemente caricato si sposta nei bit adiacenti HA - HD. NB a seguito della battuta di un tasto indirizzo o istruzione genera WV (XK + XW). WV con WV * AF * AE \ , setta NH. NH con CG * NH * TT \ * SC \, genera YA, quindi MS che chiude SA e blocca la tastiera. I 4 diagrammi mostrano in sequenza: • Insieme della battuta dei tasti E, \, √. Radice quadrata di e (Split). • Tasto E. • Tasto \. • Tasto √. Diagramma Sequenza tasti Indirizzo, Split e Istruzione. Diagramma Tasto Indirizzo. Diagramma Tasto Indirizzo splittato. Diagramma Tasto Istruzione.

Stampa

La stampa viene eseguita dalla sequenza di 3 stati SM, SN ed SS. L’or di stati SM + SN origina CD che pilota il movimento del carrello. Il carrello in moto aziona il μSwitch AW il quale è tarato per muoversi durante la parte di rotella priva di denti. Il segnale denti di rotella fonica OK, condizionato da AW genera WX, data la sincronizzazione con AW, il 1° fronte di WX sarà dovuto al 1° dente. WX, periodo di 33,33 mSec, è posto in ingresso al circuito integratore WZ, Essendo il numero di denti 17, con una circonferenza che ne permette 24, il tempo in cui WZ è set sarà: 33,33/24*17 = 23,6 mSec. Il tempo WZ reset sarà 33,33 – 23, 6 = 9,72 mSec. • SM • SN • SS Attende l’avvio del carrello AW. Stampa i simboli istruzione ed indirizzo se diverso da M. La terza colonna è sempre uno spazio separatore. Stampa il contenuto del registro selezionato. Con pulsante Registra Programma attivo, dura un solo giro e non stampa. Attende che il carrello ritorni a casa. La caduta di AW segnala la fermata del carrello ed abilita la fine di SS. Appendice C. Tabella corrispondenza Simboli e Ruota fonica. La battuta del martello avviene a seguito di una conta dei denti, che termina con un riporto (>15) che attivo il Crt seguente in TA setta NE. La condizione di fine conta, in attesa di battuta viene memorizzata in NK. L’ asincronismo tra rotazione del tamburo e temporizzazione, non esclude la coincidenza di Gap e riporto che ritarderebbe la battuta. Onde garantire uniformità di battuta, si introduce un flip flop NC, di sincronismo, azionato direttamente dal fronte del dente. Diagramma Stampa di codice 3. 67Considerato che il codice del simbolo da stampare è caricato nel contatore nella forma complemento a 15 (Inversione binaria): • Caso codice 3 (0011). Viene caricato 12 (1100). Il riporto si ha dopo 4 conte e la battuta in corrispondenza del 5° dente. • Caso codice 0 (0000). Viene caricato 15 (1111). Il riporto si ha dopo 1 conta e la battuta in corrispondenza del 2° dente. • Caso codice 15 (1111), corrispondente all’istruzione di salto Z. Viene caricato 0 (0000). Il riporto si ha dopo 16 conte e la battuta in corrispondenza del 17° dente.

Parte 4 - Istruzioni

Le istruzioni possono essere eseguite in modo manuale, isolatamente, oppure inserite in un programma precedentemente caricato da tastiera o cartolina. Durante l’esecuzione delle istruzioni la macchina si pone in uno stato diverso da SA pertanto la tastiera è bloccata. Le istruzioni eseguite in manuale, hanno un svolgimento simile a quello atteso da una comune calcolatrice. L’istruzione è inserita in SA da tastiera. Tranne che per le istruzioni di stampa, gli stati esecutivi sono preceduti dagli stati SM, SN, SS, di stampa dell’istruzione e del dato eventualmente introdotto. In caso di moltiplicazione, divisione e radice, all’esecuzione dell’istruzione segue la stampa automatica del risultato. A fine esecuzione la macchina ritorna in SA ed attende l’intervento dell’operatore. In esecuzione programma l’istruzione è letta in SP, da un registro programma in cui è stata inserita precedentemente da tastiera o cartolina, gli stati esecutivi seguono immediatamente SP. Le stampe dei registri devono essere comandate da istruzioni specifiche. A fine esecuzione la macchina ritorna in SP ed estrae l’istruzione seguente.

Trasferimento

Le istruzioni di trasferimento che interessano i registri , sono tre, come da tabella: Codice Decodificato Descrizione X↑ X2 ZH Trasferisce M nel registro X X↓ X1 ZG Trasferisce il registro X in A X↨ X3 ZG Scambia A con il registro X La X in tabella indica il registro, intero o splittato, coinvolto nel trasferimento. Se X non è indicato nell’istruzione, il registro interessato è M. Gli stati esecutivi delle istruzioni di trasferimento sono: SB, SC, SD, SE con ritorno in SA se manuale e SP se programma. Lo stato SB, non ha funzione attiva nelle istruzioni di trasferimento. Il trasferimento viene attuato in SE, dopo che il contenuto dei registri A e M è stato allineato in SC o SD, con la cifra meno significativa sul 1° o 13° Crt.

Trasferimento da M

Il gate ( ZH * SE * LM * NH * TA \), nel multiplexer RN, attua il trasferimento di M nei registri deposito nel 2° ciclo di SE con NH set. A \↑ e A ↑ sono riservati alla istruzione Costante di programma. ↑ e R↑ non sono utilizzati. Il diagramma mostra il trasferimento di 3,14 da M in B. Diagramma. Trasferimento da M. Nel 2° ciclo di SE, si ha l’attivazione di RN → RB e la scrittura in LDR. Il ciclo seguente il 3,14 è letto in LB. La cancellazione del vecchio contenuto del registro si ottiene automaticamente in quanto la selezione diretta del registro seleziona RN escludendone la richiusura.

Trasferimento in A

L’istruzione X↓, trasferisce il contenuto del registro X nel registro A. Il trasferimento avviene nel 2° ciclo di SE, NH set. Il gate ( SE * ZG * NH ) blocca la richiusura di LA su RA, ed origina il segnale WK. 70Con riferimento ai dati da scrivere in A, WK come in X↨, scambio di X con A, abilita il multiplexer di registri LX in RA. LX è un multiplexer di registri, oltre M, A, R abilita LN, a sua volta multiplexer dei registri deposito. LX contiene l’informazione del registro il cui indirizzo appare nel codice dell’istruzione. Il diagramma, mostra il trasferimento di M (3,14) in A. Diagramma. Trasferimento X↓ .Stato SE .

Scambio con A

L’istruzione X↨, scambia il contenuto del registro X con quello di A. Lo scambio avviene nel 2° ciclo di SE con NH set. Il gate ( SE * ZG * NH ) blocca la richiusura di LA su RA ed origina il segnale WK. Con riferimento ai dati da scrivere in A, WK come in X↓, trasferimento in A abilita il multiplexer di registri LX in RA. LX abilita LN, a sua volta multiplexer dei registri deposito che contiene l’informazione del registro il cui indirizzo appare nel codice dell’istruzione. Con riferimento ai dati da scrivere nel registro deposito, i dati di RN scritti nel registro selezionato tramite RN, sono forniti da XC ( WK * HF * LA * WA \), con HF che discrimina tra l’istruzione di Scambio HF = 1 e Trasferimento in A HF = 0. Nella memorizzazione in LN, tramite MX, si ha l’allineamento dell’informazione dei registri del 1° banco a quelli del 2° banco. Il diagramma riporta lo scambio di; B (3,14) con A (6,28). L’allineamento tra registri del 1° banco 1 (B) con quelli del 2° banco (A) tramite il mastro MX che setta LN è reso evidente ingrandendo il diagramma al 500%. Diagramma. Scambio X↨ . Stato SE.

Trasferimento di parte decimale

L’istruzione /↨, trasferisce la parte decimale del contenuto di A in M. A resta invariato. La sequenza di stati esecutivi è quella comune alle istruzioni di trasferimento. Stato di fetch istruzione, SA o SP, seguito da SB, SC, SD e SE. L’istruzione /↨ origina DH, il quale forza il decodificato DA, selezione di A, oltre alla normale selezione di M. In SE, WK derivato da SE * ZG * NH, abilita UB4 , ZG * DM * VA * NKN, a scrivere il contenuto della parte decimale di A in M. VA deriva da XC, e quindi contiene A. Ricordando che l’istruzione di trasferimento ha allineato A sulla cifra meno significativa, sarà questa la prima ad essere letta in SE. NK che reset abilita UB4, scrittura di A in M, è resettato in SD da XO, e viene settato da WB, WK * DM * HD * TD * LA, virgola in A. Pertanto alla fine del trasferimento in M saranno trasferite tutte le cifre meno significative e i bit di servizio TD compreso delle unità. Se in A è contenuto un intero, in M viene trasferito uno 0 con segno. Il contenuto di A è preservato mediante la forzatura di DA, che bloccato M da DH, abilita A in LX che in WK riscrive A su se stesso. Si impedisce la scrittura di M in A. Diagramma Stato SE.

Aritmetiche

Le istruzioni aritmetiche sono eseguite nella sequenza di stati : SB, SC, SD, SE, SF, SG, SH, SK, SL. Di cui : • SB, SC, SD, SE • SF, SG, SH, SK, SL Stati preparatori . Stati esecutivi e di uso esclusivo delle aritmetiche. In somma, sottrazione, moltiplica e divisione : • Il 1° termine è specificato nella parte indirizzo del codice, bit TA-TC. • Il 2° termine dell’operazione è sempre implicito ed è il registro A. In radice, il termine unico indicato dalla parte indirizzo del codice istruzione, viene trasferito in A. Se non si specifica alcun registro, bit TA – TC a 0, di default, come 1° termine viene selezionato il registro M. Il registro A, ha la funzione di accumulatore, registro che memorizza il risultato delle somme binarie prodotte dai cicli elementari SF – SK. Il registro R, svolge la funzione di registro di appoggio durante il calcolo. La complessità della radice quadrata richiede un raddoppio del ciclo SF – SK. In SK avviene lo scambio tra A ed M, alla fine del doppio ciclo l’informazione logica in A ed M è ripristinata.

Stati preparatori aritmetiche

Stato SB

Lo stato SB è di 2 cicli di LDR . La distinzione tra i due cicli è data da NH settato da TT al termine del 1° ciclo. In SB avviene il trasferimento del registro indicato nell’indirizzo dell’istruzione, se radice quadrata in A, per le altre istruzioni di calcolo in M. Il gate ZA * SB * NH \ , durante il 1° ciclo cancella il contenuto di M. Lo stesso gate, se informazione (LN) in TM (24° Crt), pone la condizione di errore, set di ER tramite ZO, con SB * ZO * TM * LN * DR \. Il gate ZA * SB * LX * ZK \ * VX \ scrive in M, il registro selezionato posto in LX, tranne che in radice quadrata. Se radice quadrata, il gate ZK * SB * NH * TR * (TB + TD + TE), scrive in M, 1 con virgola. Il gate ZK * SB * NH \, in radice cancella A nel 1° ciclo. WA ( ZK * SB ), forza WK che in WK * LX * ( DA * TC * HD \ ) \ , scrive in A, il registro selezionato contenente il radicando. 74Stati SC, SD. Per la descrizione degli stati SC e SD si rinvia al paragrafo “Elenco Stati e loro funzione” a pagina 27 di questo documento. Stato SE. Lo stato SE è di 2 cicli di LDR. Durante il 1° ciclo NH = 0, avviene la conta che posiziona il TA in A, individuante la cifra decimale impostata nella rotella decimali. La conta si ottiene connettendo il sommatore al registro K, che a sua volta ricicla sul sommatore tramite XM. L’incremento alla conta ogni Crt è dato da NE, 3° ingresso del sommatore. A negativo è memorizzato in NK da ZA * SE * LA * TC . Il segno discorde in A ed M, è memorizzato in NL da ZA * SE * PA * PM * Rete confronto dei segni di A ed M. Dati gli elementi di partenza: • Registro di 24 Crt. • Riferimento di inizio conta dato dalla virgola del registro A. • Valore massimo impostabile su rotella di 15. • Supporto alla conta digit KE – KH, 4 bit del registro K. Ne segue che la conta deve essere divisa in due parti : 1° Parte Conta di 8, mediante preset di 8 del registro K. 2° Parte Conta del complemento a 15 del valore nella rotella. 1° parte della conta. XV ( SE * ZA * TD * LA ), virgola in A, origina WF che setta NG, abilitazione alla conta. WF presetta KE in TD, equivalente di KH in TA, cioè 8. Il gate SE * TE * NG * MM, setta NE ogni Crt fornendo l’incremento di 1. XT ( SE * NG * NE * TB) segnala riporto di cifra ( NE * TB ), setta NF e imposta il complemento della rotella (UD1 – UD4) in KC – KF. 2° parte della conta. WD ( SE * NF * NE * TA), riporto di cifra durante NF, 2° parte di conta, scrive il riferimento TA in A e con il reset di NG pone fine alla conta. L’esempio nel diagramma, pone in M 3,14 e in A 21,7. I registri sono entrambi allineati con la 1° cifra significativa nel 1° Crt dopo il gap, istruzione di divisione. Il TA in A, con la rotella impostata su 2, è scritto sul 22° Crt della LDR. Diagramma Stato SE. Impostazione decimali. 75In radice quadrata, durante SE avviene il controllo sul numero di cifre significative dopo la virgola. Se pari, ricordando che l’allineamento di A è avvenuto sul 1° Crt significativo, occorre ritardare A di una ulteriore cifra, in quanto l’algoritmo di radice in questo caso, opera a partire da una coppia di cifre. Il controllo sulla parità del numero di cifre che seguono la virgola in A è fatto da un riciclo NA – NB - NA ... per il periodo in cui vi sono cifre valide in A (PA = 1). Ogni ciclo NA – NB dura una coppia di Crt. Il Set di NA è iniziato da XV, virgola (TD) in A, nel 2° ciclo di SE (NH = 1). Il riciclo di NB su NA è attuato da ZK * SE * NB abilitato da PA, cifre valide in A. NA quindi è set durante le cifre dispari. TM, è posizionato sulla cifra che precede la più significativa o quella con virgola, su cui è avvenuto l’allineamento, quindi se NA è set durante TM il numero di cifre che seguono la virgola è pari. Questa condizione ZK * SE * TM * NA * TE setta NC che nello stato seguente SF, provocherà un ritardo ulteriore di 1 Crt di A. Il diagramma seguente, mostra il controllo di cifra pari con radice di 1234,7 trasferito da registro splittato. L’allineamento è quindi con TM sul 12° Crt. Diagramma Stato SE. Radice cifra pari. Stati esecutivi SF, SG, SH, SK, SL. CH, or degli stati da SF a SK, abilita la riscrittura del TA nei registri A, M, R, quando questi sono connessi al registro K, tramite (CH * KA * TA). Il sommatore connesso ai registri A, M e R, viene utilizzato per operazioni di calcolo o conta. Dispone di 3 ingressi: • XA 1° Termine dell’operazione di calcolo. Non operativo in conta. • XM 2° Termine dell’operazione di calcolo o dato da incrementare in conta. • NE Riporto del calcolo o incremento di 1 se operazione di conta. 76L’hardware è capace di due tipi di operazioni, somma o sottrazione binarie. Quale operazione compia, è dato dalla rete logica VB: VB = 1 indica operazione di somma binaria, si verifica nei casi di: • Somma (+) e segni di A ed M concordi. • Sottrazione (-) e segni di A ed M discordi. • Moltiplicazione. • Divisione e radice in stato SK e nuova cifra (NM = 1). • Radice e 2° Ciclo SF - SK (NL = 1). Per esclusione negli altri casi, VB = 0, si ha sottrazione binaria. • • VB = 1 Somma M ad A. Il riporto di cifra si ha se il digit risultante, bit TE - TH, è > 9. VB = 0 Sottrazione, somma il minore tra A e M al complemento del maggiore. Il riporto di cifra si ha se il digit risultante, bit TE - TH, è > 15. Il risultato finale è sempre complementato Le cifre che hanno avuto riporto sono corrette mediante la somma di 6. Esse sono indicate dal bit TA, del Crt corrispondente, di M a 1. Il complemento a 15 si ottiene utilizzando il segnale negato per i soli Crt validi, il campo di validità è definito da PM, PA o PO. Il complemento del risultato, VB=0, avviene per i Crt entro PA e per i soli bit di cifra TE – TH (TK=0). Da quanto esposto il calcolo richiede tipicamente 5 operazioni che sono compiute negli stati esclusivi delle istruzioni aritmetiche : SF Confronto fra i 2 termini del calcolo. SG Conta dei cicli di calcolo. SH Operazione di somma o sottrazione. SK Correzione del risultato parziale del calcolo. SL Formattazione del risultato finale del calcolo. Le operazioni di calcolo richiedono, oltre al sommatore, un registro hardware (K) per: • Allineamento su cifra successiva. • Scrittura del bit TA marcatore della cifra da correggere. • Operazioni di conta Crt. Dato che l’informazione proviene da un registro, l’inserimento del registro K comporta il ritardo di quella informazione di 1 Crt rispetto gli altri registri per ogni giro di LDR a registro K connesso. Pertanto nel caso di calcolo per non perdere l’allineamento delle cifre contenute in A, M e R, i 3 registri ogni ciclo SF – SK, subiscono un ritardo di 1 Crt. Questo determina lo scorrimento dei registri A, M, R rispetto tutti gli altri di 1 Crt per ogni ciclo. Tipicamente • SG • SH • SK il registro K è connesso in: al registro R. al registro A. al registro M. Nel caso di esaurimento della cifra durante il calcolo, il posizionamento sulla cifra seguente si ottiene ritardando A ed R non M. 77Connessione Sommatore, Registro K e registri A, M, R . Stato SF. In SF si esegue il confronto tra M ed A, tramite la somma tra M e il complemento di A. In radice se nello stato SE, la presenza di un numero di cifre pari intere ha settato NC, il confronto si esegue con KA, A ritardato di 1 Crt, negato. In questo caso, radice e cifra pari, in A si scrive l’informazione ritardata di KA. La condizione di A>M è data da riporto che si estende oltre la cifra più significativa, se VB = 0, SF * NE * NM \ * VB \ , setta NM. Il gate NL * ZK, 2° ciclo in radice, blocca l’ingresso XM, dato che in questo caso non è previsto confronto. In SF non si effettua alcun shift di registro oltre che il caso descritto di radice. Stato SG . In SG avviene la conta dei cicli SF – SK con il registro R come contatore. XM è il tramite di R nel sommatore, mentre XA è mantenuto a 0. L’incremento di R si ottiene in: a) Moltiplicazione e divisione, sul Crt di R corrispondente alla virgola in M se in SF non si è settato NM, condizione di fine calcolo su cifra. b) Radice quadrata, nel 2° ciclo (NL) con il TB in A. Ricordo che nel 2° ciclo A essendo stata scambiato con M, ha attivo solo il TB della cifra meno significativa. Essendo in radice l’incremento condizionato da CH, esso si verifica anche in SH e SK. ZC è bloccato da ZK * SG, impedendo l’incremento sulla virgola di M nel 1° ciclo di radice. Onde mantenere l’allineamento con A e M, R è comunque connesso a K prima di richiudersi sulla LDR. In moltiplicazione il riporto di cifra WP ( SG * NE * TA), setta NM indicando esaurimento del ciclo di somme per la cifra considerata ed il passaggio alla seguente. Stato SH . 78SH somma algebricamente M ad A, con il risultato che si richiude su A tramite K. In sottrazione algebrica VB=0, se A>M (NM=0), si complementa A sull’ingresso XA. Se M>A (NM=1), si complementa M sull’ingresso XM. L’incremento di 1 di M, nel 2° ciclo di radice si ottiene con: XM = 0 Bloccando LM con ZK * NL . XA = A Logicamente M per effetto dello scambio in SK con A. NE = 1 Set con ZK * NL * CH * LA * TB * MT . In ingresso di K si copiano i bit di servizio (TK) di A tranne TC. Se riporto SH * NE *TB * ZK \ scrive un TB aggiuntivo. In uscita di K, si invalida la cifra se digit KE – KH = 0, ponendo TB = 0. In caso di riporto di cifra, SH * NE * TA scrive in M un TA , segnale per la correzione in SK della cifra corrispondente di A . Essendo il TA quello seguente il Crt che ha generato il riporto, se A è ritardato, il Crt con TA in M e Crt da correggere in A corrispondono. Richiudendosi K su RA, A funziona da registro accumulatore e viene ritardato di 1 Crt. Diagramma Stato SH . Somma 765,432 + 234,679. Stato SK. In SK • • • si: Correggono le cifre con riporto segnalate da TA in M. Ritarda M riallineandolo ad A e R. In radice 792° ciclo, somma 1 ad M usando lo stesso meccanismo di SH . Scambio A con M in entrambi i cicli. Diagramma Stato SK . Somma 765,432 + 234,679. Correzione per riporto, VY (CH * LM *TA), setta NB, abilitando SK * NB * TE \ * TH \ (6) in ingresso XM del sommatore. WR (ZK * SK * NM \) genera XX, istruzione di radice e no esaurimento cifra NM \. XX abilita SK * XX * KA che richiudendo M su A completa lo scambio di A con M. WR agisce da switch, abilitando con il suo diritto VK (SK * XX * VS * TA \) la richiusura del sommatore su M. WR, con il negato, abilita la scrittura in M dell’uscita del registro K contenente M effettuando lo shift di M. VS tramite della richiusura del sommatore contiene: • Se VB = 1 XS segnale di somma. • Se VB = 0 XS \ segnale di somma invertito durante PA e per TE – TH. • A Per i bit TA – TD. Dopo gli stati SH e SK a completamento dell’esempio di somma onde poter verificare l’esito si presenta il diagramma dello stato SL. Diagramma Stato SL . Somma 765,432 + 234,679 = 1000,111 . A fine calcolo: • A Contiene il risultato formattato con i decimali impostati nella rotella. • R Contiene il risultato non formattato. 80Addizione e sottrazione. L’istruzione di somma ha codice X4, la sottrazione ha codice X5. L’operazione eseguita dipende dalla combinazione di istruzione e segno dei termini, quindi somma e sottrazione hanno un decodificato unico ZB, oltre ZA che è comune a tutte le istruzioni aritmetiche. Il registro A accumulatore implicito, contiene inizialmente il 1° termine. Il 2° termine è contenuto nel registro il cui indirizzo compare nel codice istruzione. Nello stato SB il registro contenente il 2° termine è trasferito in M. I due termini interessati nell’istruzione, contenuti in M ed A, sono allineati sulla virgola in corrispondenza del Crt seguente TM. Il TM corrisponde al 24° Crt se registro intero, al 12° Crt se registro splittato. L’allineamento avviene negli stati SC per M e SD per A. VB è il segnale che determina se si esegue una somma o sottrazione. VB è prodotto dalla combinazione di: • Istruzione. • Segno del dato nel registro A. • Concordanza o meno di segno tra registri A ed M. VB = 1, indica somma binaria del contenuto di M al contenuto di A. Se VB = 0, la sottrazione binaria avviene sommando il dato minore tra A ed M, complementato a 15, al maggiore dei due. Il risultato è ottenuto dal complemento a 15 del contenuto di A . Il dato è complementato per la durata di PO or di PM e PA. Con somma binaria, il riporto si ha per >10 decimale. Con sottrazione binaria, il riporto si ha per >15 decimale. L’istruzione si compie in un solo ciclo SF – SK, essa viene completata con SL. Il totale dei 5 stati è di 5 giri di LDR. In caso di somma binaria, VB = 1 si ha: • SF Non operativo. • SG Non operativo in istruzioni di somma e sottrazione. • SH Somma di M in A. • SK Correzione delle cifre >9 con la somma di 6. • SL Formattazione del risultato in A. In caso di sottrazione binaria, VB = 0 si ha: • SF Confronto dato dalla sottrazione M – A. Se A < M, si ha riporto NE=1 oltre la cifra più significativa e set di NM. • SG Non operativo in istruzioni di somma e sottrazione. • SH Somma del complemento del dato maggiore al dato minore. • SK Correzione delle cifre >15 con la somma di 6 . Complemento dell’uscita sommatore. • SL Formattazione del risultato in A. In caso sottrazione binaria se: • M < A NM = 0 In SH è complementato A. • M > A NM = 1 In SH è complementato M. 81Il registro R non viene interessato durante il ciclo di calcolo SF _ SK. Il risultato completo viene trasferito in R, durante lo stato SL dal gate , LA * ( VD + SL + XL) * VD \ * TA \. Il segno viene completato da VA in SL * PA * VA * ZF \ * ZK \. A termine istruzione i registri A, M, R si ritrovano ancora allineati sulla virgola ma questa è spostata dal 1° al 2° Crt. I diagrammi seguenti si riferiscono alla somma 234,679 (A)+ (-765,432) (M). Stato SF. Lo stato definisce in caso di sottrazione (VB = 0), se A < M. Il confronto avviene per sottrazione del complemento di A in XA, ad M in XM. In caso di A < M, il riporto di cifra si estende oltre la cifra più significativa e si ha il set di NM tramite il gate SF * NE * VB \ * PO \. Diagramma Stato SF. Somma 234,679 (A)+ (-765,432) (M) Stato SG . In somma e sottrazione lo stato SG viene eseguito senza aver nessun effetto sulla esecuzione della istruzione. 82Stato SH . Lo stato SH esegue l’operazione determinata dallo stato di VB e NM. Se VB = 1 si ha la somma con : • XA A diritto • XM M diritto Il riporto di cifra si ha per >9. SH * VC * LA . CE * LM * (ZK * NL) \ * NM \ . Se VB = 0 e NM = 0 ( A>M), si somma ad M il complemento di A, con: • XA A complementato SH * PO * LA \ * VB \ * NM \ . • XM M diritto CE * LM * (ZK * NL) \ * NM \ . Se VB = 0 e NM = 1 ( A<M), si somma ad A il complemento di M, con: • XA A diritto SH * VC * LA . • XM M complementato SH * ZB * PO * LM \ * NM . Se VB = 0, il riporto di cifra si ha per >15. Diagramma Stato SH . Somma 234,679 (A)+ (-765,432) (M) Stato SK . Stato di correzione delle cifre che in SH hanno segnalato riporto con il set del TA di M nella cifra corrispondente. La somma di correzione avviene con: XA XM A diritto Digit 6 SK * LA . SK * NB * ( TE + TH ) \ . VY (CH * LM * TA), TA in M, setta NB . 83Diagramma Stato SK. Somma 234,679 (A)+ (-765,432) (M) Stato SL . SL compie il trasferimento del risultato intero da A ad R. Il contenuto di A viene normalizzato con il numero di cifre della rotella decimali e l’aggiunta eventuale del segno meno. Il diagramma mostra : • • • Il trasferimento in R del risultato nel registro A con tutti i decimali, tramite il gate LA * ( SL + XL ) * TA \ . La normalizzazione su 2 decimali del risultato in A. Il gate SL * NC \ , blocca la richiusura di A sino al set di NC, lettura del TA in A, gate SL * LA * TA * MS \ . L’inserimento del bit TC, segno meno, tramite VA (ZC * NL * TC) in : A con SL * PA * VA * NC . R con SL * PA * VA * ZF \ * ZK \. Diagramma Stato SL . Somma 234,679 (A)+ (-765,432) (M) 84Esempio 1. Somma con segno concorde. VB=1 : -6,5 (M) + - 3,7 (A) = -10,2 (A) Stato Segnale Cifra Rip Cifra SH XM 1010 0110 XA 1110 1100 NE 0111 1111 XS 0011 >9 0101 XR 1111 1111 SK XM 0110 0110 XA 0011 0101 NE 0001 0011 XS 0100 0000 XR 0011 0000 VS 0100 0000 Rip. >9 Cifra Rip Descrizione 1000 1000 0000 0000 1000 0000 1000 1000 1000 +6 se riporto di cifra Risultato Risultato finale Esempio 2. Sottrazione con segno concorde. VB=0 e A>M : 6 (M) – 14 (A) = Stato Segnale SH XM XA NE XS XR SK XM XA NE XS XR VS Esempio 3. 8 (A) Cifra 0110 1101 0011 1000 0111 0110 1000 0000 1110 0000 0001 Rip. Cifra 0000 0111 1000 1111 >15 0000 0000 1111 0000 1111 0000 0000 Rip. Cifra Rip. Descrizione Complemento di A +6 se riporto di cifra Risultato Risultato finale Sottrazione con segno concorde. VB=0 e A<M : 14 (M) – 10,9 (A) = 3,1 (A) Stato Segnale Cifra Rip. SH XM 1111 XA 1001 NE 0111 XS 0001 XR 1111 >15 SK XM 0110 XA 0001 NE 0000 XS 0111 XR 0000 VS 1000 Cifra 1101 0000 1110 0011 1100 0000 0011 0000 0011 1100 Rip. Cifra 0111 1000 0000 1111 0000 0000 1111 0000 1111 0000 0000 Rip. Descrizione Complemento di M +6 se riporto di cifra Risultato Risultato finale In SH, se NM=0 (M>A), viene complementato M altrimenti A. In SK il riporto di cifra non viene considerato. Schema a blocchi algoritmo somma algebrica. 8586Moltiplicazione. L’istruzione di moltiplicazione ha codice X6, X indica il registro del moltiplicando. Il registro A accumulatore implicito, contiene inizialmente il moltiplicatore. La moltiplica consiste in una ciclo di addizioni di M nell’accumulatore A.. Il numero di cicli è pari alla somma del valore delle cifre del moltiplicatore, numero contenuto in A all’inizio dell’istruzione. Il registro R, caricato con il complemento del moltiplicatore, funziona da contatore dei cicli di somma. Il riporto per >15 di R, set di NM, indica esaurimento della cifra attuale, R = 0, con il passaggio alla cifra seguente del moltiplicatore contenuto in R. L’ annullamento del contenuto di tutte le cifre del moltiplicatore in R, ossia esaurimento di tutte le cifre del moltiplicatore, procura il mancato reset di NF, causa della fine dei cicli di calcolo. Ricordando che ogni ciclo di calcolo, SF – SK comporta un ritardo di 1 Crt di A, M, R, con la fine ciclo su cifra, viene bloccato il ritardo di M, ottenendo l’avanzamento relativo del moltiplicando rispetto accumulatore (A) e contatore di cicli (R). In moltiplicazione e divisione , si utilizza la virgola di M per individuare il Crt di R da incrementare di 1 ad ogni ciclo SF - SK. In moltiplica l’incremento di R, avviene sul complemento del moltiplicatore. Il riporto determina la fine del processo della cifra ed il passaggio alla successiva Stati preparatori. Nello stato SB, descritto tra le operazioni comuni a tutte le istruzioni, avviene l’eventuale trasferimento del moltiplicando in M. In SC, M moltiplicando, viene allineato sulla virgola. In SD, A moltiplicatore, viene allineato sulla cifra più significativa. In SE, viene scritto il TA in A indicante ultima cifra decimale del risultato. I particolari sono descritti con le operazioni comuni a tutte le istruzioni. VD ( SE * ZF * NH * TK \), blocca la riscrittura di A per i bit TE – TH, abilitando nel contempo la loro scrittura invertita in R. NK viene settato se A ha segno negativo. NL viene settato se M ed A hanno segno discorde. 87Diagramma. Moltiplicazione SE. Il diagramma evidenzia la conta a partire dalla virgola di A per l’inserimento del TA in A che indica l’ultima cifra decimale del risultato formattato. Diagramma SE Inizializzazione di A e R. Il diagramma permette la verifica di: • Allineamenti di A e M. • Trasferimento del moltiplicatore in R complementato a 15. • Azzeramento bit TE – TH di A. Diagramma SF. Stato iniziale registri di 765,432 (A) x 234,679 (M). Il ciclo SF, SG, SH, SK viene eseguito un numero di volte pari alla somma del contenuto delle cifre del moltiplicatore. Diagramma 234,679 (M) x 765,432 (A) . Cicli di stati. Il diagramma permette una verifica del numero di cicli SF – SK necessari all’esecuzione della moltiplicazione in esempio. Dato che: 88• La condizione di fine cifra NM permette la conta delle cifre del moltiplicatore che nel nostro esempio è 6. • La conta dei cicli non in NM fornisce il valore della cifra che sempre nell’esempio in sequenza è 765432. In moltiplicazione il decodificato ZF forza VB = 1, somma algebrica, per tutta l’istruzione. Stato SF. SF non produce informazione utile in moltiplicazione, lo stato è mantenuto nel ciclo per evitare hardware aggiuntivo. Stato SG . SG , in corrispondenza del Crt con virgola in M, somma 1 al contenuto di R. Il riporto su 15 di R, con la cifra a 0 pone fine ciclo settando NM. Si osserva che in R si trova il moltiplicatore, quindi il calcolo inizia con la cifra più significativa del moltiplicatore, Se la cifra è l’ultima, R ha tutti i caratteri con i bit TE – TH a zero, si ha la condizione di fine calcolo. Diagramma Stato SG finale. Il diagramma mostra l’azzeramento del moltiplicatore in R, il risultato finale in A, il moltiplicando in M ed il set di NM fine cifra che con R = 0 diventa fine calcolo. Stato SH . SH, con NM a zero esegue la somma tra A (XA) e M (XM). Se cifra con riporto, si scrive il TA in M del Crt seguente. Dato che in SG, A è richiuso su K il TA in M è allineato con la cifra in A che ha causato il riporto. Diagramma Stato SH 2° Ciclo 234,679 (M) x 765,432 (A) . 89Il diagramma mostra in A 234,679, frutto del 1° ciclo di somma con M. Si osserva l’effetto del ritardo di R di 1 Crt in SG e l’analogo su A nel segnale di riciclo RA. Stato SK. SK, ciclo di correzione con somma di 6 per le cifre con TA in M ad 1. Se riporto di cifra (NM=1), non viene fatto il normale shift tramite K, pertanto M a fine ciclo risulta anticipato di una cifra rispetto A ed R. Moltiplica per 10. Se in R i bit TE – TH sono tutti nulli non si resetta NF, condizione di fine operazione. Diagramma Stato SK 2° Ciclo 234,679 (M) x 765,432 (A) . Il diagramma mostra i 6 di correzione (NE) in corrispondenza del Crt con TA di M. La virgola in RM che si trova sul 3° Crt, evidenzia che il ritardo di M ricompone l’allineamento dei registri R, A, M dopo che tutti e 3 sono stati ritardati di 2 Crt, 1 Crt per ciclo di calcolo. Stato SL. SL compie il trasferimento del risultato intero da A ad R. Il contenuto di A viene normalizzato con il numero di cifre della rotella decimali e l’aggiunta eventuale del segno meno. In SL, se in modo manuale, si attiva VZ che forza la stampa del risultato, prima del ritorno in SA. Diagramma. Moltiplicazione SL. 90Il diagramma mostra : • Il trasferimento in R del risultato in A con tutti i decimali. • La normalizzazione su 2 decimali del risultato in A. • VZ ( SL * ZC * HP \) che in manuale, tramite il set di NK, forza nel registro H il codice 84, istruzione di stampa A contenete il risultato. 91Schema a blocchi algoritmo moltiplicazione. 92Divisione. L’istruzione di divisione ha codice X7, X indica il registro del divisore. Il registro A accumulatore implicito, contiene il dividendo. La divisione consiste in una ciclo di sottrazioni di M dall’accumulatore A. Il numero di cicli per ogni cifra del divisore dipende dal valore di A e M, il passaggio a nuova cifra si ha con A < M. L’allineamento avviene sulla cifra più significativa dei 2 registri, quindi se il numero di cifre intere è diverso, i 2 numeri, in partenza non sono allineati sulla virgola ed i confronti non considerano la virgola. Per ogni calcolo di cifra a fine ciclo, si ha l’arretramento relativo dell’accumulatore A , dividendo, rispetto il divisore M. ciò corrisponde a una moltiplicazione per 10 del dividendo. VB in divisione durante i cicli di sottrazione è a 0. VB = 1, si ha solo in SK * ZC * NM, stato SK e fine ciclo calcolo cifra. Con NM = 1, fine ciclo calcolo cifra, il sommatore non opera e si ritardano A ed R di 1 Crt rispetto il divisore contenuto in M. Il registro R funziona da contatore dei cicli di sottrazione. Per ogni cifra, a fine ciclo cifra anche il registro R viene ritardato di 1 Crt rispetto M. Si ottiene il passaggio al calcolo della cifra seguente. La cifra di R, agente come indicatore del Crt contatore di cicli di sottrazione, è quella corrispondente alla virgola in M. La fine del calcolo è data dalla corrispondenza sullo stesso Crt del TA in A, indicante l’ultima cifra decimale , con il Crt di M contenente la virgola. Il diagramma mostra la sequenza degli stati esecutivi a partire da SD, compresa la stampa forzata da VZ del risultato. Si nota che la conta dei cicli SF – SK, esclusi quelli in NM, anticipa il risultato. Diagramma Ciclo SF – SH e Stampa risultato -765,432 : 23,4679 = -32,61. Stati preparatori. Gli stati preparatori eseguono operazioni descritte tra le comuni a tutte le istruzioni. Nello stato SB, si trasferisce il divisore in M. In SC viene allineato M, in SD A , entrambi sulla cifra più significativa. In SE, WD scrive il TA in A, indicante ultima cifra decimale del risultato. 93NK viene settato se A ha segno negativo. NL viene settato se M ed A hanno segno discorde. Il diagramma mostra lo stato SE con la conta per la scrittura del TA in A sull’ultima cifra decimale. L’allineamento di A ed M, ha portato la loro cifra più significativa sul 1° Crt dopo il gap. Diagramma Stato SE. Stato SF . SF verifica se A > M, in caso opposto, A < M, si ha il set di NM. NF se set a fine stato indica fine del calcolo, verificando che il Crt con la virgola in M anticipa il Crt con il TA in A : • SF * ZF * PO * TA * LA TA in A indicante ultimo decimale, setta NF. • SF * ZF * LM * TD Virgola in M resetta NF. Se la virgola di M non precede il TA in A, NF viene resettato, il calcolo continua con una nuova cifra. Se la virgola di M precede il TA in A, NF resta set, il calcolo termina con il passaggio da SF a SL . Diagramma Stato SF. Fine 1° Ciclo. Set NM. A = 61395 M = 234679 . A < M. Il diagramma precedente, mostra lo stato SF al termine del 1° ciclo SF – SK. Il set di NM avviene con: A = 61,395 e M = 23,4679. L’esito del confronto, A<M, è dovuto al fatto che l’inizio del ciclo di sottrazioni, vedeva le centinaia di A corrispondenti alle decine di M. Nel computo la virgola non è considerata. NF settato dal TA in A e resettato dalla virgola TD in M, indica che il ciclo SF – SK essendo NM = 1, continua con una nuova cifra. Stato SG . 94SG , con NM = 0 , in corrispondenza del Crt con virgola in M, somma 1 al contenuto di R, sino a quando A si mantiene maggiore di M. Indipendentemente da NM si ha il ritardo di 1 Crt tramite riciclo di R su K. Stato SH . In SH, con NM = 0 si ha il 1° passo di sottrazione di M da A, con somma di M al complemento di A. Indipendentemente da NM si ha il ritardo di 1 Crt tramite riciclo di A su K. Il riporto di cifra si ha nel solo caso di >15. Diagramma Stato SH . Ultimo ciclo Stato SK . SK, con NM = 0, si ha un ciclo di correzione per tutti i Crt in A che sono in corrispondenza con un Crt in M con TA = 1. Se riporto di cifra (NM=1), non viene fatto il normale shift tramite K, pertanto M a fine ciclo risulta anticipato di una cifra rispetto A ed R. Moltiplica per 10. Diagramma Stato SK . Ultimo ciclo di correzione. Il diagramma seguente mostra lo stato dei registri durante lo stato SF finale del ciclo di calcolo. Il contenuto di R, 3261 anticipa il risultato. In A, 143781 il resto. La virgola in entrambi i registri verrà posta in SL. NF è set in quanto la virgola in M anticipando il TA in A non lo resetta. Diagramma Stato SF finale. A = 143781 Resto. R = 3261 Virgola. 95Stato SL. In SL, avviene lo scambio dei registri A ed R. Lo scambio porta il risultato intero in A ed il resto in R. Il contenuto di A viene normalizzato con l’aggiunta eventuale del segno meno. In SL, se in modo manuale, si attiva VZ che forza la stampa del risultato, prima del ritorno in SA. Il diagramma presenta la scrittura formalizzata con segno e virgola nei registri : A Risultato -32,61. R Resto 0,143781. Diagramma Stato SL finale. A = -32,61 Risultato. R = 0,143781 Resto. 96Schema a blocchi algoritmo divisione. Radice quadrata. 97Radice quadrata scolastica. Per facilitare la comprensione dell’algoritmo della radice quadrata si riporta come esempio la radice di 2, svolta sino al 4° decimale. L’algoritmo scolastico ha molti punti in comune con quello utilizzato dalla P101. Se il numero di cifre prima della virgola è dispari si inizia con la prima cifra, se pari con la prima coppia di cifre. Nell’esempio radice di 2 si ha: c) d) e) f) g) h) i) j) k) l) I passi g e Radice della cifra (1), coppia se numero con nr di cifre intere pari. Sottrazione 2 – 1 = 1. Abbassamento della coppia successiva. Nel nostro caso 00. Sdoppiamento della coppia, con la 1° connessa a risultato sottrazione. Si raddoppia il risultato. Nell’esempio 1 diventa 2. Si esegue 10 : 2 = 5. Si aggiunge a 2 il 5. Prodotto 25 X 5 = 125, cifra scartata perché > 100. Riduzione della cifra, 5 diventa 4. Prodotto 24 X 4 = 96 cifra accettata perché < 100. Sottrazione 100 – 94 = 4 ... ripetizione da c) sino a nr decimali voluto. h, originano un ciclo se il prodotto continua a essere >. Si ricorda che per n >1, n 2 è dato dalla somma dei primi n termini della serie : 1, 3, 5, 7, 9 .... ottenuta a partire da 1, sommando 2 al termine precedente. 2 2 = 4, somma dei primi 2 termini (1+3=4). 3 2 = 9, somma dei primi 3 termini (4+5=9). . 4 2 = 16, somma dei primi 4 termini (9+7=16). 5 2 = 25, somma dei primi 5 termini (16+9=25). Ecc .. Radice quadrata nella Programma 101. 98L’estrazione di radice quadrata, è concepita come sottrazione ciclica, al radicando si sottrae un valore che parte da 1 ed è incrementato di 2 ogni ciclo successivo. Il registro A contiene il minuendo (radicando), M il sottraendo, R il numero di cicli di sottrazione (risultato). La fase di preparazione in SB ponendo in A il radicando, M = 1 e R = 0, imposta le condizioni iniziali per la serie di sottrazioni. La cifra 1 è posta in SB da (ZK *SB * TR * NH * ( TB + TD + TE), corredata da TB e TD, cifra valida e virgola. Essa rimarrà per tutto il calcolo come unica cifra con TB, quindi il PM sarà set solo in corrispondenza di questa cifra. In SC e SD avviene l’allineamento sulla cifra più significativa di M e A. In SE viene scritto in A il TA sul Crt che precede la virgola del numero di decimali impostato nella rotella. In SF del 1° ciclo, se le cifre del radicando che precedono la virgola sono pari, A viene ritardato di 1 Crt , M che contiene il sottraendo si trova allineato con la 2° cifra di A, quindi le successive operazioni operano sulla coppia. L’algoritmo nella fase esecutiva, stati SF – SK, prevede: Confronto A con M se: • Positivo ( A > M ) A = A–M. M = M+2. R = R+1. • Negativo ( A <= M ) Ritardo A di 2 Crt. Ritardo R di 1 Crt. Ritardo M di 1 Crt a partire da TF. Riciclo su confronto sino ad esaurimento cifre decimali. Esaurita la prima cifra o coppia, se non si è raggiunto il numero di decimali voluto, si ripete il ciclo per tante volte quante sono le cifre volute. Il ritardo di 2 Crt di A equivale a moltiplicare per 100 il resto delle sottrazioni. Il ritardo di M a partire da TF della cifra meno significativa di M, ha l’effetto di sdoppiare il risultato della sequenza di somme cicliche +2. La prima cifra, resta sempre 1, il rimanente, pari, viene moltiplicato per 10. Il ritardo di R di una cifra rispetto la prima cifra di M, riferimento della conta dei cicli di sottrazione, congela il calcolo della cifra del risultato e fa ripartire da 0 il calcolo delle conte di sottrazioni seguenti che fornisce il valore della nuova cifra del risultato moltiplicato per 10. Ad esempio per l’estrazione della radice di 2, le condizioni iniziali sono : • A = 2. Radicando. • M = 1. Termine di partenza della serie • R = 0. Contatore dei cicli di sottrazione fornenti le cifre del risultato. Applicando l’algoritmo si ha : 1° Ciclo A (2) > M (1) 2° Ciclo A (1) < M (3) A=2-1= M=1+2= R=0+1= A = 1 M = 000000001 000000003 000000001 000000100 000000021 993° Ciclo 4° Ciclo 5° Ciclo 6° Ciclo 7° Ciclo 8° Ciclo 9° Ciclo 10° Ciclo 11° Ciclo R = A (100) > M (021) A=100-021= M=021+002= R=010+001= A (079) > M (023) A=079-023= M=023+002= R=011+001= A (056) > M (025) A=056-025= M=025+002= R=012+001= A (031) > M (027) A=031-027= M=027+002= R=013+001= A (004) < M (029) A = M = R = A (400) > M (281) A=400-281= M=281+002= R=140+001= A (119) < M (283) A = M = R = A (11900) > M (2821) A=11900-2821= M=281+002= R=1410+0001= A (9079) > M (2823) A=9079-2823= M=2823+002= R=1411+0001= 000000001 000000079 000000023 000000011 000000056 000000025 000000012 000000031 000000027 000000013 000000004 000000029 000000014 000000400 000000281 000000014 000000119 000000283 000000141 000011900 000002821 000000141 000000119 000002823 000001411 000006256 000002825 000001412 Ecc... Gli ultimi 2 cicli della 4 a cifra saranno riassunti in : 6256-2825=3431-2827=604-2829 stop 4 cicli R=1414. Seguiti dalla 5 a cifra: 60400-28281=32119 -28283= 3836-28285 Stop 2 cicli R = 14142. Algoritmo implementato. Le operazioni di calcolo e di shift richieste per implementare l’algoritmo di radice quadrata non sono eseguibili da un solo ciclo SH – SK. La soluzione è stata il raddoppio del ciclo SH – SK in caso di confronto A> M positivo. Il 1° ciclo è distinto dal 2° dallo stato del flip flop NL. Durante il 1° ciclo si compie la sottrazione, nel 2° le operazioni di incremento. Le operazioni di shift si eseguono in ambedue i cicli. Il Crt del registro R da incrementare è individuato dall’unicità di presenza del TB sul Crt meno significativo del numero contenuto in M. La condizione di A < M , confronto che indica fine calcolo di cifra è memorizzata in NM. Essa è data da riporto su cifra più significativa e WP (SG * NE * TA ). Con NM = 1, si blocca lo shift di M, permettendo sempre quello di R ed A. Dato che la cifra in calcolo è indicata dall’unico TB di M, si ottiene in questo modo il passaggio alla cifra seguente. Lo shift di M avviene a partire dal bit TF, questo metodo non sposta il TB di riferimento, ed avendo in M un numero dispari e >1, lascia 1 sul Crt con il TB di riferimento spostando il resto del contenuto di M di 1 Crt. 100Il 1° ciclo di sottrazioni è preceduto in SF, dal ritardo di A di 1 Crt se cifre intere del radicando in numero pari. Questa condizione si ha quando da SE si passa in SF con NC = 1. Lo stesso shift supplementare di A in SF si ha nei cicli di fine calcolo cifra standard in cui si “abbassa” sempre una coppia di cifre. Allo scopo VN ( SF * NC * LA) connette A e K, bloccando nel contempo la richiusura di A su RA. VR ( SF * NC * KA ) richiude l’anello con l’uscita di K su RA. In SF il confronto avviene sottraendo a M il complemento di, A in caso di una cifra, KA se coppia di cifre. Questo si ottiene con: • XM CE * LM * NM \ * ( ZK * NL ) \ • XA SF * PO * LA \ * NC \ , oppure SF * PA * NC * KA \ Onde minimizzare le modifiche, il 2° ciclo SF – SK è preceduto dello scambio del contenuto tra i registri A ed M, alla fine del 2° ciclo un altro scambio ripristina nei 2 registri i dati iniziali. Caso A > M. Doppio ciclo SF – SK. 1° Ciclo. NL reset. SF Stato di confronto con eventuale set di NM. SG Non operativo. Il set di NE è bloccato da ZC che non è attivo in SG . SH Sottrazione A = A – M SK Correzioni eventuali per riporto su cifre intermedie WR ( ZK * SK * NM \) setta NL, condizione per 2° ciclo. Scambio di A con M. 2° Ciclo. NL Set. SF Stato non operativo. SG Incremento di R. SH 1° incremento di A, dato lo scambio si opera su M. SK 2° incremento di A. WR ( ZK * SK * NM \) resetta NL, condizione per 1° ciclo. Scambio di A con M. Ripristino del contenuto logico dei registri I registri R, A, M, quando connessi al registro K sono ritardati di 1 Crt, questo avviene sempre rispettivamente in SG, SH, SK, mantenendo l’allineamento finale tra i 3 registri. Caso A < M. Ciclo unico SF – SK. NM = 1, blocca XX e quindi mantiene NL = 0 disabilitando il 2° ciclo. SF Stato non operativo. SG R ritardo di 1 Crt. SH A ritardo di 1 Crt. SK M ritardo di 1 Crt a partire dal bit TF. Set di NC, predispone nuovo ritardo di 1 Crt di A nel seguente SF. Stati preparatori. Il diagramma seguente mostra la sequenza di stati durante l’esecuzione della radice di 2. La conta dei cicli, commutazioni di NL, permette di anticipare il risultato 1,4142. Diagramma Sequenza stati Radice di 2. 101Il diagramma mostra la conta di Crt con scrittura del TA in A in corrispondenza dell’ultima cifra decimale. In A si ha il radicando (2), scritto in SB, tramite WK (SB * ZK) da WK * LX con segno meno bloccato con DA * TC * HD \. In M si ha 1, sottraendo iniziale, scritto in SB (SB * ZK * NH * TR *(TB+TD+ TE)). A e M sono entrambi allineati sul 1° Crt della LDR. Diagramma Stato SE. Stati esecutivi. Negli stati SF – SK la connessione dei registri A, M,R, sia al sommatore che al registro K viene mantenuta costante. Unica variante è la connessione in SF di A al registro K per ottenere il ritardo di un Crt che permette di operare su una coppia e non su singola cifra. Lo scambio di A con M, solo in caso di doppio ciclo (NM = 0), mantenendo le connessioni fisiche scambia il contenuto logico dei 2 registri nel 2° ciclo. NL commuta sul fronte di discesa di XX (ZK * SK * NM \), in corrispondenza del passaggio da SK a SF, quindi si sovrappone esattamente al 2° ciclo. Stato SF. NC mantiene le funzioni che aveva in divisione sia come stato di confronto che determina sia il passaggio a nuova cifra, sia la fine del calcolo. La funzione aggiunta, ritardo di A, si ottiene con NC agente da deviatore dell’informazione connessa sia al sommatore che alla richiusura del registro sulla LDR. Il ritardo introdotto da NC interviene se: • 1° Ciclo assoluto e Nr di cifre intere pari. • 1° Ciclo doppio a seguito di fine calcolo cifra precedente. Il confronto tra A ed M utilizza lo stesso hardware della divisione a cui si rimanda. 102• SF * PO * LA \ * NC \ Connette A negato al sommatore se NC = 0. • SF * PA * KA \ * NC Connette K negato al sommatore se NC = 1. • VR (SF * KA * NC) Connette K alla richiusura di A se NC = 1. • YN (SF * LA * NC ) Connette A al registro K se NC = 1. Con NC = 0, YN non si attiva sbloccando la richiusura di A su se stesso. Il diagramma presenta lo stato SK con NM = 1, set di NC in TF, seguito da SF sempre con NC set che produce il ritardo di A di 1 Crt. Diagramma Stati SK, SF con NC =1. La fine calcolo, set di NF, è data dal Crt con virgola di M, posta sulla cifra meno significativa, corrispondente al Crt di A con il TA di ultima cifra decimale. Questa condizione è data da VE (SF * LM * KF * TD * MT). Il diagramma presenta il set di NF, il passaggio da SF a SL e lo stato finale dei registri A, M, R, nell’esempio di radice di 2. Stati SF SL Finali Stato SG . In SG avviene la conta dei cicli di sottrazione nel registro R. Il gate di conta dei cicli “normale” (ZC * SG * LM * TD * NM \), è disabilitato non essendo ZK3 attivo in SG . La conta avviene nel 2° ciclo con CH * NL * TB * MT * LA in maschera con ZK. 103Ogni SG comporta il ritardo di R di 1 Crt. Il passaggio della conta sulla nuova cifra avviene per il ritardo di R rispetto il bit TB che marca il Crt meno significativo di M. Stato SH . Lo stato in NM = 0 e NL = 0, si comporta sommando a M il complemento di A con il risultato in A. Il riporto di Crt avviene per >15. Con NM = 0 e NL = 1, incrementa A con CH * NL * TB * MT * LA, in maschera con ZK sul set di NE. L’incremento avviene su M, per effetto dello scambio tra A ed M. Con NM = 1, nel sommatore XM non è pilotato ed in XA, SH * VC * LA, pone A. Ogni SH ritarda A di 1 Crt connettendolo al registro K. La richiusura del registro A, avviene con il blocco del TB se cifra 0 non valida se esterna a PO, SH* KA *(ZK * NM \ * TB* PO \ * KC \ * KD \ * KE \ * KF \). Stato SK . Lo stato SK in NM = 0 e NL = 0, si comporta come in divisione, corregge i Crt con riporto sommando 6 ad A con il risultato complementato in A. Ogni SK con NM = 0, inoltre si ha: • WR (XX) Commuta NL. • VK (SK * XX *VS * TA \) scrive il risultato complementato del sommatore, logicamente A, in M. • VT (SK * LM * ER \ * TA \ *(NM * NH \)\ , pone M in K. • SK * XX * KA scrive K in A, completando lo scambio dei registri A ed M. • Con NM = 0 e NL = 1, incrementa A con CH * NL * TB * MT * LA, in maschera con ZK sul set di NE. L’incremento avviene su M, per effetto dello scambio tra A ed M. • Con NM = 1, VT pone M in K a partire dal set di NH che avviene dopo la richiusura di M del digit meno significativo 1, accompagnato dai bit di servizio TB e TD, con il TF del gate SK * ZK * PM * NM * TF . Si pongono le condizioni per il calcolo della cifra seguente. Ogni SK comporta il ritardo di M di 1 Crt. Il diagramma mostra lo stato SK al termine del 4° ciclo di sottrazioni con NM = 1. Nell’esempio si esegue la radice di 2. Il contenuto dei registri R, A, M, è: • R = 1414. • A = 604. • M = 28281. A conferma dei dati presentati precedentemente. Diagramma Stato SK . NM = 1. Fine del 4° Crt. 104Stato SL . Lo stato SL compie lo scambio del contenuto di A, resto finale delle differenze, con quello di R, risultato della radice. Completa l’informazione con i bit TB mancanti. LA * TA \ * ( SL + XL) ZC * LR * TK \ SL * ZK * RA * TB Scrive A in R. Compresi i TB e TD. Scrive R in A tramite VA in SL * NC * PA * VA . Scrive i TB del risultato (A), in M. Diagramma Stato SL. Schema a blocchi algoritmo radice quadrata. 105106Valore assoluto. L’istruzione valore assoluto di A, ha codice simbolico A↨ e codice macchina 34. Essa esegue l’eliminazione dei bit TC, segno meno, su tutti i Crt del registro A, gli altri registri rimangono invariati. La sequenza di stati è la stessa delle istruzioni di trasferimento. Nello stato SE, il gate WK * LX * (DA * TC * HD/ ) / , essendo attivi sia SA che HD/ , permette la richiusura di LX senza il bit TC. Essendo attivo DA, nel multiplexer LX si trova il contenuto di A. L’esempio mostrato dal diagramma visualizza 3 cicli di LDR, i primi 2 in SE il 3° in SA a operazione completata. Il ciclo operativo è il 2° con WK attivo, si osserva la presenza del TC in LA e la sua assenza in RA. Diagramma. Valore assoluto . Stato SE. 107Stampa. Le istruzioni rivolte la gruppo di stampa sono 3, <> (X8) , * (X9), /<> (88), tutte attivano il decodificato ZL. Il registro stampato è selezionato dai bit di codice HD – HA del registro H . L’istruzione <>, da tastiera o programma stampa sempre il registro. L’istruzione * da tastiera, stampa il registro prima di azzerarlo. Inserita in un programma azzera il registro senza stamparlo. L’istruzione /<> comanda una interlinea. Ogni ciclo di stampa, da tastiera o programma è seguito automaticamente da una interlinea. La fase esecutiva, controllo della stampante, è composta sempre dagli stati SM, SN, SS. In interlinea, varia il controllo della battuta del martello che è bloccata. Se interlinea e stampa programma, non essendo previsti dati, lo stato SN è limitato ad 1 giro di ruota fonica senza battuta del martello. Gli stati SM e SN, che in or attivano CD, eseguono la stampa di: • SM Istruzione, Indirizzo e Spazio separatore. 3 colonne totali. • SN Dato eventualmente con virgola e segno meno. Nr colonne funzione del dato. CD avvia il carrello di stampa, il quale attiva il μSwitch AW sincronizzato con il vuoto della ruota fonica. Il sincronismo rende possibile il caricamento in K del codice istruzione prima dell’arrivo del 1° dente della ruota fonica. SS è lo stato di attesa della commutazione di AW, che indica il ritorno a casa del carrello non più comandato da CD. Se stampa programma AZ = 1, la stampa è avviata da istruzione di avvio programma, S, V, W, Y, Z. La stampa del programma si avvia, come tutti i casi di istruzioni da tastiera, con la stampa dell’istruzione e dell’eventuale dato. L’esecuzione dell’istruzione comporta il passaggio in stato esecuzione programma HP =1, con la stampa del programma a partire da: • S Istruzione puntata da HK – HM registro e TA in R per il Crt. • V, W, Y, Z Istruzione seguente il riferimento nel programma. Gli stati in stampa programma sono SP, SM, SN, SS, SP in ciclo, sino all’estrazione di una istruzione S, che resetta HP con ultimo ciclo SM, SN, SS, SA. 108Stampa registro. La sequenza di stati a seguito di una istruzione di stampa, da programma o tastiera, è SP/SA, SB, SC, SD, SE, SM, SN, SS, SP/SA. Il numero di cifre decimali stampato è dato dalla rotella decimali, con troncatura se rotella<decimali del registro, aggiunta di zeri se rotella>decimali del registro. L’operazione di stampa, tranne Azzera registro, lascia inalterati tutti i registri, l’informazione è fornita da: • SM Registro H Istruzione ed indirizzo. • SN Multiplexer LT Dato nel registro. In SB si setta NL se LT non è nullo. Registro da stampare con almeno 1 cifra. Gli stati SC e SD allineano M e A sulla cifra meno significativa del 12° o 24° Crt se registro intero o splittato. SE scrive il TA in A, sul Crt che precede la virgola in LT del valore impostato sulla rotella decimali. La battuta del martello è bloccata, creando colonne vuote (spazi), in caso di : • Set di NK impedito da NH * NF \ . • 3° colonna di stampa. • segno con dato positivo . • virgola con dato senza decimali. • Registro vuoto diverso da A, M, R. • Registro M. SM * DM * NF * HD \ , blocca UG3 e di conseguenza la conta. Diagramma sequenza stati istruzione di stampa. La sequenza di stati a seguito di una istruzione, non di stampa, da tastiera è SA, SM, SN, SS, più stati esecutivi istruzione introdotta e ritorno in SA. A seguito dell’introduzione di dato da tastiera, se l’istruzione non è di stampa, si ha sempre la stampa implicita del registro M, il numero di decimali è quello introdotto e non dipende dalla rotella decimali. WY (SN * PM * NM * AP \), forza la selezione di M e blocca il registro che compare nell’istruzione. Diagramma sequenza stati stampa registro implicita. 109La fase esecutiva della stampa, stati SM e SN, è composta da 2 fasi: 1. Fetch o forzatura del codice da stampare in registro K. 2. Stampa del codice impostato. La fase di fetch o di forzatura del codice da stampare è diversificata per tipo di informazione e posizione della colonna di stampa in: • Fetch istruzione. • Fetch indirizzo. • Fetch cifra. • Forzatura virgola. • Forzatura segno meno. Il digit da stampare viene caricato in KE – KF come complemento a 15, contando i denti, la cifra 5 (0101), si trasforma in A (1010), essendo la battuta del martello comandata dal riporto di cifra, questo avviene sul 6° dente set di NK. La battuta del martello, per 1 periodo di dente, avviene sul 7° dente set di NC. La connessione di K tramite il sommatore, ha TK che blocca sul generatore di XS, i 4 bit meno significativi del Crt. Pertanto la conta dei denti avviene sul digit KE – KH per tutti i tipi di simbolo. Fetch istruzione. Il codice in K è fornito da SM * NA * HH \ * AP \, che carica il contenuto di HH \ in K, durante gli 8 bit del clock CLKK in NA. Nel diagramma, al termine di NA il codice istruzione 8D (0001 1011) è convertito in 72 (1110 0100). il TK di blocco sul sommatore pone 70 (1110 0000), in K alla fine di NB . Diagramma stampa fetch Istruzione. Fetch indirizzo. La differenza con il fetch di indirizzo rispetto l’istruzione è l’indirizzo che è contenuto nei bit meno significativi dello stesso Crt di H . Il 2° simbolo da stampare in SM è individuato dal set di NF con WW (SM * PS * NH \). SM

  • NF * NA * TK \ , blocca i secondi 4 bit in NA, ottenendo l’effetto di lasciare l’indirizzo in

KE – KF, al posto dell’istruzione. Nel nostro esempio 26 (0010 0110). Il TK di blocco sul sommatore pone 20 (0010 0000), in K alla fine di NB . 110Diagramma stampa fetch Indirizzo. Fetch cifra. Il fetch delle cifre avviene in SN. La stampa è sempre da destra verso sinistra, pertanto il dato viene estratto una cifra (Crt) a colonna a partire dalle cifre meno significative e precisamente dal Crt del TA in A. Se si proviene da SA, SM, il TA in A sarà posizionato sul Crt con l’ultima cifra introdotta da tastiera. Se si proviene da ..SE, SM, il TA in A sarà posizionato sul Crt dato dalla conta dipendente dall’impostazione della rotella decimali. Ogni ciclo di fetch di cifra, tranne la virgola, comporta lo spostamento del TA sulla cifra seguente. Cancellazione del TA con NA e sua scrittura con NB . Nell’esempio si mostra l’estrazione in NA di 5, cifra che precede l’unità con virgola in NB . Essendo il dato negativo, tutte le cifre hanno pure TB e TC pertanto il Crt in LT sarà 56 (0101 0110). Complementato diventa A9 (1010 1001), al termine di NB a seguito del blocco del TK su XS si riduce a A0 (1010 0000) come previsto. Diagramma stampa fetch cifra. Forzatura codice virgola. La virgola è stampata sulla colonna che precede la cifra delle unità con il TD = 1 . Da diagramma precedente, il set di NF dovuto a UF3 (SN * NB * LX * TD * NH \ , preannuncia la virgola. Il ciclo di fetch seguente NF blocca lo shift del TA in A . VI (SN * NB * NF * TB * MT), forza il codice della virgola A0 (1010 0000) che complementato diventa 50 (0101 0000) e resetta NF . VI setta KD e KF, codice 28, che dati i 2 bit di ritardo di VI corrisponde al codice effettivo 50. Diagramma stampa. Forzatura codice Virgola. 111Forzatura codice segno meno. La stampa eventuale, del segno meno avviene con NH set, che indica la fine delle cifre utili. Secondo fronte di SN * ZL * TP in NA. Se dato negativo WI (SN * NH * NL * TC * LT * MT) setta NF e KE. Causa il ritardo tra set di KE ed inizio temporizzazione di Crt, il codice impostato è 40 (0100 0000), complemento di B0 (1011 0000) codice del segno meno. Diagramma stampa. Forzatura codice Segno meno. Stampa codice segno meno. La conta che porta alla battuta del simbolo utilizza sempre lo stesso meccanismo. CD * PS * NG * TC setta NE procurando l’incremento. NG garantisce un solo incremento per dente. La battuta è innescata dal riporto di cifra UG1 che setta NK. NK è settata in TA quindi in modo asincrono rispetto alla ruota fonica. Onde assicurare una battuta uniforme WX, dente di ruota fonica, resetta NK che provoca il set di NC che a sua volta viene resettato dal WX del dente seguente. Diagramma stampa Segno meno. Stampa registro vuoto. I registri dati a seguito dell’inizializzazione non si presentano tutti nella stessa situazione. 112A, M, R Sono inizializzati con TB, TC, TD sul 24° Crt, quindi con -0, . I registri deposito, interi o splittati, non contengono nessun bit. Lo zero negativo segnala la condizione di registro non mutato dalla inizializzazione. Gli zeri derivati da calcolo o trasferimento sono con virgola ma positivi. La condizione di registro vuoto è data da NL = 0, NL * TR * TK * TA \ forza in LX lo stesso -0, onde evitare che la macchina si pianti. La stampa di A, M, R se sono impostati 2 decimali si comporterà come l’esempio che mostra la stampa di A. Al codice istruzione ed indirizzo fanno seguito due zeri per i decimali, virgola, lo zero per le unità ed il segno meno. Diagramma Stampa registro A con 0-. La stampa di un registro deposito, intero o splittato, anche se sono impostati 2 decimali si comporterà come l’esempio che mostra la stampa di B. Al codice istruzione ed indirizzo stampati non segue altro in quanto NL = 0, impedendo il reset di NH al termine di SM pone la condizione di fine stato SN. Diagramma Stampa registro B vuoto. 113Stampa programma. La stampa del programma , prima introdotto via tastiera o cartolina, segue le stesse procedure del lancio di un programma in esecuzione con il preventivo inserimento del pulsante di “Stampa programma” (AZ) e la battuta del tasto di avvio del programma (V, W, Y e Z). Pertanto per una descrizione delle operazioni si rinvia a Esecuzione del programma. Le differenze tra Stampa e Esecuzione del programma consistono nella concatenazione degli stati che seguono l’esecuzione dell’esecuzione del salto di lancio. In entrambi i casi, in SB si verificano tipo e condizioni del salto di avvio, in SP si ricerca l’eventuale riferimento e si carica l’istruzione selezionata nel registro H . Sempre in SP, con l’avvio della fase di carica dell’istruzione in H, segnale XI, avviene il set del flip flop HP individuante la fase di esecuzione operazioni in automatico. In uscita da SP, in caso di: • Esecuzione programma gli stati di macchina seguenti si adeguano all’esecuzione dell’istruzione estratta in SP e caricata in H . • Stampa programma gli stati di macchina hanno sequenza fissa, indipendente dalla istruzione e sono quelli necessari alla stampa del codice operativo e dell’indirizzo eventuale. Si tratta dei 3 stati, SM, SN e SS. Sia in esecuzione programma che in stampa, al termine della gestione della istruzione corrente si torna in SP per l’estrazione della successiva. Il ciclo termina con il fetch di una istruzione di Stop (S). Si ha il reset di HP ed il rientro in SA. Diagramma Stampa programma. Sequenza stati. 114Azzeramento registro. I registri M ed R non sono azzerabili. Il comportamento dell’istruzione è diverso se eseguita in manuale o nel corso del programma. In manuale l’istruzione di azzeramento registro x * , è realizzata tramite un normale ciclo di stampa in cui non si hanno battute di martelletto. L’istruzione è sempre preceduta dalla stampa dell’istruzione stessa e dell’eventuale dato numerico. La sequenza di stati esecutivi è quella comune alle istruzioni di stampa. Stato di fetch istruzione SA , seguito da SB, SC, SD, SE, SM, SN e SS. In automatico non si ha stampa. La sequenza di stati esecutivi è SP fetch, seguito da SB, SC, SD, SE e SS. Il passaggio diretto da SE a SS è dovuto a YX ( ZL * HE * HP * SE ) , che nel contempo blocca YE, set di SM. Per azzerare i registri deposito, il gate YP ( ZL * SS * TP * HE * AZ/ ), provvede in SS al blocco sulla rete RN della richiusura su LDR del registro, provocandone l’azzeramento totale. Per azzerare il registro A, analogamente il gate VG (ZL * SS * DA * HE * AZ/ ), provvede in SS al blocco della richiusura RA su LDR del registro, provocandone l’azzeramento. Nel contempo, VG forza WK che scrive LX in A. LX avendo NL resettato da SS, abilita in TR i bit TB, TC, TD corrispondenti a -0. Il diagramma mostra l’esecuzione dell’istruzione B * , con B contenente 3,14. Diagramma. Esecuzione manuale. Intera istruzione. Il diagramma seguente, mostra lo stato SS nell’esecuzione dell’istruzione B * , il 1° ciclo di SS, trova ancora il 3,14 in B, mentre in RB, cancellazione in corso, il contenuto è spurio. Il ciclo seguente in B rimangono solo i TA di inizio e fine temporizzazione. Diagramma. Esecuzione manuale. Stato SS. 115Il diagramma seguente, mostra la mutata sequenza di stati con l’istruzione inserita nel programma si ha il passaggio diretto dallo stato SE a SS. Diagramma. Esecuzione da programma. Intera istruzione. Il diagramma seguente, mostra l’inserimento in A della cifra -0 nel TR di SS. Senza una cifra valida in A, il sistema rimarrebbe bloccato sul primo stato SD di allineamento. Diagramma. Esecuzione da programma. Stato SS registro A. 116Interlinea. L’istruzione di interlinea /< > , è realizzata tramite un normale ciclo di stampa in cui non si hanno battute di martelletto. La sequenza di stati esecutivi è quella comune alle istruzioni di stampa. Stato di fetch istruzione SA o SP, seguito da SB, SC, SD, SE, SM, SN e SS. L’istruzione /↨ origina DH, il quale blocca UG e di conseguenza il set di NK che interrompe la catena di comando del martelletto di stampa. La durata di un solo giro di tamburo, dello stato SN è data dal mancato reset di NH dovuta al reset di NL in SM ad opera di DH. Tranne il blocco della battuta del martelletto e l’accorciamento di SN, tutto il resto della logica hardware si attua come nelle normali istruzioni di stampa registro. Diagramma Istruzione interlinea manuale. 117Istruzioni speciali. Costante codificata. La costante codificata è utilizzata per registrare nel programma un dato numerico da utilizzare durante la sua esecuzione. Le istruzioni dedicate alla costante codificata sono due: • A ↑ Istruzione preparatoria di codifica della costante. • A/↑ Istruzione di utilizzo della costante. Nel programma, la costante è individuata dalla istruzione iniziale A/↑, seguita da tanti caratteri quante sono le cifre della costante. I bit dei caratteri della costante seguono le regole generali del dato numerico, tranne il TA che indica ultima cifra, la più significativa della costante. Per comodità li ricordiamo: • TA Ultima cifra. • TB Cifra valida. • TC Costante negativa, su tutte le cifre. • TD Cifra con virgola. • TE – TH Codice decimale della cifra ( 0 – 9 ). Il passaggio dal valore dei bit, ai simboli dei tasti indirizzo ed istruzione, non è immediato ed ha bisogno di tavole di corrispondenza tra codici e simboli. Il compito del programmatore è facilitato dalla istruzione A ↑, eseguita in manuale, traduce il dato numerico introdotto da tastiera, nei simboli corrispondenti ad indirizzi ed istruzioni. Una volta ‘tradotta’ la costante viene inserita nel programma ed appare indistinta dal codice normale se non fosse che per l’istruzione iniziale A/↑. Preparazione della costante. Onde facilitare il compito di codifica della costante è disponibile l’istruzione A ↑. La procedura consiste nella sequenza : • Premere pulsante Stampa Programma. • Azionare il Reset generale. • Introdurre le cifre della costante. • Introdurre l’istruzione A ↑. La procedura garantisce che dopo il reset segua l’esecuzione di A ↑. Il trasferimento di M in SD, dopo l’allineamento in SC, garantisce che la cifra meno significativa, la prima ad essere stampata, sia nel 1° Crt del 1° registro di programma. La presenza di Stampa programma connette la fine dell’esecuzione di A ↑, alla sequenza standard di stampa del contenuto dei registri programma a cui si rinvia per i dettagli. 118Il calcolatore stampa, come di consueto, su una riga il numero preceduto dalla istruzione ed indirizzo (A ↑). Successivamente stampa su righe separate la traduzione da cifre ad istruzioni. L’hardware dedicato all’istruzione A ↑, è dato da 2 gate: • ZH*LM*HD/*SD*DA, set di LG, trasferisce direttamente il dato numerico, introdotto da tastiera in M nel 1° registro di programma. • TC*PM*XO*NFN*ZH, set di KG, setta il bit TA della cifra più significativa di M, nello stato SC, essendo in SD bloccato PM. Il resto del compito è svolto dall’hardware della istruzione di trasferimento ↑ e da quello della procedura di stampa programma . Diagramma istruzione A ↑. Il diagramma mostra l’intera procedura di preparazione della costante 3,14. L’esempio mostra in H i codici binari delle istruzioni prima della loro stampa nello stato SM e ripetute da O. La stampa avviene invertendo l’ordine di introduzione delle cifre, quindi dalla cifra meno significativa. L’esempio nel diagramma indica la costante 3,14. 1° ciclo 24 R+ 2° ciclo 21 R↓ 3° ciclo A3 d↨ Il 4° ciclo stampa S, prodotto dal codice 00, segnala la fine della costante. Lettura della costante. La costante numerica essendo inserita nel programma viene letta dal registro indicato da HK – HM e dal Crt seguente quello su cui è posizionato il TA in R. Il codice simbolico A / ↑ corrisponde al codice istruzione C2, con indirizzo precedente l’istruzione. Le condizioni ZA e CS, sono forzate dall’istruzione A / ↑. Durante il 1° ciclo di SB, NH off, il gate ZA * NH/ * SB provvede a cancellare in M il dato precedente. 119Nello stesso periodo il gate NG/ * ZH * LP * SB * NC, scrive il contenuto del registro programma selezionato in M. Il periodo di scrittura è limitato da NC set e NG reset. NA e NB hanno un tempo massimo di un Crt. NC è settato al reset di NA che a sua volta è settato dal TA in R, posizionato sul Crt di A / ↑, precedente il 1° Crt della costante. NG, pone fine alla scrittura della costante,è settato dalla caduta di NB, settato a sua volta dalla scrittura in M del Crt contenente il TA, gate RM * TA * CS * NG/ *SB. Il diagramma mostra la sequenza per la lettura della costante 3,14. Si noti che durante SB, il segnale PM indica il dato precedente in NH/ e la costante letta da programma in NH. Diagramma Esecuzione Costante di programma Stati SP e SB. 120Istruzione RS . Scambio D con R. La sequenza di stati per l’esecuzione dell’istruzione RS è quella delle istruzioni di trasferimento. • Manuale. SA, SM, SN, SS, SB, SC, SD e SE. • Programma SP, SB, SC, SD e SE. L’istruzione scambia il contenuto “fisico” dei registri D ed R. Il termine fisico indica che lo scambio avviene senza un controllo logico del contenuto, questo permette lo scambio di due dati numerici, contenuti in D e d, con un unico dato in R. La specificità dell’istruzione è data dallo scambio del contenuto di registri in cui la logica della loro selezione è rovesciata. R, registro di servizio per le istruzioni di calcolo è solitamente selezionato in modo implicito. In RS la selezione è esplicita. D, registro deposito, la selezione del quale è generalmente esplicita, è ottenuta mediante forzatura del suo decodificato logico diritto (DD) tramite DR. Lo scambio avviene in SE, quindi SC e SD si eseguono, perchè si è deciso di non mutare la sequenza standard degli stati. YK (SE * ZN * NH * DR * LN), scrive l’informazione in R e blocca la riscrittura della stessa in D per tutti i Crt. Il contenuto di LN, abilitato dal DD forzato entrerebbe nel multiplexer LT se non fosse bloccato da DR. Vedi gate LN * TP * DR \ * WY \ . YH (SE * ZN * NH * DR * LT), scrive l’informazione in D e blocca la riscrittura della stessa in R per tutti i Crt. LT, grazie all’indirizzo esplicito, contiene R tramite DR * LR * TA \ * WY \ . La forzatura di DD, comporta il blocco della via “normale” dell’informazione in D. tramite il solito DR. Vedi gate RN * DD * DR \ . di trasferimento Diagramma RS. 121Stampa forzata risultato. Le istruzioni di moltiplicazione, divisione e radice quadrata eseguite in manuale sono sempre seguite da una stampa del risultato in A. La stampa viene forzata dal segnale VZ (HP/*ZC*SL), indicante, modo manuale, moltiplicazione o divisione o radice quadrata e ultimo stato dell’operazione di calcolo. VZ setta NK e simula mediante WZ uno strobe di tastiera, esso cade con il fine stato SL ed il ritorno in SA. In SA, essendo i μswitch di tastiera rimasti impostati sull’ultimo tasto comandante l’istruzione di calcolo appena eseguita, si genera XW, che abilitato da NK imposta nel registro H, il codice 84 Hex, istruzione di stampa di A. L’istruzione di stampa A, viene accodata ed eseguita come se fosse stata comandata da tastiera. Il diagramma mostra la forzatura dell’istruzione di stampa A (84) a seguito dell’istruzione di moltiplicazione (60). Diagramma. Stampa forzata risultato. 122Parte 5 -Programma. Introduzione programma da tastiera. I meccanismi di base di introduzione dei codici delle istruzioni di programma tramite la tastiera, sono gli stessi di quelli che intervengono durante l’introduzione di istruzioni singole in manuale. La fase è caratterizzata dalla attivazione del pulsante AP, che in or con cartolina (SO), genera il segnale CT . Le istruzioni vengono memorizzate in sequenza nei registri G, I, F, E , D. Il pulsante AZ inserito con AP, limita il numero di registri programma a 2 ( E,D ). I registri di programma sono selezionati dal registro H. Il contenuto di H è presettato tramite UE1 ( AP * AZ \) o UE2 ( AP * AZ) . AZ = 1, disabilita UE1, programma intero (5 registri, G, I, F, E, D) e abilita UE2, programma ridotto (2 registri, E, D). Il codice di tastiera viene posto in K (KA – D) da WV. Esso in caso di indirizzo è generato da XK, durante il TK di NB, corrispondente ai bit da TA a TD. In caso di istruzione o dato, è generato da XW, durante TK negato di NB, corrispondente ai bit da TE a TH. Si ottiene così di scrivere , un codice istruzione di quattro bit ed il precedente codice indirizzo sempre di quattro bit, su un unico Crt di otto bit. La posizione di inserimento della istruzione in LDR è data dal TA in R, segnale XE , che all’inizio è sul 24° Crt. imponendo l’inserimento del codice, indirizzo o istruzione, sul 1° Crt. di G. Il meccanismo utilizzato è dato da NA → NB, ogni flip flop dura 1 Crt, NA è settato da XE e NB dalla caduta di NA. Il codice introdotto da tastiera, durante NB viene scritto in LDR dal gate YF. Il gate WS blocca la scrittura del TA in R durante NA. Il gate WC abilita la scrittura del TA di R durante NB . Se NA ha preceduto NB, il TA in R viene spostato di un Crt. In caso di battuta di un codice indirizzo, il gate XK setta NC, il quale sulla battuta del codice istruzione seguente, determina il set diretto di NB . Si ottiene così di scrivere il codice sullo stesso Crt dell’indirizzo precedente e di non spostare di un ulteriore Crt il TA in R. In CT, la sovrapposizione di NA a TT, il gate SA * CT * NA * TT \ → UC4 , rivela la scrittura sull’ultimo Crt del registro programma corrente e facendo scorrere il contenuto del registro H di un bit, indirizza il registro programma seguente. In caso di programma intero, AZ non premuto, il gate UE1 aveva caricato in H il codice binario X00011XX (HA-H). La tabella indica la sequenza dei codici nel registro H e quindi dei registri selezionati a seguito degli shift dovuti alla coincidenza di NA e TT. Tabella 1 Cartolina - Selezione registri PG. Nr. Istruzione Selezione iniziale HA X HB 0 HC 0 Registro X 1231-24 25-48 49-72 73-96 97-120 Selezione finale 0 0 0 1 1 1 0 0 1 1 1 0 0 1 1 1 0 0 G (M) I (A) F E D C La sequenza degli stati che intervengono per ogni istruzione introdotta è data dal ciclo SA, SM, SN, SS, SA. Nella fase di introduzione del programma non sono previsti dati numerici se non nella forma di costanti di programma. I tasti utilizzati sono solo quelli di istruzione e indirizzo. Il diagramma mostra come esempio l’introduzione da tastiera, di un breve programma composto da 2 riferimenti di salto C6 e C4, radice quadrata B4 e stampa del risultato 84. Posto AP = 0, il programma viene posto in esecuzione dal tasto V codice C0 Diagramma Introduzione programma da tastiera. Cartolina. La cartolina è il supporto magnetico utilizzato per memorizzare permanentemente i programmi della P101. La cartolina ha una capacità massima di 5 registri (G, I, F, E, D), quindi 120 codici di possibili coppie indirizzo – istruzione. Il tutto pari a 960 bit, metà della capacità della LDR che è di 1920 bit. La scrittura su cartolina necessita di due azioni: • Abbassamento del pulsante bistabile AP. • Introduzione di cartolina nel meccanismo di trascinamento. L’eventuale abbassamento del pulsante bistabile AZ, determina la registrazione di una cartolina corta, limitata ai registri E, D (48 istruzioni). L’utilizzo fra loro esclusivo dei registri M e A, per dati e G e I per programma, permette di usare lo stesso codice indirizzo 0 per M e G , 4 per A e I. Da notare, il registro HA – HH durante il calcolo contiene codice operativo ed indirizzo dell’istruzione, in cartolina contiene l’indirizzo del registro di programma con cui avviene il trasferimento del carattere. A sua volta il registro HK – HM che in esecuzione programma contiene l’indirizzo del registro di programma, in cartolina forma con NK il contatore, totale 4 bit, per i 12 bit del byte. 124Il verificarsi di un ciclo con NA=1 a cavallo di TT determina lo shift di 1 bit del registro HA – H ed il passaggio al registro seguente. Lo stesso meccanismo, con l’esaurimento dei registri di programma segnala la fine del trasferimento dei Crt. I dati su cartolina vengono registrati utilizzando il sistema di ritorno a zero RZ, esso prevede per ogni periodo di bit almeno una commutazione, quella del clock. La tastiera garantisce i tempi di accesso alla LDR grazie ai tempi della meccanica e dell’operatore. La cartolina, invece, richiede e genera un flusso di dati con periodo costante di scambio Crt tra essa e LDR. Onde evitare un registro hardware supplementare che permetta la sovrapposizione del tempo di accesso alla LDR, a quella di registrazione – lettura su cartolina, si sono inseriti 4 bit di servizio agli 8 bit di informazione. Il tempo corrispondente ai 4 bit di servizio, è sufficiente per l’accesso alla LDR. Pertanto i bit di Crt della cartolina sono 12. Sulla cartolina vengono registrati, 960 (programma) + 480 (servizio) = 1440 bit . Figura. Carattere cartolina. Il passaggio della cartolina sotto la testina, sia in lettura che scrittura è segnalato dall’azionamento da parte della cartolina in movimento di un μswitch (AO), condizione memorizzata nel flip flop SO, indicante il periodo utile per la registrazione- lettura della cartolina stessa. Il meccanismo di selezione dei registri programma (Registro H), che di selezione al loro interno dell’istruzione ( NA – NB – NG), non hanno bisogno di essere descritti in quanto sono gli stessi già utilizzati nella fase introduzione manuale del programma. Ciò è reso possibile da: • Stato unico SA per introduzione programma da tastiera e cartolina • Segnale CT, che è l’or di AP e SO. • PS or comprendente AK e HN, aventi la funzione di carattere pronto, AK per tastiera e HN cartolina. Esso utilizza: • TA di R come puntatore del Crt di LDR da cui leggere - scrivere il codice coinvolto. • La coppia di flip flop NA, NB per la selezione del Crt di codice e spostamento del TA in R sul Crt seguente. • Il flip flop NG impedisce che il meccanismo si attui ripeta più volte nel tempo dato dai 12 bit che definiscono il Crt di cartolina. 125Il via al ciclo di trasferimento carattere prevede al posto del mastro da tastiera AK, il segnale HN generato dalla temporizzazione di Crt. della cartolina. In registrazione, un monostabile OP, azionato dal primo fronte di SO, fornisce la prima richiesta di Crt da registrare alla LDR sopperendo alla mancanza di HN, segnale utilizzato in seguito con l’andata a regime della temporizzazione. In registrazione (AP = 1), il periodo di bit è definito tramite l’oscillatore OR . In ogni periodo di bit si ha la commutazione iniziale di clock, seguita dalla eventuale commutazione a metà periodo in caso di informazione di bit = 1. In lettura, la prima commutazione magnetica, rilevata dalla testina, viene considerata come inizio del periodo di bit (clock). Essa fa partire il monostabile OS, il quale ha una durata pari a 2/3 del periodo di bit. Pertanto le commutazioni magnetiche durante OS indicano dei bit ad 1 e concorrono alla formazione del codice letto. Le altre sono considerate clock, e come tali chiudono il periodo di bit precedente e facendo ripartire OS danno inizio al successivo. La base dei tempi della temporizzazione di cartolina, dovendo contare sino a 12 bisogna di 4 bit. Come spesso accade nella P101 essi non sono 4 flip flop dedicati , bensì: • Il primo è dato dal flip flop NK, che in questo caso fornisce la prima divisione del tempo di bit commutando ad ogni primo fronte di OS. • Gli altri 3 flip flop sono HK – M. Onde omogeneizzare il meccanismo di conta in registrazione a quello di lettura, OS per pilotare NK in registrazione, viene comunque attivato dal primo fronte di OR . Il segnale di Crt pronto di cartolina è dato da HN, or di HL e HK, il quale ha un rapporto pieno vuoto di 8/4, lo stesso esistente tra bit informazione e di servizio. Il flip flop NM, mantiene la sua funzione di pulizia dei registri, la stessa utilizzata per introduzione dati da tastiera, prima di essere settato dal primo ciclo di trasferimento Crt. riposiziona il TA di R in TR, cancellando quello eventualmente rimasto in altri Crt. In caso di lettura cartolina, tramite XY, blocca la richiusura sulla LDR dei registri G, I, F, E, D azzerandoli. Il flip flop NE sia in lettura che registrazione è set per tutta la fase, in lettura a partire dal primo bit letto da cartolina YI, in registrazione dal primo Crt. letto da LDR WS. Il reset in entrambi i casi è dato dal secondo fronte di SO. Il registro K, svolge la funzione di interfaccia dell’informazione, nello scambio Crt tra LDR e cartolina. Il clock che agisce sul registro è dato da: • MX Temporizzazione di bit LDR. Per gli 8 bit in NB . In registrazione prelievo del Crt da LDR. In lettura deposito del Crt in LDR. • OS Temporizzazione di bit di cartolina. Per gli 8 bit in HN (Codice). In registrazione scrittura dei bit di codice in cartolina. In lettura accumula dei bit di codice da cartolina in K. Con MX generato in HN negato ed OS durante HN, i due segnali essendo mutuamente esclusivi, non interferiscono nel tempo di carattere. In registrazione la base dei tempi della cartolina è data dall’oscillatore OR. In lettura, la cadenza del tempo è quella dei bit (LS), clock e dati, in uscita dall’amplificatore. 126Registrazione cartolina. Lo start alla registrazione è dato dal μSwitch AO che genera SO – cartolina in movimento sotto la testina. Il fronte di SO con CT (AP) fa partire il monostabile OP da cui WZ e PS dando origine alla richiesta di lettura del 1° Crt da prelevare da LDR e registrare su cartolina. Il dato da LDR, selezionato dal decodificato attivo tra DM, DA, DF, DE e DD viene memorizzato per un tempo di bit in LN. La rete logica RK, dati in ingresso al registro, scrive in K, tramite il gate NB * SO * LN, i bit in LN. Lato temporizzazione di cartolina, il gate UC2 ( SO * AP* NM * NE ), a set avvenuto di NE e NM, Crt da LDR letto, abilita l’oscillatore OR, definente il periodo di bit della cartolina. Il primo fronte di OR fa partire il monostabile OS che fornisce il clock alla temporizzazione di bit della cartolina. In registrazione l’informazione RZ di bit è data da NL. Pertanto NL commuta : • Sul primo fronte di OS . Commutazione di clock, sia per codice che bit di servizio. • Nella fase di Crt con HN =1 di scrittura del codice. Sul secondo fronte di OR, gate HN * OR * KA * NB \ (rete XX), in caso di bit KA =1. • Nella fase di Crt con HN =0 di scrittura dei bit di servizio si effettua un controllo di parità. Sul secondo fronte di OR, gate HN \ * OR * NK * NL \, rete XX, in caso di numero di bit di codice = 1 dispari. Condizione segnalata da NK=1 e NL=0. Si ricorda che in cartolina NK=1, si ha in caso di numero di bit dispari. Con HN=0 il 9° bit è tra i bit di servizio il 1° e funge da parità. Con la commutazione di controllo NL si riallinea a NK sino all’inizio del Crt seguente. La scrittura del 24° Crt del registro D, con la generazione del decodificato che seleziona il registro C provoca il reset di NM con il blocco dell’oscillatore OR e mette fine alla registrazione. La cartolina continuando nel suo movimento quando sarà completamente passata oltre il μswitch AO, determina l’andata a 0 dello stesso e di SO. Lettura cartolina. Il segnale proveniente dall’amplificatore di lettura della cartolina LS, genera YI sul cui 2° fronte parte il monostabile OS determinante la finestra temporale entro la quale un ulteriore LS sarà considerato un bit di codice a 1. La stringa continua dei segnali di lettura LS, a cui fa seguito OS sosterrà la temporizzazione di bit in fase di lettura cartolina, prendendosi il compito di OR in registrazione.. Un LS che avviene in presenza di OS, bit di codice = 1, genera XB il quale setta direttamente NF e tramite XX NL. 127Il bit in NF tramite il gate SO * AP \ * NF, viene scritto nel registro K. La temporizzazione di Crt di cartolina, con YF ( CT * SA * NB * KA * MK ) abilitato da DM e quindi DA, scrive direttamente il contenuto di KA nei registri G ed I. YF produce RN, che a sua volta con la successione dei decodificati DF, DE e DD, termina scrivendo in sequenza nei registri F, E ,D . Esecuzione programma. L’esecuzione di un programma è identificata dal flip flop HP ed è avviata come tutte le altre operazioni della P101 dallo stato SA. L’esecuzione in corso del programma è segnalata all’operatore con il lampadino verde lampeggiante, pilotato dagli stati in UK1 (SA + SD + SG + SH + SM). A tasti AP e AZ non premuti, per avviare un programma si hanno 2 scelte : 1. Programma da iniziare o avvio di un sotto programma, si utilizza uno dei tasti di Avvio programma (V, W, Y, Z). 2. Programma sospeso in attesa di proseguire dopo introduzione di dati manuali. In genere si riparte con il tasto S. La macchina estrae le istruzioni nello stato SP, dai registri G, I, F, E, D. All’interno del registro la posizione dell’istruzione è indicata dal bit in TA del registro R. In esecuzione del programma il registro contenente l’istruzione da eseguire è selezionato dal decodificato dei 3 flip flop HM, HL e HK. Tabella. Registri programma HK 0 1 X 1 0 HL 1 X 1 0 X HM X 0 1 X 1 Registro G I F E D La connessione ad anello, con HM che si richiude invertito su HL impedisce le configurazioni che producono l’attivazione contemporanea di più registri. L’istruzione estratta dal registro selezionato viene memorizzata nel flip flop LP, unico per i 5 registri, indipendentemente dal gruppo, 1° o 2°, del registro. In SP il segnale XI, TA=1 di R, avvia la sequenza dei flip flop NA - NB , durata un tempo di carattere ognuno. In NB, l’istruzione contenuta in LP, viene caricata nel registro H . In caso di lettura di una istruzione di Stop (Codice operativo = 0 → S) si ha li reset del flip flop HP e la fine dell’esecuzione del programma con il rientro nello stato di attesa comandi SA. In tutte le altre istruzioni a SP segue SB. La successione degli stati è funzione dell’istruzione in esecuzione. Al termine dell’ultimo stato esecutivo si ritorna in SP. Se durante l’esecuzione di un programma si ha una condizione di errore, il set di ER, provoca il rientro in SA con lampadino rosso ON e il reset di HP. Il diagramma mostra il lancio del programma, introdotto precedentemente da tastiera, tramite il tasto di avvio V codice C0 in SA. A seguito della stampa dell’istruzione introdotta, la sua esecuzione negli stati SB e SP e l’estrazione ed inizio dell’ esecuzione con SE del codice B4, radice quadrata del contenuto di A . Diagramma Esecuzione programma. 128Il programma a seguito del tasto S, esegue l’istruzione data da: • Flip flop HK, HL, HM Selezione registro programma. • Bit TA di R Puntatore del Crt precedente l’istruzione da eseguire. A seguito di tasto avvio programma, la prima istruzione del programma sarà quella che nella sequenza ordinata dei registri programma (G, I, F, E, D) segue il codice riferimento corrispondente al tasto di avvio. A tutti gli effetti il tasto di avvio programma si comporta come una istruzione di salto incontrata nell’esecuzione del programma stesso. La fine dell’istruzione di avvio lascia comunque HK – HM, selezione registro programma e TA di R, puntati sul Crt del registro che precede quello contenente l’istruzione da eseguire. La sequenza di fetch se non interessa istruzioni di salto, provvede nel contempo al posizionamento del TA sull’istruzione seguente. La coincidenza del ciclo di fetch con il gap della LDR determina la selezione del nuovo registro programma. L’estrazione in sequenza di una istruzione di riferimento equivale a non opera. In SB si settano le condizioni di salto condizionato non soddisfatte. Il diagramma mostra un caso di fetch di nuova istruzione in una sequenza continua senza salti. Le istruzioni sono identificate da HK – HL (I), TA in R all’inizio sul 5° Crt (D4) e dopo fetch SP sul 6° Crt, istruzione stampa di M (80). Diagramma fetch istruzione . Istruzione in sequenza continua. Diagramma Dettaglio fetch istruzione da programma. 129Istruzione di salto. La ricerca di un riferimento, per entrambi i salti, condizionato o no, avviene a partire dal primo carattere del registro G e termina se non trova la coincidenza con il giusto riferimento con il 24° Crt di D. Ne risulta, che se nel programma sono presenti due riferimenti identici, il primo oscura il secondo. Una ricerca di riferimento, con esito positivo, fa riprendere il programma con l’esecuzione della istruzione che segue il riferimento. Il riferimento di un salto, incontrato nell’esecuzione del programma, si comporta come un salto condizionato non verificato, non opera, si passa all’esecuzione dell’istruzione seguente. Il diagramma seguente mostra un doppio salto con riferimenti in 2 registri: Y (E0) Riferimento in I, HK – HL (3), seguito da istruzione di salto V (C0). V (C0) Riferimento in G,HK – HL (1), seguito da istruzione trasferisci in D (23). Diagramma Doppio salto. Seguono le funzioni assunte dai vari flip flop nella ricerca del riferimento del salto. • NC = 1 Salto non condizionato. • ND = 1 Bit TC possibile riferimento. • NE = 1 A fine Crt, in TH, uguaglianza tra altri bit da registro programma (LP) e salto, espresso da UB3 (SP * NE * ND * TH * MK \). • NA Fine riferimento del salto. • NB Istruzione da eseguire. • NG Fine ricerca. Il diagramma seguente mostra il fetch di un indirizzo a seguito di una istruzione di salto Z (F0). 130L’indirizzo D4, agisce come una istruzione nulla. Dopo lo stato SB si ritorna in SP ove si estrae l’istruzione di stampa M (80). Diagramma Sequenza di stati di fetch indirizzo. 131Stampa programma. L’avvio di stampa programma avviene in SA. La condizione che distingue la stampa dall’esecuzione del programma è il pulsante AZ premuto. L’avvio della stampa programma si ha con : • Tasto S. Codifica ZN. • Tasto di Avvio programma (V, W, Y, Z). Codifica ZM. Con S la stampa avviene a partire dal registro individuato da HK – HM e dalla istruzione seguente quella puntata dal TA in R. Con tasto di avvio programma, la stampa avviene a partire dalla istruzione seguente il riferimento del tasto di avvio. In entrambi i casi si ha comunque prima la stampa di quanto introdotto da tastiera in SA. Il registro programma è sempre identificato da HK – HL, l’istruzione dal TA in R. Ogni ciclo sposta il TA in R sul Crt seguente. NA in presenza del gap seleziona il registro successivo. La sequenza degli stati è fissa, senza distinzioni dovute al codice istruzione. Il diagramma mostra la fase iniziale di stampa programma, il via è dato dal tasto V di cui segue la stampa accompagnata dalle prime 3 istruzioni: 10 ↓ Trasferisci M in A. 2C ↑\ C Trasferisci M in C splittato. 44 +\C Somma C splittato in A. La sequenza di stati di avvio stampa è la stessa di avvio esecuzione programma. Il ciclo di stati SM, SN, SS di stampa seguito da SP di estrazione dell’istruzione successiva, termina con la lettura di S, codice 00, alla cui stampa segue SA. Diagramma Stampa programma. 132Condizioni di errore. Flip flop ER. Le condizioni di errore sono segnalate dal flip flop ER set. La macchina indica all’esterno lo stato di errore mediante l’accensione del lampadino Rosso (UH1) comandato da ER. ER, nei casi di rilevamento di errore, agisce sul succedersi degli stati forzando la fine dello stato in corso per attivare il ritorno in SA con il lampadino Rosso acceso. Onde facilitarne l’individuazione nella figura seguente, i comandi sono indicati con R se agenti su ingresso resistivo e con M se su maschera. Segue un numero onde distinguerli. La condizione di errore viene riposta sempre in SA. Da tastiera, la prima battuta di un tasto , che produca uno strobe AK attiva VH (R1) o dall’introduzione di una cartolina (M6). Figura . Flip flop di errore ER. Le condizioni di errore sono dovute a : • M1 Lettura cartolina (AP \ *SO ). Controllo bit letti. 133a) Il numero di bit letto è minore del previsto. b) Il numero di bit il lettura supera il massimo consentito. Vi sono due casi individuati dal decodificato di registro C (DC). o DC = 1 con SO = 1, quindi essendo DD = 0, la maschera è abilitata e il flip flop ER sarà settato in quanto si è letto un numero di bit maggiore all’atteso. o DC = 0 con fine cartolina SO = 0, la maschera è disabilitata se la temporizzazione di cartolina, sostenuta dai segnali da cartolina stessa, perviene allo stato con tutti e quattro i flip flop reset (NK\*HK\*HL\*HM\) . Quindi a fine cartolina si sono letti i bit nel numero atteso. Se uno dei quattro flip flop è set si ha errore e set di ER. • • • • • • • • • • M2 Segnala il tentativo di occupare il 24° Crt del registro A. L’inizio di PO comandante il passaggio in SG, avviene in presenza di NB settato in SF dalla fine del PO stesso settante il flip flop NA, Crt precedente NB . M3 Istruzione di stampa (ZL) Supero dei decimali permessi. Stato Se, primo giro (NH = 0), con fase di conta decimali terminata (NG = 0 e NF = 1). Segnala posizione della cifra meno significativa prima che siano terminate le cifre significative del registro selezionato (LP). M4 Segnala in divisione (ZF), un riporto di cifra nel registro R. Verificabile se divisione per 0 (Zero). M5 Istruzione di scambio con A (ZG * HF). Scambio di bit non validi. Stato SE. In questo caso il registro A è allineato con il digit meno significativo sul 1° o 13° Crt. Durante Crt validi in A (PA = 1) si segnalano bit (LN = 1) non validi nel registro selezionato (TP = 0). R2 Cartolina. Segnala la mancanza di allineamento tra informazione (NL) e clock durante il periodo di bit di servizio (NH = 0) in cui l’informazione è nulla. R3 Istruzione di trasferimento da M a registro X (ZF). Trasferimento di bit non validi. Stato SE. In questo caso il registro M è allineato con il digit meno significativo sul 1° o 13° Crt. Durante Crt validi in M (PM = 1) si segnalano bit (LN = 1) non validi nel registro selezionato (TP=0). R4 Stato SB. Istruzioni di stampa (ZL), trasferimento (ZH e ZG) e calcolo. Segnala il tentativo di occupare il 12° o 24° Crt (TM), durante il trasferimento in M del registro selezionato il cui contenuto è dato da LN.. R5 Istruzioni di calcolo (ZA). Supero dei decimali permessi. Il calcolo della posizione della virgola in funzione dei decimali richiesti (WD), posiziona la cifra meno significativa prima che siano terminate le cifre significative di A o M (PO). R6 Introduzione numero da tastiera i M. Tentativo di introduzione del 24° Crt. Il flip flop NA è contemporaneo a PM=1 segnalante Crt valido in M. R7 Istruzione di calcolo. Somma o moltiplica. L’aggiunta di un Crt dovuta ad un riporto di cifra ( KB*TA*PO\), introdotto dal gate 04E16 ♠ in K, si sovrappone al TA in A indicante l’ultima cifra decimale impostata. 134Appendice A. Codici da tastiera . Tasto/Segnale Codice AA AB AC AD AE AF AK AM AV AN AT AG N N N N D/N D/N D/N D D D/N D/N D μ Switch S2 S3 S10 S4 S5 S6 S1 S7 S8 S9 S11 S12 Reset 1 ° ciclo Off Off Off Off Off Off Off Off Off Off Off ON Reset 2° ciclo ON Off ON ON Off Off ON Off Off Off ON Off Clear Off Off ON ON Off Off ON Off Off ON Off Off Livello 0 00 Off Off Off Off Off Off ON Off Off Off Off Off 1 01 ON Off Off Off Off Off ON Off Off Off Off Off 2 02 Off ON Off Off Off Off ON Off Off Off Off Off 3 03 ON ON Off Off Off Off ON Off Off Off Off Off 4 04 Off Off ON Off Off Off ON Off Off Off Off Off 5 05 ON Off ON Off Off Off ON Off Off Off Off Off 6 06 Off ON ON Off Off Off ON Off Off Off Off Off 7 07 ON ON ON Off Off Off ON Off Off Off Off Off 8 08 Off Off Off ON Off Off ON Off Off Off Off Off 9 09 ON Off Off ON Off Off ON Off Off Off Off Off C 31 ON Off Off Off ON ON ON Off Off Off Off Off R 32 Off ON Off Off ON ON ON Off Off Off Off Off D 33 ON ON Off Off ON ON ON Off Off Off Off Off A 34 Off Off ON Off ON ON ON Off Off Off Off Off B 35 ON Off ON Off ON ON ON Off Off Off Off Off F 36 Off ON ON Off ON ON ON Off Off Off Off Off E 37 ON ON ON Off ON ON ON Off Off Off Off Off / 38 Off Off Off ON ON ON ON Off Off Off Off Off S 20 Off Off Off Off Off ON ON Off Off Off Off Off ↓ 21 ON Off Off Off Off ON ON Off Off Off Off Off ↑ 22 Off ON Off Off Off ON ON Off Off Off Off Off ↕ 23 ON ON Off Off Off ON ON Off Off Off Off Off + 24 Off Off ON Off Off ON ON Off Off Off Off Off - 25 ON Off ON Off Off ON ON Off Off Off Off Off x 26 Off ON ON Off Off ON ON Off Off Off Off Off

27 ON ON ON Off Off ON ON Off Off Off Off Off

◊ 28 Off Off Off ON Off ON ON Off Off Off Off Off

  • 29 ON Off Off ON Off ON ON Off Off Off Off Off

√ 2B ON ON Off ON Off ON ON Off Off Off Off Off V 2C Off Off ON ON Off ON ON Off Off Off Off Off W 2D ON Off ON ON Off ON ON Off Off Off Off Off Y 2E Off ON ON ON Off ON ON Off Off Off Off Off Z 2F ON ON ON ON Off ON ON Off Off Off Off Off , Off ON Off ON Off Off Off Off ON Off Off Off - ON ON Off ON Off Off Off ON Off Off Off Off 135Appendice B. Connettori Pacco Elettronica – Attuazioni I connettori sono 4, ognuno ha 12 Contatti. Essi sono si inseriscono su pin saldati sul lato maggiore del back panel in basso. Tabella 2 Connettore E - A Pin Segnale Gruppo Descrizione 1 2 3 4 5 6 7 8 9 10 11 12 AB2 AT3 AE2 AN1 AE1 BLT AA2 Vuoto OK1 Schermo +20 Massa Tastiera Rotella Decimali Tastiera Tastiera Tastiera Stampante Tastiera Codice peso 2 Binario – Vero = M Comune del Selettore decimali Codice peso 32 Binario – Vero = M Clear - Annulla ultima cifra – Vero = +20 Codice peso 32 Binario – Vero = +20 Blocco tastiera Codice peso 1 Binario – Vero = M Stampante Stampante Alimentatore Alimentatore Ruota fonica Ruota fonica Tabella 3 Connettore E - B Pin Segnale Gruppo Descrizione 1 2 3 4 5 6 7 8 9 10 11 12 UD2 AT2 UD1 AN2 AG1 AF2 AT1 AZ2 AZ1 AC2 AW2 AD2 Selezione Decimali Tastiera Selezione Decimali Tastiera Tastiera Tastiera Tastiera Stampa PG Stampa PG Tastiera Stampante Tastiera Codice peso 2 Binario Reset 2 Ciclo Codice peso 1 Binario Clear - Annulla ultima cifra – Vero = M Reset Generale - Vero = +20 Codice peso 32 Binario – Vero = M Reset 2 Ciclo Vero = M Vero = +20 Codice peso 4 Binario – Vero = M μSwitch Carrello in moto Codice peso 8 Binario – Vero = M Tabella 4 Connettore E - C Pin Segnale Gruppo Descrizione 1 2 3 4 5 6 7 8 9 10 11 12 UD4 UD3 AK1 AP2 Schermo IL IL2 IL1 IL0 Vuoto Luce Rossa Luce Verde AO1 Selezione Decimali Selezione Decimali Tastiera Registra PG Cartolina Cartolina Cartolina Cartolina Codice peso 8 Binario Codice peso 4 Binario Strobe - Codice tastiera valido – Vero = +20 Testina Testina Testina Testina Segnali VS Operatore Segnali VS Operatore Cartolina Errore P 101 in attività Cartolina in moto Tabella 5 lettura lettura lettura lettura – – – – Schermo segnali IL0-2 Capo 2 Avvolgimento Capo 1 Avvolgimento Centrale Avvolgimento Connettore E - D 136in Segnale Gruppo Descrizione 1 2 3 4 5 6 7 8 9 10 11 12 Massa +20 AO2 AF1 CAR1 AP1 AW1 AV1 AM1 AW2 SPM AK2 Alimentatore Alimentatore Cartolina Tastiera Stampante Tastiera o Cartolina Stampante Tastiera Tastiera Stampante Stampante Tastiera Cartolina in moto Codice peso 32 Binario – Vero = +20 Avanzamento Carrello – Vero = +20 Registra PG Carrello in moto Virgola Segno Meno Carrello in moto Spara Martello Strobe Codice tastiera valido – Vero = M 137Appendice C. Tabella corrispondenza Simboli e Ruota fonica. 138