
Jade (dont la deuxième version est ici décrite) est une plate-forme simulée de sa création, qui n'existe pas dans le monde réel, dont le simulateur pour la famille 83+/84+ s'occupe d'un CPU et quelques ports matériels. Jade fournit 256 octets de RAM et 512 octets de code (ROM).
Contrairement à la plupart des CPUs, Jade n'a pas de vrais registres processeur: ils sont mappés en RAM. Les 53 premiers octets de la RAM contiennent les registres (SP, PC, etc.) et les ports; les 128 derniers octets sont alloués à une pile, mais il n'y a pas de danger à utiliser une partie de cet espace comme mémoire de stockage si on n'utilise pas l'intégralité des 128 octets de la pile.
Liste des ports matériels:
* 8 jeux de 5 ports qui contrôlent les sprites: pointeur vers le sprite, coordonnées, méthode de dessin;
* 7 ports pour les pressions de touches;
* 1 port pour sélectionner la liste des sprites qui sont dessinés;
* 1 port pour lire la liste des sprites qui ont été dessinés;
* 1 port pour sélectionner la liste des touches scannées par le simulateur;
* 1 port pour quitter Jade ou activer la mise à jour de l'écran;
* 1 pointeur de pile (SP);
* 1 compteur de programme (PC), utilisant 2 octets.
Le jeu d'instructions est inspiré d'un sous-ensemble du jeu Z80, toutes les instructions peuvent être optionnellement exécutées si les flags C et Z du processeur sont à 1:
- Code: Select all
0 1 2 3 4 5 6 7 8 9 A B C D E F
0 lda() adda() adca() suba() sbca() xora() ora() anda() cpa() inc() rotl() shftl() pusha() pop() inv() ldira()
1 ldc() addc() adcc() subc() sbcc() xorc() orc() andc() cpc() dec() rotr() shftr() pushc() ex() bits() ldirc()
2 ret() setz() setc() togz() togc() jp1() jp2() jrf() jrb() call1() call2() callf() callb()
3
;Duplicate for execution on the c flag condition
4x,5x,6x,7x
;Duplicate for execution on the z flag condition
8x,9x,Ax,Bx
;<not implemented>
Cx,Dx,Ex,Fx
lda() charge un octet d'une adresse vers une autre.
ldc() stocke une valeur constante à une adresse.
jp1(), jp2(), call1(), and call2() permettent des sauts et appels relatifs et absolus.
L'état actuel du code est tout à fait utilisable, bien que Xeda indique que la documentation est faible:
Téléchargement première version de Jade v2: http://www.omnimaga.org/index.php?actio ... tach=14836
Plus d'infos sur la programmation en Jade (fichier Jade.inc + code source du programme exemple): http://www.omnimaga.org/index.php?topic ... #msg287207
Source: http://www.omnimaga.org/index.php?topic=15832.0 / http://www.cemetech.net/forum/viewtopic.php?t=8895