CODING ★ INITIATION A L'ASSEMBLEUR - DOSSIER ASSEMBLEUR ★

Assembleur ACPC n°35 - Dossier assembleur
Vous maîtrisez le Basic ? Vous désirez aller plus loin dans le monde de la programmation ? Vous désirez connaître du bout des doigts les secrets des affichages écran, overscan, scrolling ? Bref, tout ce qui est impossible d'accès avec ce bon vieux Sicba...

Alors pas d'hésitation. Voici pour vous une nouvelle rubrique. Nous allons vous aider à franchir le mur invisible, entre le Basic et l'Assembleur. Vous allez petit à petit être initié à ce monde inaccessible (du moins en apparence). Les meilleurs de la rédaction vont se décarcasser pour vous faire passer le cap.

PRELUDE A LA NOIX

Avant d'entrer dans le vif du sujet, nous devons mettre quelques points sur certains « i ». Premièrement qu'est-ce qu'un Assembleur, à quoi cela sert-il ? Deuxièmement, où les trouver et comment faire son choix parmi les tonnes de jolies pubs qui ne demandent qu'à vendre un produit. Enfin, comment utiliser ce type de softs et surtout comment apprendre pas à pas, sans être trop barbant, ce langage appelé « machine ». C'est pour cela que Poum boucla ses valises et partit faire le tour de l'Hexagone, histoire de faire la lumière sur les quelques points sus-cités. A l'aide de son alcoolique acolyte, Sined « le barbant », ils vous donneront tous les trucs et astuces pour faire de ce langage un allié, qui devrait, comme un toutou, ne plus jamais vous quitter et, vous, rester fidèle à vie. Pour être encore plus riches, nos deux rédacteurs n'hésiteront pas à demander au roi du CPC, j'ai nommé le grand Franck Einstein, de participer à leur initiation.

L'ASSEMBLEUR

Vous allumez votre CPC, Que voyez-vous ? Un message de bienvenue et tout le tralala pour vous annoncer la mise en place du Basic Locomotive. Il ne vous reste plus qu'à entrer vos petits programmes qui, une fois débuggés, seront exécutés à l'aide de la commande RUN. En Assembleur, les choses vont de même, à quelques nuances près.

  1. Le langage n'est pas implanté directement dans les machines Amstrad. C'est pour cela que vous irez illico chez votre crémier pour vous procurer l'Assembleur qu'il vous faut (voir pour plus de détails, la liste des softs ainsi que leurs revendeurs cités ci-après).
  2. La syntaxe est tout à fait différente de celle du Basic, alors ne vous attendez pas à voir des PRINT "SALUT' dans ce type de programmes.
  3. Un programme écrit par vos soins doit dans un premier temps être compilé (traduit par des 0 et 1 ) pour donner des codes compréhensibles par la machine, sauvegardés sur un support (le source ainsi que les codes exécutables).
  4. Plus question d'utiliser des variables comme «A=12:B=A*6 » mais des registres (voir encore plus loin).
  5. Tous ces inconvénients mis à part, l'Assembleur offre des possibilités surprenantes tant au niveau de la vitesse d'exécution, qu'au niveau de l'originalité des routines ainsi crées (imaginez-vous remplissant votre écran avec des trames, ou afficher en rideaux des pages écran...).
  6. NDFranck : L'Assembleur est également plus chiant à apprendre que le Basic, mais nettement plus logique dans la démarche de la programmation.
  7. NDSined : Comme ce langage est exécuté et non interprété, il est difficile de le stopper pour savoir ce qui se passe. Sa manipulation est donc plus proche de celle d'un vélo crevé sans frein lancé dans une descente folle que de celle d'un moule à gâteau.

LE B.-A.-BA

Comme je vous le disais plus haut, sous Assembleur nous ne possédons pas de variable et encore moins d'instruction comme les « PRINT, LOCATE, CLS », etc. Il existe cependant les registres qui, en schématisant beaucoup, seront utilisés comme des variables. On les nomme AF, BC, HL, DE ainsi que IX et IY II existe quelques autres registres qui pour l'instant ne nous préoccuperont pas. Nous pouvons initialiser ces registres par des valeurs, comme HL = 1234ou DE = 6. Quelques autres opérations sont possibles, qui, malgré leur inutilité rendront de sacrés services aux programmeurs.

Un dernier détail, il existe quelque part en mémoire des routines déjà écrites qui peuvent être appelées. Cela étant le cas du fameux BB06 ou BB18 qui sont connus de tous les programmeurs Basic.

LES REGISTRES

Notez tout suite cette règle d'or dans votre petite tête. Toutes les opérations passeront par les registres. A savoir, HL, DE, AF, BC, IX et IY Notons que l'on nomme ce genre de registres, des registres 16 bits, pour la simple raison que l'on pourra leur attribuer une valeur allant de 0 à 65535 (soit &FFFF en hexa). Certains peuvent être coupés en deux et utilisés comme de simples registres 8 bits (avec des valeurs allant de 0 à 255, soit &FF en hexa ). Ces registres simples sont A, B, C, D, E, H et L.

Prenons un tout petit exemple. Pour attribuer une valeur à un registre, on utilise l'instruction (appelée également mnémonique) « LD » (prononcez LOAD).

LD BC,1234

LD A,65

Ce qui revient à l'équivalent Basic de BC = 1234 ou A = 65. Toute personne ayant eu le courage de se lancer dans l'Assembleur s'est un jour ou l'autre posé trois questions.

  1. A quoi servent ces registres et cornment trouver leur utilité ?
  2. Comment utilise-t-on les valeurs négatives ?
  3. Quelle est la personne charitable qui, à l'aide d'un exemple concret me démontrera l'écriture de mon premier programme Assembleur ?
  4. Comment utiliser les valeurs réelles (avec des virgules et plein de bébés à la suite. Exemple 12,45) ?

A QUATRE QUESTIONS QUATRE REPONSES

Commençons par la fin. Les âmes charitables se nomment Poum, Sined et Franck. Un programme Assembleur est toujours placé quelque part en mémoire de l'ordinateur et peut être appelé par un CALL à son adresse d'implantation. L'ensemble peut être considéré comme un sous-programme Basic (finissant par un RETURN). Le retour au point d'appel sous Assembleur est l'instruction « RET ». L'adresse d'implantation du programme est donnée dès le début du programme par l'instruction (je vous rappelle qu'en Assembleur les instructions sont en fait des mnémoniques) « ORG » comme ORiGine. Un exemple pour mieux comprendre.

ORG 40000
LD A,12
RET

Voici un programme qui ne fait rien (vous pensez bien, même sous Basic, A = 12 ne sert pas à grand-chose) mais qui a l'avantage d'être correct. Après assemblage, le contenu de la mémoire de l'ordinateur en 40000 sera remplacé par les codes de ce petit programme. On peut l'appeler à partir du Basic avec un CALL 40000 et retrouver aussi sec la main.

Pour la deuxième question. Il n'est pas évident d'expliquer d'emblée l'utilité des registres. Alors faisons-en doucement l'impasse ce mois-ci. Par contre, je peux vous donner un petit exemple en passant par les routines système. Eh oui, la mémoire de votre CPC est bourré de routines en tout genre comme les CLS, LOCATE, PRINT, PLOT, DRAW... Donc pas de prise de tête. On peut afficher, par exemple, un des caractères ASCII en appelant la routine placée en &BB5A (il va de soi que cette routine n'affiche pas une phrase mais un seul caractère). Exemple :

ORG 39000
LD A,65
CALL &BB5A
RET

Assemblez ce programme et lancez-le par un CALL 39000. Le résultat, le caractère Ascii 65 (le A majuscule) s'affiche à l'écran.

Vous constatez que le bon fonctionnement de cette routine dépend de la valeur placée dans l'Accumulateur. Il va de soi que la valeur 66 aurait affiché à l'écran le « B ».

Je dois vous parler d'une ambiguïté rencontrée par la quasi-totalité des nouveaux programmeurs sous Assembleur. Tout ces logiciels ne possèdent pas la même syntaxe. Pour définir des valeurs hexadécimales, par exemple. En Basic, on utilise le préfixe « & ». Il existe des Assembleurs qui codent les valeurs hexa avec ce « ô », d'autres avec des « # » et d'autres encore avec un « 0 » en début de la valeur et un « H » en fin de cette même valeur. De même, pour définir des valeurs sur un octet, on trouvera l'instruction DEFB ou DB. Idem pour les caractères Ascii, DEFM voire DM, etc. Alors sachez dans un premier temps reconnaître la syntaxe de votre Assembleur avant de nous appeler pour nous signaler un BUG dans nos listings.

NE SOYEZ PAS NEGATIF

Le troisième point noir sera le codage des valeurs négatives. Dans l'absolu, il n'existe pas de valeur négative en Assembleur ! Etrange, n'est-ce pas ? On peut, par contre, simuler la négation des chiffres. Pour comprendre cette logique suivez-moi de près.

Faisons notre exemple à l'aide d'un registre simple (8 bits), le registre A, appelé également l'Accumulateur ou l'Accu pour les intimes. Nous savons qu'il peut contenir un chiffre allant de 0 à 255. On place dans ce registre une valeur quelconque.

LD A,250

Si on additionne à ce registre la valeur 5, on aura comme résultat un petit 255 qui n'a rien demandé à personne.

ADD A,5

Vous avez remarqué avec quelle subtilité j'ai placé une deuxième instruction Assembleur sans en avoir l'air. Cela ne vous fait toujours pas comprendre le principe des valeurs négatives. Alors continuez à me suivre de plus près encore.
Deuxième étape, on ajoute la valeur 1 à cet ensemble (incrémenter l'accumulateur).

INC A

Et de trois. Cela aura, bien sûr, le même effet que ADD A,1. je vous disais plus haut qu'un registre simple ne pouvait accepter des valeurs supérieures à 255. Alors le 256 de l'Accu va tomber à l'eau ? Non, tout simplement il repassera à zéro. Pour mieux comprendre le principe, imaginez les chiffres utilisés dans la vie de tous les jours. Ajoutez à l'ensemble une petite restriction, à savoir que l'on ne peut lire que les trois premiers chiffres. Les nombres allant de 0 à 999 ne posent aucun problème ; par contre, 1234 sera lu comme 234. Ou, si vous préférez, 999 plus 1 sera égal à 0. Voici la vérité en Assembleur et c'est à partir de là que l'on peut comprendre les valeurs négatives sous Assembleur. En effet, si j'additionne le chiffre 1 à une valeur « A », et que le résultat de cette opération est zéro, il me paraît logique d'en déduire que cette valeur « A » était égale à -1. Non ? Vous venez de découvrir la première règle des valeurs négatives en Assembleur (celle qui paraît au premier abord la plus absurde). En effet, 255 peut être considéré comme -1 (sur 8 bits). De même 254 comme -2, 253 comme -3, 250 comme -6... Bref X comme -(256-X). Il faut noter qu'en travaillant sur 16 bits (double registre comme HL, BC, DE...), la limite n'est plus fixée à 255 mais à 65535. Donc LD HL,-123 ou LD HL,65413 est strictement identique car 65536-65413=-123

DERNIER POINT

Enfin, en se qui concerne les valeurs réelles, ne cherchez plus. Il est hors de question d'utiliser ce type de valeurs (même Logon ne l'utilise pas dans ses démos). Cela reste du domaine des matheux et ne nous intéresse pas outre mesure.

LES
COMMENTAIRES

Dans vos sources Assembleur, vous apprendrez rapidement à écrire plein de commentaires (l'équivalent des REM en Basic). En effet, rien n'est plus désagréable à suivre qu'un source sans commentaire. Sachez que la syntaxe des REM est tout autre que celle du Basic. Pour cela, il faudra utiliser les « ; » et tout ce qui suit ce point-virgule sera ignoré par l'ordinateur. Ainsi, plusieurs mois après avoir travaillé sur un source, vous n'aurez plus à comprendre le pourquoi du comment de votre logique lors de la programmation de ce dernier.

ASSEMBLEZ SOUFFLEZ

Le principe des Assembleurs est à deux nuances près toujours le même. Dans un premier temps, on lance le soft. Par une commande quelconque on entre dans l'éditeur de texte de l'Assembleur. On saisit le source. On quitte l'éditeur et sauve ce source sur disquette ou cassette. On assemble l'ensemble (transformation de vos mnémoniques en codes machine). On sauve la zone mémoire logeant le programme. Il ne vous reste plus qu'à exécuter le programme (soit en revenant sous Basic, loadant le binaire et lançant par un CALL, soit exécuter directement à partir de l'Assembleur si celui-ci le permet). ATTENTION. Avant de tester le bon fonctionnement de votre programme, sauvez toujours le source car la moindre erreur ne pardonnera pas et se traduira par un Reset de votre CPC et, du même coup, la perte de votre travail.

DE L'ASCII AU BINAIRE

Il ne me reste plus qu'à vous toucher deux mots sur la réaction de votre CPC tors de l'assemblage de vos sources. On peut considérer un source comme étant un fichier Ascii. En assemblant ce dernier, le soft codera vos bla-bla en code binaire (des valeurs allant de 0 à 255 Pokées en mémoire). Ainsi un RET sera transformé en 201 (&C9 en hexa), INC A en 60 (&3C), LD A,2 en 62 (&3E) suivi de 2. Vous constatez qu'une ligne Assembleur peut être transformée en une, deux, voire trois même quatre octets. Ne vous inquiétez pas, une instruction de cinq octets n'existe pas, qui plus est vous pouvez ignorer totalement cette métamorphose. Pour garder nos petits exemples, regardez ce qui suit.
Votre source

ORG 40000
LD A,12
INC A
CALL &BB5A
RET

Zone mémoire après assemblage

40000 &3E
40001 &02
40002 &3C
40003 &CD
40004 &5A
40005 &BB
40006 &C9

Voilà. Nous allons arrêter ici nos élucubrations, Le but que nous nous étions fixé pour ce mois est à moitié rempli. En effet, nous voulions, dans un premier

temps, vous présenter ce langage dit machine (sans pour autant rentrer dans les détails, ni même les grandes lignes). Il faudra maintenant vous parler du marché de logiciels Assembleur.

LES LOGICIELS EN FRANCE

Il fut une époque où les Assembleurs couraient les rues. On en trouvait à tous les carrefours. Allez savoir pourquoi, en 1991 ils ont quasiment tous disparu Adieu les Dams, les Pyradev et autre Devpac. Il ne restait plus, début 1991, que Maxam vendu chez Jessico et ADES d'Esat. Le comble de l'ironie est qu'en appelant les messieurs d'Esat pour s'informer de feurs produits, ils nous ont tout simplement dit qu'ADES allait disparaître de la circulation. Damned ! La France, avec sa superficie de 549 000 kilomètres carrés, plus de 56 millions d'habitants et quelques centaines de milliers de CPC... Et, pour ce beau monde, un seul Assembleur ? Trop c'est trop. Heureusement, suite à nos conversations, Esat décide avec grande sagesse l'abandon de ta mise au garage d'ADES. Ouf ! (comme quoi, on sert à quelque chose). Assembleur mis à part, notons qu'Esat propose un débuggeur que nous allons détailler plus loin.

MAXAM
UN POSTE PLUS
QUE COMPLET

Voici un outil qui ravira plus d'un de ses "utilisateurs. En effet, le logiciel Maxam est un assembleur, désassembleur, moniteur et éditeur de texte. Vous pouvez, dans un premier temps, charger une partie résidente en mémoire avec des commandes accessibles par des RSX. Ainsi, rien ne vous empêchera d'utiliser ce petit source assembleur dans vos propres programmes Basic. Une des RSX (ÙMAXAM) accède au menu de l'assembleur. On y trouve les points d'entrée pour l'éditeur de texte, le désassembleur, mapping de la mémoire de l'ordinateur, un sélecteur de Rom, un éditeur de mémoire, un outil permettant le déplacement de blocs mémoire, ainsi que la comparaison de deux zones mémoire.

En se branchant dans l'éditeur, un second menu vous donnera accès à l'édition pure et simple, chargement et sauvegarde de vos sources. Plein de petits gadgets vous seront proposés, comme la modification en bloc, l'ajustement des fabulations, la recherche de chaîne de caractères et l'utilisation de commandes extérieures (CAT, MODE...).

Maxam se distingue des autres Assembleurs par un point bien particulier. Ce dernier est disponible sur cassette (295 F) et disquette [349 F). Le plus amusant, et surtout le plus pratique, est la disponibilité de Maxam en ROM (au prix de 399 F). Il va de soi que pour utiliser le soft en Rom, vous devez posséder un boîtier de Rom, Romboard (disponible également chez Jessico au prix de 349 F). Imaginez, le pied total ! Aucun RESTE n'effacera le soft de la mémoire ; il sera toujours prêt à être lancé. Après un RESTE, vous aurez le grand plaisir de voir un petit message suivant le classique d'Amstrad vous indiquant la présence d'une ROM supplémentaire.

MEGA-FORM LE RESCAPE

Sous ce nom, se cache ADES. Il va de soi qu'il sera remis au goût du jour (le programme comme le manuel l'accompagnant) et rendu également « full compatible » avec les CPC+. Voyons de plus près ce qu'ADES cache dans son ventre. Le soft comprend trois options. L'éditeur de texte, l'Assembleur et le moniteur-désassembleur. Comme son nom l'indique, l'éditeur de texte sert à la saisie de vos codes source. Il comprend diverses options comme la visualisation de labels ou la recherche de ces derniers. Un bon nombre d'options dites classique « List, Catalogue, Renumérotation des lignes... » sont également disponibles. Le gros avantage de cet éditeur est la vérification automatique de vos sources. Ainsi, vous ne pourrez saisir un LA A.12 (au lieu de LD A.12). Dans cet éditeur, on travaille avec des numéros de ligne (comme en Basic).

La deuxième partie de Mega-Form est son Assembleur. Il suffit de l'appeler pour assembler le source saisi à l'aide de l'éditeur. Bien sûr, tous les messages d'erreur seront énumérés lors de l'assemblage.

La troisième option est le moniteur-désassembleur. Ici, nous nous approchons de ce fabuleux logiciel qu'était Dams. En effet, vous pouvez voir tous les codes désassemblés de vos sources (ou, si le Cœur vous en dit, de la mémoire ou des Rom), maïs en plus, vous pouvez tracer un programme. Le mode Trace permet d'exécuter un programme pas à pas. Vous pourrez dès lors suivre l'exécution de vos programmes en gardant un œil sur tous les registres. Si vous êtes complètement débutant vous ne pouvez vous douter de l'intérêt d'une telle option mais, croyez-moi, le goûter c'est l'adopter (imaginez la commande TRON-TROFF du Basic améliorée cent fois). Un dernier détail en ce qui concerne MegaForm, son prix, il sera de 190 F, version disquette et sera disponible courant avril 1991.

MEGA-DEBUGG UN LOOK PC

Il existe des outils, autres que les assembleurs, qui peuvent toujours avoir une place dans la logithèque des programmeurs. Mega-Debugg fait partie de ce lot. Il s'agit, en fait, de Debugg d'Esat, remis à jour comme son inséparable ADES. Tournant sur 6128 uniquement, il sera logé dans les 64 Ko supplémentaires des banks et ne touchera, en aucun cas, aux programmes placés dans la mémoire de l'ordinateur (notons que Mega-Debugg utilise les routines système pour les accès disque, donc pas touche du côté de quelques vecteurs).

Le logiciel reconnaît les instructions cachées du Z80 et travaille également avec les semi-registres XH, XL, YH et YL (sachez aussi que ces registres ne sont en général pas utilisés par les assembleurs).

Avec cet oUTIL, vous pourrez désassembler vos programmes, les exécuter où bon vous semble. Vous aurez la possibilité de rechercher des chaînes d'octets (très utilisées pour les recherches de vies infinies), sortir sur imprimante des blocs de la mémoire de votre ordinateur et appliquer des opérations logiques à des zones mémoire. Le point fort pour trouver vos bugs est l'exécution pas à pas de vos routines tout en suivant de près les valeurs des différents registres du Z80. Vous aurez, à travers Mega-Debugg, la possibilité de visualiser les registres du CRTC (pratique pour les écrans reformatés et, qui sait, overscane).

Mega-Debugg possède une bonne trentaine de commandes. Nous avons vu ensemble les principales. Sachez tout de même que vous pouvez sauver ou charger des blocs, formater des secteurs, lire ces mêmes secteurs, rechercher des pistes, etc.

Débugg est disponible chez les bons bouchers au prix de 190 F.

UN REGARD VERS L'AVENIR

Vous constatez comme nous que le marché de l'Assembleur est plus que pauvre. Pour la petite histoire, sachez que, suite à la préparation de ce dossier, Esat prit la décision de ne pas mettre hors service ses deux logiciels et que Micro Application va enfin suivre nos conseils en remettant, d'une façon ou d'une autre, Dams dans le circuit des revendeurs (c'est ce que l'on appelle un scoop). En attendant, vous aurez la sagesse de vous contenter des quelques miettes que ces messieurs les éditeurs ont bien voulu nous laisser. Pour le moment je passe la parole à Sined pour qu'il vous touche, avant même sa réapparition, deux mots sur Dams.

DAMS
THE BEST OF

Que dire de cet assembleur si ce n'est qu'il est le plus utilisé par tous les grands, et depuis bien longtemps. Demandez aux Logon System ce qu'ils en pensent. Je suis sûr qu'ils vous répondront que c'est le meilleur et qu'ils en ont même des versions à la mords-moi le ce-que-je-pense. En Ram, en Rom, dans les banques, il est stockante partout puisqu'il ne fait que 12 Ko. Il lui faut aussi malheureusement en disposer en mémoire centrale lors de son fonctionnement, mais ce n'est pas bien méchant vu le nombre de services qu'il peut rendre. Comme il est totalement intégré, vous avez - après chargement discret relogeable et rapide - un éditeur-assembleur copieusement assaisonné d'un moniteur-désassembleur. Que demande le peuple ? Dams ne vous en coûte ma bonne dame.

AH ! SANS BLAGUES

L'éditeur est assez étrange au premier abord puisqu'il ne fonctionne qu'en mode ligne. Sous moniteur, « L » permet de passer à la construction du source. J'ai vu bien des utilisateurs déconcertés alors par la page noire qui apparaît sous leurs yeux ébahis. Il suffit pourtant simplement de presser sur « flèche droite » pour entrer dans la première ligne vide. Un petit retour chariot pour valider, et on se retrouve en mode sélection de ligne. Flèche droite pour éditer et flèche gauche pour insérer, c'est pourtant pas sorcier ! Le source écrit, deux pressions sur la touche entrée suffisent à revenir au mode moniteur d'où il est possible d'assembler par « A », de charger des sources par « G » comme GET et de les sauver par « P » comme PUT. Pour renommer un source, c'est très simple tapez, par exemple :

G LATINE
P DALO

et le tour est joué. La commande « X » est aussi très utile puisqu'elle permet de visualiser les labels ainsi que leurs adresses. On ne sait jamais, cela peut servir. Tous ces ordres peuvent être suivis d'une valeur oscillant entre 0 et 2, ce qui change leurs effets. « P2,NOM » ne sauve pas le source mais plutôt le binaire généré par l'assemblage. Essayez vous-même.

MON IDOLE

En ce qui concerne le moniteur, il n'y a rien à redire. C'est le plus puissant et le plus souple que j'aie pu utiliser sur CPC. « D » pour désassembler, « K » pour dumper, «T» pour tracer pas à pas, « R » pour tracer de manière rapide jusqu'à ce qu'une adresse sot dépliée ou que la pile ne soit saturée... Pour chacune de ces commandes, il est possible de passer en paramètre mais sans espace, un label du source assemblé ou bien une adresse décimale ou hexadécimale si elle est précédée du signe « # ». Lorsqu'un de ces ordres est actif, la seule manière d'en sortir est de presser la touche « Q» mais surtout pas « Esc » qui a une fâcheuse tendance à troubler cet outil suprême qu'est Dams. Il est, je pense, inutile de vous parler des commandes de contrôle qui permettent de changer de base (Contrôle B) de ROM basse en Ram (Contrôle R) et de ROM haute en mémoire vive (Contrôle E). En parlant de cela, « E » suivi d'un chiffre permet de changer de ROM (E7 active la ROM de l'Amsdos). Je vous sens déjà craquer, mais ce n'est pas fini.

LA JE MEURS

La plus formidable des commandes est sans aucun doute « H », qui suivie d'une adresse permet de prendre un morceau de programme en Ram ou en ROM pour l'intégrer au source. Fabuleux ! Vous vous positionnez, par exemple, sur la Rom, par les ordres cités ci-dessus, vous lancez H en le faisant suivre d'une adresse et il ne reste plus qu'à donner les adresses suivantes où le programme sera coupé par des données stockées sous forme de DB, puis où le code reprend, etc. Dans le source, les étiquettes relatives commencent par un R, ce qui permet de les différencier des autres. C'est monstrueux ! Essayez, vous n'en reviendrez pas.

CI-GIT DAMS

Ce super outil relogeable n'a que très peu de défauts et c'est réellement un plaisir de travailler avec lui. Il est vraiment dommage que la société Micro Application, du haut de ses machines 16 bits, ne veuille pas nous remettre ce fantastique produit sur le marché. Si un jour vous ne savez pas quoi faire, donnez une petite minute de silence au nom de Dams, il le mérite... De loin l'Assembleur le Meilleur Sur CPC.

Poum et Sined , ACPC n°35 Mars91

Page précédente : Bidouilles ACPC n°34 - Banques de mémoire

★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

Lien(s):
» Coding » Assembleur ACPC n°24
» Coding » Bidouilles ACPC n°31 - RSX
» Coding » Bidouilles ACPC n°15 - Les secrets du GATE ARRAY (2/2)
» Coding » Bidouilles ACPC n°39 - Gestion directe du FDC 765
» Coding » Assembleur ACPC n 05 - Initiation
» Coding » Assembleur ACPC n°31 - La femme au scroll infame
Je participe au site:

» Vous avez remarqué une erreur dans ce texte ?
» Aidez-nous à améliorer cette page : en nous contactant via le forum ou par email.

CPCrulez[Content Management System] v8.7-desktop/c
Page créée en 156 millisecondes et consultée 5137 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.