Clavier
| Échap | RUN/STOP : interrompt un programme BASIC (et le langage machine en BASIC intégré) |
| Page ↑ | RUN/STOP + RESTORE : arrête tout et remet l'écran d'origine |
| Entrée / Maj Entrée | RETURN : valide la ligne sous le curseur ; avec Maj, passe à la ligne sans valider |
| ⌫ / Maj ⌫ | DEL / INST |
| Origine / Maj Origine | HOME / CLR (efface l'écran) |
| Ctrl 1…8 / Alt 1…8 | Couleurs 1 à 8 / couleurs 9 à 16 |
| Ctrl 9 / Ctrl 0 | RVS ON / RVS OFF (inversion vidéo) |
| Maj lettre / Alt lettre | Caractère graphique / graphique de la touche C= |
| Alt Maj | Bascule majuscules / minuscules |
| F1…F8 | Touches de fonction (lisibles avec GET) |
| Flèches + Tab | Joystick pendant un programme (Tab = feu) : port 2 par défaut, lu en PEEK(56320) ; le bouton « Joystick » le passe sur le port 1 (PEEK(56321)) |
| Ctrl V | Colle du texte comme s'il était tapé |
Tapez en minuscules : les lettres s'affichent en majuscules, comme sur la machine. Sur mobile, touchez l'écran ou la touche ⌨ pour faire apparaître le clavier.
Boutons et menus
Sous l'écran : RUN/STOP, RESTORE, curseurs, inversion vidéo, C= ⇧ (majuscules/minuscules), F1 à F7, FEU (tir du joystick) et les 16 couleurs. Sur le moniteur : Turbo (vitesse maximale au lieu de celle d'origine), Son, Effet tube (lignes de balayage), Joystick 2 / 1 (port utilisé) et Reset (redémarrage, mémoire effacée).
Programmes : démonstrations prêtes à lancer. Supports : disquette .d64, cassette .tap ou .t64, cartouche .crt et disquette du navigateur. Importer : listing collé, ou fichier .d64, .t64, .tap, .crt, .prg, .bas, .txt (vous pouvez aussi le glisser sur l'écran). Exporter : programme en mémoire en .prg, en .txt ou copié. Système : BASIC intégré ou ROM d'origine.
BASIC intégré (mode par défaut)
Instructions : PRINT, INPUT, GET, LET, IF…THEN, GOTO, GOSUB, RETURN, FOR…TO…STEP, NEXT, ON…GOTO/GOSUB, DIM, READ, DATA, RESTORE, DEF FN, POKE, WAIT, SYS, END, STOP, CONT, LIST, RUN, NEW, CLR, LOAD, SAVE, VERIFY, REM. OPEN, CLOSE, CMD et PRINT# sont acceptés mais sans effet.
Fonctions : ABS, ATN, COS, EXP, INT, LOG, RND, SGN, SIN, SQR, TAN, FRE, POS, PEEK, LEN, VAL, ASC, CHR$, STR$, LEFT$, RIGHT$, MID$, TI, TI$. Les abréviations d'origine marchent (? pour PRINT, lettre + Maj lettre).
Dans ce mode, le code de la ROM n'est pas présent : seules ces routines du système sont simulées pour le langage machine : $FFD2 (afficher), $FFE4 (lire une touche), $FFF0 (curseur), $AB1E (texte), $BDCD (nombre), $FFDE/$FFDB (horloge), $E544 (effacer), $FFBA/$FFBD/$FFD5/$FFD8 (charger, enregistrer) et $FCE2 (SYS 64738, redémarrer). Un appel à une autre routine arrête le programme avec « ?ROM $XXXX NOT EMULATED ».
Matériel simulé
Processeur 6510 complet (instructions officielles et non documentées, mode décimal, cycle supplémentaire au franchissement de page, double écriture des instructions lecture-modification-écriture) cadencé à 985 kHz. SYS lance du code machine, qui revient au BASIC par RTS.
Affichage calculé ligne par ligne pendant le balayage : un changement de registre en cours d'image (couleurs, mode, jeu de caractères, position des sprites) ne s'applique qu'aux lignes suivantes, ce qui permet les écrans partagés et le multiplexage des sprites. Modes texte, multicolore, couleur de fond étendue et bitmap ; défilement fin horizontal et vertical, modes 38 colonnes et 24 lignes ; changement de banque ; ouverture des bordures haute et basse. La puce vidéo vole 40 cycles au processeur toutes les 8 lignes et 2 cycles par sprite affiché. Sprites agrandis, multicolores, avec priorité, collisions et interruptions de collision.
SID 6581 synthétisé échantillon par échantillon : trois voix (triangle, dent de scie, impulsion à largeur réglable, bruit, formes combinées), enveloppes ADSR, synchronisation et modulation en anneau, filtre passe-bas / passe-bande / passe-haut avec résonance, sons échantillonnés joués par le registre de volume. Le son est coupé en Turbo. Deux CIA complets : timers A et B (continu ou un seul coup, B pouvant compter les passages à zéro de A), horloge TOD, interruptions (IRQ pour le premier, NMI pour le second), matrice clavier dans les deux sens, joystick sur les ports 1 et 2. La mémoire vive cachée sous les E/S ($D000-$DFFF) et sous les ROM est accessible selon le registre $01 et les lignes de la cartouche.
ROM d'origine (menu Système)
Avec vos fichiers ROM, le vrai BASIC et le vrai KERNAL tournent sur le processeur émulé et le clavier passe par la matrice du C64. Un lecteur virtuel répond sur les lecteurs 8 et 9 : LOAD, SAVE, OPEN/PRINT#/INPUT# et canal de commande 15 (S pour effacer, N pour formater une disquette dans le lecteur 8). RUN/STOP devient une vraie touche : un programme en langage machine ne s'arrête que s'il la teste ; utilisez alors Page ↑ (RESTORE). La cassette n'est pas disponible dans ce mode.
Open ROMs, inclus, est expérimental : son BASIC est très incomplet, et seuls LOAD et SAVE fonctionnent avec le lecteur virtuel (pas d'OPEN ni de canal de commande). Même limite avec un KERNAL modifié, comme JiffyDOS.
Disquettes
Une image .d64 (35 ou 40 pistes) insérée va dans le lecteur 8 ; elle est lisible et modifiable (SAVE écrit dans l'image, téléchargeable ensuite). La disquette du navigateur est alors sur le lecteur 9 ; sans image, elle est sur le lecteur 8. LOAD"$",8 affiche le répertoire ; LOAD"NOM",8 charge au début du BASIC, LOAD"NOM",8,1 à l'adresse du fichier ; LOAD"*",8,1 charge le premier programme. Sans numéro de lecteur, LOAD et SAVE simulent la cassette sur la disquette du navigateur (mode BASIC intégré uniquement).
Tout fichier .prg importé est chargé en mémoire et copié sur la disquette du navigateur : pour le recharger plus tard, LOAD"NOM",8,1 (ou ,9,1 si une image .d64 est insérée). Un programme en langage machine peut charger la suite d'un jeu par la routine système LOAD.
Cassettes et cartouches
Une archive .t64 contient des programmes prêts à charger : LOAD"NOM" (ou LOAD tout court pour le premier), dans les deux modes. Une cassette .tap est l'enregistrement fidèle de la bande : elle est lue impulsion par impulsion, ce qui permet aussi les chargeurs rapides des jeux, mais demande le mode ROM. Tapez LOAD"",1 puis cliquez sur Lecture dans Supports (un fichier .tap glissé sur l'écran se charge tout seul) ; le chargement est accéléré par défaut.
Cartouches .crt gérées : normales (8 Ko, 16 Ko, Ultimax), Ocean, Magic Desk, System 3, Dinamic, Fun Play, Super Games, Simons' BASIC et EasyFlash (en lecture). Brancher une cartouche redémarre la machine en mode ROM, sur vos ROM d'origine si elles sont chargées, sinon sur Open ROMs.
Limites
L'affichage est exact à la ligne près, pas au cycle près : un changement fait au milieu d'une ligne s'applique à toute la ligne suivante, et les astuces qui en dépendent (bordures latérales ouvertes, FLD, étirement de sprites, données vidéo modifiées en cours de rangée) ne sont pas reproduites. Le filtre du SID est une approximation (la courbe réelle du 6581 varie d'une puce à l'autre), l'enregistrement sur cassette n'est pas possible, et le lecteur 1541 n'est pas émulé au niveau matériel : les disquettes protégées ou à chargeur rapide ne fonctionnent pas.