Using the Casio PB-110 Pocket Computer
Kurzanleitung Casio PB-110 Pocket Computer

in german

Eine gute Anleitung für den Einstieg in die Bedienung des PB-110 ist auf Homecomputermuseum.de zu finden. Im folgenden Text werde ich darüber hinausgehende Funktionen beschreiben.

Inbetriebnahme und Allgemeines

Nach dem Einsetzen der Batterien ist es eine gute Idee, erst mal die "All reset" Taste auf der Rückseite des Gerätes zu drücken. Mein PB-110 verhielt sich ohne Drücken dieser Taste auf den ersten Blick zwar normal, hatte aber 0 Bytes frei, was sich auch nicht durch Eingeben von NEW oder NEW ALL beseitigen ließ. Dieser Zustand ist für einen Anfänger schwer zu erkennen, also besser mit "All reset" starten.

Im folgenden Text stehen "S-" und "MODE-" für das Drücken der "S" bzw. "MODE" Taste, so bedeutet z.B. "S-EXE" Drücken der (roten) "S"-Taste und darauf folgendes Drücken der "EXE"-Taste.

Zur Zeicheneingabe: Mit "MODE-." kann der EXT-Modus ein- und ausgeschaltet werden. Dies wird durch das EXT-Symbol im Display verdeutlicht. Wenn dieser Modus aktiv ist, werden Kleinbuchstaben statt Großbuchstaben eingegeben. Durch die "S"-Taste werden dann nicht mehr die roten Symbole und Tokens über den Tasten, sondern die orangen Sonderzeichen unter den Tasten aktiviert. Zu beachten ist, daß beim PB-110 anders als bei den Sharp Pockets Basic Befehle NICHT in Kleinbuchstaben eingegeben werden können, dies führt zu einem Fehler.

Der Memo-Mode (Data Bank)

Memos ansehen

Durch Drücken der "MEMO"-Taste wird die erste Memo-Zeile sichtbar gemacht (wenn sich der Rechner im RUN-Modus befindet). Das "MEMO"-Symbol erscheint nun in der Anzeige und die vierstellige Siebensegmentanzeige zeigt die Nummer der gerade sichtbaren Memozeile. Wenn die Memozeile länger als das Display ist, so kann sie mit "Pfeil-links" und "Pfeil-links" verschoben werden. Zwischen den Zeilen kann mit "EXE" (oder "MEMO") und "S-EXE" geblättert werden. Der Memo-Modus wird mit den folgenden Tasten verlassen:

Wenn sich noch keine Memo-Zeilen im Speicher befinden, so zeigt das Drücken der "MEMO"-Taste keine Reaktion.

Memos editieren

Im MEMO IN-Modus lassen sich neue Memozeilen einfügen und bestehende editieren. Dieser Modus wird durch Drücken von "MODE-9" aktiviert. Das "MEMO IN"-Symbol erscheint nun in der Anzeige und die vierstellige Siebensegmentanzeige zeigt wieder die Nummer der gerade sichtbaren Memozeile, ebenso kann wieder zwischen den Zeilen mit "EXE" (oder "MEMO") und "S-EXE" geblättert werden. Wenn der Cursor mit "Pfeil-links" und "Pfeil-links" bewegt wird, dann erscheint das "EDIT"-Symbol, welches anzeigt, dass die Zeile nun verändert werden kann. Wenn alle Zeichen in einer Zeile gelöscht werden ("DEL"-Taste), dann wird die komplette Zeile aus den Memos entfernt. Eine neue Zeile wird eingefügt, indem die letzte Memozeile, die immer leer ist, ausgefüllt wird. Der Memo-Modus wird mit den folgenden Tasten verlassen:

Befehle

Die folgenden Ausführungen beziehen sich auf Unterschiede zu den von Sharp-PCs bekannten Befehlen.

SharpCasio
BEEPBEEP; zwei Tonhöhen möglich "0" und "1"; die Anzahl der Töne ist nicht einstellbar
CLEARGleiche Funktion wie bei Sharp-PCs. VAC ist gleichbedeutend
CLOADLOAD; konnte ich nicht probieren, weil ich keine Hardware dazu besitze
CONTnicht vorhanden; wenn der Rechner aber im STOP-Status steht, so bewirkt die EXE-Taste ein Fortsetzen des Programms
CSAVESAVE; konnte ich nicht probieren, weil ich keine Hardware dazu besitze
DEGREEMODE 4 im WRT-Modus; Im RUN-Modus durch Drücken von MODE-4 aktivierbar
DIMDEFM; keine mehrdimensionalen Felder und keine Angabe der Stringlänge möglich
GOTOfunktioniert wie bei Sharp-PCs, es können jedoch im RUN-Modus keine Programme damit gestartet werden
GRADMODE 6 im WRT-Modus; Im RUN-Modus durch Drücken von MODE-6 aktivierbar
IF...THENIm Prinzip gleich, THEN muss aber immer angegeben werden. Bei Angabe von Sprungzielen muss GOTO verwendet werden
INPUTfunktioniert, allerdings kann kein Text für dem Prompt angegeben werden (läßt sich aber mit PRINT..; simulieren)
INPUT#vergleichbar mit GET
LETanalog; kann beim PB-110 aber immer weggelassen werden
LPRINTnicht vorhanden, mit MODE 7 und MODE 8 kann aber der PRT-Modus ein- und ausgeschaltet werden (ähnlich P<=>NP)
NEWNEW, NEW ALL; NEW löscht den aktuellen, NEW ALL alle Programmbereiche. NEW ALL löscht auch Variablen
PAUSEnicht vorhanden, kann aber durch PRINT..; und eine Warteschleife simuliert werden, da der PB-110 im BUSY-Status das Display nicht abschaltet
PRINTVorhanden, verhält sich aber ein bisschen anders; siehe Homecomputermuseum.de
PRINT#vergleichbar mit PUT
RADIANMODE 5 im WRT-Modus; Im RUN-Modus durch Drücken von MODE-5 aktivierbar
TROFFKein entsprechender Befehl; Tracemodus kann aber mit MODE-3 eingeschaltet werden
TRONKein entsprechender Befehl; Tracemodus kann aber mit MODE-2 ausgeschaltet werden

Was nicht funktioniert: AREAD, CHAIN, MDF, ON..GOSUB, ON..GOTO, RANDOM, USING, WAIT

Funktionen

Pseudovariablen

Die Pseudovariable KEY$ (oder KEY) liefert die aktuell gedrückte Taste

Numerische Funktionen

ABSAbsolutbetrag
ACSArcuscosinus
ASNArcussinus
ATNArcustngens
COSCosinus
DEGUmwandlung Grad, Minuten, Sekunden in Dezimaldarstellung. z.B. DEG(45,10,3)
DMS$Umkehrfunktion von DEG, liefert formatierten String
EXPExponent der Zahl e
FRACNachkommaanteil des Arguments
INTGanzzahliger Teil einer Zahl
LNNatürlicher Logarithmus
LOGZehnerlogarithmus
SGN0, wenn Arg.=0, -1, wenn Arg. negativ, 1 sonst
SINSinus
SQRQuadratwurzel
TANTangens
FRACNachkommaanteil einer Zahl

Was leider abgeht (ich konnte zumindest keine finden) ist eine RANDOM-Funktion, diese kann aber durch ein Unterprogramm realisiert werden. Als Hilfsfunktion dafür benötigen wir die Modulo-Funktion (Das ist der Rest einer Integer-Division, z.B. liefert 5 MOD 3 als Ergebnis 2). In Basic würde man Y = A MOD B wie folgt formulieren:

10 Y=A-B*INT(A/B)

Die Zufallszahlen können nach der linearen Kongruenz-Methode nach folgender Formel erzeugt werden:

xn+1 = (a * xn + c) mod m

Nach "R. Sedgewick: Algorithmen" wählen wir:

xn+1 = (6421 * xn + 1) mod 65536

Das liefert Zufallszahlen 0 <= x < 65536. Die Basic-Realisierung inkl. Modulo-Funktion sieht wie folgt aus:

100 X=6421*X+1:X=X-65536*INT(X/65536):RETURN

Wenn man Zufallszahlen in einem kleineren Bereich, z.B. 0 <= x < 100 benötigt, so rechnet man einfach Y=INT(100*X/65536).

String Funktionen

... konnte ich nur sehr wenige entdecken:

Die MID-Funktion reagiert leider sehr empfindlich auf falsche Argumente. Andere Stringfunktionen können simuliert werden:

C$=LEFT$(B$, A) entspricht z.B. $=B$:C$=MID(1,A)

Die Länge von $ kann mit folgendem (leider nicht sehr effizienten) Unterprogramm ermittelt werden (Länge wird in A gespeichert):

100 IF $="" THEN A=0:RETURN
110 A=1
120 IF $# MID(1,A) THEN A=A+1: GOTO 120
130 RETURN

Das Doppelkreuz-Zeichen in Zeile 120 muss durch das Ungleich-Zeichen des PB-110 (S-=) ersetzt werden, dieses läßt sich jedoch in HTML nicht so leicht darstellen ...

Die RIGHT$-Funktion läßt sich dann mit Hilfe dieses Unterprogramms realisieren. C$=RIGHT$(B$, D) entspricht z.B. $=B$:GOSUB 100:C$=MID(A-D+1,D)

CHR$, ASC, STR$ und VAL fehlen leider und lassen sich auch nicht so einfach ersetzen.

Fehlercodes

Programmbeispiel

Zu guter letzt, ein Spiel als Programmbeispiel, weils am meisten Spaß macht...
Es handelt sich um "Skifahren", ein Programm, das ich erstmals auf einem 8085-Entwicklungsystem sah (diese Version konnte auch auf einem Drucker mit Endlospapier gespielt werden).

Im folgenden Listing, das ich leider abtippen musste (wenn jemand ein Link-Programm Casio <=> PC kennt, möge er es mir bitte mitteilen), habe ich die in HTML nicht darstellbaren Sonderzeichen des EXT-Modus in geschwungenen Klammern dargestellt, z.B. bedeutet {S-D} das der Taste D überlagerte Dreieck-Zeichen. Hier nun das Listing:

10 $="    {S-D}    {S-L}{S-L}{S-L}{S-L}{S-L}{S-L}{S-L}"
20 L=3:P=6:T=0
30 PRINT "*SKIRENNEN*"
500 FOR I=1 TO 50
505 A=P-L:T=T+ ABS(A-3)
510 IF A<1 THEN GOTO 700
515 IF A>5 THEN GOTO 700
520 C$= MID(10,L)
530 D$= MID(6-A,5)
540 E$= MID(10,7-L)
545 $=$+C$:$=$+D$:$=$+E$
550 PRINT CSR0; MID(18,12);
555 $= MID(1,16)
560 C$= KEY
570 IF C$="1" THEN P=P-1
580 IF C$="3" THEN P=P+1
590 GOSUB 1000
600 Y= INT(3*X/65536)-1
610 L=L+Y
620 IF L<1 THEN L=1
630 IF L>6 THEN L=6
640 NEXT I
650 BEEP 0: PRINT "    ZEIT: ";T
660 T=100000-T
665 IF T<H THEN END
670 BEEP 0: BEEP 1: PRINT "* BESTZEIT *"
680 H=T: END
700 BEEP 1: PRINT "** STURZ ** "
710 END
1000 X=6421*X+1:X=X-65536* INT(X/65536): RETURN

Gesteuert wird mit den Tasten 1 und 3. Wer in die Bäume fährt, kommt zu Sturz. Am Schluß wird die Zeit angezeigt, welche mangels entsprechender Funktion keine echte Zeit ist, sondern ein Wert, der angibt, wie weit von der Ideallinie abgewichen wurde. Hier noch einige Tipps:

Viel Spaß!


Edgar Pühringer last modified: 23.10.2001