;cinvoke  strtod,ComboText,0
;fstp dword []
macro mMulPlus { local .a,.b,.e
      mov esi,dword [tmptxt]
      cmp word [esi],')+'
      jnz .a
      mov  byte [.op],'+'
.e:   mov word [esi],' )'
      mov eax,esi
      add eax,2
      cinvoke  strtod,eax,tmptxt
      fstp dword [.degris]
      jmp .b
.a:   cmp word [esi],')*'
      jnz .b
      mov  byte [.op],'*'
      jmp .e
.b:
      }
macro checkOp {
      cmp byte [.op],'*'
      jnz @f
      fmul dword [.degris]
@@:   cmp byte [.op],'+'
      jnz @f
      fadd dword [.degris]
@@:
      }
macro mSinRad { local .0,.4,.5,.0b,.tt
      finit
      cmp word [esi],'%%'
      jnz .0
      fild dword [.cnt]
      add  esi,3
      inc  dword [.cnt]
      jmp  .4
.0:   cmp word [esi],'%_'
      jnz .0b
      fild dword [.cnt]
      add  esi,3      
      jmp  .4
.0b:
      cinvoke  strtod,esi,tmptxt
      mov esi,dword [tmptxt]
     ; mMulPlus
      cmp byte [esi],')'
      jz  .5
      inc esi
.4:   cinvoke  strtod,esi,tmptxt
      fmul st0,st1
      fsin
      mMulPlus
      checkOp
      ;fmul dword [.degris]
      fstp qword [tmpresult]
      push dword [tmpresult+4]
      push dword [tmpresult]
      cinvoke sprintf,edi,'%f1.4'
      add  edi,eax
        sub edi,5
mov byte [edi],' '
mov al,32
      add  esp,8
mov esi,dword [tmptxt]
.tt:    inc esi
        cmp byte [esi],13
        ja .tt
        dec esi
.5: 
}
macro mCosRad { local .0,.4,.5,.0b,.tt
      finit
      cmp word [esi],'%%'
      jnz .0
      fild dword [.cnt]
      add  esi,3
      inc  dword [.cnt]
      jmp  .4
.0:   cmp word [esi],'%_'
      jnz .0b
      fild dword [.cnt]
      add  esi,3      
      jmp  .4
.0b:
      cinvoke  strtod,esi,tmptxt
      mov esi,dword [tmptxt]
     ; mMulPlus
      cmp byte [esi],')'
      jz  .5
      inc esi
.4:   cinvoke  strtod,esi,tmptxt
      fmul st0,st1
      fcos
      mMulPlus
      checkOp
      ;fmul dword [.degris]
      fstp qword [tmpresult]
      push dword [tmpresult+4]
      push dword [tmpresult]
      cinvoke sprintf,edi,'%f1.4'
      add  edi,eax
        sub edi,5
mov byte [edi],' '
mov al,32
      add  esp,8
mov esi,dword [tmptxt]
.tt:    inc esi
        cmp byte [esi],13
        ja .tt
        dec esi
.5: 
}
macro iftkn t,mtk {
        cmp  word [esi],t
        jnz  mtk
        inc  esi
        cinvoke sprintf,edi,'%d',dword [.cnt]
        add  edi,eax
      }

macro ifmath t,m { local .1
      cmp    dword [esi],t
      jnz    .1
      add    esi,5
      m
.1:
      }