exl100

Émulateur Exelvision EXL 100 (1984) dans le navigateur : dsp-cpp en WebAssembly, cartouches et cassettes BASIC
git clone https://git.schurger.org/exl100.git
Log | Files | Refs | README

cassettes.mjs (1027B)


      1 // Vérifie l'auto-chargement des cassettes : sélectionne un programme du groupe « Cassettes (BASIC) »
      2 // et laisse la PAGE taper LOAD"1"/Échap/RUN toute seule, puis capture le résultat.
      3 //   node test/cassettes.mjs [url] [slug1.k7,slug2.k7,...] [préfixe]
      4 import { open, sleep } from './cdp.mjs';
      5 
      6 const url = process.argv[2] ?? 'http://localhost:8191/';
      7 const which = (process.argv[3] ?? 'donkey-kong.k7,boulderdash.k7,exel-jack.k7').split(',');
      8 const prefix = process.argv[4] ?? '/tmp/exl100-cass';
      9 
     10 const page = await open(url, { width: 900, height: 820 });
     11 await sleep(12000);
     12 for (const slug of which) {
     13   await page.evaluate(`(() => { const s=document.getElementById('program'); s.value=${JSON.stringify('tape:' + slug)}; s.dispatchEvent(new Event('change')); })()`);
     14   await sleep(19000); // 4,5 s ExelBASIC + frappe + 7 s lecture + RUN
     15   const name = slug.replace(/\.k7$/, '');
     16   console.log(`${name} :`, await page.screenshot(`${prefix}-${name}.png`));
     17 }
     18 for (const l of page.logs) console.log(l);
     19 page.close();