![]() |
|||||||||||||||||||||||||||||||||||
| Vendredi 29 Août 2008 | Sitemap | Fr | En | ||||||||||||||||||||||||||||||||||
Menu
|
Le projet FS22-647SoftwareActuellement, il n'existe pas de gestionnaire global à proprement parler, mais un rassemblement de plusieurs programmes qui gèrent une partie ou quelques parties de la machine. Le but étant de réussir à maîtriser chaque périphérique séparément, puis de rassembler ces routines afin de pouvoir en faire un OS. A cela s'ajoute, le désir de porter le langage C sur le FS22-647, car pour l'instant tout est écrit en assembleur, or l'auteur n'a pas encore le niveau compétent en informatique pour réaliser ceci. L'assembleur des listings ci-dessous est le CALM pour z80. Il s'agit bel est bien de l'assembleur z80 classique, cependant, les mnémoniques et l'ordre de certaines opérations ont été changés. Par exemple, LD A,B devient MOVE B,A. La casse n'ayant pas d'importance. MUBUSLe premier programme, écrit toutes les valeurs possibles en boucle sur des LEDs d'un testeur MUBUS.
La première pseudo-instruction .area PROGRAM (ABS,OVR) sert à définir la zone mémoire dans laquelle le code sera écrit. La seconde .z80 indique à l'assembleur qu'on écrit un listing pour le processeur z80. La troisième .org 0 nous permet de définir de façon absolue l'emplacement mémoire du code, pour autant que la zone dans laquelle nous nous trouvions le permette. Ce qui est le cas ici vu que PROGRAM est en absolu avec (ABS). Ensuite nous définissons les constantes MUBWL et MUBWH à 0 et 1, soit lors de l'assemblage, le cross-assembleur remplacera toute occurence MUBWL par 0 et MUBWH par 1. Ceci est très commode car lorsque l'on programme, le listing devient plus agréable à lire et aussi beaucoup plus compréhensible.
Les listings assembleur prennent vite de la taille, c'est pourquoi il vaut mieux se restreindre à ce cours exemple concernant l'assembleur en lui même. Tous les programmesSi vous avez compris comment fonctionne les deux programmes ci-dessus, vous ne devriez, alors, pas avoir de peine à comprendre les autres. Par soucis de place, ils ne sont pas présentés comme les deux exemples. En outre, vous pouvez les télécharger ci-dessous.
OutilsAfin de pouvoir s'exercer, des outils ont été développés pour programmer sous Linux. Il est nécessaire d'avoir ASxxxx, un cross assembleur qui permet d'assembler des listings pour le z80, disponible sur cette page : shop-pdp.kent.edu/ashtml/asxget.htm. Ce programme est un freeware, mais nefait pas parti du domaine public, c'est pourquoi vous ne le trouverez probablement pas dans vos repositories. Un autre utilitaire : SRecord permet de convertir les fichiers au format intel hex de aslink en binaires que l'on pourra programmer sur les EPROMs du FS22-647. Vous pourrez normalement le trouver dans vos repositories. Un template a été réalisé. Il contient tout le code d'initialisation standard ainsi que les includes nécessaires pour travailler avec les périphériques actuels du FS22-647. Il y a un label __main depuis lequel vous pouvez écrire votre propre code. Bien entendu, vous êtes cordialement invité à consulter les fichiers assurant les fonctions de gestion du matériel et d'y apporter vos propres modifications. Vous pouvez obtenir ce template iciPour assembler, une fois les outils ci-dessus installés, un petit script bash qui se nomme assemble est fourni avec, il vous suffit de saisir, depuis un terminal dans votre dossier de travail, la commande ./assemble votreNomDeFichier.asm pour assembler et créer le binaire que vous n'aurez alors plus qu'à inscrire dans une EPROM 27128. En tapant ./assemble --help vous obtiendrez toutes les indications quant à l'utilisation du script. ./assemble --version donne la version du script.
Une petite vidéoAfin de montrer que tous ces petits logiciels tournent et fonctionnent bien sur le FS22-647, regardez cette petite vidéo faite par moi-même. Laissez-vous charmer par les possibilités. Téléchargez fs22-647.avi. Elle est au format AVI, encodé en Xvid 4.0, et pèse 18'864'664 octets. |
Sondages
|
|||||||||||||||||||||||||||||||||
|
Version 1.4 - Avenir OpenWork concept - février 2008 - Fait depuis kubuntu Linux Les marques, logos, services et produits cités dans ce site sont la propriété de leurs sociétés et auteurs respectifs. |
|||||||||||||||||||||||||||||||||||