Merci merci!
Et les nouvelles avant d'aller au lit: l'écriture fonctionne aussi, maintenant!
Sur l'ancienne carte, j'utilisais une adresse codée dans un GAL et 8 portes logiques pour décoder l'adresse du port de sortie.
Là, j'utilise une dizaines d'instructions de l'assembleur PIO du Pico, et je peux donner l'adresse que je veux dynamiquement!
Bon, ça ne sert à rien, alors ça va être tout le temps 0xffff

. En tout cas, ce machin est puissant.
Sur l'ancienne carte, j'avais aussi un port d'entrée. Je pouvais lire word par word (16 bits), et je devais me synchroniser avec le port de sortie pour gérer le flux de données word par word. Ca compliquait le code microcontrôleur, et le code 68000.
Ici, vu que je peux écrire dans la mémoire en live sans interrompre le 68000, je n'ai plus besoin de port d'entrée. Je peux streamer du contenu les doigts dans le nez.
Conclusion: les choses vont être plus simples à appréhender niveau code avec cette carte.
Par contre, ça veut dire que je dois réécrire tout le code microcontrôleur et le code PC.
Je vais voir si je continue à galérer avec l'USB natif du Pico ou si je m'amuse avec son portage TinyUSB.
En tout cas, l'électronique est OK. La suite, ce sera le code PC à revoir, a minima pour pouvoir envoyer facilement des images de ROM dans le Pico, pouvoir les basculer dans l'un des 8 slots réservés dans la mémoire flash, et les swapper à chaud.
Derrière, j'ai plusieurs options sympa:
- Ecrire du code de diag qui remonte les résultats au PC via le port USB
- Forker le code du NeoDiag pour remonter les résultats au PC via le port USB
- La surprise du chef: l'un ou l'autre des deux premières options, mais avec un affichage sur un écran OLED connecté à la carte (j'ai prévu une connectique I2C)
A suivre, mais ça ne va pas casser des briques côté démos tant que je n'ai pas assez avancé. Je suis preneur d'avis concernant les options, par contre

.