Sharp PC-1401

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen
Sharp PC-1401
Sharp PC-1402 (oben)
Sharp PC-1403H (unten)

Der Sharp PC-1401 war der erste von Sharp angebotene Pocket-Computer mit integriertem wissenschaftlichen Taschenrechner. Das Modell ist 1983 erschienen.

Neben dem schon bei früheren Pocketcomputern vorhandenen Programmiermodus und Run-Modus ist beim PC-1401 zusätzlich ein Calculator-Modus verfügbar, in dem sich der Rechner wie ein Taschenrechner verhält. Weiterhin ist ein Statistikmodus verfügbar, der u. a. lineare Regression unterstützt.

Bei früheren Modellen konnten Berechnungen nur über BASIC-Befehlszeilen durchgeführt werden. Bedingt durch die Taschenrechnertastatur wurde die Breite der LC-Anzeige auf 16 Zeichen begrenzt. Das Nachfolgemodell PC-1403 hatte bei gleichem Layout ein 24-stelliges Display.

PC-1401
Der PC-1401 verfügt über 4,125 KByte statisches RAM, von denen 3,5 KByte für Programme und Variablen nutzbar sind. Variablen A bis Z standen davon unabhängig zur Verfügung, sie waren statisch angelegt.
Der Speicher wurde durch zwei CMOS-RAM-Bausteine zu 16 KBit (2 KByte) realisiert. Durch Ersatz eines dieser Bausteine durch einen 8-KByte-RAM-Baustein (SMD) konnte die Speicherkapazität auf 10,125 KByte erhöht werden. Damit entsprach das Gerät dem PC-1402.
Zusätzlich standen auf dem Displaycontroller 1 KBit (128 Byte) Speicher zur Verfügung. Davon wurden 82 Byte für die Anzeige verwendet, der Rest konnte frei benutzt werden. Allerdings benutzte der BASIC-Interpreter diese 82 Byte als temporären Speicher, was eine Anzeige während der Abarbeitung von BASIC-Programmen unmöglich machte.
Der Rechner kostete im Jahre 1986 185 DM,[1] was in heutiger Kaufkraft etwa 200 Euro entspricht.[2]
PC-1402
Der ansonsten bau- und funktionsgleiche PC-1402 verfügt über 10,125 KByte Speicherkapazität.
PC-1403
Der Sharp PC-1403 verfügt über 8 KByte RAM sowie über ein 24-stelliges Display gegenüber den 16 Stellen des PC-1401 und PC-1402. In Texten sind zudem zusätzlich Kleinbuchstaben möglich.
PC-1403H
Der Sharp PC-1403H ist das Topmodell der 140x-Reihe. Er verfügt gegenüber dem PC-1403 über 32 KByte RAM.
PC-1421
Der PC-1421 ist eine Version des PC-1401 für finanzmathematische Berechnungen. Er unterscheidet sich vom PC-1401 technisch nur durch seinen abweichenden ROM-Inhalt.
PC-1430
Der PC-1430 ist eine vereinfachte und preiswertere Ausführung des PC-1401. Die Anzeige und – abgesehen von der geringeren Tastenanzahl – das Gehäuse sind gleich, aber es gibt keinen Taschenrechnermodus (gerechnet wird im BASIC-Direktmodus), der Funktionsumfang ist geringer und der Speicher mit 2 kB kleiner.
PC-1450
Diese Ausführung bietet die Verwendung auswechselbarer RAM-Karten: CE-211M (3.070 Byte = 4 kB / Standard), CE-201M (7.166 Byte = 8 kByte) oder CE-202M (15.358 Byte = 16 kByte).
PC-1475
Variante mit zweizeiligem Display zu je 24 Zeichen sowie zwei Steckplätzen für Karten, jeweils bis zu 32 KByte RAM.

Über eine Schnittstelle können Peripheriegeräte angeschlossen werden, darunter Thermodrucker (z. B. CE-126P), Plotter oder ein Interface zum Anschluss eines Datenrekorders (im Grunde ein gewöhnlicher Kassettenrekorder). Auch die direkte Verbindung zwischen zwei Pocketcomputern zur Datenübertragung ist möglich.

Steckerbelegung

[Bearbeiten | Quelltext bearbeiten]

Die Tabellenspalte Richtung gibt die Richtung des Signals an. Alle Angaben sind ohne Gewähr:

Pin │ Richtung │ Belegung              ┌───────────────────────
────┼──────────┼─────────────          │     SHARP  POCKET COM...
 1  │ ??       │ ??                1 ──│ on  ┌─────────────────
 2  │ ---      │ Vcc   (+6V)       2 ──│ ┌─┐ │
 3  │ ---      │ Ground (0V)   GND 3 ──│ │▀│ │ > CSAVE█
 4  │ out      │ Busy              4 ──│ └─┘ │   _ _
 5  │ out      │ Data out          5 ──│ off └─────────────────
 6  │ in       │ CLOAD        -->  6 ──│ ┌───┐ ┌───┐ ┌───
 7  │ out      │ CSAVE        <--  7 ──│ └───┘ └───┘ └──
 8  │ in       │ Data in           8 ──│ ┌───┐ ┌───┐ ┌─
 9  │ in       │ Ack               9 ──│ └───┘ └───┘
10  │ ---      │ n.c.             10 ──│ ┌───┐ ┌──
11  │ ---      │ n.c.             11 ──│ └───┘
                                       │ ┌───

Das BASIC wies etliche Unterschiede zu den üblichen BASIC-Dialekten auf:

  • Es gab nur 13-stellige Gleitkommazahlen (8 Byte, BCD), keine Ganzzahlen.
  • zwei Zahlen waren gleich, wenn sie sich in den ersten 10 Stellen nicht unterschieden, Differenzen ohne Unterschiede in den ersten 10 Stellen kollabierten zur Zahl Null: 3.1415 92653 589 − 3.1415 92653 500 = 0
  • Variablen mit einem Buchstaben waren fest angelegt und konnten nur entweder Gleitkommazahlen oder Stringwerte bis 7 Zeichen aufnehmen. A und A$ konnten nicht gleichzeitig benutzt werden.
  • RUN löschte die Variablen mit einem Buchstaben nicht.
  • GOTO und GOSUB ging auch mit Labels und berechneten Ausdrücken statt Zeilennummern (GOTO "A").
  • Es gab bei den vom PC-1401 abgeleiteten Modellen keine Kleinbuchstaben, jedoch beim PC-1403 und -1450
  • Array mussten(!) explizit erzeugt werden (DIM AR(100)). Es waren max. zweidimensionale Arrays möglich.
  • Strings wurden statisch angelegt. Man musste beim Anlegen die Länge festlegen.
  • Variablennamen durften nur 1 oder 2 Zeichen lang sein.
  • Programmzeilen durften bis zu 79 Token lang sein. Schlüsselwörter (Token) wurden beim ersten Editieren zusammengefasst und ließen sich dann nicht mehr buchstabenweise, sondern nur noch als ganzes Token (z. B. FOR mit intrinsischem Leerzeichen) editieren. Überflüssige Leerzeichen wurden entfernt.
  • Sehr umfangreiche Mathematikbefehle (bis hin zu Hyperbelfunktionen): sin, sinh, cos, cosh, tan, tanh, asin, acos, atan, asinh, acosh, atanh, ln, log, exp, ten, ...

Programmbeispiel

[Bearbeiten | Quelltext bearbeiten]

Das nachfolgende Programm wird durch RUN 200 oder DEF K gestartet. Nach Eingabe eines Datums in der Form TTMMJJJJ (also z. B. 19082019) wird der Wochentag sowie die absolute Differenz in Tagen zu einem vorher eingegebenen Datum bestimmt.

200:"K" DATA "SONN","MON","DIENS","MITT","DONNERS","FREI","SAMS":Q=S
230:INPUT "DATUM?";D:T= INT (D/1E6):M= INT (D/1E4)-T*100:J=D-T*1E6-M*1E4
250:Z=0:IF M<3 LET V=(M-1)*31:GOTO 305
260:IF J/4<> INT (J/4) THEN 300
270:IF J/100<> INT (J/100) THEN 290
280:IF J/400<> INT (J/400) THEN 300
290:Z=1
300:V= INT ((306*M-324)/10)
305:J=J-1:Z=Z+J*365+ INT (J/4)- INT (J/100)+ INT (J/400)
310:S=Z+V+T:R=S- INT (S/7)*7+1:X$="TAG":IF R=4 LET X$="WOCH"
320:RESTORE :FOR I=1 TO R:READ W$:NEXT I:PRINT W$+X$:PRINT ABS (Q-S):END

Maschinensprache

[Bearbeiten | Quelltext bearbeiten]

Als nicht im Handbuch dokumentiertes Extra kann man die Rechner auch in Maschinensprache programmieren (mittels PEEK, POKE und CALL sowie unter Nutzung von Routinen des Betriebssystems), so dass man u. a. direkten Zugriff auf das externe Interface erlangen kann. Damit ist es möglich, den Taschenrechner auch für mess- und regeltechnische Anwendungen zu verwenden oder ihn an andere Rechner bzw. Geräte zu koppeln (z. B. via RS-232). Einzelne Pixel der Anzeige lassen sich über Maschinensprache ansteuern, so dass z. B. einfache grafische Spiele möglich sind. Mitte bis Ende der 1980er Jahre ist umfangreiche Literatur zu diesem Themenbereich erschienen.

Kurzeinführung zum Aufbau der CPU:
Der Prozessor des PC-1401 ist ein 8-bit-Prozessor mit einer Taktfrequenz von 576 kHz. Befehle dauern immer ein Vielfaches von 3 Takten, so dass man von einer Zyklusfrequenz von 192 kHz sprechen kann. Befehle dauern minimal 2 Zyklen (6 Takte), es gibt recht komplexe Befehle, die bis zu 769 Byte lang sein können.

Der Prozessor hat zwei Adressräume:

  • 7-bit-Adressen für Daten, Stack und I/O (96 Byte genutzt)
  • 16-bit-Adressen für Programme und Daten (8 KByte davon befinden sich in einem internen ROM, 56 KByte können durch externen Speicher erweitert werden).

Der Prozessor hat zwei 8-bit-Akkumulatoren (A und B), zwei Zählregister (I und J), drei Adressregister für den 8-bit-Adressbereich (P, Q und den Stackpointer R) sowie 3 Adressregister für 16-bit-Adressen (X, Y, DP). Die Register A, B, I, J, X und Y findet man im internen 7-bit-Speicher noch einmal gemappt. Es gibt einige Kurzbefehle (Lade P mit 6-bit-Wert und CALL zu 13-bit-Adresse). Besonderheiten sind BCD-Befehle, die mit einem Maschinenbefehl längere BCD-Zahlen addieren, subtrahieren oder um 4 bit verschieben. Weiterhin ein Multi-Branchbefehl, der in Abhängigkeit vom Wert im Register A die Auswahl einer Unterfunktion mit einem Maschinenbefehl ermöglichte. Normalerweise benötigt man dafür größere Mengen an Maschinenbefehlen.

Im PC-1401 ist der Prozessor durch 2 × 2 KByte statischen RAM, eine LC-Anzeige mit 128 Byte RAM und 32 KByte externen ROM (von dem allerdings nur ~ 25 KByte genutzt werden) erweitert. In den Nachfolgern sind größere RAM-Bausteine eingebaut.

Technische Daten

[Bearbeiten | Quelltext bearbeiten]
CPU Sharp SC61860 mit 576 kHz Taktfrequenz, 8-bit-CMOS, umfangreiche BCD-Arithmetik-Befehle
RAM 2048+2048+128 Byte (PC-1401) bzw. 8192+2048+128 Byte (PC-1402) sRAM, batteriegestützt
ROM 40 KByte (8 KByte intern, 32 KByte extern)
Programmiersprache BASIC, Maschinensprache
Display Monochrom-LCD, einzeilig, 16 Zeichen mit jeweils 5 × 7 Pixeln, Kontrastregler
Ton Piezo-Piepser, direkte Ansteuerung durch die CPU
Tastaturbelegung QWERTY (links) und Taschenrechnertastatur (rechts)
Stromversorgung nominal 6 V (zwei Lithium-Knopfzellen, Typ CR-2032 mit je 3 Volt)
Leistungsbedarf etwa 30 mW bei RAM-Zugriffen, 60 µW im normalen Betrieb
Betriebszeit je Batteriesatz etwa 120 Stunden bei Dauerbetrieb
Abmessungen 170 mm × 72 mm × 9,5 mm
Masse 150 g (inklusive Batterien und Abdeckung)

Mit dem SHARP PC-1450 Emulator kann der Taschenrechner auf Windows-Systemen emuliert werden.

Einzelnachweise

[Bearbeiten | Quelltext bearbeiten]
  1. Anzeige von Vobis. In: Happy Computer. Oktober 1986, abgerufen am 19. August 2019.
  2. Diese Zahl wurde mit der Vorlage:Inflation ermittelt, ist auf volle 10 EUR gerundet und bezieht sich auf Januar 2024.