Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| z1013:software:tinybasic [2016/11/09 10:29] – [Tiny-Basic] volkerp | z1013:software:tinybasic [2025/03/12 14:00] (aktuell) – [Geschichte] volkerp | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| ====== Tiny-Basic ====== | ====== Tiny-Basic ====== | ||
| - | Mt dem Z9001 wurd ein kleiner 3K-BASIC-Interpreter " | + | Mt dem Z1013 wurde ein kleiner 3K-BASIC-Interpreter " |
| Start: J 100\\ | Start: J 100\\ | ||
| Zeile 13: | Zeile 13: | ||
| ===== Geschichte ===== | ===== Geschichte ===== | ||
| - | Das TINY-Basic stammt vom Palo Alto Tiny BASIC ab, s. [[wp> | + | Das TINY-Basic stammt vom Palo Alto Tiny BASIC ab, s. [[wp> |
| - | Ich vermute, dass ebendiese Version die Grundlage für das Z1013-Tinybasic ist. Das **" | + | Ich vermute, dass ebendiese Version die Grundlage für das Z1013-Tinybasic ist. Das **" |
| - | gesetztes 7. Bit gekennzeichnet)). | + | |
| - | In Details gibt es aber durchaus Abweichungen: | + | In Details gibt es aber durchaus Abweichungen: |
| + | |||
| + | 2018: Die Vermutung ist bestätigt! Auch das Minibasic des AC1 basiert auf dem RDK-Basic: ein Entwickler des AC1 hat später den Z1013 mitentwickelt und die Software des AC1 dabei als Grundlage genommen. Daher hat auch das Betriebssystem des Z1013 viele Gemeinsamkeiten mit dem des [[homecomputer: | ||
| ===== Befehlsübersicht ===== | ===== Befehlsübersicht ===== | ||
| Zeile 184: | Zeile 185: | ||
| empfohlen als Standard (-> [[z1013: | empfohlen als Standard (-> [[z1013: | ||
| + | |||
| + | ===== Erfahrungen ===== | ||
| + | |||
| + | *von mir, 1991* | ||
| + | |||
| + | Das Z1013-BASIC | ||
| + | --------------- | ||
| + | |||
| + | |||
| + | Obwohl die Original-Version von Riesa kaum noch genutzt wird, | ||
| + | es gibt ja die Version 3.20 von Uwe Rehn (?) o. die 4.01er, war | ||
| + | es dennoch für mich interessant, | ||
| + | ren. Wer sich für Computergeschichte interessiert, | ||
| + | sagt, daß dieses Basic warscheinlich von Herrn Rolf-Dieter Klein | ||
| + | entwickelt wurde und seit der meines Wissens ersten Veröffent- | ||
| + | lichung im Oktober 1978 in 'Hobby Computer', | ||
| + | Funkschau, Elektronik; Franzig-Velag auf viele Systeme übernom- | ||
| + | men wurde. | ||
| + | Das Tiny-BASIC nutzt keine speziellen U880-Befehle, | ||
| + | basiert lediglich auf dem Befehlssatz eines 8080-Prozessors. | ||
| + | Auch daraus resultiert die Lahmheit dieses Interpreters. Offen- | ||
| + | sichtlich war man in Riesa bei der Übernahme des Basics nicht | ||
| + | bereit, hier einiges zum Vorteil zu ändern. so wird beispiels- | ||
| + | weise der Befehl SUB HL,DE als Unterprogramm mit 8bit-Registern | ||
| + | ausgeführt. Interessierten empfehle ich, sich einmal die Rou- | ||
| + | tinen OUT oder IN anzusehen. Sie stehen ab 0A32H bzw. 0A69H. Es | ||
| + | wird ein kleines Maschinenprogramm zu Ansprechen der Portadresse | ||
| + | in den RAM ' | ||
| + | mußte sich auf diesem Prozessor mit solch einem Trick helfen. | ||
| + | Dafür hat Riesa gleich mehere Sachen mit eingebaut, die in | ||
| + | keiner Beschreibung erwähnt werden. So folgt dem Basic-Interpre- | ||
| + | ter ab Adresse 0B86H eine kurze Tastaturpollingroutine, | ||
| + | die kleine 8x4-Tastatur | ||
| + | eine kurze Zeit in einer Warteschleife verharrt, bei S4-K dage- | ||
| + | gen das laufende Basicprogramm abbricht und in die Grundschleife | ||
| + | zurückkehrt. Bei exotischen Tastaturen, die keine solche Direkt- | ||
| + | abfrage vertragen, muß diese Routine z.B. mit einem RETurn kurz- | ||
| + | geschlossen werden! | ||
| + | Auch die PRINT-Funktion ist recht interessant. Beim Ausgeben von | ||
| + | Texten können diese sowohl in " | ||
| + | schlossen werden. Dem Zeichen _ kommt hier eine eigenartige | ||
| + | Funktion zu: Durch PRINT _ (ohne Apostroph o.ä.) wird ein | ||
| + | zweifacher Zeilenvorschub ausgeführt. | ||
| + | Die Basic-Befehle können wesentlich stärker gekürzt werden als | ||
| + | im Handbuch angegeben; das führt zu einem Geschwindigkeitsan- | ||
| + | stieg, leider aber auch zu geringerer Lesbarkeit. | ||
| + | Hier sind die maximal möglichen Abkürzungen: | ||
| + | |||
| + | Kommandos | ||
| + | |||
| + | LIST (n) | ||
| + | | ||
| + | | ||
| + | | ||
| + | END n E.n | ||
| + | | ||
| + | | ||
| + | |||
| + | Prozeduren | ||
| + | |||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | |||
| + | Funktionen | ||
| + | |||
| + | | ||
| + | | ||
| + | | ||
| + | IN(n) | ||
| + | | ||
| + | | ||
| + | HEX n H.n | ||
| + | | ||
| + | | ||
| + | | ||
| + | |||
| + | Und nun der Test: Was macht folgendes Programm? | ||
| + | |||
| + | 5 P._,_,_ | ||
| + | 10 F.I=1T.10S.2 | ||
| + | 20 P.I;.I | ||
| + | 30 P..(8) | ||
| + | |||
| + | Richtig, es liest sich so: | ||
| + | |||
| + | 5 PRINT; PRINT; PRINT; PRINT; PRINT; PRINT | ||
| + | 10 FOR I=1 TO 10 STEP 2 | ||
| + | 20 PRINT I; NEXT I | ||
| + | 30 PRINT RND(8) | ||
| + | |||
| + | |||
| + | Zum internen Aufbau der Tiny-Basic-Programme: | ||
| + | Das Programm wird im RAM von 1152H bis (101FH) abgelegt, aber | ||
| + | bereits ab 1000H abgesavet. Jede Zeile hat folgenden Aufbau: | ||
| + | |||
| + | 2 byte Zeilennummer | ||
| + | x byte Text in ASCII-Notation | ||
| + | 1 byte Zeilenabschluss (0DH) | ||
| + | |||
| + | Der Bereich von 1000H bis 1151H dient als Arbeitsspeicher und | ||
| + | enthält unter anderem: | ||
| + | |||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | |||
| + | | ||
| + | |||
| + | Der Eingabepuffer liegt standartmäßig von 3094H bis 30D6H; | ||
| + | wird mit END eine neue Speicherobergrenze definiert, so wird | ||
| + | der Eingabepuffer vor diesem neuen Ende in einer Größe von | ||
| + | 132 Byte installiert. | ||
| + | Die Feldvariablen @(.) liegen ab (114CH) abwärts im Speicher. | ||
| + | |||
| + | Ich denke, das reicht zum Tiny-Basic. | ||
| + | |||
| + | |||
| + | |||
| + | |||