DIM im Atari BASIC

  • Hi,


    heute habe ich ein Buch bekommen, in dem einige BASIC-Dialekte und ihre Besonderheiten vorgestellt wurden. Neben dem Applesoft-, dem Commodore- und dem Sinclair-BAISIC ist darin ein "Z80 Zilog BASIC" aufgetaucht.


    Davon habe nicht noch nie etwas gehört. Stutzig hat mich jedoch gemacht, dass die Verwendung der String-Dimensionierung ganz ähnliche wie beim ATARI-BASIC funktioniert:


    Eine 50 Zeichen lange Zeichenkette A$ muss vorab mit DIM A$(50) dimensioniert werden. Zeichen X innerhalb der Zeichenkette lässt sich mit ?A$(X) auswählen, ein Zeichenabschnitt der Länge L mit ?A$(X,L).


    Hat von euch schon mal jemand etwas von diesem Dialekt gelesen/gehört? Ist das vielleicht irgend ein CP/M-BASIC?


    µP

    »It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration.« (Edsger W. Dijkstra)


    Homespage| Computerarchäologie | Blog | Forschung

  • Oh, da gab es wohl schon einige Dialekte mehr, als Wikipedia kennt:


    http://www.z80.eu/basic.html

    »It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration.« (Edsger W. Dijkstra)


    Homespage| Computerarchäologie | Blog | Forschung

  • ... also in Wikipedia steht oft viel Quatsch. Ich meine aber, mich an den DIM Befehl in MBAsic zu erinnern. Wenn du einen Apple II mit z80 Karte hast, kannst du ja ausprobieren, ob meine Erinnerung richtig ist. Wenn nicht, kann ich das gerne für dich tun, dann müsste ich aber erst einmal meinen //e aufbauen.

    Loading Integer BASIC into Language Card

  • Nee, aus MBASIC kommt das nicht. Microsoft war ziemlich konsequent in der Kompatibilität ihrer BASIC-Befehle.

    »It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration.« (Edsger W. Dijkstra)


    Homespage| Computerarchäologie | Blog | Forschung

  • Eine 50 Zeichen lange Zeichenkette A$ muss vorab mit DIM A$(50) dimensioniert werden. Zeichen X innerhalb der Zeichenkette lässt sich mit ?A$(X) auswählen, ein Zeichenabschnitt der Länge L mit ?A$(X,L).


    Und wie handhabt dieser Dialekt dann Arrays?


    Microsoft BASIC, also das da:


    BASIC-80 Rev. 5.21
    [CP/M Version]
    Copyright 1977-1981 (C) by Microsoft
    Created: 28-Jul-81
    30520 Bytes free


    ... kann ja wohl nicht gemeint sein, weil das ist doch reiner 8080-Code?


    Und weg,
    AMSi

  • Ich erinnere mich nicht mehr genau, wie Atari-BASIC das gemacht hat - vielleicht konnte man gar keine STRING-Arrays definieren ... müsste ich mal nachlesen.


    Nein, das MS-BASIC isses nicht.

    »It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration.« (Edsger W. Dijkstra)


    Homespage| Computerarchäologie | Blog | Forschung

  • So, ich hab mir das o.g. Buch jetzt noch mal genauer angesehen. Darin findet sich z.B. folgendes Programm (deklariert als "Zilog BASIC"):


    10 def fnr$(a$)
    20 rem fnr$ liefert das gespiegelte a$
    30 if len(a$) <=1 then return a$
    40 return fnr$(a$[2])+a$[1,1]
    50 fnend


    Das hat - außer der Tatsache, dass die Zeichenposition in einem String wie eine Dimensionierung dieses Strings aussieht - gar nix mit Atari-BASIC zu tun.


    Allerdings ist mir wirklich kein Dialekt aus der Zeit (um 1981) bekannt, der so ausgesehen hätte ...

    »It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration.« (Edsger W. Dijkstra)


    Homespage| Computerarchäologie | Blog | Forschung

  • Ich erinnere mich nicht mehr genau, wie Atari-BASIC das gemacht hat - vielleicht konnte man gar keine STRING-Arrays definieren ... müsste ich mal nachlesen.


    Kann man nicht. Man muss so genannte Pseudo String Arrays erzeugen. Nicht sehr elegant und recht zeitraubend.

  • ... ich kenne den DIM Befehl aus dem Applesoft-Basic.


    Gruß Norbert

    ___________________________________________________________________________________________________

    "Traue niemals einem Computer, den du nicht aus dem Fenster werfen kannst" (Steve Wozniak)