README.md (2144B)
1 # exl100 : Exelvision EXL 100 (1984) dans le navigateur 2 3 https://exl100.schurger.org — l'ordinateur familial français Exelvision EXL 100 (processeur Texas 4 Instruments TMS7020, VDP TMS3556, synthèse vocale TMS5220, clavier infrarouge), émulé dans le 5 navigateur par l'émulateur **dsp-cpp** de Chusogar compilé en WebAssembly. 6 7 Même recette que [[zx81]] et [[st80]] : fichiers statiques sur apostrophe, publiés par `make deploy`. 8 9 ## Comment c'est fait 10 11 - `upstream/` : clone de [github.com/Chusogar/dsp-cpp](https://github.com/Chusogar/dsp-cpp) (C++17 + 12 SDL2, driver `exelv` d'après MAME `exelv.cpp`), épinglé au commit `fa4d1ab`. **Pas de licence amont : 13 on ne le versionne pas**, le Makefile le clone à la compilation (ignoré par git). 14 - `roms/exl100.zip` : ROM système MAME, `exl100in.bin` (TMS7020, CRC `049109a3`) + `exl100_7041.bin` 15 (TMS7041, CRC `38f6fc7a`), prise sur https://mdk.cab/download/split/exl100.zip. Embarquée dans 16 `dsp.data` à la compilation. 17 - `web/shell.html.in` : page (shell Emscripten) ; `make build` produit `dsp.js`, `dsp.wasm`, `dsp.data` 18 et `index.html` (depuis `dsp.html`), tous ignorés par git. 19 - `deploy/exl100.schurger.org` : vhost nginx d'apostrophe (8443 derrière sslh, joker, `application/wasm` 20 et `application/octet-stream` pour `.data`). 21 22 ## Commandes 23 24 - `make build` : clone dsp-cpp, puis Emscripten par Docker (`emscripten/emsdk:6.0.13`, cache `.emcache/`) 25 construit le seul driver `exelv`, ROM empaquetée, démarrage automatique de l'exl100 26 (`-DDSP_WEB_ARGS="--game exl100 /roms/exl100.zip"`). **Compile du code cloné : à lancer par Jean** 27 (le garde-fou « code externe » bloque l'agent) avec `! make build`. 28 - `make test` : démarrage dans Chromium headless, capture `/tmp/exl100.png`. 29 - `make serve` : http://localhost:8083/. 30 - `make deploy` : rsync vers `apostrophe:/var/www/exl100.schurger.org` ; `make install-vhost` une fois. 31 32 ## Utilisation 33 34 Clavier infrarouge émulé au clavier de l'hôte (positions comme dans MAME). F2 pause, F3 reset, F12 turbo. 35 ExelBASIC se charge comme cartouche pour obtenir une invite BASIC. Le son ne démarre qu'après un clic.