{"id":7612,"date":"2026-08-03T20:29:35","date_gmt":"2026-08-03T18:29:35","guid":{"rendered":"https:\/\/entropie.org\/3615\/?p=7612"},"modified":"2026-08-04T20:44:04","modified_gmt":"2026-08-04T18:44:04","slug":"vice-emulateur-c64-sous-debian-13","status":"publish","type":"post","link":"https:\/\/entropie.org\/3615\/index.php\/2026\/08\/03\/vice-emulateur-c64-sous-debian-13\/","title":{"rendered":"VICE : \u00c9mulateur C64 sous Debian 13"},"content":{"rendered":"<p>Afin de pr\u00e9server mon Commodore 64, j&rsquo;ai install\u00e9 l&rsquo;\u00e9mulateur <a href=\"https:\/\/vice-emu.sourceforge.io\/\" rel=\"noopener noreferrer\" target=\"_blank\">VICE<\/a> (version 3.9 sous Debian 13) : <em>sudo apt-get install vice<\/em><br \/>\nT\u00e9l\u00e9charger la ROM du C64 sur <a href=\"http:\/\/www.zimmers.net\" rel=\"noopener noreferrer\" target=\"_blank\">www.zimmers.net<\/a> > Commodore > 8-bit Files > crossplatform > emulators > VICE > VICE 3.9 source code (<a href=\"http:\/\/www.zimmers.net\/anonftp\/pub\/cbm\/crossplatform\/emulators\/VICE\/vice-3.9.tar.gz\" rel=\"noopener noreferrer\" target=\"_blank\">vice-3.9.tar.gz<\/a>).<br \/>\nD\u00e9compresser l&rsquo;archive.<\/p>\n<pre>\r\ncd ~\/T\u00e9l\u00e9chargements\r\nsudo cp -vR vice-3.9\/data\/* \/usr\/share\/vice\r\n<\/pre>\n<p>Dans VICE, pour pouvoir sauvegarder ses programmes dans un r\u00e9pertoire personnel sous Debian, aller dans Preferences > Settings &#8230; > Peripheral devices > Drive puis cocher IEC Device. Dans Host file system Device, s\u00e9lectionner le r\u00e9pertoire d\u00e9sir\u00e9 en cliquant sur Browse. Puis cocher Save settings on exit.<\/p>\n<p>Aide m\u00e9moire :<br \/>\nALT D : Pour passer en plein \u00e9cran et revenir en fen\u00eatr\u00e9.<br \/>\nALT J : Pour inverser Joystick.<br \/>\nPour lire un fichier .D64 :<br \/>\nDans VICE, File > Attach disk image > Drive #8 > Choisir son fichier .D64 > Attach \/ Load<br \/>\nLOAD &quot;*&quot;,8 puis \u00e9ventuellement RUN.<br \/>\nRUN\/STOP du C64 correspond \u00e0 la touche ESC du PC.<br \/>\nPour lire un fichier .TAP : LOAD<\/p>\n<p><a href=\"http:\/\/69.60.118.202\/commodore\/commodore\/C64_Programmer's_Reference_Guide_(FR).pdf\" target=\"_blank\" rel=\"noopener noreferrer\">Commodore 64 : Guide de r\u00e9f\u00e9rence du programmeur<\/a><\/p>\n<hr>\n<p>HELLO WORLD (1\u00e8re m\u00e9thode)<br \/>\nDans VICE, taper les lignes suivantes :<\/p>\n<pre>\r\n10 PRINT \"HELLO WORLD\"\r\n<\/pre>\n<p>Enregistrer le programme (le ,8 indique le lecteur de disquette &#8211; Drive 8):<\/p>\n<pre>\r\nSAVE \"HELLO\",8\r\n<\/pre>\n<p>Vider la m\u00e9moire de l&rsquo;ordinateur :<\/p>\n<pre>\r\nNEW\r\n<\/pre>\n<p>Charger le programme, le lister et l&rsquo;ex\u00e9cuter :<\/p>\n<pre>\r\nLOAD \"HELLO\",8\r\nLIST\r\nRUN\r\n<\/pre>\n<p>HELLO WORLD (2\u00e8me m\u00e9thode) :<br \/>\nPasser par mon \u00e9diteur dans Debian (Geany) :<\/p>\n<pre>\r\n10 print \"hello world\"\r\n<\/pre>\n<p>C&rsquo;est tr\u00e8s important de tout taper en minuscules pour que la suite fonctionne correctement.<\/p>\n<p>Dans la console :<\/p>\n<pre>\r\npetcat -w2 -o hello.prg -- hello.bas\r\n<\/pre>\n<p>Dans VICE :<\/p>\n<pre>\r\nLOAD \"HELLO.PRG\",8\r\nRUN\r\n<\/pre>\n<p>Pour automatiser la compilation \/ l&rsquo;ex\u00e9cution du fichier .bas dans Geany (je n&rsquo;utilise pas FreeBasic) :<\/p>\n<pre>\r\npetcat -w2 -o \"%e.prg\" -- \"%f\"\r\nx64sc \"%e.prg\"\r\n<\/pre>\n<p><a href=\"https:\/\/entropie.org\/3615\/wp-content\/uploads\/2026\/08\/Capture-du-2026-08-03-23-12-28.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/entropie.org\/3615\/wp-content\/uploads\/2026\/08\/Capture-du-2026-08-03-23-12-28.png\" alt=\"\" width=\"825\" height=\"609\" class=\"alignnone size-full wp-image-7640\" srcset=\"https:\/\/entropie.org\/3615\/wp-content\/uploads\/2026\/08\/Capture-du-2026-08-03-23-12-28.png 825w, https:\/\/entropie.org\/3615\/wp-content\/uploads\/2026\/08\/Capture-du-2026-08-03-23-12-28-300x221.png 300w, https:\/\/entropie.org\/3615\/wp-content\/uploads\/2026\/08\/Capture-du-2026-08-03-23-12-28-768x567.png 768w\" sizes=\"(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/a><\/p>\n<p>Pour de la programmation en assembleur ACME (assembleur crois\u00e9 multiplateforme pour les processeurs 6502\/6510\/65816):<\/p>\n<pre>\r\nsudo apt-get install acme\r\n<\/pre>\n<p>Pour automatiser la compilation \/ l\u2019ex\u00e9cution du fichier .asm dans Geany (\u00e0 la place de nasm) :<\/p>\n<pre>\r\nacme -f cbm -o \"%e.prg\" \"%f\"\r\nx64sc \"%e.prg\"\r\n<\/pre>\n<p><a href=\"https:\/\/entropie.org\/3615\/wp-content\/uploads\/2026\/08\/Capture-du-2026-08-03-23-44-17.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/entropie.org\/3615\/wp-content\/uploads\/2026\/08\/Capture-du-2026-08-03-23-44-17.png\" alt=\"\" width=\"825\" height=\"609\" class=\"alignnone size-full wp-image-7646\" srcset=\"https:\/\/entropie.org\/3615\/wp-content\/uploads\/2026\/08\/Capture-du-2026-08-03-23-44-17.png 825w, https:\/\/entropie.org\/3615\/wp-content\/uploads\/2026\/08\/Capture-du-2026-08-03-23-44-17-300x221.png 300w, https:\/\/entropie.org\/3615\/wp-content\/uploads\/2026\/08\/Capture-du-2026-08-03-23-44-17-768x567.png 768w\" sizes=\"(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/a><\/p>\n<pre>\r\n; ============================================================\r\n; Assembleur 6502\/6510 pour Commodore 64\r\n; Compilation : acme -f cbm -o hello.prg hello.asm\r\n; ============================================================\r\n\r\n; ------------------------------------------------------------\r\n; Point d'entr\u00e9e du programme (adresse $0801)\r\n; ------------------------------------------------------------\r\n\r\n* = $0801  ; Directive ACME (pas une instruction 6502) :\r\n           ; place le code qui suit \u00e0 l'adresse $0801,\r\n           ; l'adresse standard o\u00f9 le C64 attend le d\u00e9but\r\n           ; d'un programme BASIC (utilis\u00e9e par LOAD\/SAVE).\r\n\r\n; ------------------------------------------------------------\r\n; En-t\u00eate BASIC minimal, \u00e9quivalent \u00e0 la ligne : \"10 SYS 2064\"\r\n; ------------------------------------------------------------\r\n\r\n!byte $0c, $08, $0a, $00, $9e, $20, $32, $30, $36, $34, $00, $00, $00\r\n            \r\n; R\u00e9sultat : un LIST sur ce mini-programme affiche \"10 SYS 2064\", et un RUN\r\n; ex\u00e9cute cette ligne comme un SYS normal, qui saute en ex\u00e9cution machine\r\n; \u00e0 l'adresse 2064 (d\u00e9cimal) = $0810 (hexad\u00e9cimal).\r\n\r\n; ------------------------------------------------------------\r\n; Code machine\r\n; ------------------------------------------------------------\r\n\r\n* = $0810  ; 2064 en d\u00e9cimal = $0810 : adresse cibl\u00e9e par le\r\n           ; SYS 2064 de l'en-t\u00eate ci-dessus. Entre $080d (fin\r\n           ; de l'en-t\u00eate) et $0810, ACME ins\u00e8re automatiquement\r\n           ; des octets de remplissage ($00), sans cons\u00e9quence.\r\n\r\nCHROUT = $FFD2  ; Routine KERNAL : afficher caract\u00e8re\r\n\r\nstart:\r\n        ldx #0         ; Initialise l'index x dans la chaine\r\nloop:\r\n        lda message,x  ; Charge le caract\u00e8re\r\n        beq done       ; Si caract\u00e8re = 0, fin de cha\u00eene\r\n        jsr CHROUT     ; Affiche le caract\u00e8re\r\n        inx            ; Passe au caract\u00e8re suivant\r\n        jmp loop       ; Boucle\r\ndone:\r\n        rts            ; Retour au BASIC\r\n\r\n; ------------------------------------------------------------\r\n; Donn\u00e9es : la cha\u00eene de caract\u00e8res \u00e0 afficher\r\n; ------------------------------------------------------------\r\n\r\nmessage:\r\n        !text \"HELLO WORLD\"\r\n        !byte 0\r\n<\/pre>\n<p>LIENS :<\/p>\n<p><a href=\"https:\/\/www.youtube.com\/@8bitretroprogramming\" target=\"_blank\" rel=\"noopener noreferrer\">8-bit RetroProgramming<\/a> : Chaine YouTube de Philippe Gianviti<br \/>\n<a href=\"https:\/\/www.youtube.com\/@RetroProgrammation\" target=\"_blank\" rel=\"noopener noreferrer\">RetroProgrammation<\/a> : Chaine YouTube<br \/>\n<a href=\"https:\/\/commodore.bombjack.org\/commodore\/books.htm\" rel=\"noopener\" target=\"_blank\">Commodore Books<\/a><br \/>\n<a href=\"https:\/\/www.youtube.com\/playlist?list=PLHDxrzOvt6kQs4WDrArD4wr1R7F-1L7Mp\" rel=\"noopener\" target=\"_blank\">Demoscene TV &#8211; Playlist Commodore 64<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Afin de pr\u00e9server mon Commodore 64, j&rsquo;ai install\u00e9 l&rsquo;\u00e9mulateur VICE (version 3.9 sous Debian 13) : sudo apt-get install vice T\u00e9l\u00e9charger la ROM du C64 sur www.zimmers.net > Commodore > 8-bit Files > crossplatform > emulators > VICE > VICE 3.9 source code (vice-3.9.tar.gz). D\u00e9compresser l&rsquo;archive. cd ~\/T\u00e9l\u00e9chargements sudo cp -vR vice-3.9\/data\/* \/usr\/share\/vice Dans VICE, &hellip; <a href=\"https:\/\/entropie.org\/3615\/index.php\/2026\/08\/03\/vice-emulateur-c64-sous-debian-13\/\" class=\"more-link\">Continuer la lecture<span class=\"screen-reader-text\"> de &laquo;&nbsp;VICE : \u00c9mulateur C64 sous Debian 13&nbsp;&raquo;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[13,22,28,5],"tags":[],"class_list":["post-7612","post","type-post","status-publish","format-standard","hentry","category-commodore-64","category-debian","category-installation","category-tutoriels"],"_links":{"self":[{"href":"https:\/\/entropie.org\/3615\/index.php\/wp-json\/wp\/v2\/posts\/7612"}],"collection":[{"href":"https:\/\/entropie.org\/3615\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/entropie.org\/3615\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/entropie.org\/3615\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/entropie.org\/3615\/index.php\/wp-json\/wp\/v2\/comments?post=7612"}],"version-history":[{"count":51,"href":"https:\/\/entropie.org\/3615\/index.php\/wp-json\/wp\/v2\/posts\/7612\/revisions"}],"predecessor-version":[{"id":7680,"href":"https:\/\/entropie.org\/3615\/index.php\/wp-json\/wp\/v2\/posts\/7612\/revisions\/7680"}],"wp:attachment":[{"href":"https:\/\/entropie.org\/3615\/index.php\/wp-json\/wp\/v2\/media?parent=7612"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/entropie.org\/3615\/index.php\/wp-json\/wp\/v2\/categories?post=7612"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/entropie.org\/3615\/index.php\/wp-json\/wp\/v2\/tags?post=7612"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}