Keine Sorge, diese Jugend gibt es noch. Sie ist damals wie heute für die breite Masse im Alltag unsichtbar.
Schnelles Füllen und Löschen mit SYS
-
BIF -
29. September 2016 um 01:55 -
Erledigt
Es gibt 161 Antworten in diesem Thema, welches 22.507 mal aufgerufen wurde. Der letzte Beitrag (
-
-
Wie wandelt man eigentlich Assembler Code in DATAs um?
Man müsste sein PRG in den Speicher laden und dann die Bytes auslesen und dezimal ablegen, kommasepariert, mit "DATA" Einschub alle 40 Werte.Gibt es sowas schon?
Ich verwende gerne das B-Kommando des Maschinesprachemonitors SMON (aus dem 64'er Magazin), siehe auch Bitte melde dich an, um diesen Link zu sehen..
-
Also meiner Meinung nach ist nur ein echter Assembler-Profi, der sein Programm mit dem im C64 eingebauten Maschinensprache Editor eingibt.
Nämlich dem Textbildschirm.
Auch damit kann man Maschinencode editieren.Und bei längeren Programmen kann man ganz normal den Bildschirm umschalten.
Schönen Gruß.
-
Kürzere M-Code Programme kann man übrigens auch in print-bare Strings packen.
Schönen Gruß.
-
Also meiner Meinung nach ist nur ein echter Assembler-Profi, der sein Programm mit dem im C64 eingebauten Maschinensprache Editor eingibt.
Nämlich dem Textbildschirm.Deiner Meinung nach sind deine Codes ja auch fehlerfrei und besonders gut

Um guten Code zu schreiben muss man nicht besonders kryptisch arbeiten können, sondern die Sprache verstehen. Ein komfortabler Editor macht den Programmierer nicht schlechter - er macht ihn produktiver, da er schneller durch seine Codes iterieren kann. -
Produktiver also.
Dann erwarte ich hier mal deinen Code-Beitrag.
Schönen Gruß.
-
Warum sollte ich, Haubitze hat ein mustergültiges Beispiel eingestellt.
Und ich behaupte ja auch nicht von mir tolle, fehlerfreie Codes zu verfassen. -
-
:popkorn:

-
- Offizieller Beitrag
Also meiner Meinung nach ist nur ein echter Assembler-Profi, der sein Programm mit dem im C64 eingebauten Maschinensprache Editor eingibt.
Nämlich dem Textbildschirm.
Auch damit kann man Maschinencode editieren.Und bei längeren Programmen kann man ganz normal den Bildschirm umschalten.
Schönen Gruß.
Du meinst also, den ML Code (und nicht ASM Mnemonics) mit kryptischen Zeichen direkt im Screen eingeben und dann per SYS1024 starten?
Und wenn man also den Bildschirm umschalten will, weil man ein längeres Programm eingeben will, braucht man mindestens noch 1-2 Zeilen fürbiffischekryptische BASIC Anweisungen?
Wir sagen dazu in der Schweiz: Bireweich!
-
Also meiner Meinung nach ist nur ein echter Assembler-Profi, der sein Programm mit dem im C64 eingebauten Maschinensprache Editor eingibt.
Nämlich dem Textbildschirm.
Auch damit kann man Maschinencode editieren.Und bei längeren Programmen kann man ganz normal den Bildschirm umschalten.
Schönen Gruß.
Das stand ja gar nicht zur Debatte, die Meinung war schlichtweg ungefragt. Wer will schon von einem "BASIC-Profi" die Meinung hören, was ein Assembler-Profi zu sein hat. - Achso, die Sarkasmusklammern haben gefehlt ... na, da wird in der Tat ganz mächtig auf die Schenkel geklopft.

-
Also, wie jeder es macht, muß natürlich jeder selbst wissen.
Um mal wieder zu Hauptthema zurückzukehren wurde ja jetzt der Nachweis erbracht, daß das von mir in PostBitte melde dich an, um diesen Link zu sehen. veröffentlichte Programm tatsächlich störungsfrei funktioniert.
Und wenn man´s genau nimmt auch ziemlich schnell.
Also man kann mit dem Ansatz mehr als 100 x schneller sein, als mit einer Poke-Schleife.Schönen Gruß.
-
Durch Tests habe ich herausgefunden, daß man offenbar auch den Schreibbereich verändern kann, indem man andere Zahlenwerte eingibt.
wie z.B.
:sys 45762.043:
Allerdings stehe ich da noch auf dem Schlauch, wie man´s richtig macht.
Bzw. welche Zahl die richtige ist oder ob das dann tatsächlich so funktioniert, wie man´s haben will.Schönen Gruß.
-
Wo bitte funktioniert dein Code störungsfrei?
Wo wurde da ein Nachweis erbracht? (Ein Zitat oder Nummer des Posts hier im Thread in der das so steht, danke.)
Das Gegenteil ist der Fall, jeder hier bestätigt dir dass dein Code einen kapitalen Fehler hat.
Nimm bitte deine Pillen. -
:sys 45762.043:
Wenn ich das in dein Beispiel einfüge, wird die CHRGET-Routine in $82/83 zerschossen.
Respekt.
-
- Offizieller Beitrag
Wenn ich das in dein Beispiel einfüge, wird die CHRGET-Routine in $82/83 zerschossen.
Respekt.Du kannst doch nicht plötzlich mit Fakten kommen!

-
BladeRunner:
Der Nachweis kam u.a. von Mac Bacon, der bestätigt hat, daß die Speicherstellen 2/3 vom Basic nicht benutzt werden.
Und daher gibt es auch keine Störungen.@Hexworks:
Also, das :sys45782.043: ist ein Beispiel, das zeigt, das man den Pointer duch die Nachkommastellen verstellen kann.
Nun bräuchte man nur noch die idealen Nachkommawerte, dann könnte man, sofern möglich, das Bescheiben von 2/3 verhindern.Schönen Gruß.
-
Lieber BIF, die Routine ändert "ungefragt" Speicherstellen, die mit der eigentlichen (von Dir beabsichtigten) Aufgabe nichts zu tun haben (was aber aufgrund der tatsächlichen Aufgabe der Routine nun mal so sein muss). Das ganze passiert unkontrolliert, da Du keinen sogenannten für Einsprünge vorgesehenen Einsprungpunkt benutzt sondern mit SYS mitten "ins Leben" hüpfst. Das Ergebnis ist abhängig von diversen Parametern, die Du nicht verstehst und nicht kontrollieren kannst. Und dann erzählst Du hier im Ernst, die Routine arbeitet "störungsfrei"? Und rufe bitte nicht MacBacon als Leumund an, er hat ja gerade das Gegenteil bewiesen.
Wenn die Routine mal nicht irgendwas zerschießt ist das Zufall. Das ist das absolute Gegenteil von "störungsfrei".
-
Hexworks
Ist das Absicht?
Also, das :sys45782.043: ist ein Beispiel, das zeigt, das man den Pointer duch die Nachkommastellen verstellen kann.
Welchen Pointer?
Jedenfalls kann man durch das Anhängsel nix verstellen, sondern der BASIC-Interpreter kriegt da was in den falschen Hals und kackt leider ab (*). Da kann man jedenfalls nichts sinnvolles draus bauen.
(*) Je nach Anzahl der Stellen hinter dem Punkt, gerät ein entsprechender Wert in $82 (eine Stelle #$3f, zwei Stellen #$40 etc.) und nachfolgend immer eine '8'. Scheint irgendwie mit einem BASIC-Pointer zu tun zu haben.
-
BladeRunner:
Der Nachweis kam u.a. von Mac Bacon, der bestätigt hat, daß die Speicherstellen 2/3 vom Basic nicht benutzt werden.
Und daher gibt es auch keine Störungen.Zitat von Mac BaconEDIT: Bevor sich das $jemand als Erfolg auslegt: Das Überschreiben der Speicherstellen 2 und 3 ist eine Sache; die Verwendung des nur unter Nebenbedingungen entsprechend initialisierten Pointers $5f/$60 ist etwas völlig anderes. Wenn man diese Tatsache ordentlich dokumentiert hätte, ja dann...
In dem Post in dem er darauf verweist dass 2/3 wohl nicht genutzt werden (und selbst da: die werden nur vom ROM nicht genutzt, was den User ja nicht davon abhält eigene Routinen damit zu füttern) verweist Mac Bacon EXPLIZIT darauf dass die Routine einen kapitalen Schaden hat weil der Pointer bei $5f/60 nur beim direkten Aufruf funktioniert, aber nicht wenn Du Variablen nutzt. Dass dabei der Code hochgeht demonstrierst Du ja selbst mit deinem Sys45782.043, was ja alles in die Binsen gehen lässt.
(Edit: Um genau zu sein ist das noch ein weiterer Effekt, der da auftritt. Das Ding ist insgesamt karpott)'Störungsfrei' sieht anders aus. GANZ anders.
Da aber weiter nur sinnfreies Geblubber von Dir kommen wird ziehe ich mich hier aus dem Disput mit Dir zurück und beschränke mich darauf vor deinen Codemonstern zu warnen, damit nicht irgendein unbedarfter Neuling auf deine "Tricks" reinfällt. -