Hallo Besucher, der Thread wurde 53k mal aufgerufen und enthält 99 Antworten

letzter Beitrag von Negan am

FPGA TED Sourcecode V1.0

  • Hier gibt es das Source-Code der FPGA Implementation des TEDs!


    Jetzt könnte man die Arbeit an der C16 Core Entwicklung beginnen! Ein wichtiger Meilenstein ist jetzt erreicht.




    Quelle: https://hackaday.io/project/11460-fpgated


    By: Istvan Hegedüs


    GNU GENERAL PUBLIC LICENSE
    Version 3, 29 June 2007
    Copyright (C) 2007 Free Software Foundation, Inc.

  • Ich bin sehr gespannt.
    Bitte bedenke, dass der Commodore 16 standardmäßig 16kb RAM hat. Aber die meisten Programme und Spiele 64kb benötigen. Die meisten Rechner, wie auch mein Original, wurden dem entsprechend aufgerüstet.


    Ansonsten sind für den C16 die gleichen Peripherie vorhanden. 2 Joystick Ports, Datasette und auch der 1541-er Floppylaufwerk ist Standard.

  • Lässt sich ganz gut portieren:



    Aber da wartet noch einiges an Arbeit. Bisher nutzt es nur das FPGA-interne RAM und das reicht nur für den C16. Und ohne Floppy ist es ja auch recht witzlos.


    Aber der TED scheint schonmal zufrieden mit dem MiST. Den Scandoubler aus dem Sinclair-QL habe ich portiert. Der wird dann später wieder per mist.ini abschaltbar gemacht, damit man das übliche Scart-Kabel nutzen kann.


    Edit: Für die ungeduldigen:

  • Das sieht schon mal wirklich sehr gut aus.


    Viel brauchen wir ja nicht. Die Implementierung des 1541-er müsste genau so laufen wie am C64 Core. Insgesamt ist das Drumherum eigentlich vollkommen identisch. Nur 64kb RAM sind halt wichtig.

  • Und nun renne ich in die Probleme, die man hat, wenn man eine Maschine überhaupt nicht kennt.


    Wie nutzt man den üblicherweise? Die meisten Programme im Internet scheinen als .prg vertrieben zu werden, was wiederum heisst, dass man gar keine 1541 braucht. D64-Images für den c264 habe ich auf die Schnelle nicht gefunden. Wenn wirklich fast alles .prgs sind, dann wäre es ggf. schon völlig ausreichend, diesen "direct memory inject" zu implementieren, den auch der c64 hat. Damit lädt man Programme sehr schnell und direkt in den Speicher des C64.


    Die Floppy ist etwas knifflig, da der C264 mehr ROM hat als der C64 und dann am Ende doch langsam der FPGA-interne Speicher knapp wird. Das könnte man lösen, indem man das ROM des C264 ebenfalls ins SDRAM legt und bei Systemstart von SD-Karte lädt. Geht, macht aber Arbeit.


    Und wenn man dann eine 1541 hat, wie nutzt man die dann? Einfach F3 drücken geht nicht, oder? Das würde eine 1551 ansprechen, oder?

  • Der 1541 wird genau so angesprochen wie der 1551. F3 stimmt schon. Das ist der "directory" Befehl und zeigt dann den Inhaltsverzeichnis des Floppys an. Genau wie beim C64 der Befehl "load"$",8 + LIST" Befehl
    Nur ist der 1541 genau so angeschlossen wie beim C64. Der 1551 wird am Parallelport angeschlossen. Die meisten User haben den 1541-er verwendet. Die 1551-er waren eher selten.


    Um Programme von Diskette zu laden, geht man genau so vor wie beim C64: "LOAD "SpielXYZ",8,1


    ODER


    DLOAD "SpielXYZ" <-- C264 spezifisch.


    Aber wo du jetzt sagst, die meisten Spiele und Programme liegen in der PRG Format vor. Ich kenne eigentlich keinen Programm, welches auf eine ganze Diskette erschienen ist. Folgedessen gibt es wohl nur sehr wenige D64 Images

  • Und warum reagiert er dann auf load "$",8 mit einem "Device not present", bleibt aber bei F3 einfach stehen?


    Irgendwie muss er doch zwischen beiden Floppies unterscheiden. Ich würde erwarten dass load "$",8 immer eine 1541 anspicht und F3 immer eine 1551. Oder woher weiss er, dass ich wenn keine 1551 angehängt ist bei F3 die 1541 meine? Und was passiert, wenn man eine 1541 _und_ eine 1551 anschließt?


    Aber letztlich heisst das, dass man mit der PRG-Injection schon sehr weit kommt. Dann nehme ich die halbfertige 1541 erstmal wieder raus und mache lieber PRG-Injection. Dann laufen zwar ein paar Floppy-Spiele nicht, dafür geht das Laden viel schneller.


    Wenn ich im xplus4-Emulator eine D64-Floppy einbinde und dann F3 drücke sagt er "device not present". Ein load "$",8 kann ich nicht testen, weil die Anführungsstriche im Emulator nicht auf Shift-2 liegen und sie nicht finde ...

  • Der Befehl load "$",8 am C264 wird überhaupt nicht benutzt. Dafür gibt es den Befehl "directory". Dieser liegt auf der F3 Taste, als Schnelltaste quasi. Die F2 Taste ist "DLOAD"


    Ich gehe davon aus, dass ",8,1" immer mit der Directory Befehl ausgeführt wird. Egal ob es ein 1541 oder 1551 Floppylaufwerk ist. Ich denke nicht, dass überhaupt jemand, jemals beide Laufwerke im Kombination verwendet hat. Würde mich aber interessieren, welcher dann mit der "Directory" Befehl anspringt.


    EDIT: Ich habe diesen SAchverhalt soeben an den Autor des Sourecodes gestellt. Vielleicht bringt es Licht ins Dunkel.:)

  • So, ich weiß jetzt etwas mehr.


    Der Befehl "Directory" steuert nur Device 8.
    Man kann einen 1541 und einen 1551 gleichzeitig anschließen. Dann wird der 1551er priorisiert, das heißt, dieser wird angesprochen.
    man kann beide Geräte natürlich jumpern. z.B. als Dveice 8 oder 9. Dann funktionieren die Geräte auch so. Über die Priorisierung entscheidet der Kernel.