Gosh it has been *SOO* long since I looked at any of this. Comments in green Digging up tables/code: FILD [CS:FilterFreqValue] ; 0->127*256 ; I believe this is the cutoff frequency specified in IT, pre-multiplied by 256 FMul [CS:FreqParameterMultiplier] ; -i/(24*256) FLd ST FRndInt FSub ST(1), ST FXCh F2XM1 FLd1 FAdd FScale ; = 2^(i/24*256) FMul [CS:FreqMultiplier] ; = r FLd ST ; r, r FMul ST(1), ST ; r, r^2 FLd [CS:QualityFactorTable+BX] ; 2d, r, r^2 ; BX is an index into the table dependent on the Quality factor FMul ST(1), ST ; 2d, 2dr, r^2 FLd1 ; 1, 2d, 2dr, r^2 FSubP ST(1), ST ; 2d-1, 2dr, r^2 FAdd FLd1 ; 1, d, e ; This looks like just a variable rename for my sanity of the above. FAdd ST, ST(1) FAdd ST, ST(2) ; 1+d+e, d, e FLd1 ; 1, 1+d+e, d, e FDivRP ST(1), ST ; 1/(1+d+e), d, e FSt DWord Ptr [CS:BP+8] FXCh ; d, 1/(1+d+e), e FAdd ST, ST(2) FAddP ST(2), ST ; 1/(1+d+e), d+2e FMul FStP DWord Ptr [CS:BP+0Ch] FStP ST So the final coefficients here are: a = 1/(1+d+e) b = (d+2e) / (1+d+e) c = -e / (1+d+e) where d,e here are the 2dr+2d-1, r^2 defined previously Where: FreqMultiplier DD 3A9F7867h ; = 1/(2*PI*110.0*2^0.25) FreqParameterMultiplier DD 0B92AAAAAh ; = -1/(24*256) QualityFactorTable Label DWord DD 3F800000h, 3F7A8874h, 3F752ECBh, 3F6FF262h DD 3F6AD298h, 3F65CED3h, 3F60E678h, 3F5C18F1h DD 3F5765ACh, 3F52CC19h, 3F4E4BACh, 3F49E3DCh DD 3F459421h, 3F415BF8h, 3F3D3AE1h, 3F39305Ch DD 3F353BEFh, 3F315D21h, 3F2D937Ch, 3F29DE8Ch DD 3F263DE0h, 3F22B109h, 3F1F379Ah, 3F1BD12Ah DD 3F187D50h, 3F153BA8h, 3F120BCDh, 3F0EED5Fh DD 3F0BDFFDh, 3F08E34Bh, 3F05F6EEh, 3F031A8Ch DD 3F004DCEh, 3EFB20BEh, 3EF5C3D4h, 3EF0843Ch DD 3EEB6156h, 3EE65A84h, 3EE16F2Dh, 3EDC9EBBh DD 3ED7E89Bh, 3ED34C3Ch, 3ECEC913h, 3ECA5E95h DD 3EC60C3Bh, 3EC1D181h, 3EBDADE7h, 3EB9A0EEh DD 3EB5AA1Ah, 3EB1C8F2h, 3EADFCFFh, 3EAA45CEh DD 3EA6A2EDh, 3EA313EEh, 3E9F9862h, 3E9C2FE1h DD 3E98DA02h, 3E95965Fh, 3E926494h, 3E8F4440h DD 3E8C3504h, 3E893681h, 3E86485Dh, 3E836A3Eh DD 3E809BCCh, 3E7BB965h, 3E765939h, 3E711670h DD 3E6BF06Ah, 3E66E68Ah, 3E61F836h, 3E5D24D6h DD 3E586BD9h, 3E53CCADh, 3E4F46C5h, 3E4AD998h DD 3E46849Eh, 3E424752h, 3E3E2134h, 3E3A11C4h DD 3E361887h, 3E323503h, 3E2E66C2h, 3E2AAD4Fh DD 3E270838h, 3E23770Fh, 3E1FF965h, 3E1C8ED2h DD 3E1936ECh, 3E15F14Ch, 3E12BD91h, 3E0F9B56h DD 3E0C8A3Eh, 3E0989E9h, 3E0699FDh, 3E03BA20h DD 3E00E9F9h, 3DFC5268h, 3DF6EEF8h, 3DF1A8FCh DD 3DEC7FD5h, 3DE772E5h, 3DE28191h, 3DDDAB43h DD 3DD8EF67h, 3DD44D6Ch, 3DCFC4C4h, 3DCB54E6h DD 3DC6FD4Ah, 3DC2BD6Ah, 3DBE94C7h, 3DBA82DFh DD 3DB68738h, 3DB2A157h, 3DAED0C5h, 3DAB150Eh DD 3DA76DC0h, 3DA3DA6Ch, 3DA05AA3h, 3D9CEDFCh DD 3D99940Eh, 3D964C71h, 3D9316C3h, 3D8FF2A1h DD 3D8CDFABh, 3D89DD84h, 3D86EBCFh, 3D840A32h All of these are floating point coefficients written in integer form for the assembler to work... Not sure if that helps, or makes you more confused! :)