Afin de préserver mon Commodore 64, j’ai installé l’émulateur VICE (version 3.9 sous Debian 13) : sudo apt-get install vice
Télécharger 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écompresser l’archive.
cd ~/Téléchargements sudo cp -vR vice-3.9/data/* /usr/share/vice
Dans VICE, pour pouvoir sauvegarder ses programmes dans un répertoire personnel sous Debian, aller dans Preferences > Settings … > Peripheral devices > Drive puis cocher IEC Device. Dans Host file system Device, sélectionner le répertoire désiré en cliquant sur Browse. Puis cocher Save settings on exit.
Aide mémoire :
ALT D : Pour passer en plein écran et revenir en fenêtré.
ALT J : Pour inverser Joystick.
Pour lire un fichier .D64 :
Dans VICE, File > Attach disk image > Drive #8 > Choisir son fichier .D64 > Attach / Load
LOAD "*",8 puis éventuellement RUN.
RUN/STOP du C64 correspond à la touche ESC du PC.
Pour lire un fichier .TAP : LOAD
Commodore 64 : Guide de référence du programmeur
HELLO WORLD (1ère méthode)
Dans VICE, taper les lignes suivantes :
10 PRINT "HELLO WORLD"
Enregistrer le programme (le ,8 indique le lecteur de disquette – Drive 8):
SAVE "HELLO",8
Vider la mémoire de l’ordinateur :
NEW
Charger le programme, le lister et l’exécuter :
LOAD "HELLO",8 LIST RUN
HELLO WORLD (2ème méthode) :
Passer par mon éditeur dans Debian (Geany) :
10 print "hello world"
C’est très important de tout taper en minuscules pour que la suite fonctionne correctement.
Dans la console :
petcat -w2 -o hello.prg -- hello.bas
Dans VICE :
LOAD "HELLO.PRG",8 RUN
Pour automatiser la compilation / l’exécution du fichier .bas dans Geany (je n’utilise pas FreeBasic) :
petcat -w2 -o "%e.prg" -- "%f" x64sc "%e.prg"
Pour de la programmation en assembleur ACME (assembleur croisé multiplateforme pour les processeurs 6502/6510/65816):
sudo apt-get install acme
Pour automatiser la compilation / l’exécution du fichier .asm dans Geany (à la place de nasm) :
acme -f cbm -o "%e.prg" "%f" x64sc "%e.prg"
; ============================================================
; Assembleur 6502/6510 pour Commodore 64
; Compilation : acme -f cbm -o hello.prg hello.asm
; ============================================================
; ------------------------------------------------------------
; Point d'entrée du programme (adresse $0801)
; ------------------------------------------------------------
* = $0801 ; Directive ACME (pas une instruction 6502) :
; place le code qui suit à l'adresse $0801,
; l'adresse standard où le C64 attend le début
; d'un programme BASIC (utilisée par LOAD/SAVE).
; ------------------------------------------------------------
; En-tête BASIC minimal, équivalent à la ligne : "10 SYS 2064"
; ------------------------------------------------------------
!byte $0c, $08, $0a, $00, $9e, $20, $32, $30, $36, $34, $00, $00, $00
; Résultat : un LIST sur ce mini-programme affiche "10 SYS 2064", et un RUN
; exécute cette ligne comme un SYS normal, qui saute en exécution machine
; à l'adresse 2064 (décimal) = $0810 (hexadécimal).
; ------------------------------------------------------------
; Code machine
; ------------------------------------------------------------
* = $0810 ; 2064 en décimal = $0810 : adresse ciblée par le
; SYS 2064 de l'en-tête ci-dessus. Entre $080d (fin
; de l'en-tête) et $0810, ACME insère automatiquement
; des octets de remplissage ($00), sans conséquence.
CHROUT = $FFD2 ; Routine KERNAL : afficher caractère
start:
ldx #0 ; Initialise l'index x dans la chaine
loop:
lda message,x ; Charge le caractère
beq done ; Si caractère = 0, fin de chaîne
jsr CHROUT ; Affiche le caractère
inx ; Passe au caractère suivant
jmp loop ; Boucle
done:
rts ; Retour au BASIC
; ------------------------------------------------------------
; Données : la chaîne de caractères à afficher
; ------------------------------------------------------------
message:
!text "HELLO WORLD"
!byte 0
LIENS :
8-bit RetroProgramming : Chaine YouTube de Philippe Gianviti
RetroProgrammation : Chaine YouTube
Commodore Books


