Model Spectrum berbeda memiliki kecepatan CPU yang sedikit berbeda. Menggunakan jam 48K yang berjalan flat 3,5 MHz untuk penghitungan siklus, dengan membagi 16.000 sampel per detik menghasilkan waktu tunggu 219 siklus antara penulisan. Itu jumlah waktu yang cukup nyaman.
Sampel akan mengonsumsi sekitar 2KB per detik, yang ketat pada sistem 48K namun tidak bencana. Masalah utama adalah distorsi suara. Implementasi teknik ini tidak menimbulkan tantangan khusus.
Pulse Width Modulation: Kualitas Lebih Baik
PWM sedikit lebih rumit namun menjanjikan kualitas audio jauh lebih baik. Pada level sinyal elektrik, data PWM mengirimkan pulsa 1-bit sekali setiap sampel, dan panjang pulsa menunjukkan kekuatan sinyal audio yang dimaksudkan pada titik sampel itu.
Bandingkan PCM, yang secara efektif mengirimkan nilai digital multi-bit melalui kawat untuk mencapai tujuan yang sama. PWM lebih analog daripada PCM, meski lebih agresif dalam 1-bit.
Secara fisik, ini memanifestasikan sebagai konsekuensi dari fakta bahwa sinyal elektrik dapat berubah dari 1 ke 0 dan kembali dalam hitungan nanodetik, namun speaker fisik yang terpasang pada perangkat memerlukan puluhan mikrodetik untuk benar-benar melakukan perjalanan antara status “masuk” dan “keluar”.
Dengan menghentikan sinyal pada berbagai titik dalam perjalanannya, kekuatan speaker total bervariasi dengan cara yang jauh lebih presisi-controllable daripada yang disediakan PCM 1-bit.
Pada IBM PC, speaker 1-bit terikat ke timer perangkat keras, dan audio berkualitas tinggi dapat dihasilkan dengan memberi timer data PCM 7-bit. ZX Spectrum tidak sepenuhnya membantu dalam hal ini, dan pengembang harus mengelolanya dengan penghitungan siklus. Meski gagal mencapai sistem PWM yang memuaskan pada Spectrum, peneliti memiliki beberapa petunjuk dan yakin teknik secara keseluruhan valid.
Teknik Timing Presisi pada Z80
Sebelum menggali detail kode, penting memahami apa yang diperlukan untuk delay timing presisi. Hitungan “T-State” Z80 jauh lebih besar dan lebih licin daripada siklus CPU pada 6502. Sementara dapat merakit instruksi untuk menunggu jumlah siklus apa pun pada 6502 secara trivial, panduan Z80 harus lebih bersyarat.

📝 Tinggalkan Komentar
Komentar sebagai . Ditinjau admin sebelum tampil.