TSB Info

There are 2,432 replies in this Thread which has previously been viewed 343,533 times. The latest Post (January 2, 2026 at 4:51 PM) was by GoDot.

  • Mit dem kannst du weitere Befehle (auf die gleiche Weise wie MAP) einbinden, so Ideen wie X!READ oder X!LIST oder wie auch immer.

    Äh. Herr Lehrer? :emojiSmiley-137:

    In Ihrem Beispiel zu Map kommt doch der X! Befehl gar nicht vor. Was also macht der?

  • Was also macht der?

    Nichts. (Nur die bekannte Fehlermeldung.)

    Er könnte aber...

    Arndt

    GoDot C64 Image Processing
    Please login to see this link. - Please login to see this link. - Please login to see this link.
    Please login to see this link. - Please login to see this link. - Please login to see this link.

  • Siehst du! :bgdev

    Arndt

    GoDot C64 Image Processing
    Please login to see this link. - Please login to see this link. - Please login to see this link.
    Please login to see this link. - Please login to see this link. - Please login to see this link.

  • Update auf TSBneo 2.31.113!

    Das ganz große Update! Nichts ist mehr, wie es vorher war!

    (Es sei denn, du hast nie POKE-Tricks angewandt, dann merkst du gar nichts.)

    Wer auf die Please login to see this link. geht, merkt den Unterschied an den angezeigten Patch-Adressen. Die Vor-Neo-Werte kriegst du, wenn du mit deinem Mauszeiger auf den Wert fährst und dort stehenbleibst. Die Please login to see this link. hab ich vorsichtshalber doppelt, einmal für Neo und einmal für wie's vorher war (oben links anwählen). Auch die Please login to see this link. sind vorläufig noch doppelt, einmal Neo, einmal Vorher-TSB. Tools, die ein aktuelles System verlangen (BLinker und Dirselect) sind auf Neo-Stand gebracht worden.

    Neu für Programmierer: Die IF..THEN DO..ELSE..DONE-Konstrukte sind jetzt verschachtelbar, auch dann, wenn die Verschachtelung "abseits" in Prozeduren erfolgt. Natürlich muss dafür die Syntax eingehalten werden (was man anfängt, muss auch abgeschlossen werden, bevor man fortfährt).

    Die Quellcodes sind auf Github unter dem Ordner "TSB/TSBneo" zu finden, jetzt in einem Stück (10471 Codezeilen).

    Ich hoffe, ich hab nichts vergessen. (Die Doku zum X!-Befehl kommt noch.)

    Arndt

    GoDot C64 Image Processing
    Please login to see this link. - Please login to see this link. - Please login to see this link.
    Please login to see this link. - Please login to see this link. - Please login to see this link.

  • Das ganz große Update! Nichts ist mehr, wie es vorher war!

    Vielen Dank für die Mühe, die du dir damit gemacht hast. Ich finde die Anpassungen auf der Website sehr gut gelungen.

    Neu für Programmierer: Die IF..THEN DO..ELSE..DONE-Konstrukte sind jetzt verschachtelbar

    Das ist brillant. Ein langersehnter Traum in der Programmierwelt ist endlich wahr geworden.

    Der TSB-Fanclub ist außer sich vor Freude.

    Please login to see this attachment.

  • Darf ich mal ein bisschen Haarspalterei betreiben? Wenn ich die TSBneo -Disk im Emulator einlege, dann wird der Inhalt der Diskette stets in Großbuchstaben angezeigt. Und der Titel der TSBneo-Diskette ist dann leider nicht richtig lesbar. Man weiß also nicht, ob es sich um "TSB neo" oder um "GUT neo" oder um "AHA neo" handelt. Es sei denn man hat den Studiengang "Bachelor of PETSCII Arts" mit erfolgreichem Abschluss besucht.

    Please login to see this attachment.

  • Und der Titel der TSBneo-Diskette ist dann leider nicht richtig lesbar. Man weiß also nicht, ob es sich um "TSB neo" oder um "GUT neo" oder um "AHA neo" handelt.

    Im Directory wird doch TSB angezeigt ... :search:

    Wer schreit, denkt nicht !

    Please login to see this link.

  • Wenn ich die TSBneo -Disk im Emulator einlege, dann wird der Inhalt der Diskette stets in Großbuchstaben angezeigt.

    Ah, danke! Das hab ich übersehen! Wird korrigiert. (Ist ein DirMaster-Fehler, die haben es - nach wie vielen Jahren? - immer noch nicht geregelt gekriegt, im Directory PETSCII statt ASCII einzusetzen! :X )

    Arndt

    GoDot C64 Image Processing
    Please login to see this link. - Please login to see this link. - Please login to see this link.
    Please login to see this link. - Please login to see this link. - Please login to see this link.

  • Mal etwas ganz anderes: Wenn man in einem TSB-Programm Sprungmarken einsetzen möchte, dann macht man das genauso, als wenn man eine Prozedur einleiten würde. Also mit dem PROC-Befehl. Das finde ich stets irritierend. Man kann beim Durchsehen der Programmzeilen nicht auf den ersten Blick unterscheiden, ob es sich um ein Sprungmarke oder den Anfang einer Prozedur handelt.

    Wäre es irgendwie möglich, dass man in TSB die Sprungmarken eindeutig von den Prozedurköpfen unterscheidet? Man würde dann nicht den PROC-Befehl zum Definieren einer Sprungmarke verwenden, sondern etwas anderes.

    Bei VB verwendet man den Doppelpunkt am Ende einer Zeile, um eine Sprungmarke zu definieren. Wohingegen Prozeduren mit "Sub" und "End Sub" definiert werden.

    Wäre der Luxus, Prozedurköpfe und Sprungmarken unterscheiden zu können, auch in TSB denkbar?

    Please login to see this attachment.

  • Wäre der Luxus, Prozedurköpfe und Sprungmarken unterscheiden zu können, auch in TSB denkbar?

    Das hatte ich sogar schon mal mit petrus diskutiert. Ich hatte da an ein Schlüsselwort LABEL gedacht. Leider würde dadurch ein Rattenschwanz an Folgeerscheinungen im Code entstehen (Unterscheidung zwischen PROC und LABEL in den Suchroutinen usw.), und da der Platz dafür niemals reichen würde, habe ich das Projekt als undurchführbar abgehakt. Übrigens rührt von dieser Diskussion die Einführung der Schlüsselwörter CLS, MAP und X! her.

    Arndt

    GoDot C64 Image Processing
    Please login to see this link. - Please login to see this link. - Please login to see this link.
    Please login to see this link. - Please login to see this link. - Please login to see this link.

  • ...und da der Platz dafür niemals reichen würde, habe ich das Projekt als undurchführbar abgehakt.

    Okay. Dann werde ich mich damit begnügen müssen, dass ich ich den "Prozedurnamen" für Sprungmarken ein SPR oder ein ähnliches Präfix voranstelle. Damit man sie von den Prozedurköpfen unterscheiden kann.

  • Wäre der Luxus, Prozedurköpfe und Sprungmarken unterscheiden zu können, auch in TSB denkbar?

    Das hatte ich sogar schon mal mit petrus diskutiert. Ich hatte da an ein Schlüsselwort LABEL gedacht. Leider würde dadurch ein Rattenschwanz an Folgeerscheinungen im Code entstehen (Unterscheidung zwischen PROC und LABEL in den Suchroutinen usw.), und da der Platz dafür niemals reichen würde, habe ich das Projekt als undurchführbar abgehakt. Übrigens rührt von dieser Diskussion die Einführung der Schlüsselwörter CLS, MAP und X! her.

    Arndt

    Würde denn der Platz für ein zusätzliches Token (z.B. "LABEL") ausreichen? Wenn das exakt das Gleiche wie PROC macht, also nur ein Alias dafür ist, ohne weiteren Code zu beanspruchen, dann könnte man LABEL sprungmarke statt PROC sprungmarke schreiben.

    Intern würde das als PROC sprungmarke verarbeitet werden (also keinen neuen Code erfordern), aber im Listing würde man LABEL sprungmarke sehen, was optisch den Unterschied ausmacht, den Omega angesprochen hat.

  • Okay. Dann werde ich mich damit begnügen müssen, dass ich ich den "Prozedurnamen" für Sprungmarken ein SPR oder ein ähnliches Präfix voranstelle. Damit man sie von den Prozedurköpfen unterscheiden kann.

    Gute Idee!

    Intern würde das als PROC sprungmarke verarbeitet werden (also keinen neuen Code erfordern), aber im Listing würde man LABEL sprungmarke sehen, was optisch den Unterschied ausmacht, den Omega angesprochen hat.

    Du brauchst zur Unterscheidung aber ein neues Token, sonst wüssten weder der Tokenizer noch der Detokenizer etwas mit LABEL anzufangen. Um dieses „kleine“ Detail geht es. :(


    Arndt

    GoDot C64 Image Processing
    Please login to see this link. - Please login to see this link. - Please login to see this link.
    Please login to see this link. - Please login to see this link. - Please login to see this link.

  • Ich finde die Idee von Snoopy gut. Wäre es denn so aufwändig, ein neues Token namens LABEL einzuführen? Damit könnte man den Programmcode durchaus besser lesbar machen. Auch wenn PROC und LABEL eigentlich das gleiche wäre.

    :dafuer::abgelehnt:dafuer::dafuer::dafuer:

    (Die große Jury: Vier sind dafür, einer dagegen.)

  • Ich finde die Idee von Snoopy gut. Wäre es denn so aufwändig, ein neues Token namens LABEL einzuführen?

    Nein, das ist ja bereits vorhanden ("X!" umbenennen). Das Problem ist der Rattenschwanz hinten dran (Erkennung im laufenden Programm, Differenzierung bei den Suchroutinen: PROC, CALL und EXEC werden von Suchroutinen "bedient", die dann wissen müssten, dass es dieses neue Token gibt und was es damit auf sich hat. LABEL dürfte nur bei CALL reagieren, nicht aber bei EXEC, das müsste zusätzlich auch noch mit als Fehlermöglichkeit einprogrammiert werden, mitsamt Fehlermeldungstext.)

    Arndt

    GoDot C64 Image Processing
    Please login to see this link. - Please login to see this link. - Please login to see this link.
    Please login to see this link. - Please login to see this link. - Please login to see this link.

  • Ich finde die Idee von Snoopy gut. Wäre es denn so aufwändig, ein neues Token namens LABEL einzuführen?

    Nein, das ist ja bereits vorhanden ("X!" umbenennen). Das Problem ist der Rattenschwanz hinten dran (Erkennung im laufenden Programm, Differenzierung bei den Suchroutinen: PROC, CALL und EXEC werden von Suchroutinen "bedient", die dann wissen müssten, dass es dieses neue Token gibt und was es damit auf sich hat. LABEL dürfte nur bei CALL reagieren, nicht aber bei EXEC, das müsste zusätzlich auch noch mit als Fehlermöglichkeit einprogrammiert werden, mitsamt Fehlermeldungstext.)

    Ich schreibe mal meine Gedanken dazu:

    CALL muss dann nur noch nach dem LABEL-Token suchen und nicht mehr nach PROC, da müsste eigentlich nur der Tokenwert, nach dem gesucht wird, ausgetauscht werden.

    Und EXEC und PROC können LABEL komplett ignorieren, weil sie mit LABEL nichts zu tun haben, da müsste man meiner Ansicht nach nichts ändern.

  • Ich habe mir mal den Quellcode und auch die Einträge im C64-Wiki zu TSB angeschaut. Wenn ich ehrlich bin, ist mit der Unterschied zwischen CALL und EXEC nicht ganz klar. Machen die Befehle nicht das Gleiche? :gruebel