Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
z1013:software:tinybasic [2018/08/30 10:00] – [Geschichte] volkerp | z1013:software:tinybasic [2025/03/12 14:00] (aktuell) – [Geschichte] volkerp | ||
---|---|---|---|
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: | 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: | ||
Zeile 186: | 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. | ||
+ | |||
+ | |||
+ | |||
+ | |||