Listschutz

Es gibt 41 Antworten in diesem Thema, welches 7.479 mal aufgerufen wurde. Der letzte Beitrag (29. Juli 2011 um 08:30) ist von Paradroid.

  • Hallo zusammen,

    schon mal vorab sorry, falls es zu dieser Frage bereits einen Thread gibt - über die Suchfunktion habe ich jedoch nichts dergleichen finden können.

    Meine Frage: Mit welcher Befehlszeile kann ich in einem Basic-Programm einen Listschutz einbauen, so dass man das laufende Programm nicht mehr mit der Run/Stop-Taste unterbrechen und auflisten kann? Gibt es da mehrere Möglichkeiten? Bräuchte was möglich banales, da ich (noch) Anfänger, bzw. Wiedereinsteiger bin.

    Danke im Voraus für alle Antworten!

  • Moin,
    Guckst Du hier: Bitte melde dich an, um diesen Link zu sehen.

    Gruß

    Wenn einer, der mit Mühe kaum, geklettert ist auf einen Baum, schon meint, daß er ein Vogel wär, so irrt sich der.

    Wilhelm Busch

  • Ein sehr guter Listschutz, der für nicht Monitoruser sehr schwer auszuhebeln ist geht folgendermassen:

    Schreib Deine Programmzeile, danach einen Doppelpunkt und REM gefolgt von zwei Anführungszeichen. Lösche das zweite Anführungszeichen wieder per INST/DEL und drück danach INST/DEL mit Shift sooft, wieviele Zeichen Deine Programmzeile hat. Danach genausooft INST/DEL ohne shift drücken (Es entstehen inverse T). Danach ist beim Listen nur noch die Zeilennummer zu sehen. Du kannst auch hinter die Ts Fakebefehle schreiben, kommt noch besser ;)

    Edit : Ein einfacher Listschutz ist auch folgendermassen zu machen: Schliesse einfach jede Zeile mit REM(Shift+L) ab. Nach diesem Befehl bricht der List Befehl mit Syntax Error ab

  • Noch einfacher: Lass es einfach. Es gibt wohl nichts, was es in Basic noch Wert wäre, per Listschutz zu verstecken.
    Du ärgerst dich nur, wenn du selber nicht mehr rankommst.
    Und mit sehr geringem Aufwand kann man sowieso wieder alles sichtbar machen.

    Was anderes ist es, dass man nicht will, dass das Programm bei Run-Stop anhält.
    Da kann der schon erwähnte POKE hilfreich sein. Ab am besten auch erst, wenn das Programm fertig ist.
    Ansonsten kann es passieren, dass das Programm wärend der Entwicklung nicht mehr zu beenden ist und du es nicht mehr speichern kannst.

  • Bitte melde dich an, um diesen Link zu sehen.

    Hier scheint es ein Beispiel zu geben.

    Aber ich möchte auch lieber, daß Du guten BASIC-CODE allein zugänglich machst.


    Mich nervt beispielsweise auch, daß die Coder nur ihr Zeugs veröffentlichen, wenn sie zeigen wollen, wie genial sie sind.
    Und damit viel Code immer wieder neu und schlechter auch geschrieben wird!

  • Mich nervt beispielsweise auch, daß die Coder nur ihr Zeugs veröffentlichen, wenn sie zeigen wollen, wie genial sie sind.

    ???

    Bitte melde dich an, um diesen Link zu sehen.

    Bitte melde dich an, um diesen Link zu sehen.
    Bitte melde dich an, um diesen Link zu sehen.
    Bitte melde dich an, um diesen Link zu sehen.

  • Kompilieren macht das Listing auch unmöglich und hat dazu noch Vorteile vor allem in Bezug auf Performance/Speed. Wenn Du es möglichst narrensicher/anfängerfreundlich haben willst, empfehle ich Dir Skyle's Blitz, generiert Dir automatisch eine Sys-Zeile.

    Ansonsten ja hochinteressant, wie laut her nach Basic-Source gerufen wird. Dabei gibt es sooo viel!

  • Ich denke die Sorge, dass jemand BASIC code rippt und klaut ist ohnehin denkbar unbegruendet.
    Wuesste nicht, wann das mal passiert sein sollte.

    Bitte melde dich an, um diesen Link zu sehen.
    Bitte melde dich an, um diesen Link zu sehen.
    Bitte melde dich an, um diesen Link zu sehen.

  • Kompilieren wird wohl das beste sein, s. TheRyk's Antwort. Ansonsten kannst du auch POKE 808,234 nehmen - blockiert RUNSTOP/RESTORE. Und dann packst du das Programm einfach. Wer allerdings wirklich in's Listing will, na ja.. Der hält während des Entpackens einfach RUNSTOP gedrückt und ist drin. Mag zwar Packer geben, die dagegen "immun" sind, aber die meisten sind's nicht, glaub ich..

    Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen.

  • Beim Compelieren von BASIC können Fehler auftreten. Ist leider so.

    Um die zu minimieren müssen Beispiels Warteschleifen wie FOR I=1 to 1000 usw. umgeändert werden.

    Oder wenn Du absichtlich unoptimiert programmierst juckt das die meisten Compiler nicht.

    Besser Du bleibst in Basic und freust Dich, wenn jemand Deinen Code klaut.

  • Ich kenn eigentlich nur zwei Gründe, Basic zu verstecken:

    A) Ein Textadventure, das nicht schon beim Abtippen gelöst werden soll

    B) Der Code ist so sch**ße, dass man ihn verstecken möchte...

    ;)

  • Ich denke die Sorge, dass jemand BASIC code rippt und klaut ist ohnehin denkbar unbegruendet.
    Wuesste nicht, wann das mal passiert sein sollte.


    Ich bin mir sicher dass damals [tm] zB die ganzen Sortieralgorithmen in Basic gerne übernommen wurden. Ich da rede ich nicht nur von mir. Warum sollte man etwas nicht klauen nur weil es in Basic ist? Oder klaut man nur Assembler. Das zB hab ich noch nie geklaut.

  • Oder klaut man nur Assembler. Das zB hab ich noch nie geklaut.


    Das machen ja auch nur 'Scener' :D Bitte melde dich an, um dieses Bild zu sehen.

  • Also Fehler beim Kompilieren treten eigentlich nur dann auf, wenn man zu wenig über den Compiler weiß. Beim Boss gibt es einen Batzen Sachen zu beachten, z.B. müssen Sachen wie DIM oder DEF am Anfang des Listings stehen, packt man sowas ans Ende, kommt der Boss damit nicht klar, trotz GOTO/GOSUB Sprüngen. Gegen so etwas kann man sich durch Studium des Handbuchs aber wappnen.

    Gesucht war ja nach einfachen Lösungen, deshalb schlug ich Skyle's Blitz vor. Der meckert wenig beim Kompilieren und generiert neue Pseudo-Zeilennummern, so dass man bei Fehlern im Kompilat zumindest noch einen Anhaltspunkt hat, wo es im Basic-Source noch hapert.

    Ein paar Vor- und Nachteile von verschiedenen Compilern kann man mittlerweile im Wiki aufgelistet finden.
    Bitte melde dich an, um diesen Link zu sehen.

    Geplauder aus meinem Nähkästchen: Sooooo einfach zurück kompilieren lässt sich Basic-Code übrigens auch wieder nicht, wie es hier teilweise gesagt wird. Disassembeln von Assembler-Compilaten (was ich auch nicht gut kann) stelle ich mir leichter vor. In erster Linie kompiliere ich persönlich aus Performance- und Assembler-Verbindungs-Gründen, weniger weil mir mein Gepfusche so peinlich ist, obwohl ich immer noch fast alles, was ich mache, in erster Linie als Coding-Übung begreife und manchmal wie im jüngsten Fall "Murder" vor allem Erfahrung sammle, wie man es besser überhaupt nicht machen sollte, Stichwort Garbage Collection. Die "String-Säge" aus dem Basic-Hauptteil von Pirates! fand ich genau so lange genial, bis ich gemerkt habe, dass man auf Strings besser ganz verzichten und den Kram lieber irgendwo hin poken sollte. Auch bei Pirates! schlägt die GC gnadenlos zu, fällt bloß nicht so doll auf bei einem Game, das ohnehin ständig nachlädt, wie Colt Seavers neulich treffend bemerkte.

  • Also beim Austro-Compiler weiß ich aus eigener Erfahrung, dass man aus dem Compilat sehr leicht wieder den Quellcode holen kann. Was genau da intern passiert, keine Ahnung. Aber es gibt einen extra decompiler fürn Austro und wenn man mal von anderer Nummerierung absieht, kriegt man dasselbe raus, was man vorher rein gesteckt hat. Frag mich sowieso immer noch, was der Compiler alles mit da rein fuhrwerkt, so groß wie ein lumpiges "Hello World" ist (immerhin 19 Blocks!). Der packt da wohl den halben Kernel-Code mit rein, oder was?

    12345678901234567890123456789012345678901234567890
    12345678901234567890123456789012345678901234567890
    12345678901234567890123456789012345678901234567890

  • Basci compilate fuer die es KEINEN decompiler gibt sind in der Tat nerviger zu lesen als assemblierter code.
    Da gebe ich TheRyk absolut recht :wink:
    Die frage "wozu?" bleibt.
    Und auch wenn Leute Algorithmen 'klauen' (naja, man hat sie danach ja noch :wink: Was man von einem geklauten Geldbeutel eher weniger behaupten kann), wenn das lesbar in BASIC war, dann war's auch nix wert :wink:
    Gilt fuer ASM-routinen oft auch...
    Wer auf normales BASIC wenig wert legt und eh compilieren will und sich nicht um RAM schert etc. DEM sei dann auch ein C-Compiler ans Herz gelegt...

    Bitte melde dich an, um diesen Link zu sehen.
    Bitte melde dich an, um diesen Link zu sehen.
    Bitte melde dich an, um diesen Link zu sehen.