Text Viewer für ProDOS

  • Hallo liebe Apple II Basic Profis!


    Ich hatte vor ca. einem Jahr unter ProDOS Basic einen Text Viewer für sequentielle Textdateien programmiert, der auch im Grude das macht, was er soll. ;) Nur leider hat das Programm ein gravierendes Problem: Sobald eine Zeile einen Doppelpunkt, Komma oder ähnliches enthält, wird der nachfolgende Text der Zeile nicht mehr dargestellt. Der Text wird zeilenweise (Record) eingelesen. Gibt es ggf. ein paar Poke-Befehle oder ähnliches mit denen sich diese Eigenschaft von ProDOS bzw. Applesoft Basic abschalten und auch auch wieder anschalten lässt?


    Nette Grüße

    Andreas

  • Holger das mit dem GET-Befehl habe ich schon in einem alternativen Text Viewer, den ich Fast Viewer genannt habe, umgesezt. Dann ist das Problem tatsächlich nicht vorhanden. Vielleicht liegt's daran, dass jedes Zeichen einzeln eingelesen wird und nicht zeilenweise. Nachteil an meinem "Fast Viewer" ist, dass der tatsächlich langsamer ist als der Text Viewer. Der Bildschirmaufbau dauert viel länger, weil jedes Zeichen einzeln auf den Bildschirm gezeichnet wird. Ein weiterer Nachteil ist, dass ich bislang noch keine Möglichkeit gefunden haben bzw. eingebaut habe, um zu bestimmten Zeilen zu springen. Das ist bereits im Text Viewer umgesetzt.


    Den Source-Code des Text Viewers kann ich gerne zur Verfügung stellen bzw. auch das Programm an sich. Ich bin zur Zeit dabei, den Code zu überarbeiten und möchte noch ein wenig die Formatierungen verbessern. Sobald ich damit durch bin, lade ich das Programm gerne hier hoch.

  • Ich habe mal ein bootfähiges 140 kB Diskettenimage des Text Viewers für ProDOS gebastelt. Das Image enthält die aktuelle Version 1.5, eine Liesmich-Datei sowie den Sourcecode in einer Textdatei. Wer mag kann sich das ja mal anschauen. Wäre echt cool, wenn es einen Pokebefehl gäbe, so dass beim zeilenweise Auslesen einer Textdatei der Doppelpunt und das Komma nicht mehr stört.


    Hier könnt ihr euch den Text Viewer 1.5 herrunterladen: Text_Viewer_1_5.PO.zip

  • NuInput sieht schon sehr vielversprechend aus:


    Zitat

    NuInput offers the following improvements over INPUT:


    accepts comma, colon, and double-quote


    Das würde mein Problem ja schon lösen. Muss ich mich nur mit der Anwndung des Programms vertraut machen. Das dürfte noch die größte Hürde an dem Unternehmen werden, den Text Viewer das mit dem Doppelpunt etc. beizubringen.

  • Wenn man diesem Beispiel hier folgt, dann sollte es eigentlich erstmal ganz einfach sein:


    CALL 250 entspricht einem INPUT ST$. Das Problem wird sein: Wie bastel ich das in eine Schleife? Ich brauche ein INPUT ST$(I). Ich denke, dass sich CALL 250 nicht indizieren lässt.

  • Im Zweifelsfall mit Umkopieren in Dein Array in der Art

    Zitat

    MYST$[i]=ST$

    Mit kommen nur Zweifel, dass das auch für das Auslesen von Textfiles klappt- wenn NuInput die Tastatur direkt abfragt, lässt sich das wohl nicht auf Dateien umlenken. Am besten mal kurz separat testen.

    Denn Feindschaft wird durch Feindschaft nimmermehr gestillt; Versöhnlichkeit schafft Ruh’ – ein Satz, der immer gilt. Man denkt oft nicht daran, sich selbst zurückzuhalten; Wer aber daran denkt, der lässt den Zorn erkalten. Sprüche von Buddha, aus dem ‹Dhammapada›.


    Mein Netz: Acorn | Atari | Milan | Amiga | Apple //e und IIGS | Macintosh | SUN Sparc | NeXT |SGI | IBM RS/6000 | DEC Vaxstation und Decstation| Raspberry Pi | PCs mit OS/2, BeOS, Linux, AROS, Windows, BSD | Stand-alone: Apple //c und III | Commodore 128D | Sinclair QL | Amstrad | PDAs

  • Wie hieß das damals im Labor: "Wenn eine Methode nicht funktioniert, probieren wir einfach eine andere. Die geht dann auch nicht." - darum habe ich mal ein bisschen gesucht und in einem Peeker-Heft etwas gefunden zum Abtippen. Ob das mit Textdateien geht, habe ich aber noch nicht getestet.


    Sorry für die schlechte Qualität- ist ein schnelles Handyfoto.

    Bilder

    Denn Feindschaft wird durch Feindschaft nimmermehr gestillt; Versöhnlichkeit schafft Ruh’ – ein Satz, der immer gilt. Man denkt oft nicht daran, sich selbst zurückzuhalten; Wer aber daran denkt, der lässt den Zorn erkalten. Sprüche von Buddha, aus dem ‹Dhammapada›.


    Mein Netz: Acorn | Atari | Milan | Amiga | Apple //e und IIGS | Macintosh | SUN Sparc | NeXT |SGI | IBM RS/6000 | DEC Vaxstation und Decstation| Raspberry Pi | PCs mit OS/2, BeOS, Linux, AROS, Windows, BSD | Stand-alone: Apple //c und III | Commodore 128D | Sinclair QL | Amstrad | PDAs

  • Wie hieß das damals im Labor: "Wenn eine Methode nicht funktioniert, probieren wir einfach eine andere. Die geht dann auch nicht." - darum habe ich mal ein bisschen gesucht und in einem Peeker-Heft etwas gefunden zum Abtippen. Ob das mit Textdateien geht, habe ich aber noch nicht getestet.


    Sorry für die schlechte Qualität- ist ein schnelles Handyfoto.

    Die Qualität passt schon. Es ist lesbar. :) Ich kann nur rein gar nicht Assembler. :( Hab mal auf jeden Fall vielen Dank, dass Du Dir die Mühe gemacht hast und etwas entsprechendes gefunden hast. 8-)


    Wie kann ich eine Texdatei denn mit BLOAD in den Speicher lesen? Sorry ... außer ein wenig Basic kann ich nichts. :oops:

    Ich mache mal mit NUINPUT rum und schaue was dabei rauskommt. Wenn's mit der Schwangerschaft nicht klappt, dann muss ich mal weiter gucken. 8o

  • Die Qualität passt schon. Es ist lesbar. :) Ich kann nur rein gar nicht Assembler. :(

    Musst Du ja auch nicht. Die DATA Zeilen enthalten ja den Hexdump des Programms, das Assemblerlisting erläutert dann nur, was das Programm macht. Wenn Du das Stückchen BASIC an den Anfang Deines Programms stellst, ist schon alles getan.

    Denn Feindschaft wird durch Feindschaft nimmermehr gestillt; Versöhnlichkeit schafft Ruh’ – ein Satz, der immer gilt. Man denkt oft nicht daran, sich selbst zurückzuhalten; Wer aber daran denkt, der lässt den Zorn erkalten. Sprüche von Buddha, aus dem ‹Dhammapada›.


    Mein Netz: Acorn | Atari | Milan | Amiga | Apple //e und IIGS | Macintosh | SUN Sparc | NeXT |SGI | IBM RS/6000 | DEC Vaxstation und Decstation| Raspberry Pi | PCs mit OS/2, BeOS, Linux, AROS, Windows, BSD | Stand-alone: Apple //c und III | Commodore 128D | Sinclair QL | Amstrad | PDAs

  • Die Qualität passt schon. Es ist lesbar. :) Ich kann nur rein gar nicht Assembler. :(

    Musst Du ja auch nicht. Die DATA Zeilen enthalten ja den Hexdump des Programms, das Assemblerlisting erläutert dann nur, was das Programm macht. Wenn Du das Stückchen BASIC an den Anfang Deines Programms stellst, ist schon alles getan.

    Du meinst das Basicprogramm hier:



    Ich versuche das nochmal umzusetzen. Mit NUINPUT hattest Du leider richtig vermutet. Das klappt nicht mit Textdateien. Wenn INALL auch nicht hinhaut, dann probiere ich @Holgers Methode aus und lade die Textdatei mit BLOAD. Habe ich Dein Programm richtig verstanden?

    10 PRINT CHR$(4);"BLOAD TEXT.FILE,TTXT,A$6000" --> Läd die Textdatei TEXT.FILE, was macht A$6000?

    20 REM Darstellen der geladenen Textdatei

    30 TS = 24576 --> Wozu ist TS gut und der Wert 24576? Die entsprechende Speicheradresse an der sich der Anfang der Textdatei befindet? Deswegen T(extdatei)S(tart)? :)

    40 L = <Länge der Datei, die Du rausgefunden hattest> --> Du meinst die Gesamtanzhal der Zeichen einer Textdatei?

    50 FOR A = TS TO TS + L: PRINT CHR$( PEEK( A ) );: NEXT --> Auslesen der einzelnen Zeichen der Textdatei von Dateianfang bis Ende.

  • yalsi Du bist ein Schatz!!! :love:<3:hahn::juchee:


    ALLIN.DATA funktioniert auch mit Textdateien!!! Es werden alle Zeichen ausgelesen und dargestellt!!!


    :hüpf:


    Ich werde den Text Viewer morgen mal anpassen und gucken ob der dann so läuft wie er laufen sollte. Wenn das der Fall ist, poste ich hier nochmal eine aktualisierte Version.


    Holger mit dem direkten Laden einer Textdatei in den Speicher werde ich auch nochmal ein paar Versuche machen. Vielleicht kann ich in meinem alternativen Text Viewer (Fast Viewer) die Methode nutzen, um den etwas zu beschleunigen.


    Habt auf jeden Fall vielen Dank für euere Hilfe. Ohne euch wäre das Programm so geblieben wie es war.

  • Du bist ein Schatz!!! :love:<3:hahn::juchee:


    ALLIN.DATA funktioniert auch mit Textdateien!!! Es werden alle Zeichen ausgelesen und dargestellt!!!

    Na, das freut mich! Es gibt in einer späteren Ausgabe des Peeker dann noch eine erweiterte Fassung mit diversen Features. Die soll auch auf einer Begleitdiskette sein; das suche ich die Tage noch 'raus. Kann aber sein, dass die dann nicht mehr mit Textfiles läuft.

    Denn Feindschaft wird durch Feindschaft nimmermehr gestillt; Versöhnlichkeit schafft Ruh’ – ein Satz, der immer gilt. Man denkt oft nicht daran, sich selbst zurückzuhalten; Wer aber daran denkt, der lässt den Zorn erkalten. Sprüche von Buddha, aus dem ‹Dhammapada›.


    Mein Netz: Acorn | Atari | Milan | Amiga | Apple //e und IIGS | Macintosh | SUN Sparc | NeXT |SGI | IBM RS/6000 | DEC Vaxstation und Decstation| Raspberry Pi | PCs mit OS/2, BeOS, Linux, AROS, Windows, BSD | Stand-alone: Apple //c und III | Commodore 128D | Sinclair QL | Amstrad | PDAs

  • Du bist ein Schatz!!! :love:<3:hahn::juchee:


    ALLIN.DATA funktioniert auch mit Textdateien!!! Es werden alle Zeichen ausgelesen und dargestellt!!!

    Na, das freut mich! Es gibt in einer späteren Ausgabe des Peeker dann noch eine erweiterte Fassung mit diversen Features. Die soll auch auf einer Begleitdiskette sein; das suche ich die Tage noch 'raus. Kann aber sein, dass die dann nicht mehr mit Textfiles läuft.

    Passt schon alles. Ich denke, ich kann erstmal das damit umsetzen, was ich möchte. Damit wäre dann die größte Baustelle des Programms abgearbeitet. Es gibt noch ein oder zwei andere Dinge, die mich an dem Programm stören, aber das kommt dann irgendwann mal.

  • Ich habe den Text Viewer nochmal überarbeitet und INALL.DATA in denselben integriert. Jetzt ist das Programm tatsächlich ganz gut benutzbar und macht das, was ich ursprünglich im Sinn hatte. Ich habe nochmal ein bootfähiges 140 kB Diskettenimage des aktuellen Text Viewers für ProDOS gebastelt. Das Image enthält die Version 1.6, die dazugehörige Liesmich-Datei sowie den Sourcecode der Version 1.6 in einer Textdatei. Wer mag kann sich das Programm gerne runterladen und nutzen.


    Der Text Viewer ist zwar für sequentielle Textdateien gedacht, aber random Access Textdateien sollten vom Text Viewer auch zuverlässig angezeigt werden. Ein Problem ist noch, dass, wenn ein Eintrag einen String enthält, der mehr als 80 Zeichen hat, es leider zu Fehlern in der Anzeigemaske kommt. Mal sehen ob ich das nochmal angehe. Ich hoffe, dass das nicht so oft in Textdateien vorkommt.


    Hier könnt ihr euch den Text Viewer 1.6 herrunterladen: Text_Viewer_1_6.PO.zip