PWM na PC speakeru dost zatěžovala CPU. S převodníkem na LPT šlo dosáhnout vyšších vzorkovacích frekvencí.
Odporový převodník nepotřeboval zdroj, ale byl z něj slyšet šum sběrnice.
Pro druhý bastl jsem použil MDAC08 + MBA810 s vlastním zdrojem.
Dnes stačí převodník USB->TOSLINK a nemusí se řešit zemní smyčky.
Co se zátěže CPU Covox na LPT1 a PC Speakeru, tam žádný rozdíl nebyl. PC Speaker musel fungovat na frekvenci kolem 16-18kHz, vyšší čísla šla použít taky, ale ta převodní tabulka pro 8253 byla jiná a měla nižší citlivost. Ona už na těch 16kHz měla efektivně asi jen 6bitů.
Přehrávání na pozadí se realizovalo pomocí přerušení na téhle frekvenci. Přehravač musel přeprogramovat 8253 channel 0 na tuhle frekvenci a sám se usadit na obsluze přerušení. Poté mohl, aby zachoval nějakou kompatibilitu volat původní obsluhu, ovšem v původních 18Hz a ještě při tom povolit přerušení, protože on DOS na tom interruptu měl nějaké činnosti, které nebyly nekonečně rychlé. Nebo původní obsluhu vůbec nevolat.
Covox vzhledem k tomu, že neměl žádné DMA ani jiný buffer, vyžadoval též rychlý interrupt. Ve výsledku rozdíl mezi Covoxem a PC Speakerem byl v několik instrukcích
- Covox driver poslal sampl na LPT1 (instrukce out)
- PC Speaker drivel udělal instrukci XTAL přes tabulku a výsledek poslal do 8253 (instrukce out)
Zbytek byl stejný.