Funktionsweise eines taschenrechners, gute Literatur

OP Persönliche Seite #5320949
Lesenswert?

Ich interessiere mich für die Arbeitsweise eines Taschenrechners, und 
zwar nur für die Eingabefunktion.
Die Eingabe von mehrstelligen bzw. Zahlen mit Kommastellen über die 
Tastatur müsste nach jeder Ziffer ja einen Shift des gesamten bisherigen 
blocks nach links bzw. nach rechts zur Folge haben. Solange, bis ein 
Operator, eine Funktionstaste oder ähnliches gedrückt wird.

Gibt es dazu empfehlenswerte Literatur?
Gast #5320955
Lesenswert?

Das wäre aber ein kurzes Buch, mit vielleicht drei Seiten.

Was du brauchst, sind Grundlagen in irgendeiner Programmiersprache 
gepaart mit dem Talent, Aufgaben in Algorithmen zu überführen.

Eine Hand voll Ziffern in einem Array zu verschieben ist allerdings 
Pillepalle:
1
uint8_t eingabePuffer[12];
2

3
void einfuegen(uint8_t neueZiffer)
4
{
5
  for (int i=12; i>0; i--)
6
  {
7
    eingabePuffer[i]=eingabePuffer[i-1];
8
  }
9
  eingabePuffer[0]=neueZiffer;
10
}

Reich das für ein Kapitel im Buch?
Gast #5320985
Lesenswert?

> Da wird doch sowas wie ein Tastaturcontroller drin sein

Nein sicher nicht. Google mal nach "Tastenmatrix", das ist die übliche 
Lösung und die wirst du sicher wieder erkennen, wenn du dir die Platine 
im Taschenrechner genauer anschaust.

> oder gehen diese Eingaben auch direkt ans Rechenwerk

Der Chip im Taschenrechner ist ein "Mikrocontroller", noch ein Stichwort 
zum Googeln.
Gast #5320991
Lesenswert?

Mike B. schrieb:

> Ich dachte eigentlich an die Hardware-technische Umsetzung. Da wird doch
> sowas wie ein Tastaturcontroller drin sein oder gehen diese Eingaben
> auch direkt ans Rechenwerk?

Das machen ein paar Inputs und ein paar outputs, da brachts keinen extra 
controller: Antikes Beispiel: 
http://hc-ddr.hucki.net/wiki/doku.php/z1013:literatur:fa-87-04

Also nacheinander die einzelnen Segmente (Spalten oder zeilen, je nach 
aufbau auswählen und dann an den Outputs anhand der Position der 
'1'-bits auslesen welche Taste gedrückt wurde.

Einfach mal nach Tatstaturmatrix auslesen googeln:
http://halvar.at/elektronik/kleiner_bascom_avr_kurs/3x4_tastenfeld/
OP Persönliche Seite #5321071
Lesenswert?

irgendwie hab ich mir das anders vorgestellt
nach dem Druck einer Zifferntaste 0..9 wird diese Ziffer in einen Akku 
mit Wordbreite gepackt.
Kommt jetzt ein weiterer druck auf eine Zifferntaste wird zuerst der 
Akku nach links verschoben (jetzt nur mal ganze Zahlen) und die neue 
Eingabe an die niedrigste Stelle gespeichert. Dies für die variante 
eines Tastaturspeichers für Dezimalziffern.
Sollte der Controller bereits binär arbeiten müsste die Eingabe aus der 
Tastatur durch einen 10x4-Coder (0..9, die 0 muss als Stelle der Zahl ja 
auch gesendet werden) gehend in den Akku gepackt werden werden um bei 
der nächsten Eingabe den Akku erst nach 1bit links zu schieben und dann 
die neue binär vorliegende Ziffer dazuzuaddieren.
quasi Akku:=shl(Akku)+Puffer

Und da dachte ich mir das müsste als simples Addierwerk hardwareseitig 
vorgesehen sein.
Gast #5321092
Lesenswert?

Mike B. schrieb:
> Addierwerk

Ja vor 50 Jahren mag das noch so gewesen sein. Da haben die Tischrechner 
auch noch ein paar hundert DM gekostet. Heute hat man halt einen 
Microcontroller, der jeweils ein Zeichen von der Tastatur empfängt, im 
RAM ablegt und dann damit weitere Operationen anstellt...

Du kannst ja mal nach antiker Literatur suchen. Oder du sagst was Du 
konkret vorhast bzw. lernen möchtest.
OP Persönliche Seite #5321126
Lesenswert?

Stefan schrieb:
> Mike B. schrieb:
>> Addierwerk
>
> Ja vor 50 Jahren mag das noch so gewesen sein. Da haben die Tischrechner
> auch noch ein paar hundert DM gekostet. Heute hat man halt einen
> Microcontroller

Ok, also wird das heute nur noch softwareseitig gemacht, das beantwortet 
meine Frage halbwegs.
Somit muss ich also in antiker Literatur weitersuchen.
#5321187
Lesenswert?

Stefan schrieb:
> Mike B. schrieb:
>> Eingabe von mehrstelligen bzw. Zahlen
>
> Was er sucht ist womöglich eher die Umwandlung eines Strings in eine
> (float) Zahl. Sollte man mit Google finden "string to float" oder so.

Nur daß Taschenrechner nicht mit Strings arbeiten und auch nur seltenst 
mit float.

Mike B. schrieb:
> irgendwie hab ich mir das anders vorgestellt

Ach! </loriot>

> nach dem Druck einer Zifferntaste 0..9 wird diese Ziffer in einen Akku
> mit Wordbreite gepackt.
> Kommt jetzt ein weiterer druck auf eine Zifferntaste wird zuerst der
> Akku nach links verschoben (jetzt nur mal ganze Zahlen) und die neue
> Eingabe an die niedrigste Stelle gespeichert.

Nichts davon passiert. Aktuelle Taschenrechner sind stinknormale µC mit 
Tastenmatrix und (speziellem) Display. Der µC kann z.B. ein ARM sein - 
siehe https://commerce.hpcalc.org/34s.php. Auf solchen Taschenrechnern 
ist das "Hereinschieben" der eingegebenen Zahlen von rechts ein reiner 
Showeffekt.

Eher traditionelle Taschenrechner sind ein Gatter- und Flipflopgrab. Da 
sind die zwei (oder mehr) "Register" vermutlich BCD und beim Eintippen 
einer Zahl wird da eine echte 4-fach Schiebeoperation gemacht. Nicht daß 
es irgendwie hilfreich wäre, Details zu wissen.
#5321195
Lesenswert?

Axel S. schrieb:
>
> Eher traditionelle Taschenrechner sind ein Gatter- und Flipflopgrab. Da
> sind die zwei (oder mehr) "Register" vermutlich BCD und beim Eintippen
> einer Zahl wird da eine echte 4-fach Schiebeoperation gemacht. Nicht daß
> es irgendwie hilfreich wäre, Details zu wissen.


Funkschau
Tischrechner, elektronischer, mit integrierten TTL-Schaltungen 72/1/23, 
72/2/57, 72/3/94, 72/9/322

Diese alten Hefte (1972?) wird man nur in einer Bibliothek finden.
#5321486
Lesenswert?

Michael Engel schrieb:
> gibt's hier einen tollen Artikel von Ken Shirriff, der den
> sinclair scientific-Taschenrechner von 1974 reverse engineered hat:
>
> http://files.righto.com/calculator/sinclair_scientific_simulator.html

In der Tat ein genialer Artikel. Unbedingt auch dem Link zu TI's Chip 
(TMS0800) folgen. Da steht noch mehr zur Architektur und es gibt auch 
einen Simulator für einen traditionellen (algebraisch statt RPN) 
Taschenrechner.
Gast #5321516
Lesenswert?

Schlaubi Schlumpf schrieb:
>> Eher traditionelle Taschenrechner sind ein Gatter- und Flipflopgrab.
>
> Nur wenn ein 4 bit-Prozessor ein reines "Gatter- und Flipflopgrab"
> waere.

Genau, wobei die ersten 4bit processoren eher für die "Tisch"-rechner 
gedacht waren als die "Taschen"-rechner, deren Kleinheit und 
Batteriebedingten knappen Stromangebot nach einem Integrationsgrad 
verlangte, was die intel 4004 Chipfamilie eher nicht bot.
Da der erste "Rechner mit i4004: 
https://en.wikipedia.org/wiki/Intel_4004#/media/File:Unicom_141P_Calculator_3.jpg


Die nötige Kleinheit bot erst ein 4bit Controller wie der TMS1000 der 
ROM, RAM und CPU unter einem Gehäuse vereinigte.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren