MOS 6502 Simulator est une sorte d'émulateur pour une puce 6502. Il n'y a pratiquement rien en dehors des opérations (moins de BCD) de la CPU. Il porte également aucune attention aux horaires d'instruction.
Alors (en dehors de ces deux choses) il simule avec succès le CPU, il y avait quelques défauts de conception, ce qui m'a amené à ne pas continuer avec elle:
- Je l'ai écrit en C ++.
Comme le 6502 avait pas de bus dédié IO, tout a été fait via la mémoire. Je eu l'idée d'avoir une classe virtuelle pure qui a fourni une interface générique, puis comme je l'écrivais dispositifs pour siéger dans l'espace de mémoire, ils pourraient simplement remplacer des parties de celui-ci, ou piège sur les écritures ou quelque chose.
Tout en écrivant cela, je continué à obtenir le sentiment que je devrais l'avoir écrite en assembleur place Surtout pour manipuler drapeaux et tourne et d'autres choses. (Comme je l'aurais tout simplement tourné AL, par exemple, plutôt que le désordre je dois dans le code C ++.
- Instruction Sloppy décodage.
Au départ, je mets à décoder les instructions correctement, mais il y avait beaucoup d'exceptions au système utilisé (esp., Si je voulais soutenir le 65C02 par exemple). Cette decended dans une instruction switch massif. Je considérais presque la découper pour les petits fichiers, et il suffit de les #INCLUDE au milieu, juste pour le rendre plus gérable.
En outre, comme ils ne sont pas dans l'ordre numérique (regroupés en fonction du type ou mode d'adressage, ne me souviens atm) il ne serait pas compiler pour une table de saut. Est-ce que l'optimisation de bien.
La principale chose qui m'a incité à écrire ce fut, je trouvai mon BBC-B dans le grenier, et sentit une pointe de nostalgie pour les heures perdues penché sur elle dans le mode de plus faible texte de la résolution (mode IIRC 7 pour sauver ram). Je eu l'idée d'écrire un émulateur NES ou la BBC, mais il n'a pas en arriver là.
Il a un format d'image assez simple. Le fichier doit être> = 65536 octets (64k) et qui est tout simplement l'image de la mémoire pour le système (adresse 16-bit bus). Il ya une sorte d'étrange ASCII affichage de texte en 0x200, ce qui est assez correct pour crachant une chaîne. Comme il a été tout simplement jetés ensemble dans l'espace de 6 heures environ (pris beaucoup de temps pour faire l'instruction switch), il est pas très thouroughly documenté, mais bon.
Détails logiciels:
Version: -
Date de transfert: 2 Jun 15
Licence: Gratuit
Popularité: 22
Commentaires non trouvées