{"id":641,"date":"2023-04-12T21:12:06","date_gmt":"2023-04-12T19:12:06","guid":{"rendered":"https:\/\/mo5.com\/micral\/?p=641"},"modified":"2023-04-12T21:13:53","modified_gmt":"2023-04-12T19:13:53","slug":"avancees-sur-l-emulateur","status":"publish","type":"post","link":"http:\/\/mo5.com\/en\/avancees-sur-l-emulateur\/","title":{"rendered":"Progress on the Micral N emulator"},"content":{"rendered":"<p><em>By Sylvain Glaize.<\/em><\/p>\n<p>The Micral N is up and running. Once the emotions were over, a mixture of relief and joy, it was time to check whether the emulator behaved like the real machine. Particularly on unclear points in the documentation, which could lead to several interpretations.<\/p>\n<p>This was the case, for example, with the use of front switches\". <strong>AV<\/strong> \"and <strong>SUB<\/strong> \". How exactly do they behave? By putting the machine in a known state after a sequence of manipulations prepared beforehand on the emulator, it is possible to remove any doubts.<\/p>\n<div id=\"attachment_20503\" style=\"width: 429px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-20503\" class=\"wp-image-20503 size-full\" title=\"Micral N FrontPanel SUB AV\" src=\"https:\/\/mo5.com\/wp-content\/uploads\/2023\/01\/Micral-N-FrontPanel-SUB-AV.png\" alt=\"Micral N Front Panel avec les boutons SUB et AV\" width=\"419\" height=\"177\" srcset=\"https:\/\/mo5.com\/wp-content\/uploads\/2023\/01\/Micral-N-FrontPanel-SUB-AV.png 419w, https:\/\/mo5.com\/wp-content\/uploads\/2023\/01\/Micral-N-FrontPanel-SUB-AV-18x8.png 18w, https:\/\/mo5.com\/wp-content\/uploads\/2023\/01\/Micral-N-FrontPanel-SUB-AV-300x127.png 300w\"  sizes=\"(max-width: 419px) 100vw, 419px\" \/><p id=\"caption-attachment-20503\" class=\"wp-caption-text\">Control buttons on the panel, with SUB and AV<\/p><\/div>\n<p>After a few adjustments, it is possible to perform the same operations in parallel on the real machine and its digital replica to confirm that both behave visibly in the same way.<\/p>\n<p>By following the addresses displayed on the control panel, it is possible to enter the sequence used to enter the monitor (the ROM program used to manage certain machine operations), and check that the sequence of addresses and data displayed correspond to those expected when you are in the monitor.<\/p>\n<p>So it's time to move on to the next stage, and to do that, we need to make progress on the emulator. The machine launches, but we still don't have any input\/output, and there's still the mystery of the boot ROM: what exactly does it do?<\/p>\n<h2>ROM and Mystery Card<\/h2>\n<p>Whether it's the real Micral N or the emulator, they have the same start-up behaviour: after a brief moment, the machine stops on a <strong>HLT<\/strong>.<\/p>\n<p>Having already analysed the ROM, this is not very surprising: it seems to establish a dialogue with a board in the machine by sending it signals and waiting for responses. These responses are read from one of the two 'stack\/channel' cards, which can act as buffers.<\/p>\n<p><a href=\"https:\/\/mo5.com\/en\/les-cartes-electroniques-du-micral-n-de-lassociation-mo5\/\">These \"pile\/channel\" cards<\/a> are important for the operation of the Micral N, although technically not essential. These memory cards interface on one side with the PLURIBUS, and therefore with the rest of the machine. On the other, they can be connected to another card for direct communication, independent of the processor. In \"stack\" mode, the card behaves like a computer stack: whatever is written last in the memory is read first (LIFO); in \"channel\" mode, data is read starting with the oldest data written (FIFO).<\/p>\n<p>The emulator already manages the 'stack' mode of these cards, because the program in the monitor ROM uses one of them as auxiliary memory, in addition to RAM. This was one of the first parts to be emulated and made functional. But it seems that this second card is used in its 'channel' world and, above all, it seems that it must receive data from a peripheral.<\/p>\n<div id=\"attachment_20508\" style=\"width: 709px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-20508\" class=\"wp-image-20508 size-full\" title=\"20230409 MicralN ChannelCard emulation\" src=\"https:\/\/mo5.com\/wp-content\/uploads\/2023\/04\/20230409-MicralN-Emulation-CarteCanal.png\" alt=\"20230409 MicralN Emulation CarteCanal\" width=\"699\" height=\"346\" srcset=\"https:\/\/mo5.com\/wp-content\/uploads\/2023\/04\/20230409-MicralN-Emulation-CarteCanal.png 699w, https:\/\/mo5.com\/wp-content\/uploads\/2023\/04\/20230409-MicralN-Emulation-CarteCanal-300x148.png 300w\"  sizes=\"(max-width: 699px) 100vw, 699px\" \/><p id=\"caption-attachment-20508\" class=\"wp-caption-text\">Viewing the memory of a channel\/stack card in the emulator (256 bytes)<\/p><\/div>\n<p>As it receives nothing, the ROM quickly stops.<\/p>\n<p>So we're looking for this peripheral: what is it? It's an input device, but is it a punched tape, a floppy drive, something else?<\/p>\n<p>Once again, the emulator makes it possible to test things without the hardware. Since the card needs to receive data, let's send it data from nowhere. A random sequence, for example, but exactly the number expected by the ROM.<\/p>\n<p>And that takes things even further. This time, the emulator no longer freezes on start-up. However, if the execution of the machine is not stopped, the ROM runs in circles and returns the same sequences.<\/p>\n<p>The study showed that there was a checksum calculation. And this sum is obviously wrong, which is to be expected if you send anything.<\/p>\n<p>The emulator is modified to send the expected checksum. Suddenly, the emulator starts loading data into RAM.<\/p>\n<div id=\"attachment_20513\" style=\"width: 193px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-20513\" class=\"wp-image-20513 size-full\" title=\"20230409 MicralN Emulation Disk\" src=\"https:\/\/mo5.com\/wp-content\/uploads\/2023\/04\/20230409-MicralN-Emulation-Disque.gif\" alt=\"20230409 MicralN Emulation Disque\" width=\"183\" height=\"141\" \/><p id=\"caption-attachment-20513\" class=\"wp-caption-text\">Emulated disc playback.<\/p><\/div>\n<p>By analysing the signals sent and expected to and from the card, the hypothesis of a floppy disk drive emerges. What the ROM loads are sectors. We even have a very good candidate for the model.<\/p>\n<p>But above all, it gives us the information we need to configure 'Pauline', the disk emulator designed by Jean-Fran\u00e7ois. So I wrote a few programs that could be sent to the real machine for demonstration, which I could then fine-tune on the emulator.<\/p>\n<div id=\"attachment_20511\" style=\"width: 510px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-20511\" class=\"wp-image-20511 size-full\" title=\"20230409 MicralN Emulation Chenillard\" src=\"https:\/\/mo5.com\/wp-content\/uploads\/2023\/04\/20230409-MicralN-Emulation-Chenillard.gif\" alt=\"20230409 MicralN Emulation Chenillard\" width=\"500\" height=\"159\" \/><p id=\"caption-attachment-20511\" class=\"wp-caption-text\">Tracker on the control panel.<\/p><\/div>\n<h2>But how is it connected?<\/h2>\n<p>Before you can connect the disk emulator, you need to know how these cards are connected to each other. The connections to the peripherals and between the controller card and the 'channel' card are made on the opposite side of the board. <strong>PLURIBUS<\/strong>And this side is not standardised. And we don't have the documentation, nor the cables, which will have to be rebuilt.<\/p>\n<p>Back to the emulator. When I say that we don't have any documentation, that's not quite true. There is information in the user manual, but it's incomplete and sometimes inconsistent between the diagrams and the text.<\/p>\n<p>By making virtual connections in the emulator, studying the scans of the cards to trace the tracks, the connection diagram gradually takes shape, until we're finally sure of ourselves.<\/p>\n<h2>The serial card<\/h2>\n<p>Similar work is done for the serial I\/O card, which is used through a generic I\/O card in the Micral N.<\/p>\n<p>Once again, a few trips back and forth between the scans of the cards, the (again imprecise) documentation and the emulator enabled us to come up with a diagram that we are certain of.<\/p>\n<p>With everything you need to interact with the Micral N via the serial port and load a program into RAM, it's time to get down to business.<\/p>\n<div id=\"attachment_20515\" style=\"width: 556px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-20515\" class=\"wp-image-20515 size-full\" title=\"20230409 MicralN Emulation OutputTTY\" src=\"https:\/\/mo5.com\/wp-content\/uploads\/2023\/04\/20230409-MicralN-Emulation-SortieTTY.png\" alt=\"20230409 MicralN Emulation SortieTTY\" width=\"546\" height=\"174\" srcset=\"https:\/\/mo5.com\/wp-content\/uploads\/2023\/04\/20230409-MicralN-Emulation-SortieTTY.png 546w, https:\/\/mo5.com\/wp-content\/uploads\/2023\/04\/20230409-MicralN-Emulation-SortieTTY-300x96.png 300w\"  sizes=\"(max-width: 546px) 100vw, 546px\" \/><p id=\"caption-attachment-20515\" class=\"wp-caption-text\">Release of a programme written specifically to test the Micral N.<\/p><\/div>\n<p>Don't forget to take part in the campaign to support our work!<a href=\"https:\/\/micral.mo5.com\"> https:\/\/micral.mo5.com<\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>Par Sylvain Glaize. Le Micral N est en \u00e9tat de marche. Pass\u00e9es les \u00e9motions, m\u00e9lange de soulagement et de joie, il est temps de v\u00e9rifier si l&#8217;\u00e9mulateur se comporte comme la machine r\u00e9elle. Particuli\u00e8rement sur des points peu clairs de la documentation, qui pouvaient amener \u00e0 plusieurs interpr\u00e9tations. C&#8217;\u00e9tait le cas par exemple de l&#8217;utilisation des interrupteurs de fa\u00e7ade \u00ab AV \u00bb et \u00ab SUB \u00bb. Comment se comportent-ils exactement ? En mettant la machine dans un \u00e9tat connu apr\u00e8s une s\u00e9quence de manipulations pr\u00e9par\u00e9es auparavant sur l&#8217;\u00e9mulateur, il est possible de lever les doutes. Apr\u00e8s quelques ajustements, il est possible de faire en parall\u00e8le les m\u00eames op\u00e9rations sur la v\u00e9ritable machine et son replica num\u00e9rique pour confirmer que les deux se comportent visiblement de la m\u00eame mani\u00e8re. Uniquement en suivant les adresses affich\u00e9es sur le panneau de contr\u00f4le, il est alors possible d&#8217;entrer la s\u00e9quence qui permet d&#8217;enter dans le moniteur (le programme en ROM permettant de g\u00e9rer certaines op\u00e9rations de la machine), et constater que la s\u00e9quence des adresses et donn\u00e9es qui s&#8217;affichent correspondent bien \u00e0 celles pr\u00e9vues lorsqu&#8217;on se trouve dans le moniteur. Il est donc temps de passer \u00e0 l&#8217;\u00e9tape suivante, et pour cela, il faut avancer sur l&#8217;\u00e9mulateur. En effet, la machine se lance mais nous n&#8217;avons encore pas d&#8217;entr\u00e9e\/sortie et il reste toujours le myst\u00e8re de la ROM de boot : que fait-elle exactement ? La ROM et la Carte Myst\u00e8re Que ce soit le v\u00e9ritable Micral N ou l&#8217;\u00e9mulateur, ils ont le m\u00eame comportement au d\u00e9marrage : apr\u00e8s un bref instant, la machine s&#8217;arr\u00eate sur une instruction HLT. Ayant d\u00e9j\u00e0 analys\u00e9 la ROM, ce n&#8217;est pas tr\u00e8s \u00e9tonnant : celle-ci semble \u00e9tablir un dialogue avec une carte de la machine en lui envoyant des signaux et en attendant des r\u00e9ponses. Ces r\u00e9ponses sont lues sur l&#8217;une des deux cartes \u00ab pile\/canal \u00bb, qui peuvent agir en tant que m\u00e9moires tampons. Ces cartes \u00ab pile\/canal \u00bb sont importantes pour le fonctionnement du Micral N, m\u00eame si techniquement pas indispensables. Ce sont des cartes m\u00e9moire qui s&#8217;interfacent d&#8217;un c\u00f4t\u00e9 au PLURIBUS, et donc au reste de la machine. De l&#8217;autre c\u00f4t\u00e9, elles peuvent \u00eatre reli\u00e9es \u00e0 une autre carte pour une communication directe, ind\u00e9pendante du processeur. En mode \u00ab pile \u00bb, la carte se comporte comme une pile informatique : ce qui est \u00e9crit en dernier dans la m\u00e9moire est lu en premier (LIFO) ; en mode \u00ab canal \u00bb, on lit les donn\u00e9es en commen\u00e7ant par les plus anciennes \u00e0 y avoir \u00e9t\u00e9 \u00e9crites (FIFO). L&#8217;\u00e9mulateur g\u00e8re d\u00e9j\u00e0 le mode \u00ab pile \u00bb de ces cartes, car le programme pr\u00e9sent sur la ROM du moniteur en utilise une comme m\u00e9moire auxiliaire, en plus de la RAM. Cela faisait partie des premi\u00e8res parties \u00e9mul\u00e9es et fonctionnelles. Mais il semble que cette seconde carte soit utilis\u00e9e dans son monde \u00ab canal \u00bb et surtout, il semble qu&#8217;elle doive recevoir des donn\u00e9es d&#8217;un p\u00e9riph\u00e9rique. Comme elle ne re\u00e7oit rien, la ROM s&#8217;arr\u00eate rapidement. Nous sommes donc \u00e0 la recherche de ce p\u00e9riph\u00e9rique : quel est-il ? C&#8217;est un p\u00e9riph\u00e9rique d&#8217;entr\u00e9e, mais est-ce un ruban perfor\u00e9, un lecteur [&hellip;]<\/p>\n","protected":false},"author":329,"featured_media":20503,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"give_campaign_id":0,"footnotes":""},"categories":[1485,1502],"tags":[],"class_list":["post-641","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-micral","category-programmation"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Avanc\u00e9es sur l&#039;\u00e9mulateur du Micral N - MO5.COM<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/mo5.com\/en\/avancees-sur-l-emulateur\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Avanc\u00e9es sur l&#039;\u00e9mulateur du Micral N - MO5.COM\" \/>\n<meta property=\"og:description\" content=\"Par Sylvain Glaize. Le Micral N est en \u00e9tat de marche. Pass\u00e9es les \u00e9motions, m\u00e9lange de soulagement et de joie, il est temps de v\u00e9rifier si l&#8217;\u00e9mulateur se comporte comme la machine r\u00e9elle. Particuli\u00e8rement sur des points peu clairs de la documentation, qui pouvaient amener \u00e0 plusieurs interpr\u00e9tations. C&#8217;\u00e9tait le cas par exemple de l&#8217;utilisation des interrupteurs de fa\u00e7ade \u00ab AV \u00bb et \u00ab SUB \u00bb. Comment se comportent-ils exactement ? En mettant la machine dans un \u00e9tat connu apr\u00e8s une s\u00e9quence de manipulations pr\u00e9par\u00e9es auparavant sur l&#8217;\u00e9mulateur, il est possible de lever les doutes. Apr\u00e8s quelques ajustements, il est possible de faire en parall\u00e8le les m\u00eames op\u00e9rations sur la v\u00e9ritable machine et son replica num\u00e9rique pour confirmer que les deux se comportent visiblement de la m\u00eame mani\u00e8re. Uniquement en suivant les adresses affich\u00e9es sur le panneau de contr\u00f4le, il est alors possible d&#8217;entrer la s\u00e9quence qui permet d&#8217;enter dans le moniteur (le programme en ROM permettant de g\u00e9rer certaines op\u00e9rations de la machine), et constater que la s\u00e9quence des adresses et donn\u00e9es qui s&#8217;affichent correspondent bien \u00e0 celles pr\u00e9vues lorsqu&#8217;on se trouve dans le moniteur. Il est donc temps de passer \u00e0 l&#8217;\u00e9tape suivante, et pour cela, il faut avancer sur l&#8217;\u00e9mulateur. En effet, la machine se lance mais nous n&#8217;avons encore pas d&#8217;entr\u00e9e\/sortie et il reste toujours le myst\u00e8re de la ROM de boot : que fait-elle exactement ? La ROM et la Carte Myst\u00e8re Que ce soit le v\u00e9ritable Micral N ou l&#8217;\u00e9mulateur, ils ont le m\u00eame comportement au d\u00e9marrage : apr\u00e8s un bref instant, la machine s&#8217;arr\u00eate sur une instruction HLT. Ayant d\u00e9j\u00e0 analys\u00e9 la ROM, ce n&#8217;est pas tr\u00e8s \u00e9tonnant : celle-ci semble \u00e9tablir un dialogue avec une carte de la machine en lui envoyant des signaux et en attendant des r\u00e9ponses. Ces r\u00e9ponses sont lues sur l&#8217;une des deux cartes \u00ab pile\/canal \u00bb, qui peuvent agir en tant que m\u00e9moires tampons. Ces cartes \u00ab pile\/canal \u00bb sont importantes pour le fonctionnement du Micral N, m\u00eame si techniquement pas indispensables. Ce sont des cartes m\u00e9moire qui s&#8217;interfacent d&#8217;un c\u00f4t\u00e9 au PLURIBUS, et donc au reste de la machine. De l&#8217;autre c\u00f4t\u00e9, elles peuvent \u00eatre reli\u00e9es \u00e0 une autre carte pour une communication directe, ind\u00e9pendante du processeur. En mode \u00ab pile \u00bb, la carte se comporte comme une pile informatique : ce qui est \u00e9crit en dernier dans la m\u00e9moire est lu en premier (LIFO) ; en mode \u00ab canal \u00bb, on lit les donn\u00e9es en commen\u00e7ant par les plus anciennes \u00e0 y avoir \u00e9t\u00e9 \u00e9crites (FIFO). L&#8217;\u00e9mulateur g\u00e8re d\u00e9j\u00e0 le mode \u00ab pile \u00bb de ces cartes, car le programme pr\u00e9sent sur la ROM du moniteur en utilise une comme m\u00e9moire auxiliaire, en plus de la RAM. Cela faisait partie des premi\u00e8res parties \u00e9mul\u00e9es et fonctionnelles. Mais il semble que cette seconde carte soit utilis\u00e9e dans son monde \u00ab canal \u00bb et surtout, il semble qu&#8217;elle doive recevoir des donn\u00e9es d&#8217;un p\u00e9riph\u00e9rique. Comme elle ne re\u00e7oit rien, la ROM s&#8217;arr\u00eate rapidement. Nous sommes donc \u00e0 la recherche de ce p\u00e9riph\u00e9rique : quel est-il ? C&#8217;est un p\u00e9riph\u00e9rique d&#8217;entr\u00e9e, mais est-ce un ruban perfor\u00e9, un lecteur [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/mo5.com\/en\/avancees-sur-l-emulateur\/\" \/>\n<meta property=\"og:site_name\" content=\"MO5.COM\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/pages\/Association-MO5COM\/9540357570\" \/>\n<meta property=\"article:published_time\" content=\"2023-04-12T19:12:06+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-04-12T19:13:53+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/mo5.com\/wp-content\/uploads\/2023\/01\/Micral-N-FrontPanel-SUB-AV.png\" \/>\n\t<meta property=\"og:image:width\" content=\"419\" \/>\n\t<meta property=\"og:image:height\" content=\"177\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Sylvain Glaize\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@assomo5\" \/>\n<meta name=\"twitter:site\" content=\"@assomo5\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Sylvain Glaize\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/mo5.com\\\/avancees-sur-l-emulateur\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/mo5.com\\\/avancees-sur-l-emulateur\\\/\"},\"author\":{\"name\":\"Sylvain Glaize\",\"@id\":\"https:\\\/\\\/mo5.com\\\/#\\\/schema\\\/person\\\/e2593639b2e77eace001e56b26086749\"},\"headline\":\"Avanc\u00e9es sur l&#8217;\u00e9mulateur du Micral N\",\"datePublished\":\"2023-04-12T19:12:06+00:00\",\"dateModified\":\"2023-04-12T19:13:53+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/mo5.com\\\/avancees-sur-l-emulateur\\\/\"},\"wordCount\":1187,\"publisher\":{\"@id\":\"https:\\\/\\\/mo5.com\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/mo5.com\\\/avancees-sur-l-emulateur\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/mo5.com\\\/wp-content\\\/uploads\\\/2023\\\/01\\\/Micral-N-FrontPanel-SUB-AV.png\",\"articleSection\":[\"Micral\",\"Programmation\"],\"inLanguage\":\"en-GB\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/mo5.com\\\/avancees-sur-l-emulateur\\\/\",\"url\":\"https:\\\/\\\/mo5.com\\\/avancees-sur-l-emulateur\\\/\",\"name\":\"Avanc\u00e9es sur l'\u00e9mulateur du Micral N - MO5.COM\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/mo5.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/mo5.com\\\/avancees-sur-l-emulateur\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/mo5.com\\\/avancees-sur-l-emulateur\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/mo5.com\\\/wp-content\\\/uploads\\\/2023\\\/01\\\/Micral-N-FrontPanel-SUB-AV.png\",\"datePublished\":\"2023-04-12T19:12:06+00:00\",\"dateModified\":\"2023-04-12T19:13:53+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/mo5.com\\\/avancees-sur-l-emulateur\\\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/mo5.com\\\/avancees-sur-l-emulateur\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/mo5.com\\\/avancees-sur-l-emulateur\\\/#primaryimage\",\"url\":\"https:\\\/\\\/mo5.com\\\/wp-content\\\/uploads\\\/2023\\\/01\\\/Micral-N-FrontPanel-SUB-AV.png\",\"contentUrl\":\"https:\\\/\\\/mo5.com\\\/wp-content\\\/uploads\\\/2023\\\/01\\\/Micral-N-FrontPanel-SUB-AV.png\",\"width\":419,\"height\":177,\"caption\":\"Les boutons de contr\u00f4le sur le panneau, avec SUB et AV\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/mo5.com\\\/avancees-sur-l-emulateur\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/mo5.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Avanc\u00e9es sur l&#8217;\u00e9mulateur du Micral N\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/mo5.com\\\/#website\",\"url\":\"https:\\\/\\\/mo5.com\\\/\",\"name\":\"MO5.COM\",\"description\":\"Pr\u00e9server, explorer, rejouer\",\"publisher\":{\"@id\":\"https:\\\/\\\/mo5.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/mo5.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/mo5.com\\\/#organization\",\"name\":\"Association MO5.COM\",\"url\":\"https:\\\/\\\/mo5.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/mo5.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/mo5.com\\\/wp-content\\\/uploads\\\/2023\\\/10\\\/Logo_MO5_A_Colo_Texte_Bleu-e1697059504554.png\",\"contentUrl\":\"https:\\\/\\\/mo5.com\\\/wp-content\\\/uploads\\\/2023\\\/10\\\/Logo_MO5_A_Colo_Texte_Bleu-e1697059504554.png\",\"width\":2094,\"height\":559,\"caption\":\"Association MO5.COM\"},\"image\":{\"@id\":\"https:\\\/\\\/mo5.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/pages\\\/Association-MO5COM\\\/9540357570\",\"https:\\\/\\\/x.com\\\/assomo5\",\"http:\\\/\\\/www.instagram.com\\\/assomo5\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UCRncMsBo89C9u_8gpWnsOVw\\\/featured\",\"https:\\\/\\\/bsky.app\\\/profile\\\/assomo5.bsky.social\",\"https:\\\/\\\/twitch.tv\\\/mo5assoretro\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/mo5.com\\\/#\\\/schema\\\/person\\\/e2593639b2e77eace001e56b26086749\",\"name\":\"Sylvain Glaize\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/c57fffe6046f79130765edc0cc15c31865aef60892197deca86f5c61d3f2261b?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/c57fffe6046f79130765edc0cc15c31865aef60892197deca86f5c61d3f2261b?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/c57fffe6046f79130765edc0cc15c31865aef60892197deca86f5c61d3f2261b?s=96&d=mm&r=g\",\"caption\":\"Sylvain Glaize\"},\"url\":\"http:\\\/\\\/mo5.com\\\/en\\\/author\\\/mokona78\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Progress on the Micral N emulator - MO5.COM","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/mo5.com\/en\/avancees-sur-l-emulateur\/","og_locale":"en_GB","og_type":"article","og_title":"Avanc\u00e9es sur l'\u00e9mulateur du Micral N - MO5.COM","og_description":"Par Sylvain Glaize. Le Micral N est en \u00e9tat de marche. Pass\u00e9es les \u00e9motions, m\u00e9lange de soulagement et de joie, il est temps de v\u00e9rifier si l&#8217;\u00e9mulateur se comporte comme la machine r\u00e9elle. Particuli\u00e8rement sur des points peu clairs de la documentation, qui pouvaient amener \u00e0 plusieurs interpr\u00e9tations. C&#8217;\u00e9tait le cas par exemple de l&#8217;utilisation des interrupteurs de fa\u00e7ade \u00ab AV \u00bb et \u00ab SUB \u00bb. Comment se comportent-ils exactement ? En mettant la machine dans un \u00e9tat connu apr\u00e8s une s\u00e9quence de manipulations pr\u00e9par\u00e9es auparavant sur l&#8217;\u00e9mulateur, il est possible de lever les doutes. Apr\u00e8s quelques ajustements, il est possible de faire en parall\u00e8le les m\u00eames op\u00e9rations sur la v\u00e9ritable machine et son replica num\u00e9rique pour confirmer que les deux se comportent visiblement de la m\u00eame mani\u00e8re. Uniquement en suivant les adresses affich\u00e9es sur le panneau de contr\u00f4le, il est alors possible d&#8217;entrer la s\u00e9quence qui permet d&#8217;enter dans le moniteur (le programme en ROM permettant de g\u00e9rer certaines op\u00e9rations de la machine), et constater que la s\u00e9quence des adresses et donn\u00e9es qui s&#8217;affichent correspondent bien \u00e0 celles pr\u00e9vues lorsqu&#8217;on se trouve dans le moniteur. Il est donc temps de passer \u00e0 l&#8217;\u00e9tape suivante, et pour cela, il faut avancer sur l&#8217;\u00e9mulateur. En effet, la machine se lance mais nous n&#8217;avons encore pas d&#8217;entr\u00e9e\/sortie et il reste toujours le myst\u00e8re de la ROM de boot : que fait-elle exactement ? La ROM et la Carte Myst\u00e8re Que ce soit le v\u00e9ritable Micral N ou l&#8217;\u00e9mulateur, ils ont le m\u00eame comportement au d\u00e9marrage : apr\u00e8s un bref instant, la machine s&#8217;arr\u00eate sur une instruction HLT. Ayant d\u00e9j\u00e0 analys\u00e9 la ROM, ce n&#8217;est pas tr\u00e8s \u00e9tonnant : celle-ci semble \u00e9tablir un dialogue avec une carte de la machine en lui envoyant des signaux et en attendant des r\u00e9ponses. Ces r\u00e9ponses sont lues sur l&#8217;une des deux cartes \u00ab pile\/canal \u00bb, qui peuvent agir en tant que m\u00e9moires tampons. Ces cartes \u00ab pile\/canal \u00bb sont importantes pour le fonctionnement du Micral N, m\u00eame si techniquement pas indispensables. Ce sont des cartes m\u00e9moire qui s&#8217;interfacent d&#8217;un c\u00f4t\u00e9 au PLURIBUS, et donc au reste de la machine. De l&#8217;autre c\u00f4t\u00e9, elles peuvent \u00eatre reli\u00e9es \u00e0 une autre carte pour une communication directe, ind\u00e9pendante du processeur. En mode \u00ab pile \u00bb, la carte se comporte comme une pile informatique : ce qui est \u00e9crit en dernier dans la m\u00e9moire est lu en premier (LIFO) ; en mode \u00ab canal \u00bb, on lit les donn\u00e9es en commen\u00e7ant par les plus anciennes \u00e0 y avoir \u00e9t\u00e9 \u00e9crites (FIFO). L&#8217;\u00e9mulateur g\u00e8re d\u00e9j\u00e0 le mode \u00ab pile \u00bb de ces cartes, car le programme pr\u00e9sent sur la ROM du moniteur en utilise une comme m\u00e9moire auxiliaire, en plus de la RAM. Cela faisait partie des premi\u00e8res parties \u00e9mul\u00e9es et fonctionnelles. Mais il semble que cette seconde carte soit utilis\u00e9e dans son monde \u00ab canal \u00bb et surtout, il semble qu&#8217;elle doive recevoir des donn\u00e9es d&#8217;un p\u00e9riph\u00e9rique. Comme elle ne re\u00e7oit rien, la ROM s&#8217;arr\u00eate rapidement. Nous sommes donc \u00e0 la recherche de ce p\u00e9riph\u00e9rique : quel est-il ? C&#8217;est un p\u00e9riph\u00e9rique d&#8217;entr\u00e9e, mais est-ce un ruban perfor\u00e9, un lecteur [&hellip;]","og_url":"https:\/\/mo5.com\/en\/avancees-sur-l-emulateur\/","og_site_name":"MO5.COM","article_publisher":"https:\/\/www.facebook.com\/pages\/Association-MO5COM\/9540357570","article_published_time":"2023-04-12T19:12:06+00:00","article_modified_time":"2023-04-12T19:13:53+00:00","og_image":[{"width":419,"height":177,"url":"https:\/\/mo5.com\/wp-content\/uploads\/2023\/01\/Micral-N-FrontPanel-SUB-AV.png","type":"image\/png"}],"author":"Sylvain Glaize","twitter_card":"summary_large_image","twitter_creator":"@assomo5","twitter_site":"@assomo5","twitter_misc":{"Written by":"Sylvain Glaize","Estimated reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/mo5.com\/avancees-sur-l-emulateur\/#article","isPartOf":{"@id":"https:\/\/mo5.com\/avancees-sur-l-emulateur\/"},"author":{"name":"Sylvain Glaize","@id":"https:\/\/mo5.com\/#\/schema\/person\/e2593639b2e77eace001e56b26086749"},"headline":"Avanc\u00e9es sur l&#8217;\u00e9mulateur du Micral N","datePublished":"2023-04-12T19:12:06+00:00","dateModified":"2023-04-12T19:13:53+00:00","mainEntityOfPage":{"@id":"https:\/\/mo5.com\/avancees-sur-l-emulateur\/"},"wordCount":1187,"publisher":{"@id":"https:\/\/mo5.com\/#organization"},"image":{"@id":"https:\/\/mo5.com\/avancees-sur-l-emulateur\/#primaryimage"},"thumbnailUrl":"https:\/\/mo5.com\/wp-content\/uploads\/2023\/01\/Micral-N-FrontPanel-SUB-AV.png","articleSection":["Micral","Programmation"],"inLanguage":"en-GB"},{"@type":"WebPage","@id":"https:\/\/mo5.com\/avancees-sur-l-emulateur\/","url":"https:\/\/mo5.com\/avancees-sur-l-emulateur\/","name":"Progress on the Micral N emulator - MO5.COM","isPartOf":{"@id":"https:\/\/mo5.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/mo5.com\/avancees-sur-l-emulateur\/#primaryimage"},"image":{"@id":"https:\/\/mo5.com\/avancees-sur-l-emulateur\/#primaryimage"},"thumbnailUrl":"https:\/\/mo5.com\/wp-content\/uploads\/2023\/01\/Micral-N-FrontPanel-SUB-AV.png","datePublished":"2023-04-12T19:12:06+00:00","dateModified":"2023-04-12T19:13:53+00:00","breadcrumb":{"@id":"https:\/\/mo5.com\/avancees-sur-l-emulateur\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/mo5.com\/avancees-sur-l-emulateur\/"]}]},{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/mo5.com\/avancees-sur-l-emulateur\/#primaryimage","url":"https:\/\/mo5.com\/wp-content\/uploads\/2023\/01\/Micral-N-FrontPanel-SUB-AV.png","contentUrl":"https:\/\/mo5.com\/wp-content\/uploads\/2023\/01\/Micral-N-FrontPanel-SUB-AV.png","width":419,"height":177,"caption":"Les boutons de contr\u00f4le sur le panneau, avec SUB et AV"},{"@type":"BreadcrumbList","@id":"https:\/\/mo5.com\/avancees-sur-l-emulateur\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/mo5.com\/"},{"@type":"ListItem","position":2,"name":"Avanc\u00e9es sur l&#8217;\u00e9mulateur du Micral N"}]},{"@type":"WebSite","@id":"https:\/\/mo5.com\/#website","url":"https:\/\/mo5.com\/","name":"MO5.COM","description":"Preserve, explore, replay","publisher":{"@id":"https:\/\/mo5.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/mo5.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":"Organization","@id":"https:\/\/mo5.com\/#organization","name":"MO5.COM Association","url":"https:\/\/mo5.com\/","logo":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/mo5.com\/#\/schema\/logo\/image\/","url":"https:\/\/mo5.com\/wp-content\/uploads\/2023\/10\/Logo_MO5_A_Colo_Texte_Bleu-e1697059504554.png","contentUrl":"https:\/\/mo5.com\/wp-content\/uploads\/2023\/10\/Logo_MO5_A_Colo_Texte_Bleu-e1697059504554.png","width":2094,"height":559,"caption":"Association MO5.COM"},"image":{"@id":"https:\/\/mo5.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/pages\/Association-MO5COM\/9540357570","https:\/\/x.com\/assomo5","http:\/\/www.instagram.com\/assomo5","https:\/\/www.youtube.com\/channel\/UCRncMsBo89C9u_8gpWnsOVw\/featured","https:\/\/bsky.app\/profile\/assomo5.bsky.social","https:\/\/twitch.tv\/mo5assoretro"]},{"@type":"Person","@id":"https:\/\/mo5.com\/#\/schema\/person\/e2593639b2e77eace001e56b26086749","name":"Sylvain Glaize","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/secure.gravatar.com\/avatar\/c57fffe6046f79130765edc0cc15c31865aef60892197deca86f5c61d3f2261b?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/c57fffe6046f79130765edc0cc15c31865aef60892197deca86f5c61d3f2261b?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c57fffe6046f79130765edc0cc15c31865aef60892197deca86f5c61d3f2261b?s=96&d=mm&r=g","caption":"Sylvain Glaize"},"url":"http:\/\/mo5.com\/en\/author\/mokona78\/"}]}},"_links":{"self":[{"href":"http:\/\/mo5.com\/en\/wp-json\/wp\/v2\/posts\/641","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/mo5.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/mo5.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/mo5.com\/en\/wp-json\/wp\/v2\/users\/329"}],"replies":[{"embeddable":true,"href":"http:\/\/mo5.com\/en\/wp-json\/wp\/v2\/comments?post=641"}],"version-history":[{"count":0,"href":"http:\/\/mo5.com\/en\/wp-json\/wp\/v2\/posts\/641\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/mo5.com\/en\/wp-json\/wp\/v2\/media\/20503"}],"wp:attachment":[{"href":"http:\/\/mo5.com\/en\/wp-json\/wp\/v2\/media?parent=641"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/mo5.com\/en\/wp-json\/wp\/v2\/categories?post=641"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/mo5.com\/en\/wp-json\/wp\/v2\/tags?post=641"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}