{"id":271,"date":"2023-10-30T17:01:53","date_gmt":"2023-10-30T16:01:53","guid":{"rendered":"https:\/\/coding4phone.com\/?p=271"},"modified":"2026-03-11T16:50:50","modified_gmt":"2026-03-11T15:50:50","slug":"mes-premiers-pas-en-programmation","status":"publish","type":"post","link":"https:\/\/coding4phone.com\/?p=271","title":{"rendered":"Comment une cartouche VIDEOPAC m&rsquo;a condamn\u00e9 \u00e0 la programmation"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Comme beaucoup de personnes de mon (grand) \u00e2ge, je suis tomb\u00e9 dans la programmation quand j&rsquo;\u00e9tait petit (comme Ob\u00e9lix dans la potion magique). Tout s&rsquo;est fait par une quantit\u00e9 assez cons\u00e9quente de hasard. Certains diront que c&rsquo;est le destin (et non le hasard), pourquoi pas&#8230;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tout a commenc\u00e9 quand mes parents m&rsquo;ont offert pour No\u00ebl 1980 une console de jeux Philips VIDEOPAC. Personnellement j&rsquo;aurais pr\u00e9f\u00e9r\u00e9 une ATARI 2600 car tous mes copains avaient cette console l\u00e0 et on aurait pu se pr\u00eater les cartouches de jeux. Comme \u00e0 son habitude, mon p\u00e8re a fait tout seul le choix de la console (il \u00e9tait grand fan des produits Philips) et j&rsquo;ai \u00e9t\u00e9 quasiment le seul \u00e0 avoir ce mod\u00e8le (pour le pr\u00eat de jeux on repassera).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La console en elle-m\u00eame n&rsquo;\u00e9tait pas super g\u00e9niale. Les graphismes \u00e9taient assez \u00e9l\u00e9mentaires mais les jeux \u00e9tant plut\u00f4t bien faits, on s&rsquo;immergeait assez facilement et ce d\u00e9tail finalement n&rsquo;avait pas vraiment d&rsquo;importance. <\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" data-attachment-id=\"275\" data-permalink=\"https:\/\/coding4phone.com\/?attachment_id=275#main\" data-orig-file=\"https:\/\/i0.wp.com\/coding4phone.com\/wp-content\/uploads\/2023\/10\/videopac_img1.jpg?fit=1600%2C1200&amp;ssl=1\" data-orig-size=\"1600,1200\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;3.5&quot;,&quot;camera&quot;:&quot;FinePix S5700 S700&quot;,&quot;created_timestamp&quot;:&quot;1199326239&quot;,&quot;focal_length&quot;:&quot;6.3&quot;,&quot;iso&quot;:&quot;400&quot;,&quot;shutter_speed&quot;:&quot;0.022222222222222&quot;,&quot;orientation&quot;:&quot;1&quot;}\" data-image-title=\"Console VIDEOPAC\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/coding4phone.com\/wp-content\/uploads\/2023\/10\/videopac_img1.jpg?fit=1024%2C768&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/coding4phone.com\/wp-content\/uploads\/2023\/10\/videopac_img1.jpg?resize=1024%2C768&#038;ssl=1\" alt=\"\" class=\"wp-image-275\" style=\"object-fit:cover;width:371px;height:250px\" srcset=\"https:\/\/i0.wp.com\/coding4phone.com\/wp-content\/uploads\/2023\/10\/videopac_img1.jpg?resize=1024%2C768&amp;ssl=1 1024w, https:\/\/i0.wp.com\/coding4phone.com\/wp-content\/uploads\/2023\/10\/videopac_img1.jpg?resize=300%2C225&amp;ssl=1 300w, https:\/\/i0.wp.com\/coding4phone.com\/wp-content\/uploads\/2023\/10\/videopac_img1.jpg?resize=768%2C576&amp;ssl=1 768w, https:\/\/i0.wp.com\/coding4phone.com\/wp-content\/uploads\/2023\/10\/videopac_img1.jpg?resize=1536%2C1152&amp;ssl=1 1536w, https:\/\/i0.wp.com\/coding4phone.com\/wp-content\/uploads\/2023\/10\/videopac_img1.jpg?w=1600&amp;ssl=1 1600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"722\" data-attachment-id=\"276\" data-permalink=\"https:\/\/coding4phone.com\/?attachment_id=276#main\" data-orig-file=\"https:\/\/i0.wp.com\/coding4phone.com\/wp-content\/uploads\/2023\/10\/videopac_img4.png?fit=1312%2C925&amp;ssl=1\" data-orig-size=\"1312,925\" data-comments-opened=\"1\" data-image-title=\"Exemple jeu VIDEOPAC\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/coding4phone.com\/wp-content\/uploads\/2023\/10\/videopac_img4.png?fit=1024%2C722&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/coding4phone.com\/wp-content\/uploads\/2023\/10\/videopac_img4.png?resize=1024%2C722&#038;ssl=1\" alt=\"\" class=\"wp-image-276\" style=\"height:250px\" srcset=\"https:\/\/i0.wp.com\/coding4phone.com\/wp-content\/uploads\/2023\/10\/videopac_img4.png?resize=1024%2C722&amp;ssl=1 1024w, https:\/\/i0.wp.com\/coding4phone.com\/wp-content\/uploads\/2023\/10\/videopac_img4.png?resize=300%2C212&amp;ssl=1 300w, https:\/\/i0.wp.com\/coding4phone.com\/wp-content\/uploads\/2023\/10\/videopac_img4.png?resize=768%2C541&amp;ssl=1 768w, https:\/\/i0.wp.com\/coding4phone.com\/wp-content\/uploads\/2023\/10\/videopac_img4.png?w=1312&amp;ssl=1 1312w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div><\/div>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Le vendeur de cette console \u00e9tait install\u00e9 au rez-de-chauss\u00e9e de l&rsquo;immeuble o\u00f9 habitaient mes grands parents paternels. A chaque fois que j&rsquo;allais leur rendre visite, je passais un petit moment \u00e0 regarder tous les jeux qui \u00e9taient disponibles chez lui. Les jeux \u00e9taient assez chers et je ne pouvais pas pr\u00e9tendre en obtenir tous les matins. Mais bon je me tenais au courant de ce qui existait et des nouveaut\u00e9s.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En plus de \u00e7a le fils du vendeur \u00e9tait un copain depuis de nombreuses ann\u00e9es et il me donnait des infos avant m\u00eame que la cartouche soit expos\u00e9e dans la vitrine de son p\u00e8re. Un jour, une cartouche a fait son apparition dans la vitrine. Et je dois bien avouer qu&rsquo;elle m&rsquo;a tout de suite parl\u00e9e. C&rsquo;\u00e9tait la cartouche n\u00b09, et son titre \u00e9tait \u00ab\u00a0Computer Programmer\u00a0\u00bb&#8230;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"297\" height=\"402\" data-attachment-id=\"279\" data-permalink=\"https:\/\/coding4phone.com\/?attachment_id=279#main\" data-orig-file=\"https:\/\/i0.wp.com\/coding4phone.com\/wp-content\/uploads\/2023\/10\/videopac_img2.jpg?fit=297%2C402&amp;ssl=1\" data-orig-size=\"297,402\" data-comments-opened=\"1\" data-image-title=\"Cartouche VIDEOPAC 9\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/coding4phone.com\/wp-content\/uploads\/2023\/10\/videopac_img2.jpg?fit=297%2C402&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/coding4phone.com\/wp-content\/uploads\/2023\/10\/videopac_img2.jpg?resize=297%2C402&#038;ssl=1\" alt=\"\" class=\"wp-image-279\" srcset=\"https:\/\/i0.wp.com\/coding4phone.com\/wp-content\/uploads\/2023\/10\/videopac_img2.jpg?w=297&amp;ssl=1 297w, https:\/\/i0.wp.com\/coding4phone.com\/wp-content\/uploads\/2023\/10\/videopac_img2.jpg?resize=222%2C300&amp;ssl=1 222w\" sizes=\"auto, (max-width: 297px) 100vw, 297px\" \/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">J&rsquo;\u00e9tais absolument archi ultra m\u00e9ga nul en Anglais, mais je savais tout de m\u00eame de \u00ab\u00a0Computer\u00a0\u00bb voulait dire \u00ab\u00a0Ordinateur\u00a0\u00bb et que \u00ab\u00a0Programmer\u00a0\u00bb avait un truc \u00e0 voir avec la programmation (m\u00eame si je ne savais rien de ce que c&rsquo;\u00e9tait). Et l\u00e0 je me suis dit tout de suite que je voulais absolument ce \u00ab\u00a0jeu\u00a0\u00bb. Je ne peux pas vraiment dire pourquoi mais \u00e7a m&rsquo;a fait l&rsquo;effet d&rsquo;une r\u00e9v\u00e9lation, un peu comme quand vous croisez la fille de vos r\u00eaves et que vous tombez instantan\u00e9ment amoureux alors que vous ne savez rien d&rsquo;elle. J&rsquo;avais eu le \u00ab\u00a0coup de foudre\u00a0\u00bb pour cette cartouche.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Le plus gros probl\u00e8me c&rsquo;\u00e9tait son prix. Je ne me souviens plus exactement mais quand j&rsquo;ai dit \u00e0 ma m\u00e8re qu&rsquo;il fallait absolument qu&rsquo;elle me l&rsquo;ach\u00e8te, elle m&rsquo;a oppos\u00e9 un non cat\u00e9gorique car mon p\u00e8re n&rsquo;allait tr\u00e8s certainement pas \u00eatre d&rsquo;accord (trop cher mon fils). Comme cette discussion a eu lieu chez mes grands parents (qui je vous le rappelle habitaient juste au dessus du magasin) ma grand m\u00e8re a tout de suite compris que ce n&rsquo;\u00e9tait pas un simple caprice et que pour moi c&rsquo;\u00e9tait tr\u00e8s important (oui ma grand m\u00e8re \u00e9tait g\u00e9niale). Elle a alors d\u00e9cid\u00e9 de me donner de quoi acheter le jeu et je sais, avec le recul, que par rapport \u00e0 ses faibles moyens, c&rsquo;\u00e9tait pour elle un gros effort financier.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">J&rsquo;ai donc descendu 4 \u00e0 4 les escaliers jusqu&rsquo;au magasin dans lequel j&rsquo;ai pu acheter l&rsquo;objet de mon d\u00e9sir !<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cette premi\u00e8re \u00e9tape \u00e9tant pass\u00e9e, j&rsquo;allais m&rsquo;attaquer \u00e0 l&rsquo;un des plus grands d\u00e9fis de ma vie : Comprendre un sujet totalement inconnu, expliqu\u00e9 dans une langue que je ne connaissait pas (mon niveau d&rsquo;anglais \u00e0 12 ans se r\u00e9sumait \u00e0 ne r\u00e9colter que des cartons aux contr\u00f4les).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Car cette cartouche permettait de programmer \u00ab\u00a0un peu\u00a0\u00bb la console VIDEOPAC en ASSEMBLEUR !!!! Oui oui vous avez  bien lu, le langage utilis\u00e9 \u00e9tait un pseudo assembleur. Il faut bien l&rsquo;avouer, je n&rsquo;ai pas commenc\u00e9 par l&rsquo;acc\u00e8s le plus simple, mais \u00e7a je ne le savais pas et heureusement d&rsquo;ailleurs sinon je ne me serai pas lanc\u00e9 l\u00e0 dedans !<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cette cartouche \u00e9tait fournie avec un manuel de 84 pages, 100% en anglais (\u00e7a pique) et dont le but \u00e9tait d&rsquo;apprendre la programmation. C&rsquo;\u00e9tait donc clairement un jeu \u00e9ducatif. D&rsquo;ailleurs d&rsquo;apr\u00e8s l&rsquo;article Wikip\u00e9dia qui lui est consacr\u00e9, ce jeu a m\u00eame re\u00e7u un prix en 1983 :<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">D\u00e9but 1983, la cartouche est consid\u00e9r\u00e9e comme&nbsp;\u00ab&nbsp;la meilleure cassette d&rsquo;apprentissage pour l&rsquo;entr\u00e9e en informatique&nbsp;\u00bb&nbsp;par le magazine allemand&nbsp;<em>TeleMatch<\/em>.<\/p>\n<cite><a href=\"https:\/\/fr.wikipedia.org\/wiki\/Programmation_(Videopac)\">Programmation (Videopac) \u2014 Wikip\u00e9dia (wikipedia.org)<\/a><\/cite><\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Une documentation tr\u00e8s compl\u00e8te il est vrai, tous les sujets de base \u00e9taient abord\u00e9s,  par exemple :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Le binaire<\/li>\n\n\n\n<li>L&rsquo;hexad\u00e9cimal<\/li>\n\n\n\n<li>Les op\u00e9rations logiques (and, or, etc).<\/li>\n\n\n\n<li>L&rsquo;acumulateur<\/li>\n\n\n\n<li>Les registres<\/li>\n\n\n\n<li>L&rsquo;ALU (unit\u00e9 arithm\u00e9tique et logique)<\/li>\n\n\n\n<li>Le compteur de programme<\/li>\n\n\n\n<li>Une sous-routine<\/li>\n\n\n\n<li>Un saut (conditionnel ou non)<\/li>\n\n\n\n<li>Les instructions (OP code)<\/li>\n\n\n\n<li>Et tout le reste&#8230;<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Cette documentation \u00e9tait r\u00e9alis\u00e9e de mani\u00e8re tr\u00e8s p\u00e9dagogique avec pas mal de dessins (c&rsquo;est ce qui m&rsquo;a sauv\u00e9 d&rsquo;ailleurs) :<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"772\" height=\"1024\" data-attachment-id=\"291\" data-permalink=\"https:\/\/coding4phone.com\/?attachment_id=291#main\" data-orig-file=\"https:\/\/i0.wp.com\/coding4phone.com\/wp-content\/uploads\/2023\/10\/videopac_img5.png?fit=792%2C1051&amp;ssl=1\" data-orig-size=\"792,1051\" data-comments-opened=\"1\" data-image-title=\"Manuel VIDEOPAC 9\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/coding4phone.com\/wp-content\/uploads\/2023\/10\/videopac_img5.png?fit=772%2C1024&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/coding4phone.com\/wp-content\/uploads\/2023\/10\/videopac_img5.png?resize=772%2C1024&#038;ssl=1\" alt=\"\" class=\"wp-image-291\" style=\"height:500px\" srcset=\"https:\/\/i0.wp.com\/coding4phone.com\/wp-content\/uploads\/2023\/10\/videopac_img5.png?resize=772%2C1024&amp;ssl=1 772w, https:\/\/i0.wp.com\/coding4phone.com\/wp-content\/uploads\/2023\/10\/videopac_img5.png?resize=226%2C300&amp;ssl=1 226w, https:\/\/i0.wp.com\/coding4phone.com\/wp-content\/uploads\/2023\/10\/videopac_img5.png?resize=768%2C1019&amp;ssl=1 768w, https:\/\/i0.wp.com\/coding4phone.com\/wp-content\/uploads\/2023\/10\/videopac_img5.png?w=792&amp;ssl=1 792w\" sizes=\"auto, (max-width: 772px) 100vw, 772px\" \/><\/figure>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"751\" height=\"1024\" data-attachment-id=\"292\" data-permalink=\"https:\/\/coding4phone.com\/?attachment_id=292#main\" data-orig-file=\"https:\/\/i0.wp.com\/coding4phone.com\/wp-content\/uploads\/2023\/10\/videopac_img7.png?fit=766%2C1045&amp;ssl=1\" data-orig-size=\"766,1045\" data-comments-opened=\"1\" data-image-title=\"Manuel VIDEOPAC 9\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/coding4phone.com\/wp-content\/uploads\/2023\/10\/videopac_img7.png?fit=751%2C1024&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/coding4phone.com\/wp-content\/uploads\/2023\/10\/videopac_img7.png?resize=751%2C1024&#038;ssl=1\" alt=\"\" class=\"wp-image-292\" style=\"height:500px\" srcset=\"https:\/\/i0.wp.com\/coding4phone.com\/wp-content\/uploads\/2023\/10\/videopac_img7.png?resize=751%2C1024&amp;ssl=1 751w, https:\/\/i0.wp.com\/coding4phone.com\/wp-content\/uploads\/2023\/10\/videopac_img7.png?resize=220%2C300&amp;ssl=1 220w, https:\/\/i0.wp.com\/coding4phone.com\/wp-content\/uploads\/2023\/10\/videopac_img7.png?w=766&amp;ssl=1 766w\" sizes=\"auto, (max-width: 751px) 100vw, 751px\" \/><\/figure>\n<\/div><\/div>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Il \u00e9tait possible de rentrer les programmes de deux mani\u00e8res. Soit en assembleur soit directement en hexad\u00e9cimal. En assembleur on entrait des instructions du genre<\/p>\n\n\n<div class=\"wp-block-code\">\n\t<div class=\"cm-editor\">\n\t\t<div class=\"cm-scroller\">\n\t\t\t\n<pre>\n<code><div class=\"cm-line\">00 - LDV.B.50<\/div><\/code><\/pre>\n\t\t<\/div>\n\t<\/div>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Et en hexad\u00e9cimal du genre<\/p>\n\n\n<div class=\"wp-block-code\">\n\t<div class=\"cm-editor\">\n\t\t<div class=\"cm-scroller\">\n\t\t\t\n<pre>\n<code><div class=\"cm-line\">00 - 6B<\/div><div class=\"cm-line\">01 - 50<\/div><\/code><\/pre>\n\t\t<\/div>\n\t<\/div>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Il y avait 2 choses qui n&rsquo;\u00e9taient pas cool dans cette histoire. Tout d&rsquo;abord, tout ce qui \u00e9tait rentr\u00e9 en assembleur \u00e9tait instantan\u00e9ment transform\u00e9 en hexad\u00e9cimal et quand on voulait modifier le programme on devait le faire obligatoirement en hexa (d\u00e9gueu). La seconde chose \u00e9tait que rien n&rsquo;\u00e9tait pr\u00e9vu pour sauvegarder les programmes. Quand on \u00e9teignait la console tout \u00e9tait perdu.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Il y a avait en tout 99 pas de programme. Tr\u00e8s vite \u00e7a devient tr\u00e8s exigu comme espace pour s&rsquo;exprimer. De plus on devait calculer soit m\u00eame les adresses de branchement car il n&rsquo;y avait pas de syst\u00e8me d&rsquo;\u00e9tiquettes. Le mieux \u00e9tait donc d&rsquo;\u00e9crire sur papier le programme en hexa (1 ligne = 1 instruction = mode Opcode), num\u00e9roter les lignes et noter les adresses de saut avant de taper (toujours en Opcode) le code sur la console.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Un chose \u00e9tait assez d\u00e9routante aussi, les pas de programme (les adresses) \u00e9taient en d\u00e9cimal. Les registres eux \u00e9taient not\u00e9s de 0 \u00e0 F (d&rsquo;o\u00f9 le registre B de l&rsquo;exemple). Le registre C \u00e9tait utilis\u00e9 pour indiquer la position des caract\u00e8res \u00e0 l&rsquo;\u00e9cran. Le registre A c&rsquo;\u00e9tait l&rsquo;accumulateur.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Oui alors autre point de frustration, l&rsquo;affichage ! On avait le droit d&rsquo;afficher une ligne (oui oui une seule ligne) de 10 caract\u00e8res, si on indiquait des valeurs plus grandes on revenait \u00e0 la position de base avec un tr\u00e8s l\u00e9ger d\u00e9calage du caract\u00e8re vers le haut (donc la position 0B c&rsquo;est en fait 01 avec un petit d\u00e9calage vers le haut, en mode bien crado).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Le jeu de caract\u00e8res disponible n&rsquo;avait absolument rien \u00e0 voir avec l&rsquo;ASCII mais il \u00e9tait plut\u00f4t sympa :<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"781\" height=\"835\" data-attachment-id=\"303\" data-permalink=\"https:\/\/coding4phone.com\/?attachment_id=303#main\" data-orig-file=\"https:\/\/i0.wp.com\/coding4phone.com\/wp-content\/uploads\/2023\/10\/videopac_img6.png?fit=781%2C835&amp;ssl=1\" data-orig-size=\"781,835\" data-comments-opened=\"1\" data-image-title=\"Jeu de caract\u00e8res VIDEOPAC\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/coding4phone.com\/wp-content\/uploads\/2023\/10\/videopac_img6.png?fit=781%2C835&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/coding4phone.com\/wp-content\/uploads\/2023\/10\/videopac_img6.png?resize=781%2C835&#038;ssl=1\" alt=\"\" class=\"wp-image-303\" style=\"aspect-ratio:0.9353293413173652;width:528px;height:auto\" srcset=\"https:\/\/i0.wp.com\/coding4phone.com\/wp-content\/uploads\/2023\/10\/videopac_img6.png?w=781&amp;ssl=1 781w, https:\/\/i0.wp.com\/coding4phone.com\/wp-content\/uploads\/2023\/10\/videopac_img6.png?resize=281%2C300&amp;ssl=1 281w, https:\/\/i0.wp.com\/coding4phone.com\/wp-content\/uploads\/2023\/10\/videopac_img6.png?resize=768%2C821&amp;ssl=1 768w\" sizes=\"auto, (max-width: 781px) 100vw, 781px\" \/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Il y avait aussi un g\u00e9n\u00e9rateur de nombre al\u00e9atoire (si si monsieur) ainsi qu&rsquo;une instruction pour \u00e9mettre un bruit genre buzzer. Je m&rsquo;en souviens encore, c&rsquo;\u00e9tait l&rsquo;instruction SIG en assembleur ou 05 en hexa (Opcode).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Voici un petit exemple de code qui affiche de mani\u00e8re al\u00e9atoire sur l&rsquo;\u00e9cran des blocs et des espaces en \u00e9mettant un \u00ab\u00a0bip buzzer\u00a0\u00bb \u00e0 chaque tour.<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"493\" height=\"445\" data-attachment-id=\"298\" data-permalink=\"https:\/\/coding4phone.com\/?attachment_id=298#main\" data-orig-file=\"https:\/\/i0.wp.com\/coding4phone.com\/wp-content\/uploads\/2023\/10\/videopac_img8.png?fit=493%2C445&amp;ssl=1\" data-orig-size=\"493,445\" data-comments-opened=\"1\" data-image-title=\"Programme VIDEOPAC\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/coding4phone.com\/wp-content\/uploads\/2023\/10\/videopac_img8.png?fit=493%2C445&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/coding4phone.com\/wp-content\/uploads\/2023\/10\/videopac_img8.png?resize=493%2C445&#038;ssl=1\" alt=\"\" class=\"wp-image-298\" srcset=\"https:\/\/i0.wp.com\/coding4phone.com\/wp-content\/uploads\/2023\/10\/videopac_img8.png?w=493&amp;ssl=1 493w, https:\/\/i0.wp.com\/coding4phone.com\/wp-content\/uploads\/2023\/10\/videopac_img8.png?resize=300%2C271&amp;ssl=1 300w\" sizes=\"auto, (max-width: 493px) 100vw, 493px\" \/><\/figure>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"232\" data-attachment-id=\"299\" data-permalink=\"https:\/\/coding4phone.com\/?attachment_id=299#main\" data-orig-file=\"https:\/\/i0.wp.com\/coding4phone.com\/wp-content\/uploads\/2023\/10\/videopac_img9.png?fit=300%2C232&amp;ssl=1\" data-orig-size=\"300,232\" data-comments-opened=\"1\" data-image-title=\"Ecran programme VIDEOPAC\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/coding4phone.com\/wp-content\/uploads\/2023\/10\/videopac_img9.png?fit=300%2C232&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/coding4phone.com\/wp-content\/uploads\/2023\/10\/videopac_img9.png?resize=300%2C232&#038;ssl=1\" alt=\"\" class=\"wp-image-299\" style=\"aspect-ratio:1.293103448275862;width:366px;height:auto\"\/><\/figure>\n<\/div><\/div>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Pour vous faire une petite id\u00e9e des possibilit\u00e9s voici la liste des instructions disponibles tir\u00e9es du manuel :<\/p>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\"><table><tbody><tr><td><strong>Mn\u00e9monique<\/strong><\/td><td><strong>Opcode<\/strong><\/td><td><strong>Op\u00e9ration<\/strong><\/td><\/tr><tr><td>ADD.R<\/td><td>ER<\/td><td>Add Accumulator to Register A = A + R<\/td><\/tr><tr><td>BDB.NN<\/td><td>10 NN<\/td><td>Branch on Decimal Borrow if Ah = 9 then PC = NN<\/td><\/tr><tr><td>BDC.NN<\/td><td>11 NN<\/td><td>Branch on Decimal Carry if Ah != 0 then PC = NN<\/td><\/tr><tr><td>BEQ.R.NN<\/td><td>3R NN<\/td><td>Branch if Register equals Accumulator if R = A then PC = NN<\/td><\/tr><tr><td>BGT.R.NN<\/td><td>4R NN<\/td><td>Branch if Register is greater than Accumulator if R &gt; A then PC = NN<\/td><\/tr><tr><td>BLS.R.NN<\/td><td>5R NN<\/td><td>Branch if Register is less than Accumulator if R &lt; A then PC = NN<\/td><\/tr><tr><td>BNE.R.NN<\/td><td>2R NN<\/td><td>Branch if Register is not equal to Accumulator if R != A then PC = NN<\/td><\/tr><tr><td>BRZ.NN<\/td><td>13 NN<\/td><td>Branch if Accumulator equals zero if A = 0 then PC = NN<\/td><\/tr><tr><td>CLR<\/td><td>01<\/td><td>Set Accumulator to zero A = 0<\/td><\/tr><tr><td>DEC<\/td><td>02<\/td><td>Substract one from Accumulator A = A &#8211; 1<\/td><\/tr><tr><td>GTO.NN<\/td><td>12 NN<\/td><td>Branch unconditionally PC = NN<\/td><\/tr><tr><td>GTS.NN<\/td><td>14 NN<\/td><td>Go to subroutine PC = NN<\/td><\/tr><tr><td>HLT<\/td><td>FF<\/td><td>Halt Program execution<\/td><\/tr><tr><td>INA<\/td><td>04<\/td><td>Input to Accumulator A = input<\/td><\/tr><tr><td>INC<\/td><td>03<\/td><td>Add one to Accumulator A = A + 1<\/td><\/tr><tr><td>INP.R<\/td><td>7R<\/td><td>Input to Register R = input<\/td><\/tr><tr><td>LDA.R<\/td><td>9R<\/td><td>Load Accumulator from Register A = R<\/td><\/tr><tr><td>LDV.R.NN<\/td><td>6R NN<\/td><td>Load a value into a Register R = NN<\/td><\/tr><tr><td>MOV<\/td><td>09<\/td><td>Load Accumulator from Program step C = Program step A = *C<\/td><\/tr><tr><td>NOP<\/td><td>00<\/td><td>No operation<\/td><\/tr><tr><td>OTA<\/td><td>0B<\/td><td>Output from Accumulator Ouput A at Register B location (B = screen position)<\/td><\/tr><tr><td>OUT.R<\/td><td>CR<\/td><td>Output from register Ouput Register R at Register B location (B = screen position)<\/td><\/tr><tr><td>PAK.R<\/td><td>8R<\/td><td>Combine two digits R6 = 09 \/ R7 = 25 &#8212; PAK.6 &#8212; A = 95 The high order bit of the first register mus always be a zero<\/td><\/tr><tr><td>RET<\/td><td>07<\/td><td>Return from subroutine<\/td><\/tr><tr><td>RND<\/td><td>08<\/td><td>Load Accumulator with random number 00 to 99<\/td><\/tr><tr><td>SIG<\/td><td>05<\/td><td>One second buzz<\/td><\/tr><tr><td>STO.R<\/td><td>AR<\/td><td>Store Accumulator in Register R = A<\/td><\/tr><tr><td>SUB.R<\/td><td>DR<\/td><td>Substract Accumulator from Register A = R &#8211; A<\/td><\/tr><tr><td>UNP.R<\/td><td>BR<\/td><td>A = 95 &#8212; UNP.6 &#8212; R6=09 \/ R7=05<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si vous souhaitez jeter un \u0153il \u00e0 cette documentation, elle est juste l\u00e0 (num\u00e9ris\u00e9e par les soins de l&rsquo;excellent site Videopac.org) :<\/p>\n\n\n\n<div data-wp-interactive=\"core\/file\" class=\"wp-block-file\"><object data-wp-bind--hidden=\"!state.hasPdfPreview\" hidden class=\"wp-block-file__embed\" data=\"https:\/\/coding4phone.com\/wp-content\/uploads\/2023\/10\/videopac_doc1.pdf\" type=\"application\/pdf\" style=\"width:100%;height:600px\" aria-label=\"Contenu embarqu\u00e9 Manuel VIDEOPAC 9.\"><\/object><a id=\"wp-block-file--media-23b65d57-373a-4962-ada3-5e78e4b68bbe\" href=\"https:\/\/coding4phone.com\/wp-content\/uploads\/2023\/10\/videopac_doc1.pdf\">Manuel VIDEOPAC 9<\/a><a href=\"https:\/\/coding4phone.com\/wp-content\/uploads\/2023\/10\/videopac_doc1.pdf\" class=\"wp-block-file__button wp-element-button\" download aria-describedby=\"wp-block-file--media-23b65d57-373a-4962-ada3-5e78e4b68bbe\">T\u00e9l\u00e9charger<\/a><\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Comme vous pouvez vous en douter, \u00e7a n&rsquo;a pas \u00e9t\u00e9 facile, beaucoup de douleurs et de frustrations, du moins au d\u00e9but, mais je ne sais pas pourquoi, j&rsquo;ai tenu bon et je n&rsquo;ai pas l\u00e2ch\u00e9 l&rsquo;affaire. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En m\u00eame temps, je d\u00e9couvrais le film TRON par le truchement d&rsquo;un livre (je verrai le film un peu plus tard), l\u00e0 aussi m\u00e9ga ambiance \u00ab\u00a0Computer Programmer\u00a0\u00bb et en plus d\u00e9couverte de l&rsquo;album du g\u00e9nialissime Jean-Michel JARRE, EQUINOX, qui par certains aspects aurait pu \u00eatre sans rougir la BO de TRON.<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"692\" height=\"1024\" data-attachment-id=\"314\" data-permalink=\"https:\/\/coding4phone.com\/?attachment_id=314#main\" data-orig-file=\"https:\/\/i0.wp.com\/coding4phone.com\/wp-content\/uploads\/2023\/10\/videopac_img3.jpg?fit=840%2C1243&amp;ssl=1\" data-orig-size=\"840,1243\" data-comments-opened=\"1\" data-image-title=\"Film TRON\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/coding4phone.com\/wp-content\/uploads\/2023\/10\/videopac_img3.jpg?fit=692%2C1024&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/coding4phone.com\/wp-content\/uploads\/2023\/10\/videopac_img3.jpg?resize=692%2C1024&#038;ssl=1\" alt=\"\" class=\"wp-image-314\" style=\"object-fit:cover;width:266px;height:300px\" srcset=\"https:\/\/i0.wp.com\/coding4phone.com\/wp-content\/uploads\/2023\/10\/videopac_img3.jpg?resize=692%2C1024&amp;ssl=1 692w, https:\/\/i0.wp.com\/coding4phone.com\/wp-content\/uploads\/2023\/10\/videopac_img3.jpg?resize=203%2C300&amp;ssl=1 203w, https:\/\/i0.wp.com\/coding4phone.com\/wp-content\/uploads\/2023\/10\/videopac_img3.jpg?resize=768%2C1136&amp;ssl=1 768w, https:\/\/i0.wp.com\/coding4phone.com\/wp-content\/uploads\/2023\/10\/videopac_img3.jpg?w=840&amp;ssl=1 840w\" sizes=\"auto, (max-width: 692px) 100vw, 692px\" \/><\/figure>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"634\" data-attachment-id=\"56\" data-permalink=\"https:\/\/coding4phone.com\/?attachment_id=56\" data-orig-file=\"https:\/\/i0.wp.com\/coding4phone.com\/wp-content\/uploads\/2023\/10\/equinox.jpg?fit=640%2C634&amp;ssl=1\" data-orig-size=\"640,634\" data-comments-opened=\"1\" data-image-title=\"Equinox\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/coding4phone.com\/wp-content\/uploads\/2023\/10\/equinox.jpg?fit=640%2C634&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/coding4phone.com\/wp-content\/uploads\/2023\/10\/equinox.jpg?resize=640%2C634&#038;ssl=1\" alt=\"\" class=\"wp-image-56\" style=\"height:300px\" srcset=\"https:\/\/i0.wp.com\/coding4phone.com\/wp-content\/uploads\/2023\/10\/equinox.jpg?w=640&amp;ssl=1 640w, https:\/\/i0.wp.com\/coding4phone.com\/wp-content\/uploads\/2023\/10\/equinox.jpg?resize=300%2C297&amp;ssl=1 300w, https:\/\/i0.wp.com\/coding4phone.com\/wp-content\/uploads\/2023\/10\/equinox.jpg?resize=150%2C150&amp;ssl=1 150w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/figure>\n<\/div><\/div>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">D&rsquo;ailleurs je dois vous avouer qu&rsquo;encore aujourd&rsquo;hui, 43 ans apr\u00e8s, lorsque je suis confront\u00e9 \u00e0 un probl\u00e8me lors d&rsquo;un d\u00e9veloppement, je mets mon casque et je lance EQUINOXE, ce qui g\u00e9n\u00e9ralement me permet de mieux me concentrer et ainsi de trouver la solution \u00e0 mon probl\u00e8me. Magique non ?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Au final, gr\u00e2ce \u00e0 cette cartouche de jeu, j&rsquo;ai compris \u00e9norm\u00e9ment de choses li\u00e9es \u00e0 la programmation et au fonctionnement des ordinateurs, et \u00e7a m&rsquo;a pr\u00e9par\u00e9 pour la suite, qui a d&rsquo;abord \u00e9t\u00e9 de programmer sur des calculatrices (trop facile), puis sur des ordinateurs de poche type Casio PB 100, puis sur ordinateur personnels (genre <a href=\"https:\/\/coding4phone.com\/?p=240\">Amstrad CPC 464<\/a>) et enfin sur des PC classiques, d&rsquo;abord sous MS-DOS puis sous Windows. Viendra ensuite l&rsquo;\u00e9poque du d\u00e9veloppement mobile, une passion compl\u00e9mentaire qui s&rsquo;est r\u00e9v\u00e9l\u00e9e \u00e0 moi un peu comme pour cette cartouche, car ce fut juste une \u00e9vidence !<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si vous avez envie de voir ce que la console VIDEOPAC donnait, je vous invite \u00e0 utiliser <a href=\"http:\/\/www.emu-france.com\/emulateurs\/5-consoles-de-salon\/35-magnavox-odyssey-2-videopac\/\">un \u00e9mulateur<\/a>. Vous pourrez m\u00eame tester la cartouche n\u00b09 (si vous avez du courage).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Voil\u00e0, vous me connaissez un tout petit peu mieux, et j&rsquo;esp\u00e8re que cette histoire vous a plu.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A bient\u00f4t.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Steph.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Comme beaucoup de personnes de mon (grand) \u00e2ge, je suis tomb\u00e9 dans la programmation quand j&rsquo;\u00e9tait petit (comme Ob\u00e9lix dans la potion magique). Tout s&rsquo;est fait par une quantit\u00e9 assez cons\u00e9quente de hasard. Certains diront que c&rsquo;est le destin (et non le hasard), pourquoi pas&#8230;<br \/>\n<a href=\"https:\/\/www.coding4phone.com\/?p=271\"><br \/>\nLire la suite<br \/>\n<\/a><\/p>\n","protected":false},"author":1,"featured_media":55,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"jetpack_seo_schema_type":"","_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_wpcom_ai_launchpad_first_post":false,"_jetpack_hide_featured_image":false,"_jetpack_featured_image_duplicate_dismissed":0,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"{title}\n\n{excerpt}\n\n{url}","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"_wpas_customize_per_network":false,"jetpack_post_was_ever_published":false},"categories":[1,27],"tags":[36,23],"class_list":["post-271","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized","category-vintage","tag-passion","tag-vintage"],"jetpack_publicize_connections":[],"jetpack_likes_enabled":true,"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/pfoe4s-4n","jetpack-related-posts":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/coding4phone.com\/wp-content\/uploads\/2023\/10\/tenor.gif?fit=498%2C252&ssl=1","_links":{"self":[{"href":"https:\/\/coding4phone.com\/index.php?rest_route=\/wp\/v2\/posts\/271","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/coding4phone.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/coding4phone.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/coding4phone.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/coding4phone.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=271"}],"version-history":[{"count":57,"href":"https:\/\/coding4phone.com\/index.php?rest_route=\/wp\/v2\/posts\/271\/revisions"}],"predecessor-version":[{"id":1868,"href":"https:\/\/coding4phone.com\/index.php?rest_route=\/wp\/v2\/posts\/271\/revisions\/1868"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/coding4phone.com\/index.php?rest_route=\/wp\/v2\/media\/55"}],"wp:attachment":[{"href":"https:\/\/coding4phone.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=271"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/coding4phone.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=271"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/coding4phone.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=271"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}