Betettem az IX nélküli kicsomagoló rutint, és eszközöltem a javallott módosításokat. A módosított kicsomagoló tökéletesen működik, gondolom most optimalizálsz, a hozzászólás eltűnéséből gondolom

Természetesen ahogy szoktam, hibát vétettem, vagyis annyi, hogy a vezérlés nem lassult, hanem gyorsítani is sikerült rajta, jelentős 6, azaz jól látja mindenki 6 ciklust

(igaz a DI-s rész 3 ciklussal hosszabb lett) ,ez eredetileg 12 lett volna ezzel a kóddal:
ld a,c
ld (v1vol+1),a
ld d,b
; and 80h
; ld e,a
ld b,high volumeConvTable
ld a,(bc)
inc b
rra
jr c,pulse1
ld (otherw+2),a ;triangle sawtooth noise
di
ld (sidSynth.l1+1),hl
ld hl,otherw
jr wavtab1
pulse1 rrca ; * 8-bit d/a: add a, a (87h)
ld (pulsevl+1),a ;volume value
ld a,d
ld (pulsew+1),a ;pwm
di
ld (sidSynth.l1+1),hl
ld hl,pulsew
wavtab1 ;ld a,e ;ring mod
ld a,(bc) ;xor a/and d
ld (sidSynth.l2),a
de, így a volumeConvTable-ből való adat kinyeréskor előfordult, hogy a C bit be volt lőve, eredetileg egy xor a-t akartam tenni a volumeConvTable elé,de akkor eszembe jutott, hogy a hangerő kijelzőnél AND D-el vágom le a hangerő értéket, ha azt kiszedem, és az LD DE,0e01fh helyett csak LD D,0e0h-t használok, akkor még gyorsítani is lehet 3x1 + 3 ciklust a következő módosítással

ld a,c
and 1fh
ld (v1vol+1),a
ld d,b
; and 80h
; ld e,a
ld b,high volumeConvTable
ld a,(bc)
inc b
rra
jr c,pulse1
ld (otherw+2),a ;triangle sawtooth noise
di
ld (sidSynth.l1+1),hl
ld hl,otherw
jr wavtab1
pulse1 rrca ; * 8-bit d/a: add a, a (87h)
ld (pulsevl+1),a ;volume value
ld a,d
ld (pulsew+1),a ;pwm
di
ld (sidSynth.l1+1),hl
ld hl,pulsew
wavtab1 ;ld a,e ;ring mod
ld a,(bc) ;xor a/and d
ld (sidSynth.l2),a
természetesen ez is fagyival kezdett, mert az LD DE,0e01fh-ról LD D,0e0h-ra való átállásnál nem vettem figyelembe, hogy az 0e0h-t a program írja, ezt két helyen kellett még módosítani.
Csatolmány törölve