|
|
| version 1.6, 2003/11/28 08:01:33 | version 1.7, 2011/02/02 13:50:29 |
|---|---|
| Line 50 EM_OFF equ 0 | Line 50 EM_OFF equ 0 |
| .env_inc_decay1 resd 1 ; 3c | .env_inc_decay1 resd 1 ; 3c |
| .env_inc_decay2 resd 1 ; 40 | .env_inc_decay2 resd 1 ; 40 |
| .env_inc_rel resd 1 ; 44 | .env_inc_rel resd 1 ; 44 |
| .size | |
| endstruc | endstruc |
| struc ch_t | struc ch_t |
| .slot resb (slot_t.size * 4) | .slot resb (slot_t_size * 4) |
| .algorithm resb 1 | .algorithm resb 1 |
| .feedback resb 1 | .feedback resb 1 |
| .playing resb 1 | .playing resb 1 |
| Line 72 EM_OFF equ 0 | Line 71 EM_OFF equ 0 |
| .extop resb 1 | .extop resb 1 |
| .stereo resb 1 | .stereo resb 1 |
| resb 1 | resb 1 |
| .size | |
| endstruc | endstruc |
| struc opngen_t | struc opngen_t |
| Line 238 og_algchk: cmp byte [esi + ch_t.algori | Line 236 og_algchk: cmp byte [esi + ch_t.algori |
| jmp short og_calcslot3 | jmp short og_calcslot3 |
| og_calcalg5: mov ebx, [esi + ch_t.connect1] ; case ALG != 5 | og_calcalg5: mov ebx, [esi + ch_t.connect1] ; case ALG != 5 |
| add [ebx], eax | add [ebx], eax |
| og_calcslot3: add edi, byte slot_t.size ; slot3 calculate | og_calcslot3: add edi, byte slot_t_size ; slot3 calculate |
| calcenv envcalc2, envret2 | calcenv envcalc2, envret2 |
| jl short og_calcslot2 | jl short og_calcslot2 |
| mov eax, [_opngen + opngen_t.feedback2] | mov eax, [_opngen + opngen_t.feedback2] |
| op_out | op_out |
| mov ebx, [esi + ch_t.connect2] | mov ebx, [esi + ch_t.connect2] |
| add [ebx], eax | add [ebx], eax |
| og_calcslot2: add edi, byte slot_t.size ; slot2 calculate | og_calcslot2: add edi, byte slot_t_size ; slot2 calculate |
| calcenv envcalc3, envret3 | calcenv envcalc3, envret3 |
| jl short og_calcslot4 | jl short og_calcslot4 |
| mov eax, [_opngen + opngen_t.feedback3] | mov eax, [_opngen + opngen_t.feedback3] |
| op_out | op_out |
| mov ebx, [esi + ch_t.connect3] | mov ebx, [esi + ch_t.connect3] |
| add [ebx], eax | add [ebx], eax |
| og_calcslot4: add edi, byte slot_t.size ; slot4 calculate | og_calcslot4: add edi, byte slot_t_size ; slot4 calculate |
| calcenv envcalc4, envret4 | calcenv envcalc4, envret4 |
| jl short og_calcsloted | jl short og_calcsloted |
| mov eax, [_opngen + opngen_t.feedback4] | mov eax, [_opngen + opngen_t.feedback4] |
| Line 260 og_calcslot4: add edi, byte slot_t.size | Line 258 og_calcslot4: add edi, byte slot_t.size |
| mov ebx, [esi + ch_t.connect4] | mov ebx, [esi + ch_t.connect4] |
| add [ebx], eax | add [ebx], eax |
| og_calcsloted: inc dword [_opngen + opngen_t.playing] | og_calcsloted: inc dword [_opngen + opngen_t.playing] |
| og_calcch_nt: add esi, ch_t.size | og_calcch_nt: add esi, ch_t_size |
| dec ch | dec ch |
| jne near og_calcch_lp | jne near og_calcch_lp |
| mov eax, [_opngen + opngen_t.outdc] | mov eax, [_opngen + opngen_t.outdc] |
| Line 370 ogv_algchk: cmp byte [esi + ch_t.algor | Line 368 ogv_algchk: cmp byte [esi + ch_t.algor |
| jmp short ogv_calcslot3 | jmp short ogv_calcslot3 |
| ogv_calcalg5: mov ebx, [esi + ch_t.connect1] ; case ALG != 5 | ogv_calcalg5: mov ebx, [esi + ch_t.connect1] ; case ALG != 5 |
| add [ebx], eax | add [ebx], eax |
| ogv_calcslot3: add edi, byte slot_t.size ; slot3 calculate | ogv_calcslot3: add edi, byte slot_t_size ; slot3 calculate |
| calcenv vrenvcalc2, vrenvret2 | calcenv vrenvcalc2, vrenvret2 |
| jl short ogv_calcslot2 | jl short ogv_calcslot2 |
| mov eax, [_opngen + opngen_t.feedback2] | mov eax, [_opngen + opngen_t.feedback2] |
| op_out | op_out |
| mov ebx, [esi + ch_t.connect2] | mov ebx, [esi + ch_t.connect2] |
| add [ebx], eax | add [ebx], eax |
| ogv_calcslot2: add edi, byte slot_t.size ; slot2 calculate | ogv_calcslot2: add edi, byte slot_t_size ; slot2 calculate |
| calcenv vrenvcalc3, vrenvret3 | calcenv vrenvcalc3, vrenvret3 |
| jl short ogv_calcslot4 | jl short ogv_calcslot4 |
| mov eax, [_opngen + opngen_t.feedback3] | mov eax, [_opngen + opngen_t.feedback3] |
| op_out | op_out |
| mov ebx, [esi + ch_t.connect3] | mov ebx, [esi + ch_t.connect3] |
| add [ebx], eax | add [ebx], eax |
| ogv_calcslot4: add edi, byte slot_t.size ; slot4 calculate | ogv_calcslot4: add edi, byte slot_t_size ; slot4 calculate |
| calcenv vrenvcalc4, vrenvret4 | calcenv vrenvcalc4, vrenvret4 |
| jl short ogv_calcsloted | jl short ogv_calcsloted |
| mov eax, [_opngen + opngen_t.feedback4] | mov eax, [_opngen + opngen_t.feedback4] |
| op_out | op_out |
| mov ebx, [esi + ch_t.connect4] | mov ebx, [esi + ch_t.connect4] |
| add [ebx], eax | add [ebx], eax |
| ogv_calcsloted: add edi, byte (ch_t.size - (slot_t.size * 3)) | ogv_calcsloted: add edi, byte (ch_t_size - (slot_t_size * 3)) |
| dec ch | dec ch |
| jne near ogv_calcch_lp | jne near ogv_calcch_lp |
| mov eax, [_opngen + opngen_t.outdl] | mov eax, [_opngen + opngen_t.outdl] |
| Line 451 ogv_noupdate: ret 4 | Line 449 ogv_noupdate: ret 4 |
| setenv vrenvcalc3, vrenvret3, 4 | setenv vrenvcalc3, vrenvret3, 4 |
| setenv vrenvcalc4, vrenvret4, 8 | setenv vrenvcalc4, vrenvret4, 8 |
| ends | |