Hallo Besucher, der Thread wurde 822 mal aufgerufen und enthält 5 Antworten

letzter Beitrag von Stephan Scheuer am

Programm im SCPU-Ram

  • Vor einiegen Tagen hatte ich mit Larry über die SCPU und die Möglichkeit, Programme im Ram laufen zu lassen,
    geschrieben. Ich schrieb, dass es ohne Probleme funktionieren müsste. Das wollte ich natürlich auch beweisen
    und hoffte meinen Mund nicht zu voll genommen zu haben. :schreck!:


    Nach Tagen des emsigen Coden und Fluchen hatte ich es doch tatsächlich geschafft, ein Programm so anzupassen,
    dass es im SCPU-Ram läuft, ohne die c64 Bank #00 zu benutzen. Die Zeropage und Rom-Routinen mal ausgenommen. :juhu:
    Das ich das geschafft habe , hätte ich nie für möglich gehalten. :roll2:



    Jeder kann das nun testen. Als Anhang, den Disk-Wizard für das SCPU-Ram




    Stephan

  • Congrats !
    Funktioniert. Gerade mit ner SCPU V2 ausprobiert. Echt ne verdammt coole Sache. Das eröffnet einem vielfältige Möglichkeiten, wenn der Speicher mal wieder knapp wird.
    Und das Beste, es geht ohne SuperRam Card.


    Danke Dir. Wegen "meinem" Projekt, melde ich mich dann noch per PM...

  • Was war die eigentliche Herausforderung? Die Interrupts über einen Wrapper legen, damit bei einem Interrupt die Standard-ISR nicht vom abweichenden Program Bank Register Wert irritiert sind?


    Sonst habe ich gesehen werden die ROM-Routinen mit JSL aufgerufen.
    Das Programm läuft rein im Emulation-Mode, oder?

  • Mal mit XCE + REP #$30, mal ohne. Je nachdem was benötigt wird.
    So einfach ist das garnicht, ein Programm anzupassen. Ich habe massig änderugen am programm vornehmen müssen,
    damit es funktioniert.


    Anhang: ein update. Das war nötig, weil man den disknamen nicht ändern konnte.
    eine basic-rom routine hat werte aus der bank #00 gelesen und blieb hängen.


    versuche es doch mal, ein programm an das scpu-ram azupassen.

  • Dann hast Du also nun einen gewissen Überblick, was wo im Extra-Ram der SCPU steckt und was man relativ gelassen verwenden darf?


    Was war die eigentliche Herausforderung? Die Interrupts über einen Wrapper legen, damit bei einem Interrupt die Standard-ISR nicht vom abweichenden Program Bank Register Wert irritiert sind?


    Sonst habe ich gesehen werden die ROM-Routinen mit JSL aufgerufen.
    Das Programm läuft rein im Emulation-Mode, oder?

    @ Hoogo


    den überblick mit sicherheit nicht. aber ich weiß jetzt eine menge mehr um software so anzupassen, dass diese im scpu-ram läuft.


    @'JeeK


    Die herausforderung ist, dass das programm so funktioniert wie beim standart c64. rom-routinen werden immer in bank $00 mit JSR angesprungen und ohne gesperrten IRQ
    keine rom-routine endet auf RTL was die sache deutlich erschwert. außerdem müssen VIC befehle ab $d000 in longadressing vorgenommen werden. (STA $00D011)
    oder die sachen, die im bildschirmspeicher geschrieben werden damit man was sieht. die scpu hat einen 256byte großen ram-bereich ab $00d300 eigendlich $01d300, der für eigene zwecke genutzt werden kann. dort habe ich der rom-sprungtabelle untergebracht.


    anhang:


    1. der quellcode für die, die daran interesse haben
    2. disk wizard fix2. weitere routinen wurden aufgrund mangelnder funktion ersetzt. programm funktioniert nun zu 97%




    gruß: stephan