Valami tényleg félre mehetett, fél másodperc 8bit 11KHz mono-nak 5500 bájtnak kéne lennie.
Ha nem írtam el semmit, ez egy megvalósítási mód, annyi, hogy az adatot előtte 6 bitesre kell konvertálnod:
init_digi:
di
ld a,(0038h) ;eredeti megszakítás elmenése
ld hl,(0039h)
push af
push hl
ld a,58h
out (0a7h),a ;digi bekapcs, és 1-es csatorna lesz a megszakítási frekvencia
xor a
out (0a1h),a ;megszakítási frekvencia beállítása
ld a,16h
out (0a0h),a
ld a,0c3h ;megszakítási rutin beállítása
ld hl,intrut
ld (0038h),a
ld (0039h),hl
ld hl,sample
ld bc,sample_length
ei
waitdigi
ld a,b
or c
jr nz,waitdigi
di ;itt a vége a digi lejátszásnak, kikapcsoljuk a digit, és visszaállítjuk a videó megszakítást
xor a
out (0a0h),a
out (0a1h),a
out (0a7h),a
ld a,30h
out (0b4h),a
pop hl ;eredeti megszakítás visszaállítása
pop af
ld (0038h),a
ld (0039h),hl
ei
intrut
ld a,03h
out (0b4h),a
ld a,(hl)
out (0a8h),a
out (0ach),a
inc hl
dec bc
ei
ret