Liebe Forum64 User,
ich habe mir neulich ein MMC Replay mit V0.54 BIOS gekauft und möchte gerne Plugins schreiben.
Ich habe mir die Sourcecodes von "The Dreams" zum Plug-In programmieren heruntergeladen.
Diese funktionieren soweit gut und daher habe ich angefangen die Dreamass Sourcecodes auf den CC65 von
Ullrich Bassewitz zu portieren. Ich habe zu dem Assembler code ein Headerfile geschrieben, damit ich die Routinen von C aus aufrufen kann.
Wenn ich zu dem C programm im LOWCODE Segment ein JMP zum überspringen des Basic Headers hinzufüge, sollte ich eigentlich ganz einfach mein Plugin mit CC65 schreiben können, dachte ich.
Leider stellte sich heraus, dass auch ein leeres programm void main(void){} nicht als Plugin funktionierte.
Ich erzeugte eine Datei xxxplgin.bin und ein weiteres File *.xxx und kopierte sie in das SYSTEM64 Verzeichnis der Speicherkarte.
Wenn ich auf der Datei *.xxx die Return Taste drücke, wird zwar das Plugin gestartet, aber der Code stürzt irgendwo in der Init Routine der C Runtime ab.
Nach einigem Herumprobieren machte ich ein JSR CLRCH in crt0.s als Ursache ausfindig.
Wenn ich dieses mit einem BIT CLRCH ersetzte, liess sich das leere Plugin ausführen und ich landete nach dem Beenden ordnungsgemäß wieder im Filebrowser.
Warum hat das MMC BIOS solche Schwierigkeiten mit einem Befehl, der alle offenen Dateien schliesst?
Das Ausgeben von Zeichen auf den Bildschirm mit zum Beispiel JSR CHROUT funktioniert ja auch.
Wie kann ich erreichen, dass das Plugin funktioniert, ohne den Startup code von CC65 zu modifizieren?
Vielen Dank
Monte Carlos