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

disk-boot.mjs (1246B)


      1 // Exeldisk : l'EXL 100 démarre sur une image .fd (ROM d'amorçage $8000, DOS chargé en $D000).
      2 // Captures à 6 s et 15 s, trace PC (build de debug) pour voir où ça bloque.
      3 //   node test/disk-boot.mjs [image dans le MEMFS] [base-url] [préfixe]
      4 import { open, sleep } from './cdp.mjs';
      5 import { writeFileSync } from 'node:fs';
      6 
      7 const img = process.argv[2] ?? '/roms/disks/exeldos-1.4.fd';
      8 const base = process.argv[3] ?? 'http://127.0.0.1:8194';
      9 const prefix = process.argv[4] ?? '/tmp/disk';
     10 const url = base + '/?game=exl100&rom=/roms/exl100.zip&args=' + encodeURIComponent('--tape ' + img);
     11 const page = await open(url, { width: 900, height: 1100 });
     12 await sleep(6000);
     13 await page.screenshot(prefix + '-6s.png');
     14 await sleep(9000);
     15 await page.screenshot(prefix + '-15s.png');
     16 writeFileSync(prefix + '.log', page.logs.join('\n') + '\n');
     17 const fr = page.logs.map((l) => l.replace(/^\[\w+\]\s*/, '')).filter((l) => /^FR\d+ PC=/.test(l));
     18 console.log('statut :', await page.evaluate("document.getElementById('status').textContent"));
     19 console.log('trames :', fr.length, '; derniers PC :', fr.slice(-12).map((l) => l.split('PC=')[1].split(' ')[0]).join(' '));
     20 console.log('Captures :', prefix + '-6s.png', prefix + '-15s.png');
     21 page.close();