commit eecc137b8f984d7e02587b5ca93c069ae5b5fe2a
parent 3b8a0138b9fa6d21aa5dd1efede3913574f8f2cf
Author: Jean Schurger <jean@schurger.org>
Date: Wed, 4 Nov 2026 18:53:13 -0500
EXELTEL : seconde machine (terminal télématique 64 Ko)
Sélecteur « Machine » dans la page : EXL 100 (défaut) ou EXELTEL, le terminal
télématique de la même famille (TMS7000, 64 Ko, même driver exelv). Sur EXELTEL
on masque la bibliothèque de programmes EXL 100 et on recharge via ?game=exeltel.
L'EXELTEL démarre sur son menu (MODE LOCAL : Téléphone, Répondeur, Communication,
Périphériques, Pages, Terminal, Exelquad). ROM embarquée (roms/exeltel.zip).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QyJB9yqUAYm3wRQi4uytj9
Diffstat:
3 files changed, 30 insertions(+), 1 deletion(-)
diff --git a/Makefile b/Makefile
@@ -6,7 +6,10 @@ WWW = /var/www/exl100.schurger.org
VHOST = exl100.schurger.org
# dsp-cpp est cloné ici à la compilation (pas de licence amont : on ne le versionne pas), épinglé
-# à un commit connu. roms/exl100.zip est la ROM MAME (CRC 049109a3 + 38f6fc7a).
+# à un commit connu. roms/exl100.zip est la ROM MAME (CRC 049109a3 + 38f6fc7a). roms/exeltel.zip
+# est la ROM de l'EXELTEL (terminal télématique 64 Ko de la même famille, même driver exelv) : la
+# page le propose comme seconde machine (sélecteur « Machine »), lancé via ?game=exeltel. Les deux
+# ROMs sont embarquées dans dsp.data (DSP_WEB_ROMS_DIR).
UPSTREAM_URL = https://github.com/Chusogar/dsp-cpp.git
UPSTREAM_REV = fa4d1abbdcee2d55b51c7f4f4a469a16f41de5bf
diff --git a/roms/exeltel.zip b/roms/exeltel.zip
Binary files differ.
diff --git a/web/shell.html.in b/web/shell.html.in
@@ -119,6 +119,12 @@
<!-- Barre d'outils. Les contrôles « machine » et « driver » de dsp-cpp sont gardés (le script s'y
réfère) mais masqués : la page est fixée sur l'EXL 100. Seul le chargement de média est offert. -->
<div id="bar" class="toolbar">
+ <label class="machine-sel" title="EXL 100 (ordinateur familial) ou EXELTEL (le terminal télématique à 64 Ko)">Machine
+ <select id="machine">
+ <option value="exl100">EXL 100</option>
+ <option value="exeltel">EXELTEL (64 Ko)</option>
+ </select>
+ </label>
<label class="hidden">Machine
<select id="mtype">
<option value="all">All</option><option value="arcade">Arcade</option>
@@ -441,6 +447,26 @@
};
}
+ // Sélecteur de machine : EXL 100 (défaut) ou EXELTEL, le terminal télématique à 64 Ko de la même
+ // famille (même driver exelv). On recharge la page avec ?game=exeltel ; sur EXELTEL, la bibliothèque
+ // de programmes EXL 100 (cartouches/cassettes) ne s'applique pas, on masque son bouton.
+ const machineSel = $('machine');
+ const onExeltel = new URLSearchParams(location.search).get('game') === 'exeltel';
+ if (onExeltel) {
+ machineSel.value = 'exeltel';
+ $('pick').classList.add('hidden');
+ document.querySelector('header .sub').textContent =
+ "L'EXELTEL (1986), le terminal télématique de la même famille, à processeur TMS7000 et 64 Ko : " +
+ "Minitel intégré, répondeur et téléphone. Son menu s'affiche au démarrage (mode local, sans ligne).";
+ document.querySelector('header h1').innerHTML =
+ '<span class="logo">EXEL<span>TEL</span></span> dans le navigateur';
+ }
+ machineSel.onchange = () => {
+ location.href = machineSel.value === 'exeltel'
+ ? location.pathname + '?game=exeltel&rom=/roms/exeltel.zip'
+ : location.pathname;
+ };
+
const Module = window.Module = {
canvas: canvas,
print: (text) => { console.log(text); log(text); },