CCZwei

Aktuelles

Allgemeines

Priv@tes

Unterhaltung

Lallus

Visual Basic

PDA/PPC2002

Navigation

Mischmasch

Chat / Webcam

 

| impressum | feedback | gästebuch | home |  

 

Knowhowcomputer

Der Know - how Computer

Ein Computer, der mit Streichhölzern arbeitet.


Von Wolfgang Back

Wir schreiben das Jahr 1983. Die Computersituation in der Bundesrepublik war noch sehr bescheiden. Es gab ein paar (tausend) Leute, die sich zur Avantgarde zählten und 4000 Mark und mehr ausgaben, um sich einen Apple anzuschaffen. Natürlich gab es bereits andere Modelle auf dem Markt. Fast jeden Monat kam ein neues exotisches Modell hinzu.

Der Computerclub hatte damals das große Problem, dass die Sendung auf Zuschauerinteresse stieß, obwohl ein Großteil der Seher gar keinen Computer zur Verfügung hatte. Aus diesem Grunde entwickelten Ulrich Rohde und ich einen Papiercomputer, der schon bald –von der Stückzahl her- die Nummer Eins in der Bundesrepublik war. Mehr als 300 Tausend Exemplare wurden unter die interessierte Zuschauerschaft verteilt.

Die Idee, das Funktionieren eines Computers in einfachster Form darzustellen, fand bald in der schulischen Ausbild ihren Einzug. Selbst heute noch soll er an manchen Berufsschulen im Einsatz sein - so wurde es mir bestätigt.

Somit war mit dem Papiercomputer ein Lehrmittel geschaffen, das jeden in die Lage versetzte, die Denkstrukturen beim Programmieren zu erlernen. Natürlich ist es kein Computerersatz, doch mit den 5 vorhandenen Befehlen lassen sich sämtliche mathematischen Probleme lösen.

Es ist ja auch verständlich. Wenn man sich klarmacht, dass die Multiplikation auf der Addition aufbaut, denn 3 * 6 ist nichts anderes als 6 + 6 + 6.

Die nächste mathematische Stufe: das Potenzieren ist entsprechend:
2 hoch 3 ist 2 * 2 * 2.
Da man sämtliche Probleme in der Mathematik letztendlich mit den Grundrechenarten Addition / Subtraktion lösen kann, kommt der vorgestellte Computer mit nur 5 Befehlen aus.

Wenn Sie später in die Assemblersprache einsteigen wollen, so ist der Knowhow – Computer das richtige Lernmittel, um Denkstrukturen in Maschinensprache zu trainieren.

Ein Computer besteht aus einem Rechenwerk, normalerweise die CPU (die muß allerdings mit der Hand bewegt werden), einem Datenspeicher und aus dem Programm, das Befehle und Anweisungen enthält. Letztendlich muß noch eine Eingabe- und Ausgabemöglichkeit geschaffen werden. All dies ist mit diesem einfachen Modell möglich.

Die Daten werden in der Papierversion mit Streichhölzern dargestellt. In der Computerversion wurde dies mit virtuellen Hölzern beibehalten.

Der rechte Teil (Datenregister) dient daher zur Ein- und Ausgabe.
Unser Rechner hat also 8 Datenregister, die wir für alles mögliche benutzen können.

Die Bedienung der Computerversion ist einfach.
Die Streichhölzer bekommt man auf dreierlei Weise in die Register.
1.) Mausklick links auf das Register fügt ein Holz hinzu.
Mausklick rechts auf das Register nimmt ein Holz weg.
Ein Klick auf das + fügt ein Holz hinzu,
auf – entsprechend wird ein Holz entfernt.

Am effektivsten - bei hoher Anzahl von Hölzern - ist die direkte Eingabe im kleinen Textfenster über dem -+ Knopf.

Die linke Seite des Knowhow – Computers ist für das Programm vorgesehen. Hier kommen die erwähnten 5 Befehle zum Zuge.

Die Befehle sind sicherlich leicht zu merken.

1.) stp – dieses ist der Stoppbefehl. Wird die Zelle mit diesem Befehl erreicht, so ist die gestellte Aufgabe abgearbeitet, das Programm ist zu Ende.

2.) inc – dieser Befehl wurde aus dem englischen Wort increment abgeleitet. Es bedeutet, dass der Wert in dem angesprochenen Datenregister um 1 erhöht wird – ein Holz wird dazugelegt. Dieser Befehl ist auch im Assembler sehr wichtig, wie Sie später noch sehen werden.

3.) dec – das Pendant zu inc. Decrement bedeutet, dass der Registerwert um 1 erniedrigt wird. Auch diesen Befehl werden Sie später wieder entdecken.

4.) jmp – ist ein Sprungbefehl, abgeleitet von jump. Der Inhalt der in der Zelle zeigt an, wohin im Programm jetzt gesprungen werden soll. Ein jmp 99 1 bedeutet also: Wir sind in der Programmzelle 1. Beim nächsten Takt soll in die letzte Zelle 99 gesprungen werden. Finden wir hier jmp 1 99 vor, so haben wir eine Endlosschleife programmiert: von 1 nach 99, von 99 nach 1 usw. Sprungbefehle sind später wichtige Befehle im Assembler. Von Basic her kennt man diese Befehle ebenso: hier heisst es goto.

5.) isz – dieser Befehl ist vielleicht etwas schwieriger zu verstehen. Es ist ein Verzweigungsbefehl. Er leitet sich hier von der Fragestellung is zero ?, also ist es null ? ab.
Und zwar wird hiermit das Datenregister abgefragt. isz 1 6 bedeutet im Klartext: Wir sind in der Programmzelle 6. Das Datenregister 1 wird auf 0 geprüft. Und was geschieht nun? Sind in dem Datenregister Hölzer – es ist also nicht 0 -, so wird das Programm mit der nächsten Programmzelle abgearbeitet. Ist das Datenregister jedoch ohne Hölzer, so erfolgt ein Sprung in die übernächste Zelle. Solche Verzweigungen sind sehr wichtig und sie werden später häufig gebraucht.

Vergleichbar in Basic ist der IF – Befehl, vergleichbar im Assembler bne = branch not equal oder beq = branch if equal.

10 IF A=0 then goto 30
20 goto 40
30 END
40 print „HALLO“

Dieses Basicprogrämmchen wird also immer HALLO schreiben, wenn A ungleich 0 ist. Ist A = 0, so wird das Programm beendet.

Das wär’s auch schon. Anhand der vorgelegten einfachen Addition in dem Bild erkläre ich den Ablauf einmal genauer. Sie sollten dann versuchen, andere Rechenarten selbst zu programmieren.

Die Grundrechenarten Addition, Subtraktion, Multiplikation und Division sind natürlich schon als vorgefertigte Programme vorhanden. Sie sind etwas ausgefeilter und können als „ordentliches“ Programmieren angesehen werden.

Doch zunächst einmal ein einfaches Beispiel, eine Addition ohne Schnörkel:

In diesem Beispiel sind 2 Hölzer in Datenregister 1 und 2 Hölzer in Datenregister 2. Das Programm auf der linken Seite (Addition) wird 2 + 2 = 4 errechnen.

Wir beginnen mit unserem Programmzähler (der Kugelschreiber) in der Zelle 1, wie es jeder Computer macht.
Hier finden wir die Programmzeile isz 2 1 vor.
Wir wissen jetzt, was es bedeutet. Ist das Datenregister 2 leer?
Nein, hier liegen 2 Hölzer. Also weitermachen mit der nächsten Anweisung: jmp 4 2 .

Ein Sprung zur Programmzelle 4 ist hier die Anweisung.
In 4 dann die erste Aktion: dec 2 4 .
Decrementiere, nimm ein Holz aus Datenregister 2 weg.

Im nächsten Befehl wird ein Holz in das Datenregister 1 hinzugefügt: inc 1 5 .
Danach wieder der Sprungbefehl in die Programmzelle 1 – das gleiche Spiel beginnt – bis Datenregister 2 leer ist.

Nach der Befehlsdefinition wird dann die folgende Programmzelle übersprungen und wir landen auf dem Stoppbefehl stp – das Programm ist beendet.

Jetzt sollten Sie versuchen, einige Programme selbst zu schreiben.
Probieren Sie es mit einer Endlosschleife, kopieren Sie Inhalte in andere Datenregister usw.

Man kann das alles auf Papier realisieren, indem die Vorlage so kopiert wird, wie oben gezeigt. Echte Streichhölzer qwerden in die Register gelegt und ein Kugelschreiber dient als Programmzähler.

Auf gehts!!

Es ist sicherlich kein dummes Geschwätz, wenn ich behaupte, dass das Vertrautwerden mit dieser Programmiertechnik das Verständnis für die Funktion eines Computers fördert. Hier ist eine Art Maschinensprache realisiert, deren Verständnis für spätere Programmieranwendungen in anderen Hochsprachen sicherlich von Vorteil ist.

Es wird auf meinen Seiten ein Internet - Knowhow-Computer entstehen. Dafür muss ich mich noch ein wenig mit javaskript auseinandersetzen. Dann kann man es direkt auf der entsprechenden Seite ausprobieren.

Bis dahin kann man sich ein Programm laden, das als EXE-File auf dem Computer läuft. Die Runtimebibliothek vbrun300.dll und das Contril GRID.VBX ist im ZIP-File vorhanden.
Ansonsten gibt es diese auch bei mir im Programm unter Visual Basic.

Das Programm habe ich schnell in Visual Basic geschrieben.
Es mag sein, dass sich die eine oder andere kleine Macke auftut. Vor allem beim Einfügen neuer Programmzeilen können sich evtl. kleine Fehler bei der Neuberechnung der Sprungadressen auftun.

Ich habe hier eine RENUMBER – Funktion eingebaut (eigentlich Quatsch).
Da dieser Rechner aber nur das Prinzip zeigen soll und nicht zum Standardrechner aufsteigen soll, sollte die Funktionalität des Programmes genügen.

Der kleine Taschenrechner im Programm soll eigentlich alles auf den Kopf stellen:
Ein Papiercomputer, der im Computer simuliert wird – nutzt dann die denkbar umständlichste Methode, um ein Ergebnis zu erzielen.

In den kleinen Farbfenstern kann man die persönliche Note einstellen.
Sowohl Schriftfarbe wie auch der Hintergrund können eingestellt werden.
Die Gridlinien können entfernt werden, der Programmzähler kann individuell in seiner Farbe bestimmt werden usw..

Knowhow Computer Zip-File(269 KB) laden

 
   

   © 2003 by Wolfgang Back •  info@wolfgang-back.com