Hallo Besucher, der Thread wurde 18k mal aufgerufen und enthält 69 Antworten

letzter Beitrag von Phoenix0870 am

LocoBasic vs. Basic 3.5/7.0

  • Ein sinnvoller Vergleich hätte aus meiner Sicht mehrere Bereiche. Einmal den allgemeinen Bereich, der bei beiden Systemen gegeben ist:

    • Vorhandene Schleifenkonstrukte (for, while, repeat usw.)
    • Vorhandene Fallunterscheidungen (if, if/else, on x goto/gosub, case ...)
    • Grafikbefehle (Linien, Kreise/Ellipsen, Teilkurven, Polygone etc.)
    • Sound (der Bereich, der bei CPC und CBM gleich ist)
    • Debugging/Entwicklungshilfen (renumber, trace etc)


    Schwierig sind die Systembesonderheiten - in LocoBasic können Zeichendarstellungen neu definiert werden, Basic V7 unterstützt Sprites. Das wären Äpfel mit Birnen verglichen. Die selbstdefinierten Zeichen könnte man in Basic7.0 über den Grafikmodus mit SSHAPE und GSHAPE simulieren - wenn Zeit/Timing keine Rolle spielen.


    Nachtrag: der Thread sollte aufgeteilt werden und alles rund um Basicvergleich in einen neuen Thread ("LocoBasic vs. Basic 3.5/7.0"?) gepackt werden.

  • Bytebreaker:
    Das Beispiel für den 800 XL habe ich nicht mehr. Das war recht sperrig zu programmieren, den Code hatte ich nicht gespeichert. Atari ST und C64 kann ich gerne Posten. C16 muss ich nachsehen, wo ich das habe.....



    Gesendet von meinem CBM 3032 mit gemischten Gefühlen.

  • @Eloy_Dorian


    Oh cool zeig doch mal ich besitze alle diese Rechner und hätte gern deine Sourcen gesehen.

    Sorry - bin faul und habe deshalb einen Screenshot für den Atari ST (Gfa-basic) angehängt


    So hier daaaas Original für den C64 direkt aus dem Handbuch:


  • :D Basic7.0 :thumbsup:


    Ich war faul - ich hätte auch die Bits der Spritedaten ausschreiben können, dann in den Grafikbildschirm plotten lassen und anschließend als Sprite übernehmen.

  • Für Sprites am CPC brauche ich ein Tool namens SpritesAlive. Das ist für die Integration in Loco Basic speziell gedacht. h arbeite mich die nächsten Tage da ein und liefere dann ein Listing.


    Es gibt noch Cross Delopment Tools für Windows, das zielt ab auf Assembler, und um das geht es ja hier nicht.


    Anhand der vielen vorhandenen Basic-Befehle wäre es ein ziemlicher Aufwand, kategorisch alle Basic-Befehle plattform-übergreifend nach Themengruppen zu vergleichen. Aus meinem Locomotive Basic Alltag kann ich aber gegenüber CBM V2 Basic folgendes aus dem Gedächtnis sagen (wobei ich längst nicht alle Loco Befehle nutze):


    10 while inkey$<>"P"
    20 gosub 500 : rem Hauptroutine Spiel
    30 wend


    10 if inkey$="" goto 10


    Absolute und relative Koordinatenangabe: move x,y (absolut), mover x,y (relativ), analog draw, drawr
    Ursprung setzen origin 319,199 --> Koordinatensystem mit 4 Quadranten auf einen Schlag


    move x,y:tag::print a$ : auf pixelgenaue Koordinate gehen, Pixelortung aktivieren, String pixelgenau platzieren und ausgeben, Pixelortung aus.
    locate 10,10:print "Hallo"; -> Auf Zeichenkoordinate 10,10 gehen, Hallo sagen. CBM kennt kein locate, auch kein fill für einggrentze Flächen. Keine Linien, das ist mit CBM Behelfsmitteln der reinste Graus.


    Befehle Every, After: Über bis zu 3 Interrupt-Quellen können gleichzeitig aktiviert und zeitlich priorisiert für Sprünge und Unterprogramm-Aufrufe verwendet werden (wie bei meiner CPc Analog Uhr, da brauchte ich nur einen für die Sekunden, der Rest abgeleitet).


    Es gibt sehr differenzierte Sound-Befehle (Sound, Envelope) über die man den CPC nicht nur piepsen lassen kann, sondern schön dreistimmig singen lassen mitten während einem Basic Spiel ohne dass die Leistung abnimmt und man hat keinerlei greulichen Poke-Origien abzuleisten die den Interpreter binden.
    Beispiel:


    http://www.cpcwiki.eu/forum/ga…lbox-(new-game-in-basic)/


    Dann unterstützt der Editor 80 Zeichen, Copy/Paste, Auto-Zeilennummerierung, Renumber und Mergen verschiedener Basic Sourcen.


    Bei CBM Basic lernt man schnell, dass man Assembler lernen muss und von dort aus V2 Basic Routinen anspringen kann um nicht selber per Tabelle einen Sinus ausrechnen zu müssen. Bei Loco Basic dauert es länger bis man Assembler aus Not zu akzeptieren bereit ist und selbst dann wird man komfortabel aufgefangen weil der CPC sich sehr angenehm in ASM programmieren lässt. Das hab ich aber nur von Aussagen von Demo Codern, ich weiß das nicht aus erster Hamd, weil C64 Assembler bei mir Prio hat wenn es um Maschinensprache geht und ich nicht zuviel verschiedenes gleichzeitig lernen will.


    Für Demos, einfache Spiele und Anwendungen ist der CPC dem C64 gleichwertig bis überlegen. Bei aufwändigen Spielen ist er dank fehlender Sprites und schlechterem Sound unterlegen.


    Bei den Sprites hat der CPC ein echtes Manko, das er nur mit viel CPU Zeit und Speicherplatz ausgleichen kann und was bei aufwändigen Spielen so stark drückt, dass der ganze Rechner im Vergleich abfällt - wenn die Zielgruppe eben zu 95% aus Kindern und Jugendlichen bestand, die halt zu 80% spielen wollten und das "Programmieren" und "Hausaufgaben" bloss Vorwand für die Eltern genutzt haben damit so ein Ding unter dem Weihnachtsbaum landet.


  • CBM kennt kein locate, auch kein fill für einggrentze Flächen. Keine Linien, das ist mit CBM Behelfsmitteln der reinste Graus.

    Fill gibts es aber nicht auf dem CPC 464 mit BASIC 1.0.



    Bei CBM Basic lernt man schnell, dass man Assembler lernen muss und von dort aus V2 Basic Routinen anspringen kann um nicht selber per Tabelle einen Sinus ausrechnen zu müssen. Bei Loco Basic dauert es länger bis man Assembler aus Not zu akzeptieren bereit ist und selbst dann wird man komfortabel aufgefangen weil der CPC sich sehr angenehm in ASM programmieren lässt. Das hab ich aber nur von Aussagen von Demo Codern, ich weiß das nicht aus erster Hamd, weil C64 Assembler bei mir Prio hat wenn es um Maschinensprache geht und ich nicht zuviel verschiedenes gleichzeitig lernen will.

    Assembler vom CPC mit C64 vergleichen? Schwierig. Die ganzen Z80 Befehle machen ein Programmieren teilweise einfacher, aber der 6510 zieht seine Stärken aus den Adressierungsmöglichkeiten.
    Dann darf man nicht vergessen, das der CPC nur einen Bildschirmspeicher kennt, welcher für alle Modi gleich ist und sich nur durch die Pixelkodierung unterscheidet. Auch da ist ein direkter Vergleich mit dem C64 schwer, einfach weil der C64 was das Bild angeht, ein anderes Konzept verfolgt.


    Was den Bildschirmspeicher angeht, da kann man den 64er eher mit dem Atari XL vergleichen und (vermutet) den CPC mehr mit dem Spectrum.

  • Kann man mit dem CPC Text pixelgenau positionieren? Dann könnte man ein Pseudosprite aus umdefinierten Zeichen bauen. Beim C16 geht das nur Zeilen und Spaltenweise, was zwar schneller als Shapes wäre, aber dafür sehr mit Hauruck



    Gesendet von meinem CBM 3032 mit gemischten Gefühlen.

  • Kann man mit dem CPC Text pixelgenau positionieren? .

    Jo das geht. http://www.cpcwiki.eu/index.ph…ive_BASIC#TAG_.5B.23st.5D


    Und wenn man die Vergleiche zwischen den Systemen machen möchte, dann darf man auch nicht die Größe vom BASIC-ROM auslassen.
    LocoBASIC hat 16kb. C64 nur 8kb?

  • Poke-Orgien werden beim CBM-Basic 3.5 und 7.0 nicht mehr benötigt. Für Sound und Musik hat Basic 7.0 mehrere Befehle - für Hüllkurven, Soundeinstellungen und Melodiespiel. Der CPC ist dennoch im Vorteil, weil bei Basic 7.0 der Befehl für Melodiespiel (Play) erst nach vollständigem Spiel das Programm weiterlaufen lässt. Hintergrundmusik ist damit nicht realisierbar. Der Soundbefehl dürfte dagegen für Hintergrundgeräusche gehen - der "stößt" den SID nur an, welcher dann selber die Hüllkurve durchläuft.


    Es juckt in den Fingern, ein CPC-Spiel möglichst ohne Pokes in Basic7.0 umzusetzen. Wer gibt seines dafür frei :D



    Nachtrag: pixelgenau geht über Umwege in Basic7.0 - Text mit char in Grafikbereich zeichnen, mit sshape in ein String speichern und dann mit gshape pixelgenau positionieren. Ist zwar leicht umständlic, aber ohne Poke.


    Nachtrag 2: ROM-Größe Basic 7.0 32kb. Ist übrigens auch ein Spriteeditor drin enthalten (sprdef) und in Monitor.

  • Meiner Meinung nach kann man die beiden Systeme überhaupt nicht vergleichen.


    Der CPC 464 kam 2 Jahre nach dem 64'er auf den Markt. Das er daher technisch - abgesehen von Sprites und Sound - auf einem besseren bzw. neuerem Stand ist, ist doch wohl klar.
    Hätten die Entwickler des 64'ers mehr Zeit gehabt, wäre dabei DIE ultimative Maschine rausgekommen, mit noch besseren Sound- und Grafikeigenschaften sowie einem besseren Basic, mehr und größere Sprites usw. Aber hätte, hätte Fahrradkette...


    So haben beide Systeme trotzdem ihre Daseinsberechtigung. Und auch wenn ich auf dem CPC angefangen habe, ist und bleibt der 64'er für mich das interessantere Gerät. Nicht zuletzt, weil damit viele Kindheitserinnerungen verbunden sind.

  • @Eloy_Dorian


    Ja genau, solche per Zeichen definierten Sprite Ansätze gibt es am CPC tatsächlich. Ich checke mal was Sprites Alive genau macht.


    @oobdoo


    ROM Größen sind für mich kein Vergleichshindernis denn man bezahlt ausgleichsweise an anderer Stelle mit fehlendem Adressbereich.


    Der Adressbereich von 64 k könnte dagegen schon ein Kriterium für "gleiche Liga" sein. Dann bleiben C128 und CPC6128 im Rennen, denn trotz mehr RAM bleibt der Adressbereich bei 64 k.


    Unter diesen Umständen darf es auch CBM Basic 7.0 und Loco Basic 1.1 mit Fill in derselben Vergleichs Gruppe sein.


    Nachtrag zu Schleifen: Loco kennt if then else. CBM nur if then.


  • Es juckt in den Fingern, ein CPC-Spiel möglichst ohne Pokes in Basic7.0 umzusetzen. Wer gibt seines dafür frei :D

    http://oobdoo.de/programmieren…an/fruttyman-listing.html :D

  • ich denke man kann schon vergleichen das taten ja die hersteller untereinander auch und ist doch nicht schlimm.


    @Tale-X


    Such dir ein Spiel aus und konvertiere es nach cbm 7.0 Basic


    http://www.cpc-power.com/index.php?page=detail&num=3713


    Edit


    Frutty Man ist auch eine gute Wahl.

  • @trw: vielleicht kommt ja der c128 der ultimativen Maschine recht nahe - wenn man sich mit ihm auseinandersetzt...


    ...
    Nachtrag zu Schleifen: Loco kennt if then else. CBM nur if then.

    MÖÖÖÖP... Basic 7.0 (und sicher auch 3.5) kennt bei Fallunterscheidungen auch if then else.


    oobdoo: genau das wollte ich hören! Möge das Spiel beginnen! :thnks:

  • oobdoo: genau das wollte ich hören! Möge das Spiel beginnen! :thnks:

    Was Du auch (noch) machen kannst, als Steigerung sozusagen, das wäre Projekt: Snider's Maze nach Loco BASIC zu konvertieren.