Zum Eintragen hier klicken.
Name | Kommentar |
![]() ![]() |
erstellt am 22. Dezember 2020 um 17:49 Uhr MEZ ![]() ![]() ![]() Hallo, ich hätte da eine Frage: !for i = 3 to 0 step -1 !for j = 0 to 39 step 1 !byte (i * 40) + j !end !end Wenn ich mir das so angucke, würde ich sagen, dass das 4 * 40 Bytes sein müssten. Tatsächlich sind es aber nur 43 und absurderweise verbrauchen die Lines mit !end jeweils 3 Bytes. Da ist irgendwas schiefgegangen ... oder ist das so richtig? Kommentar von Endurion: Da ist leider die Anzeige mit den Bytes pro Zeile nicht korrekt. Nehme ich direkt als Bug auf, danke! Wenn du auf die Adressen der beiden !ends guckst, werden dann insgesamt doch die erwarteten 160 Bytes erzeugt. Mit dem Aufaddieren der Bytes einer Zeile, die mehrfach verwendet wird, habe ich offenbar doch noch Probleme ![]() |
![]() ![]() |
erstellt am 20. Dezember 2020 um 18:26 Uhr MEZ ![]() ![]() ![]() Hallo, ein kleines Problem hätte ich dann doch noch: ![]() Da steht "[...] 607 bytes [...] 161 bytes [...]" - zweimal Bytes! Dabei meinen die Ersten die Zeichen und die zweiten die Bytes beim assembleten Programm. Es wäre praktisch, wenn du die ersten Bytes durch "characters" oder so ersetzen könntest, ich war gerade sehr schockiert, dass mein Programm 600 und nicht 200 Bytes brauch. Gruß Julian Kommentar von Endurion: Danke für den Tipp, wird direkt umgesetzt ![]() |
![]() |
erstellt am 17. Dezember 2020 um 11:02 Uhr MEZ ![]() ![]() ![]() Hi Georg, I have come across a NEW C64 MUSIC TRACKER named: DEFLEMASK, which is great but INTI AND PLAY ADDRESS of the .SID files: Load range: $1006-$6951 Init address: $1103 Play address: $1006 IS Different to HVSC FILES, which typically : Load range: $1000-$1C4E Init address: $1000 Play address: $1003 i am having trouble in C64 STUDIO, the code compiles good but the music program conflicts with my .asm code making garbled sprites and music does not play properly. HOW do i relocate the INIT AND PLAY ADDRESS of the files so that they conflict with other code in c64 studio? thnks Syed Kommentar von Endurion: Hi Syed, Relocating code is not trivial. There are a whole bunch of tools helping with that, the keyword being "relocator". I have never attempted to do so myself, but you can try a few: https://csdb.dk/search/?seinsel=all&search=relocator&Go.x=0&Go.y=0 |
![]() ![]() |
erstellt am 12. Dezember 2020 um 2:26 Uhr MEZ ![]() ![]() ![]() Hi Georg, a Desktop ICON, C64 STUDIO, does not want to load. I need to get into the directory where the .exe file is located in order for it to load. please help! thnks Syed System.IO.FileNotFoundException: Could not load file or assembly 'WeifenLuo.WinFormsUI.Docking, Version=3.0.4.0, Culture=neutral, PublicKeyToken=5cded1a1a0a7b481' or one of its dependencies. The system cannot find the file specified. File name: 'WeifenLuo.WinFormsUI.Docking, Version=3.0.4.0, Culture=neutral, PublicKeyToken=5cded1a1a0a7b481' at C64Studio.MainForm..ctor(String[] args) at C64Studio.Program.Main(String[] args) WRN: Assembly binding logging is turned OFF. To enable assembly bind failure logging, set the registry value [HKLMSoftwareMicrosoftFusion!EnableLog] (DWORD) to 1. Note: There is some performance penalty associated with assembly bind failure logging. To turn this feature off, remove the registry value [HKLMSoftwareMicrosoftFusion!EnableLog]. Kommentar von Endurion: Thanks for the info, looks like I forgot to copy the new DockPanel dll in the release folder. Sorry! New archive is uploaded! |
![]() |
erstellt am 28. November 2020 um 15:52 Uhr MEZ ![]() ![]() ![]() Ich hoffe wirklich, ich nerve nicht, hier wäre nämlich nochmal eine Anregung: Es wäre sehr praktisch, könnte man einfach den Cursor an das Ende einer Zeile setzen und dann unten neben der Zeile und Spalte den OP-Code der Zeile ablesen. Momentan muss ich ständig bei https://www.retro-programming.de/programming/nachschlagewerk/mnemonics/# mit Strg+F nachgucken, wenn ich für selbstmodifizierenden Code einen OP-Code nachgucken muss, wenn ich gerade ADC mit X indiziert habe, dann dauert das auch einen Moment. Außerdem weiß ich nicht, ob sowas in der Art nicht schon standardmäßig existiert, aber wäre es nicht unheimlich praktisch, könnte man z.B. LDA [ADC (),Y] oder LDA #[ADC (),Y] schreiben und könnte damit den in eckigen Klammern schemenhaft angegebenen OP-Code in den Akku laden? Das würde nicht nur Zeit sparen, sondern wäre auch ohne Kommentare lesbarer. Kommentar von Endurion: Bei dem Debugger-Problem bin ich schon dran, aber ich hab's noch nicht ganz eingekreist. Scheint auf jeden Fall eine Art Racing-Condition zu sein. Wenn ich Debug-Logs aktiviere, verändert sich das Verhalten. ![]() Als Nachschlagewerk ist übrigens das AAY64 eingebaut, in der Hilfe-Seite ganz unten. Da sind auch alle Mnemonics drin aufgelistet. Noch nicht ganz, was du möchtest, aber schon mal einfacher (bzw. Cursor auf Mnemonic setzen und F1 drücken) Das andere sind schon sehr spezifische Erweiterungen, das mit den eckigen Klammern könnte aber sogar verträglich funktionieren. |
![]() |
erstellt am 26. November 2020 um 8:51 Uhr MEZ ![]() ![]() ![]() Wieder zu deinem letzten Kommentar: Ja, man müsste natürlich für ein richtiges Bild, wie es wirklich von VICE kommen würde, Scanline-IRQs emulieren, aber das meine ich nicht, was ich gerne hätte, wäre die Option, sich den BS-Speicher im aktuellen Zustand anzusehen, so, wie es entstehen würde, würde die CPU völlig pausieren, nur ohne den VIC, dadurch könnte man sich Sachen ansehen, bevor sie über die Scanline laufen, wenn man z.B. irgendwelche Scanline-IRQs hat, die Sprites multiplexen sollen oder wenn sich der Bildschirm schneller aufbauen soll, als der VIC da mit der Scanline drüberfahren kann. Für sowas würde es ja momentan reichen, bei Debug Memory die entsprechenden Daten, die der VIC lesen würde, rauszukopieren und dann an einen zweiten virtuellen VIC zu schicken. Oder sehe ich das falsch? Kommentar von Endurion: Ja, das klingt alles gut und sinnvoll. Das geht schon ziemlich in die Richtung des eigenen Emulators. Vielleicht könnte ich dazu wirklich den im Code vorhandenen, extrem rudimentären Tiny64 verwenden. Der kann im Moment eigentlich nur die CPU emulieren, aber so halbwegs das Bild daraus zu generieren, wäre wohl eine interessante Aufgabe. Ist aber auch wirklich nicht ohne ![]() |
![]() |
erstellt am 25. November 2020 um 12:26 Uhr MEZ ![]() ![]() ![]() Irgendwie ist mein alter Kommentar weg, ich hatte mich da nochmal auf deinen letzten Kommentar bezogen, denn es würde nicht allein reichen, alles anzuhalten, wenn man sehen will, wie sich gerade ein Bild aufbaut, dazu wäre es nötig, sich den Bildschirmspeicher im aktuellen RAM so angucken zu können, wie er letztlich auf dem BS zu sehen wäre, also im Grunde Debug Memory, nur dass jede Zeile 40 Bytes enthält. Kommentar von Endurion: Ja, das wären alles so Dinge, die ich viel besser machen könnte, wenn die Schnittstelle einfacher wäre ![]() Den aktuellen Bildschirm aus dem Speicherinhalt zusammenzusetzen ist ja nur bedingt machbar. Das funktioniert bei einfachen Sachen, aber sobald da VIC-Umschaltungen bei bestimmten Zeilen erfolgen, muss man da eine Historie mitziehen. Ach Mann, ich möchte einen Emulator in C# drin haben, wo ich direkt alles anpacken kann. |
![]() ![]() |
erstellt am 24. November 2020 um 13:56 Uhr MEZ ![]() ![]() ![]() Uuuuuund .... jetzt ist er wieder da, der Fehler. Mein Programm ist sowas wie lda einHaufenDaten, X sta $02 ;break ;Debug ldy $02 ;break ;Debug inx ;break in einer Schleife und ich konnte im Y-Register andere Werte als bei Debug Memory feststellen. Ich weiß nicht, was es ausgelöst hat, und es ist tatsächlich mitten beim Debuggen passiert, ich hatte gerade damit angefangen, mehrere Fenster zu verwenden. Es änderte sich einfach nichts mehr, beim Öffnen eines neuen Fensters sah man dann zwar den korrekten Status, wobei die Bytes, die sich geändert hatten, nicht rot markiert waren. Anbei noch eine kleine Anregung: Wie wäre es mit einem Debug-Fenster, bei dem man sehen kann, was der VIC ausspucken würde, würden sich keine Register ändern? Momentan kann man leider während der Untersuchung eines Breakpoints sich den Bildschirm nicht angucken, was eventuell wegen der Scanline auch nicht zu viel Sinn machen dürfte. Ich würde das sicherlich öfters nutzen. Kommentar von Endurion: Da ist ja wirklich etwas im Argen, ich gucke mal, was ich da gedreht habe. Zum Glück habe ich das schon im GIT drin und kann die Historie des Debuggers prüfen. Zu der Ansicht: Ja, das ist extrem unpraktisch, dass VICE da hängt. Zumindest die alte Version, ich meine, bei der GTK-Version tritt das nicht mehr auf. Auf ganz lange Sicht möchte ich den Emulator ja integriert haben, dann verschwinden eine ganze Reihe Probleme automatisch. Im Moment steuere ich ja nur den externen VICE. |
![]() ![]() |
erstellt am 24. November 2020 um 13:41 Uhr MEZ ![]() ![]() ![]() Tut mir leid, das Problem mit Debug Memory konnte ich leider nicht erneut erzeugen. Ich habe keinen Plan, was es verursacht hat. Allerdings konnte ich einen anderen Bug finden, bei dem ich nicht ganz weiß, ob er sich lösen lässt: Wenn man nicht auf "Stop Debugging" drückt, sondern einfach VICE schließt und dann erneut den Debugger startet, öffnet sich ein VICE-Fenster bei den Breakpoints. Ich weiß nicht, ob Sie (oder dürfen wir sie duzen? Ich bin mir da nie so ganz sicher) davon schon wissen und ob man einfach nicht VICE schließen sollte, denn wozu ist dann der Knopf? ¯_(ツ ![]() Kommentar von Endurion: Kann man gerne duzen ![]() Das muss ich mal nachstellen, was da schief geht. Eigentlich sollte auf das Gleiche rauskommen. VICE macht dann den Monitor auf, wenn die Remote-Verbindung nicht aufgebaut wurde. Dann steht vermutlich etwas wie "Debug Attempt failed" oder so im Output Display. |
![]() ![]() |
erstellt am 24. November 2020 um 12:32 Uhr MEZ ![]() ![]() ![]() Zu dem Kommentar vom 22. August 2020: Es wäre sicherlich auch praktisch, wenn man zu jeder Zeit einfach alle Dateien einer Solution separiert abspeichern könnte, sodass man, wenn man versehentlich einige Male zurückgeht und dann etwas ändert und damit die Wiederherstellung nicht mehr funktioniert und das dann dummerweise speichert, man die alten Versionen durchwühlen kann, bis man die intakte alte Version der Datei findet und dann rumkopieren kann. Beim Arbeiten mit Arduino-Programmen habe ich mir immer einen Ordner für das aktuelle Projekt angelegt und dann die gesamte "Solution" ständig mithilfe von "Speichern unter" mit aufsteigenden Nummern abgespeichert, sodass sich eine Struktur wie /MeinProjekt MeinProjekt/v1 MeinProjekt/v1/v1.ino (die Hauptdatei bei Arduino-"Solutions") MeinProjekt/v2 MeinProjekt/v2/v2.ino MeinProjekt/v2/datei.h MeinProjekt/v3 MeinProjekt/v3/v3.ino MeinProjekt/v3/datei.h MeinProjekt/v3/konstanten.h MeinProjekt/v3/tabellen/sinustabelle.h usw ergeben hat, jedes Mal wurden die alten Dateien über "Speichern unter" übernommen. Ich brauche das einfach, da ich ein riesiges Maß an Fehlern mache. Soweit ich das verstehe, geht das nicht so einfach mit Solutions. Außerdem ist es üblicherweise so, dass bei "Speichern unter" man direkt zur neuen Datei springt, wenn man also v1.asm als v2.asm speichert und dann Änderungen vornimmt und diese mit Strg+S speichert, diese in v2 landen. Ich hoffe, das war nicht zu komisch und ich hoffe auch, dass das nicht so wirkt, als würde ich das Programm schlecht reden. Ganz im Gegenteil, es hat mir ermöglicht, in einer sehr guten Entwicklungsumgebung Assembler zu lernen und ich bin begeistert. Es gibt nur ein paar kleine Dinge, die ich mir besser vorstellen könnte. Gruß Julian Kommentar von Endurion: Ah, da würde ich in Richtung Source-Code-Verwaltung gehen. Es gab schon ein paar Anfragen in Richtung GIT. Ich überlege ernsthaft, ob ich das einbaue. Das dürfte aber noch ein bißchen dauern ![]() |
![]() ![]() |
erstellt am 23. November 2020 um 19:36 Uhr MEZ ![]() ![]() ![]() Hallo, ich wollte einen bug in der neuesten Version des C64 Studios melden: Debug Memory wird irgendwie nicht geupdatet ... man muss auf Add View (das grüne +) drücken, damit man die Änderungen sieht, und das auch jedes Mal. Das herauszufinden hat mich leider eine Stunde oder so gekostet. Sonst aber ein klasse Programm. Hut ab! Gruß Julian Kommentar von Endurion: Danke für die Info, da gucke ich mal, was ich verbastelt habe. Als Tipp, ein Scrollen im Fenster sollte eigentlich auch einen Refresh erzwingen. |
![]() ![]() |
erstellt am 08. November 2020 um 22:42 Uhr MEZ ![]() ![]() ![]() Hey dude, Hope you're well. I just updated from 6.4 to 6.5 but the status bar at the bottom of the screen says "Malformed update check reply: < br />" Right before I updated 6.4, the status bar just said "checking for update..." but gave no further info. Thanks for a new version! Wouter Kommentar von Endurion: Thanks! There was a PHP upgrade that threw a few warnings, it's fixed now. |
Administration |