Cartridge (extern) oder internes ROM sind bei mir zwei völlig verschiedene Dinge....
Das ist beim Plus/4 nicht wie beim C64. Die internen ROMs werden ähnlich wie ein Cartridge behandelt. Unten die Tabelle ROM-Banking: http://cbmhardware.de/show.php?r=4&id=11 , anhand von $ffddx wird ausgewählt, welche Kombination eingeblendet wird, das findet man dann auch leicht in der Schaltung wieder: http://www.zimmers.net/anonftp…us4/plus4-310164-4of4.gif .
Die Header ist intern wie extern auch immer "identisch": $modulnummer,CBM. Ich fand damals bei den internen 3plus1-ROMs eine andere Behandlung als beim Cartridge. Der Unterschied lag in den angesprungenen Routinen. Beim ROM wird die Einsprungadresse nach $05f0, $05f1 geschrieben und dann eine Longjump-Routine angesprungen. Beim Cartridge war es ein Vector bei $02fe, $02ff und Sprung in die modifizierten Banking-Routinen. Der Unterschied liegt im Aufruf: ein Cartridge wird direkt ausgeführt und beim Function-ROM wird eine Tastenabfrage eingefügt (F1 für irgendwelchen Käse). Diese ROMs bringen also einen Teil der Funktionen mit, sollten demnach auch problemlos austauschbar sein. Ein Function-ROM kann ein Cartridge werden und anders herum, auch wenn das beim Cartridge nicht sinnvoll ist. Wenn man das in den Function-ROM Sockel steckt, kann der P/4 nur noch dieses ROM ausführen, anders herum macht es mehr Sinn
Lange Rede kurzer Sinn: das interne ROM unterscheidet sich vom Cartridge, ist aber auch das selbe. Mann kann es auch über externen Code einblenden und munter über eigene Routinen als Datenbunker nutzen. Dann ist es identisch.
.