init_calc proto int_length:DWORD,decseparator:DWORD,fract_length:DWORD off_calc proto hMath:HANDLE atoiX proto hMath:HANDLE,X:PVOID,Radix:DWORD atorX proto hMath:HANDLE,X:PVOID,Radix:DWORD int_add proto hCalc:HANDLE,x1:PVOID,x2:PVOID int_sub proto hMath:HANDLE,x1:PVOID,x2:PVOID int_mul proto hCalc:HANDLE,x1:PVOID,x2:PVOID int_div proto hCalc:HANDLE,x1:PVOID,x2:PVOID,Remn:PVOID itoaX proto hMath:HANDLE,X:PVOID,Radix:DWORD fmtitoax proto hMath:HANDLE,X:PVOID,Radix:DWORD,MaxNum:DWORD fmtrtoa proto hCalc:HANDLE,x1:PVOID,Radix:DWORD,MaxNum:DWORD rtoaX proto hMath:HANDLE,X:PVOID,Radix:DWORD uint_add proto hCalc:HANDLE,x1:PVOID,x2:PVOID uint_sub proto hMath:HANDLE,x1:PVOID,x2:PVOID uint_mul proto hCalc:HANDLE,x1:PVOID,x2:PVOID uint_div proto hCalc:HANDLE,x1:PVOID,x2:PVOID,Remn:PVOID ureal_add proto hCalc:HANDLE,x1:PVOID,x2:PVOID ureal_sub proto hCalc:HANDLE,x1:PVOID,x2:PVOID ureal_cmp proto hCalc:HANDLE,x1:PVOID,x2:PVOID ild proto hCalc:HANDLE,X:PVOID uild proto hCalc:HANDLE,X:PVOID ShortDivUx proto hCalc:HANDLE,W:PVOID,V:DWORD ShortMulUx proto hMath:HANDLE,W:PVOID,V:DWORD ShortRDiv proto hCalc:HANDLE,W:PVOID,V:DWORD ShortRMul proto hCalc:HANDLE,W:PVOID,V:DWORD recalcpi proto hCalc:HANDLE,ppi:PVOID,prec_pi:DWORD uint_cmp proto hCalc:HANDLE,x1:PVOID,x2:PVOID Factorial proto hCalc:HANDLE,x1:PVOID,n:DWORD Unfactorial proto hCalc:HANDLE,x1:PVOID,Remn:PVOID,maxN:DWORD ShortUintPow proto hCalc:HANDLE,x1:PVOID,n:DWORD _ultoa2 PROTO Val:DWORD,pBuff:PVOID,Radix:DWORD buffuild proto hCalc:HANDLE,x1:PVOID,pBuff:PVOID,szBuff:DWORD rmul proto hCalc:HANDLE,x1:PVOID,x2:PVOID rdiv proto hCalc:HANDLE,x1:PVOID,x2:PVOID radd proto hCalc:HANDLE,x1:PVOID,x2:PVOID rsub proto hCalc:HANDLE,x1:PVOID,x2:PVOID fmtator proto hCalc:HANDLE,x1:PVOID,Radix:DWORD rmove proto hCalc:HANDLE,x1:PVOID,x2:PVOID rsin proto hCalc:HANDLE,sine:PVOID,angle:PVOID,prec_sine:DWORD rcos proto hCalc:HANDLE,cosine:PVOID,angle:PVOID,prec_cosine:DWORD ralloc proto hCalc:HANDLE rfree proto hCalc:HANDLE,xfree:PVOID rsqrt proto hCalc:HANDLE,x1:PVOID,prec_sqrt:DWORD st2r proto hCalc:HANDLE,X:PVOID r2st proto hCalc:HANDLE,x1:PVOID rshl1 proto hCalc:HANDLE,x1:PVOID rshr1 proto hCalc:HANDLE,x1:PVOID rtest proto hCalc:HANDLE,x1:PVOID rsuidiv_bypow proto hCalc:HANDLE,x1:PVOID,dwx2:DWORD,_pow:DWORD GetEngineVersion proto ;САМАЯ ОСНОВНАЯ И ЕДИНСТВЕННАЯ СТРУКТУРА СОДЕРЖАЩАЯ ОСНОВНЫЕ ХАРАКТЕРИСТИКИ ЧИСЕЛ ;УКАЗАТЕЛЬ НА ТАКУЮ СТРУКТУРУ НЕОБХОДИМ ПОЧТИ ДЛЯ ВСЕХ ФУНКЦИЙ calc STRUC calc_size dd ? ;размер всей выделеной памяти при инициализации dd ? reg0 PVOID ? ; reg_x это комплект готовых для работы предопределённых переменных reg1 PVOID ? ; выделены они для облегчения программирования reg2 PVOID ? ; при решении не сложных задач этого достаточно, что в большинстве случаев reg3 PVOID ? ; позволяет избежать мароки с дополнительным выделением/освобождением памяти reg4 PVOID ? reg5 PVOID ? reg6 PVOID ? reg7 PVOID ? msr0 PVOID ? ; msr_x это комплект переменных для хранения промежуточных результатов вычисления msr1 PVOID ? msr2 PVOID ? msr3 PVOID ? msr4 PVOID ? msr5 PVOID ? msr6 PVOID ? msr7 PVOID ? Reserved1 db ? Reserved2 db ? ErrFlags db ? DecimalSeparator db ? ;код десятичного разделителя, обычно это точка или запятая int_length dd ? ;размер целой части числа в машинных словах для x86 это 4 байтовые DWORD`ы fract_length dd ? ;размер дробной части ascii_buff PVOID ? ;буфер ввода/вывода чисел в виде строк size_abuff dd ? ;размер буфера ввода/вывода числовых строк calc ENDS CALC_DESCRIPTOR TYPEDEF calc DIV_BY_ZERO equ 10b OVERFLOW_FLAG equ 100b