Esta bueno como quedo eso, pero me parece que no hay posibilidad de que ande al 100% nunca.
Hace unos años lo estudie el tema y compare el 6510 y el otro micro, y, dejando de lado el pinout, la diferencia es que el de la C16 tiene 1 o 2 pines de I/O extras. El 6510 tiene creo que 4 pines de I/O que podes usar como entrada o salida individualmente, todo controlado por software, y el otro tiene 6 o mas.
La unica forma de emular esos pines extras es usar un 6502 y agregarle los pines de I/O. De hecho asi podes hacerte un 6510 en base a un 6502, pero son varios chips que necesitas, porque tenes que leer 15 patas de Address para detectar si se esta accediendo a las direcciones 0000 o 0001 y despues necesitas un latch para seleccionar la direccion de I/O de cada pin y un buffer para leer o modificar el valor, segun la linea de address 0.
Hacer con este cirtuito un 6510 o el 7no se cuanto de la C16 en base a un 6502 es casi lo mismo, lo que no podes es partir desde un 6510 porque esos 2 bits de diferencia no los podes inventar.
En la C64 los pines de I/O los usas para seleccionar el mapeo de la memoria y para usar el datasette, son I/O muy rapidas. Habria que ver que se controla en la C16 con ese pin que no podes emular. Si no podes usar el datasette de ultima habria que dejar un pull-up o pull-down para dejarlo en el valor que moleste menos.
Marcos, es como vos decís! El 8501 tiene dos pines puertos más que al menos (entiendo), lo usan los programas con sistema de carga Turbo y tienen alguna función relacionada al datassette. Leí lo de usar un 6502 para armar una solución completa, pero hasta ahora quedó en idea. Esta es una solución rápida, que no llega al 100%, pero al menos te sirve para hacer andar de nuevo a las varias máquinas que andan con el micro quemado!
No jodera tambien el tema de la velocidad? Me parece que esas maquinas pueden andar a mas de 1MHz, por ahi se tendria que usar un micro de C128 que soporta 2MHz.
No hice muchas pruebas, ese par de juegos que probé paracía ir bien. Habría que probar con un 8510 y conseguir un nuevo kernal para éste si es necesario.