Périphériques nécessaires pour exécuter Tiny BASIC de manière interactive sur un Intel 8080
J'ai un cœur Intel 8080 et je voudrais construire le système informatique minimal autour de lui pour exécuter Tiny BASIC de manière interactive. Je construis cet ordinateur sur un FPGA, donc je ne pose pas de questions sur les composants réels, mais plutôt sur la connexion des périphériques en termes de ports ou d'adresses mappées en mémoire.
Une réponse idéale à ma question consisterait en un lien vers un binaire Tiny BASIC prêt à être chargé sur un Intel 8080, ainsi que des informations sur la disposition de la mémoire (par exemple "mettre le binaire en RAM à partir de 0x0000 avec une taille d'au moins 4 K"), initialisation ("réinitialiser le PC à 0x0100 pour démarrer") et IO (par exemple "si un octet est écrit sur le port 0x01, l'afficher en ASCII à l'utilisateur. Si un octet est lu à partir du port 0x02, renvoyer 1 si un nouvel octet d'entrée est prêt, 0 sinon. Si un octet est lu depuis le port 0x69, retourne l'octet d'entrée suivant ", ou" interrompre avec RST 3quand un nouvel octet d'entrée est disponible et le mettre à l'adresse RAM 0Ff000 ").
Je dois également ajouter que je recherche une version autonome, pas une version qui nécessite CP / M. Plus les périphériques sont simples, mieux c'est.
Réponses
J'ai le code source Tiny BASIC 1 et 2, pour exactement la même raison que vous avez décrite (mon propre ordinateur basé sur 8080).
Voici un code source et un binaire , prêts à être chargés à partir de 01000h. La communication série est assurée par ACIA MC6850 - voir lignes 1420 - 1475, routines outcet chkio. ACIA est accessible via 0DEh (registre de contrôle / d'état) et 0DFh (registre de données).
Donc: chargez-le à partir de 1000h, démarrez-le avec JMP 01000h, lire à partir de 0DEh attend un octet d'état (bit 2 = 1 quand ACIA est libre d'envoyer, bit 1 = 1 quand ACIA a reçu des données), lire à partir de 0DFh lit les données reçues, écrire dans 0DFh envoie les données à la transmission.
Je crois que vous pouvez apprécier l' implémentation VHDL du MC6850 pour FPGA .
(N'hésitez pas à me contacter pour plus de détails ou pour obtenir de l'aide sur la personnalisation de votre matériel.)