84 lines
2.0 KiB
Plaintext
84 lines
2.0 KiB
Plaintext
|
|
|||
|
FourierBufferStart DW 0
|
|||
|
|
|||
|
FourierBufferInputStart DW 0
|
|||
|
FourierBufferInputFractional DW 0
|
|||
|
FourierBufferStepOffset DW 1
|
|||
|
FourierBufferStepFractional DW 0
|
|||
|
|
|||
|
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
Proc UpdateFourierBuffer
|
|||
|
|
|||
|
PushAD
|
|||
|
Push DS
|
|||
|
Push ES
|
|||
|
|
|||
|
Push CS
|
|||
|
Pop DS
|
|||
|
Assume DS:Driver
|
|||
|
|
|||
|
Xor EBX, EBX
|
|||
|
Xor ESI, ESI
|
|||
|
|
|||
|
Mov BX, MixTransferOffset
|
|||
|
Mov DI, FourierBufferStart
|
|||
|
ShR BX, 3
|
|||
|
Mov CX, BytesToMix
|
|||
|
Mov SI, FourierBufferInputStart
|
|||
|
Add SI, BX
|
|||
|
Add CX, BX
|
|||
|
|
|||
|
Mov BP, FourierBufferInputFractional
|
|||
|
Mov DX, FourierBufferStepOffset
|
|||
|
Mov BX, FourierBufferStepFractional
|
|||
|
|
|||
|
Mov ES, FourierSegment
|
|||
|
Mov DS, MixSegment
|
|||
|
|
|||
|
Assume DS:Nothing
|
|||
|
|
|||
|
UpdateFourierBuffer1:
|
|||
|
Mov EAX, [ESI*8]
|
|||
|
Add EAX, [ESI*8+4]
|
|||
|
SAR EAX, 13
|
|||
|
Cmp EAX, 7FFFh
|
|||
|
JG UpdateFourierBuffer3
|
|||
|
Cmp EAX, -8000h
|
|||
|
JL UpdateFourierBuffer4
|
|||
|
|
|||
|
UpdateFourierBuffer2:
|
|||
|
StosW
|
|||
|
|
|||
|
Add BP, BX
|
|||
|
AdC SI, DX
|
|||
|
And DI, (FOURIERBUFFERLENGTH*2)-1
|
|||
|
|
|||
|
; Cmp past end of buffer?
|
|||
|
Cmp SI, CX
|
|||
|
JB UpdateFourierBuffer1
|
|||
|
|
|||
|
Sub SI, CX
|
|||
|
Mov FourierBufferStart, DI
|
|||
|
Mov FourierBufferInputFractional, BP
|
|||
|
Mov FourierBufferInputStart, SI
|
|||
|
|
|||
|
Pop ES
|
|||
|
Pop DS
|
|||
|
PopAD
|
|||
|
|
|||
|
Ret
|
|||
|
|
|||
|
UpdateFourierBuffer3:
|
|||
|
Mov AX, 7FFFh
|
|||
|
Jmp UpdateFourierBuffer2
|
|||
|
|
|||
|
UpdateFourierBuffer4:
|
|||
|
Mov AX, 8000h
|
|||
|
Jmp UpdateFourierBuffer2
|
|||
|
|
|||
|
EndP UpdateFourierBuffer
|
|||
|
|
|||
|
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|