Von verschiedenen Programmversionen halte ich nicht viel. Da geht gerne die eine oder andere Version verloren, die dann derjenige mit dem anderen Rechnertyp wieder nicht bekommt.
Die Idee, den jeweiligen Code nachzuladen finde ich aber ganz gut - Overlay spart kostbares RAM.
CC65 scheint offenbar keine Zeiger auf Funktionen zu mögen, damit scheidet die C-Variante offenbar aus - oder habe ich da was falsch gemacht? Mit gcc unter Linux läufts.
C
- j@ponjuta:~$ cat testvfn.c
- #include <stdio.h>
- void apfel(void)
- {
- puts("Ich bin ein Apfel!");
- }
- void birne(void)
- {
- puts("Ich bin eine Birne!");
- }
- int main() {
- void (*obst) ();
- obst=apfel;
- obst();
- obst=birne;
- obst();
- }j@ponjuta:~$ cl65 testvfn.c
- testvfn.c(16): Error: Incompatible pointer types
- testvfn.c(18): Error: Incompatible pointer types