Hallo Besucher, der Thread wurde 1,6k mal aufgerufen und enthält 6 Antworten

letzter Beitrag von Bytebreaker am

Adressverwaltung in V7 Basic

  • Hallo,


    ich habe aus dem Data Becker Buch "C128 für Einsteiger" von Norbert Szczepanowski Heribert Schmidt das Adressverwaltungsprogramm von Hand abgetippt und verbessert. So kann man u.a. nun auch sortieren, man hat neben der Datensatz-Ausgabe auch eine Listenausgabe. Der Drucken-Menupunkt (Drucken auf Bildschirm oder echtem Drucker) wurde dahingehend erweitert, dass man eine richtige Filtersuche hat, die mit INSTR arbeitet, also es reichen auch Wortfetzen zum Suchen statt ganzer Wörter. Über den Drucken-Menüpunkt kann man nun auch gefilterte Datensätze editieren (mit Return-Taste). Das Editieren war hier im Original nicht möglich, was ärgerlich ist, denn wenn man die Telefonnummer von Hr. - Z -achmann ändern wollte, musste man in einem anderen Menupunkt dafür zig Mal blättern bis der Name erschien. Außerdem waren die drückbaren Tasten nirgends im Programm angezeigt und die Usability schlecht.


    Mir scheint es, als hätte man eine gute Adressverwaltung genommen und die einfach kastriert, damit man bei Data Becker die gescheite Version nachkauft. Der Endteil des Buches ist auch voller Werbung für Data Becker Produkte.


    Das Buch halte ich trotzdem für gut. Es hat Spaß gemacht mit dem C128 zu arbeiten, auch im 80 Zeichen Modus. Was "Anwendungsentwicklung" angeht, will ich zum C64 gar nicht mehr zurück. Das Loco Basic des CPC ist trotzdem besser als das V7 Basic des C128. Dennoch ist der C128 der fähigere und vielseitigere (wenn auch nicht schnellere) Computer. Der C128 ist richtig "erwachsen", irgendwie.

  • Mir scheint es, als hätte man eine gute Adressverwaltung genommen und die einfach kastriert, damit man bei Data Becker die gescheite Version nachkauft.


    Den Eindruck hatte auch bei anderen Data Becker Büchern.


    Das Loco Basic des CPC ist trotzdem besser als das V7 Basic des C128.


    Was fehlt dir denn beim C 128 Basic?

  • @ ogd


    • Die Möglichkeit, Text und Grafik pixelgenau zu platzieren ohne Moduswechsel. Dafür kann aber das C128 Basic nichts, das ist eine Hardware-Limietierung des C128. Immerhin kann man in fixe Char-Zellen im Grafikmodus Text poken
    • Ein Basic-Befehl zum Positionieren des Cursors vor dem Ausführen des Print Befehls (ich weiß dass es wohl per poke geht, aber warum gibt es keinen Basic Befehl dafür? Stattdessen also mit CHR$ Codes gearbeitet)
    • Umständliches IF THEN ELSE (man muss Beginn und Ende des Bedingungsblocks angeben, beim CPC muss man das nicht)
    • Hakeliges Editieren wenn Hochkommas im Spiel sind. Beim CPC gibt es schon copy paste und man verhaspelt sich nicht beim Überschreiben eigener Code Zeilen wenn Anführungsstriche im Spiel sind


    Ansonsten ist das V7 Basic schon gut. Der C128 ist toll, ich mag ihn. Es ist ein C64 drin, er kann CPM, er hat 80 Zeichen Modus. Man kann mit dem C128 von allen Commdore Rechnern am besten "arbeiten" und er hat von allen Commodore Rechnern das beste Basic.

  • Was "Anwendungsentwicklung" angeht, will ich zum C64 gar nicht mehr zurück.

    Naja, das ist verständlich, liegt aber wohl hauptsächlich an der mangelhaften Programmiersprache :) Nimmt man Assembler her ist der C64 durchaus ok, allerdings steigt natürlich der Entwicklungsaufwand deutlich ... da könnte es interessant werden, in C zu programmieren (cc65 *g*).


    Aber klar, für das echte Retro-Feeling sollte es für Anwendungsprogramme das eingebaute BASIC sein. Muss mir irgendwann auch mal noch einen 128er besorgen :)

  • Die Möglichkeit, Text und Grafik pixelgenau zu platzieren ohne Moduswechsel. Dafür kann aber das C128 Basic nichts, das ist eine Hardware-Limietierung des C128.

    Ich bin mir nicht sicher, was Du hier meinst. Dass die CHAR-Anweisung Text auf dem Grafikschirm nicht pixelgenau positionieren kann, liegt sehr wohl am Basic. Man hätte das auch pixelgenau implementieren können, das Zeichnen würde dann aber deutlich länger dauern.

    Ein Basic-Befehl zum Positionieren des Cursors vor dem Ausführen des Print Befehls (ich weiß dass es wohl per poke geht, aber warum gibt es keinen Basic Befehl dafür?

    Gibt es doch: CHAR.

    Umständliches IF THEN ELSE (man muss Beginn und Ende des Bedingungsblocks angeben, beim CPC muss man das nicht)

    Kannst Du bitte mal ein Beispiel angeben? Wenn beide Codeblöcke in eine Zeile passen, sieht der Code meines Wissens in beiden Dialekten genau gleich aus. Und Blöcke über mehrere Zeilen (wofür Basic7 BEGIN/BEND braucht) scheint der CPC überhaupt nicht zu kennen, zumindest hat Google jetzt auf die Schnelle kein Beispiel ausgeworfen.

  • @ 'MacBacon'


    Thema CHAR:


    Mit Hardware-Limitierung meine ich, dass der C128 nur entweder im Grafik- oder im Textmodus sein kann (oder in einer gesplitteten Form) - aber nicht in beidem zugleich im selben "Abschnitt", wie der CPC. Ich kann im Textmodus ein Zeichen nur in Zellen der Videomatrix schreiben und nicht überlappend "zwischen die Zellgrenzen".


    Ich kann natürlich meine Adressverwaltung komplett im Grafik-Modus laufen lassen und alles mit CHAR machen, aber da werd ich doch blöd von, oder nicht (von der Umständlichkeit her - kein unbefangenes Printen mehr möglich - oder irre ich mich da).


    Theoretisch ist ein CHAR Befehl denkbar, der pixelgenau Zeichen plottet, aber das geht doch dann nur im Grafikmodus. Und ich war der Meinung: Grafikmodus und Anwendung am C128 - das beisst sich leider.


    Edit:
    Jetzt erst sehe ich, dass CHAR auch im Textmodus anwendbar ist. Das entspricht dann dem LOCATE x,y in Loco Basic. CHAR scheint nicht anders als PRINT zu sein und sogar im Textmodus anwendbar. Ich nehme meinen Einwand zurück. Innerhalb der Zellen bleiben reicht aus. Der CPC kann Zeichen überall hin plotten, aber Hauptsache man hat ein zellenweises Locate x,y als Basic-Befehl ohne Poke-Hacks.


    Thema IF THEN:


    Du hast Recht. Meine CPC Doku sagt:
    "The IF is terminated by the line end. It is not permissable to have
    further statements that are independent of the IF on the same line."


    Ich war so irritiert über das Begin/End, vielleicht weil ich kürzlich ein wenig Python gelernt habe und jetzt zu hohe Ansprüche stelle, dass ich unterstellt habe, LocoBasic macht das besser - weil ich mich da an kein Begin/End erinnern konnte. Dabei kann der C128 hier etwas besser.

  • Ich hatte einen minderschweren Bug, der in der Version im Anhang gefixt ist.
    Wenn man nach dem Laden einer Adressdatei erst die Listenansicht anzeigt und dann sortiert, wirft das Programm einen Fehler, weil ich die gleichen Zählvariablen fürs Sortieren und Listen benutze und zwischendrin die Zählerstände der Variablen nicht bereinige.


    Edit 14:12
    Der Bug ist erst jetzt richtig gefixt.


    Edit 14:17
    In der Eile steckt der Teufel. Jetzt aber.