Posts by aitsch

    Ich habe mir auch einen R36S gegönnt.

    128 GB bestellt aber 64 GB geliefert bekommen :cursing:


    Ali hat mir die Differenz erstattet, aber dadurch sind mir bestimmt jede Menge coole ROMs durch die Lappen gegangen.


    Von der Karte habe ich die Spiele erstmal auf dem PM gesichert. quadflyer8 Danke für den Tipp :thumbup:

    Meine Karte schafft übrigens 74 MB/Sek. Damit war die Sicherung dann schnell erledigt.

    Für den Rest, also OS Update und SD-Karte tauschen, hatte ich noch nicht die Zeit.


    In der BOOT Partition kann man übrigens die logo.bmp durch eine beliebig andere 640x480-BMP-Datei austauschen.



    Trotz Rakel und viel Mühen war es mir nicht möglich, die Displayschutzfolie blasenfrei aufzubringen.


    Außerdem habe ich eine Datei namens V5.TXT (in der BOOT oder ROOT Partition) gefunden.

    Könnte damit die Panel-Version gemeint sein?


    Eine Frage noch: Wie lässt sich im C64-Emulator der Joystickport umstellen? Ich konnte nichts finden.

    Y=2 -> LB $96


    😉

    Eben! Und bei dir im Code ist Y=2. Also steht die $0196 in der Zeropage. Wenn du nun nochmal Y=2 mit der indirekten Adressierung verwendest, wird das zu $0198. Oder sehe ich mal wieder etwas nicht?

    Oh, du hast recht. Es ist falsch was ich oben geschrieben habe. Y hätte vor dem Speichern 0 sein müssen.

    Asche auf mein Haupt 😔


    Du bist der einzige dem es aufgefallen ist 👍🏻

    Es ist schwer zu verstehen, was genau du vor hast.

    Ich verstehe deine Frage so, dass du den Wert des A-Registers in $0192+x speichern möchtest?!?

    Also wenn der Index x=2 ist, in $0196.


    Dazu sollest du dir die indirekt,y Befehle mal ansehen und dann mit dem Y-Register arbeiten.


    Du müßtest deine Adresse dann in Low-Byte & High-Byte aufteilen und erstmal auf eine definierte Adresse der Zero-Page schreiben.



    versuch mal dein Glück.

    Hallo Mike,


    danke für deine Rückmeldung. Du hast eine sehr technische Betrachtung durchgeführt. Aber gut ...


    TinyASM bietet dem Anwender die Möglichkeit Assemblercode direkt am VC-20 einzugeben, ohne weitere Zusatzhardware verwenden zu müssen.

    Also keine Speichererweiterung bzw. Cartridge mit weiterer Software. Es ist eine Stand-Alone-Lösung.


    Bedeutet:

    Coden in der Grundausstattung mit 3,5 KByte + der weiteren nutzbaren Speicherbereiche.

    Das war von Anfang an die Challenge und bei den weiteren Speicherbereichen fällt mir jetzt keiner ein, den ich nicht belegt hätte.

    Danach ist TinyASM allerdings ziemlich unglücklich. Das Editor-Display wird noch gestartet, danach crasht der VC-20. In VICE gibt es eine Errorbox mit "JAM at $526C".

    Eine Co-Existenz mit einem Monitor ist nicht vorgesehen und macht m.E. auch gar keinen Sinn.

    Denn wer einen Monitor zur Hand hat, wird nicht einen weiteren Code-Editor mit weniger Features laden, um darauf sein Programm zu schreiben.


    Das ist auch der Grund, warum du nach dem Ausführen deines Programms nicht in den Editor zurückkehren konntest.

    Ich denke mal, dass MINIMON den Code von TinyASM überschrieben hat. Also kommt der JAM nicht wirklich überraschend.

    Bei TinyASM ist das leider nicht der Fall und damit ist es praktisch nicht möglich z.B. mit MINIMON - und erst recht nicht mit einem anderen Monitor - ein in TinyASM erstelltes Programm in irgendeiner Weise auf echter Hardware zu debuggen.

    TinyASM erzeugt beim Speichern ganz normale .PRG-Dateien. Diese lassen sich von Disk laden und z.Bsp. mit SYS6449 starten.


    Die Dateien kannst du mit jedem anderen Monitor laden, debuggen oder verändern.

    Das geht auch auf echter Hardware. Falls nicht, habe ich noch einen Bug im Programm ...


    Genauso lassen sich beliebige .PRG-Dateien laden und weiterbearbeiten, wenn sie im passenden Speicherbereich zwischen $1931 und $1DFF liegen.

    Damit ist im derzeitigen Zustand TinyASM allenfalls für sehr aberteuerlustige Nutzer geeignet - eine derartig gestaltete Nutzung siehst Du ja gerade hier. :D

    Why :gruebel ?


    Der VC-20 kann nun mal nicht ausschließlich nur unter dem Gesichtspunkt betrachtet werden, daß man keine Speichererweiterung anschließen darf.

    Genau das und nichts anderes ...

    Hallo Zusammen,


    ich wollte hier mal etwas Eigenwerbung für mein neues Release von TinyASM für den VC20 machen.


    Es handelt sich um einen Assembler für den VC20 ohne Speichererweiterung bzw. Zusatzmodul.

    Er lässt sich von Diskette laden und läuft direkt im RAM. Als ich damit gestartet hatte dachte ich, sowas gibt es noch nicht.


    Der Code wird sofort übersetzt und in den Speicher geschrieben, weshalb es sich auch eher um einen Monitor handeln könnte.

    Aber ich wollte mal ein bisschen provozieren und habe es Assembler genannt :D

    (TinyMonitor klingt auch irgendwie nicht sol cool...)


    Der Hauptfokus bei diesem Projekt liegt darauf, möglichst viel Speicher zum Programmieren freizulassen.

    Das bedeutet leider, dass viele nützliche Features auf der Strecke geblieben sind.

    Die Messlatte hatte ich mir bei min. 1024 Bytes gelegt.


    Aktuell kann das eigene Programm beliebig zwischen $1931 und $1DFF liegen und somit kann ein Programm bis zu 1230 Bytes groß sein.

    Auf der Zero Page sind die Adressen $01-$36 nutzbar.

    Alle anderen Bereiche (wirklich alle) werden vom Assembler belegt.


    Die Programmne lassen sich auf Diskette speichern und können mit dem passenden SYS-Befehl gestartet werden.


    Das war ein hartes Stück Arbeit. Ich hoffe der ein oder andere hier hat Lust sich das mal anzusehen.

    Wer Interesse hat, sollte unbedingt das Video ansehen. Ohne wäre es m.E. zu schwierig zu verstehen.



    Hier die implementieren Funktionen im Überblick:

    • .D - löscht eine Programmzeile (delete)
    • .I$0a - fügt $nn Bytes (hier 10 Bytes) ein (insert)
    • .J$1A00 - Zur Adresse $nnmm springen (jump)
    • .L“NAME“,8 - Load programm
    • .S“NAME“,8 - Lave programm
    • .B - zwischen Code- and Byte-Anzeige umschalten
    • .T“ABCD…“ - Text eingeben (text)
    • .$01$02$03... - Bytes direkt eingeben (ohne Komma)
    • .Mn – einfache Labels einfügen
    • F1 – Führt euren Code aus


    Hier geht's zum Download.


    Über Euer Feedback würde ich mich sehr freuen :rolleyes:

    Interessantes Thema. Sieht gut aus und ich konnte ein paar Codeschnipsel erfolgreich compilieren.

    Top :thumbup:


    Ich hatte vor ein paar Jahren auch damit begonnen eine plattformübergreifende Entwicklungsumgebung in Python zu entwickeln.

    Da ich aber noch totaler Python-Anfänger war hatte ich mich irgendwann verrant und das Projekt aufgegeben.


    Das ganze sah zum Schluß schon recht passabel aus:


    Es enthielt aber auch einen selbstgeschriebenen Assembler.

    Man kann auf jeden Fall viel bei so einem Projekt lernen.

    Frage:


    Mein Programm soll per "Autostart" geladen werden.



    Die Register $0326 & $0327 enthalten also die Startadresse.

    Das funktioniert auch, wenn ich die .prg-Datei von einem -D64-File lade aber nicht direkt aus dem Studio mit "Build & Run".


    Was muss ich an den Parametern ändern, damit das Programm sich so verhält, als würde ich es direkt von Disk laden?


    An welcher Stelle gebe ich im Code die Info mit, welcher Dateityp gelesen/gespeichert werden soll?

    ... Es kann immer nur eine Namen geben, egal welchen Typs (mal abgesehen von Directory-Editoren, die direkt im Directory herumfuhrwerken) - CBM-DOS lässt einen eine Datei anlegen, auch wenn die gleichnamige Datei einen anderen Typ hat. Daher braucht eigentlich beim Laden nur der Name (ohne Typbezeichnung) angegeben werden. ...

    Das ist eine wertvolle Info.

    Es kann also keine:


    DEMO.PRG &

    DEMO.DAT


    gleichzeitg auf einer Disk geben.


    Und egal ob DEMO.DAT oder DEMO.PRG, ich lade immer mit :

    Code
    1. LOAD"DEMO",...".

    Das erspart mir jede Menge Frust beim Umsetzen :thumbup: