Przeglądam kod. Na razie znalazłem taki kawałek:
; =============== S U B R O U T I N E =======================================
sub_80C: ; CODE XREF: sub_218+15Cp sub_218+162p ...
ld a, 36h ; '6' ; wybór timera 0 w rejestrze sterującym
out (0EEh), a
ld c, 8Eh ; 'Ž' ; ustawienie adresu portu rejestru timera 0
out (c), l ; wysłanie do rejestru timera 0 wartości z L
out (c), h ; i zaraz potem z H - dwa kolejne zapisy ładują 16-bitową wartość do licznika
ld hl, 150h ; ustawienie licznika pętli
loc_819: ; CODE XREF: sub_80C:loc_819j
; sub_80C+12j
djnz $
dec hl
ld a, h
or l
jp nz, loc_819 ; i sama pętla opóźniająca
ld a, 3Ah ; ':' ; zatrzymanie timera 0
out (0EEh), a
ret
; End of function sub_80C
Odwołanie do portu 0xEE jest jeszcze tylko w jednym miejscu i wygląda na generowanie stałego tonu.
Wychodzi na to, ze wykorzystany jest tylko jeden kanał, bo nie znalazłem żadnych innych odwołań poza tą jedną procedurą.
Z całej czwórki bajtów użyteczne zostają więc 2 środkowe (czasy dla liczników), nadające właściwe tony dla generatora fali prostokątnej.
Nie znalazłem też żadnej pętli, która z użyciem tej procedury odgrywałaby coś z pamięci.