Posts by Endurion

    Auja, das klingt interessant, da gucke ich mal.


    Auf kurz oder lang muss da sowieso mal ähnlich dem C64Debugger der VICE-Code entweder eingebunden werden, oder ein anderer Emulator gefunden werden, der sich einbauen lässt.

    Es gibt zwar gerade Ansätze bei VICE, mehr Monitor-Kommandos binär abzuhandeln, aber sind ja immer noch einige Unschönheiten drin.


    Wer den Code bei C64Studio mal durchgeguckt hat, sieht ja auch meinen billigen Ansatz eines Emulators da drin, der schafft es immerhin bis zum BASIC-Start-Screen. Aber bei den ersten VIC-Feinheiten wie Bad Lines bin ich halt überfordert.

    Hi Drachen,


    Alles klar, ich hab's glaube ich verstanden. Das ist dann schon Richtung Debugger, da man ja zur Laufzeit erst die echten Adressen kennt. Das wäre das, was mir vorgeschwebt wäre. Mal gucken, was man da machen kann. Sowas geht aber nicht von heute auf morgen ;)

    Hi Drachen,


    Du meinst die Label-Liste? Nein, da gibt es bisher keine Unterstützung für. Eine Auflistung der reinen Variablen wäre wohl halbwegs einfach machbar, mit Werte-Zuweisung wird es schon schwieriger. Da sind ja dann auch diverse Berechnungen möglich. Welchen Wert zeigt man bei mehrfachen Zuweisungen an, etc.?


    Ich hatte schon ein paar Mal überlegt, ob man nicht auch so eine Art Debugger-Support für BASIC hinbekommen könnte. Da wäre so etwas dann auch mit dabei.


    Vielleicht habe ich auch die falsche Vorstellung, könntest du ein kleines Beispiel zeigen, wie du es dir vorstellst?


    Gruß,

    Endurion

    Assembler übersetzen nur deine Code-Abschnitte in Bytes. Wenn da zwischen den Blöcken Abstände sind, werden die in der Regel mit irgend etwas aufgefüllt (meistens Null-Bytes).

    Zwischen $0340 und $0801 liegt halt auch der Default-Bildschirm. Daher die @s. Eine Startadresse ungleich $0801 hat auch den Nebeneffekt, dass du dein Programm mit ,8,1 laden musst.


    Du müsstest entweder einen Code-Teil schreiben, der die Sprite-Daten von woanders dahin kopiert, oder einen Packer o.Ä. verwendet, der das für dich tut.


    Das mit dem schneller sein, der Emulator (VICE vermutlich) geht beim Start zum Beschleunigen gerne in den Warp-Modus. Der geht nicht in allen Variationen wieder automatisch aus. Das siehst du in der Titelzeile, ob der Warp-Modus (Alt-W) aktiv ist.

    Da waren noch ein paar Vertipper dabei. So alte Ausdrucke können auch richtig fies sein. Ich habe mal korrigiert, was mir auffiel, insgesamt waren da Fehler in 5 Zeilen.


    49 PRINTCHR$(147)

    90 N=VAL(A$(0))

    238 PRINT:PRINT:PRINT"GIB BITTE AN, AN WELCHES TIER DU GE-"

    320 IF A$="N" THEN B$="J"

    530 DATA"4","/QSCHWIMMT ES/J2/N3/","/AFISCH","/AVOGEL"



    So scheint es bei mir gut zu laufen.

    Naiv würde ich die üblichen BASIC-Adressen abfragen, ob zum Beispiel die Pointer auf die aktuelle Zeile o.Ä. auf sinnvolle Werte gesetzt sind.

    Lange ist es her, daher hier mal eine neue Version 6.4. mit vielen kleinen Fixes und ein paar neuen Features:


    Fix: Let Black Jack for CBM Prg Studio compile (allow * counter for macros)

    Fix: Up text length for binary editor import

    Fix: Crash in Charset screen editor when floating selection was placed outside the screen

    Fix: Add missing extension to C64Ass.exe (ouch!)

    Fix: BASIC shifted characters A-Z, properly place in PETSCII range

    Fix: Speedup of symbol transfer after full assembly

    Fix: Remove selection borders in char screen after changing mode

    Fix BASIC line length check warning

    Fix: initial break point set via project properties is not temporary

    Add: Macro File, RunFile

    Fix: Remove 2049 default setting from new projects

    Add: Charscreen import from Marc's PETSCII editor

    Add: BASIC source context menu

    Add: Partial renumbering of BASIC code

    Add: Clone tile for map editor

    Add: MediaTool support for map project (currently MAPDATA only)

    Fix: !hex pseudo op

    Add: media tool map project mapdataasm

    Fix: Wrong type inserted in map editor

    Fix: true drive icon was showing in wrong state

    Fix: Crash in Preferences when no baselib path was added

    Fix: Reloaded-documents not set as modified

    Add/Fix: Files opened are opened as project members if they're added in there

    Add: Support for C64Debugger (passing labels and program)

    Add: Map Editor: Delete all selected tiles at once

    Fix: Crash when opening file without solution.

    Add: Auto-save and -restart with any changes (non blocking shutdown)

    Fix: Step into after run to cursor after first auto break point might trigger additional break point adding

    Fix: use 0xa871 as intermediate break point (RUN command), so it also works with Inject to RAM

    Fix: Default extension for map export as new charscreen

    Add: Option for auto toggling BASIC entry mode

    Fix: Better error message on wrong method for !mediasrc pseudo op

    Add: Export to image for charscreens

    Add: option to strip trailing spaces

    Fix: exception for marking check in BASIC files

    Fix: Length check for BASIC file was off by one

    Add: Error marking in BASIC

    Add: BASIC strip REM, skip line if empty, but only if not referenced

    Fix: Layout restore now works for all dialogs

    Add: Close Solution to main menu

    Add: Show the exact match in AutoComplete as well (not on top yet)

    Add: AutoComplete sorted by relevance

    Fix: No popup for completion if a comma is to the left

    Fix: No popup if only match is exact search fragment

    Fix: Crash on macro insertion by label

    Add: label insertion as macro in hex mode (prefix with 0x)

    Add: Directly open .ctm files as map projects

    Add: Setting for max MRU entry count

    Add: character editing in map project

    Add: Copy map to image in clipboard

    Add: manual "check for update" menu item

    Add: Charset shifting to Character Editor

    Add: Option to treat warnings as errors



    Link wie gehabt, aber jetzt auch mit s(!) : https://www.georg-rottensteine…iles/C64StudioRelease.zip

    Na endlich mal keine Termin-Kollision :)


    Und ihr habt auch noch eine Rolle Klopapier ergattert! Da würde ich auch erstmal abdichten und die in Ruhe geniessen ;)


    Ernsthaft, das ist genau die richtige Entscheidung. Über Ersatztermine nachdenken ist auch müßig. Keiner weiß, wie es in drei Wochen aussieht.


    Deshalb, für uns ändert sich nix, zuhause am Rechner sitzen und die Irren draußen lassen.

    Das würde ich gerne machen, wenn es ohne Änderungen am Tokenizer abgeht. Bei LaserBASIC musste ich ein paar Extrawürste reinsetzen. Aber mal gucken, wie weit ich damit komme.


    Im Moment ist alles etwas schräg :)

    Es gibt keine komfortable Möglichkeit in der Oberfläche, nur im Code. In der Datei BasicFileParser gibt es eine Methode SetBasicVersion, da werden die diversen Tokens eingesetzt.


    Leider kommt halt auch das Problem mit, dass im Parser selbst ein paar Sonderlocken abgefangen sind. Das liegt aber mehr daran, dass ich den Parser ziemlich hemdsärmlig zusammengeklöppelt habe :)


    Ich gucke mir mal an, wie BAS.Edit das handhabt. Wenn es "nur" um neue Token-Werte in 1- und 2-Byte-Varianten geht, wäre das halbwegs machbar.

    Mac Bacon: Du scheinst dich ja in den Untiefen der BASIC-Varianten auszukennen? Ist das denn so, dass die BASIC-Erweiterungen ihren eigenen Tokenizer mitbringen? (bzw. sich da irgendwie einklinken)

    Laser-BASIC hat mir da schon einiges Kopfzerbrechen geliefert.

    Wäre mal interessant, sonst greife ich da gerne mal mit ran.


    Die 3.5er dürften dann klaglos tun (sofern ich keine Fehler gemacht habe), aber die zusätzlich kennt C64Studio nicht. Das dürfte dann Syntax-Errors geben.