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();