macro mUsrBtns { local .ll,.l0,.l3
      xor     ecx,ecx
.ll:  mov     eax,ecx
      add     eax,IDCBtnUsr
      cmp     [wparam],eax
      jnz     .l0
invoke SendMessage,[ComboUser],dword CB_GETCURSEL,dword 0,0
mov ecx,eax
      mov     esi,[txtusr1+ecx*4]
      call   UsrTknReplace ;CopyToWinClipboard
      PasteTxtTo
      ret
.l0:  inc     ecx
      cmp     ecx,1 ;25 old usr btns
      jnz     .ll
      }
macro mZnaki2Btns { local .ll,.l0,.l3
      xor     ecx,ecx
.ll:  mov     eax,ecx
      add     eax,IDCBtnUsr+18+7
      cmp     [wparam],eax
      jnz     .l0
      mov     esi,znakTxt2
        ;imul ecx,3
        shl   ecx,1
        add   esi,ecx
      call   CopyToWinClipboard
      PasteTxtTo
      ret
.l0:  inc     ecx
      cmp     ecx,12*2+3
      jnz     .ll
      }
btns_Znakiss = 32
macro mZnakiBtns { local .ll,.l0,.l3
mZnaki2Btns
      xor     ecx,ecx
.ll:  mov     eax,ecx
      add     eax,IDCBtnUsr+110
      cmp     [wparam],eax
      jnz     .l0
      mov     esi,znakTxt
        ;imul ecx,3
        shl   ecx,1
        add   esi,ecx
      call   CopyToWinClipboard
      PasteTxtTo
      ret
.l0:  inc     ecx
      cmp     ecx,btns_Znakiss
      jnz     .ll
      }
IDCBtnUsr = 6000
        buttonYGen2 = 900
        btnXStart2  = 220-4
;360-90,414
invoke CreateWindowEx,0,'button','usrMacro',dword WS_VISIBLE+WS_CHILD,dword 360+113,dword 414,dword 70,dword 22,[DLL_hwnd],dword IDCBtnUsr,0,0
rept 0 {
invoke CreateWindowEx,0,'button','usr1',dword WS_VISIBLE+WS_CHILD,dword btnXStart2,dword buttonYGen2,dword 38,dword 25,[DLL_hwnd],dword IDCBtnUsr,0,0
invoke CreateWindowEx,0,'button','usr2',dword WS_VISIBLE+WS_CHILD,dword btnXStart2+40,dword buttonYGen2,dword 38,dword 25,[DLL_hwnd],dword IDCBtnUsr+1,0,0
invoke CreateWindowEx,0,'button','usr3',dword WS_VISIBLE+WS_CHILD,dword btnXStart2+80,dword buttonYGen2,dword 38,dword 25,[DLL_hwnd],dword IDCBtnUsr+2,0,0
invoke CreateWindowEx,0,'button','usr4',dword WS_VISIBLE+WS_CHILD,dword btnXStart2+120,dword buttonYGen2,dword 38,dword 25,[DLL_hwnd],dword IDCBtnUsr+3,0,0

invoke CreateWindowEx,0,'button','usr5',dword WS_VISIBLE+WS_CHILD,dword btnXStart2,dword buttonYGen2+30,dword 38,dword 25,[DLL_hwnd],dword IDCBtnUsr+4,0,0
invoke CreateWindowEx,0,'button','usr6',dword WS_VISIBLE+WS_CHILD,dword btnXStart2+40,dword buttonYGen2+30,dword 38,dword 25,[DLL_hwnd],dword IDCBtnUsr+5,0,0
invoke CreateWindowEx,0,'button','usr7',dword WS_VISIBLE+WS_CHILD,dword btnXStart2+80,dword buttonYGen2+30,dword 38,dword 25,[DLL_hwnd],dword IDCBtnUsr+6,0,0
invoke CreateWindowEx,0,'button','usr8',dword WS_VISIBLE+WS_CHILD,dword btnXStart2+120,dword buttonYGen2+30,dword 38,dword 25,[DLL_hwnd],dword IDCBtnUsr+7,0,0
}
buttonYGen2 = 380
btnXStart2  = 4
xor ebx,ebx
mov esi,4
.ryr:
mov eax,IDCBtnUsr+8
add eax,ebx
;invoke CreateWindowEx,0,'button','usr',dword WS_VISIBLE+WS_CHILD,dword esi,dword buttonYGen2,dword 34,dword 25,[DLL_hwnd],dword eax,0,0
add esi,36
inc ebx
cmp ebx,17
jb  .ryr

xor ebx,ebx
mov esi,4 ;406
mov edi,znakTxt2
.wyr:
mov eax,IDCBtnUsr+18+7
add eax,ebx
invoke CreateWindowEx,0,'button',edi,dword WS_VISIBLE+WS_CHILD,dword esi,dword buttonYGen2-25,dword 15,dword 20,[DLL_hwnd],dword eax,0,0
add edi,2
add esi,16
inc ebx
cmp ebx,12
jb  .wyr
invoke SetWindowText,eax,'&&' ;work

xor ebx,ebx
mov esi,4+192 ;406
mov edi,znakTxt3
.wy2:
mov eax,IDCBtnUsr+18+12+7
add eax,ebx
invoke CreateWindowEx,0,'button',edi,dword WS_VISIBLE+WS_CHILD,dword esi,dword buttonYGen2-25,dword 15,dword 20,[DLL_hwnd],dword eax,0,0
add edi,2
add esi,16
inc ebx
cmp ebx,12+3
jb  .wy2
;invoke CreateWindowEx,0,'button','usr10',dword WS_VISIBLE+WS_CHILD,dword btnXStart2+40,dword buttonYGen2,dword 38,dword 25,[DLL_hwnd],dword IDCBtnUsr+9,0,0
;invoke CreateWindowEx,0,'button','usr11',dword WS_VISIBLE+WS_CHILD,dword btnXStart2+80,dword buttonYGen2,dword 38,dword 25,[DLL_hwnd],dword IDCBtnUsr+10,0,0
;invoke CreateWindowEx,0,'button','usr12',dword WS_VISIBLE+WS_CHILD,dword btnXStart2+120,dword buttonYGen2,dword 38,dword 25,[DLL_hwnd],dword IDCBtnUsr+11,0,0
xor ebx,ebx
mov esi,4
mov edi,znakTxt
.ry2:
mov eax,IDCBtnUsr+110
add eax,ebx
invoke CreateWindowEx,0,'button',edi,dword WS_VISIBLE+WS_CHILD,dword esi,dword 335,dword 18,dword 18,[DLL_hwnd],dword eax,0,0
add esi,19
add edi,2
inc ebx
cmp ebx,btns_Znakiss
jb  .ry2
        jmp @f
        znakTxt db '+',0
                db '-',0
                db '*',0
                db '/',0
                db '1',0
                db '2',0
                db '3',0
                db '4',0
                db '5',0
                db '6',0
                db '7',0
                db '8',0
                db '9',0
                db '0',0
                db ':',0
                db '.',0
                db ',',0 
                db '~',0
                db ';',0
                db '!',0               
                db 'A',0
                db 'B',0
                db 'C',0
                db 'D',0
                db 'E',0
                db 'F',0
                db 'g',0
                db 'l',0
                db 'i',0
                db 's',0
                db 't',0
                db 'q',0
       znakTxt2 db '_',0
                db '%',0
                db '`',0
                db '<',0
                db '>',0
                db '#',0
                db '=',0
                db '$',0
                db ' ',0
                db '\',0
                db '?',0
                db '&',0 ;'&&' dast dve WM_PASTE nado inache
       znakTxt3 db 'x',0
                db 'y',0
                db 'z',0
                db 'h',0
                db 'o',0
                db 'w',0
                db 'u',0
                db 'k',0
                db 'p',0
                db 'r',0
                db 'm',0
                db 'n',0
                db 'j',0
                db 'v',0
                db '@',0
        rept 30 n:1 { txtusr#n dd usrEmptyTxt }
        usrEmptyTxt db ';no user text',13,10,0
        userFile db 'us1\usr1.txt',0
@@:     mov eax,userFile
        mov edx,UserAllTxt
        call LoadFile
        cmp  dword [rbait],0
        jz   @f
        mov esi,UserAllTxt
        add esi,[rbait]
        mov edi,UserAllTxt-1
        mov ebx,txtusr1
.1:     inc edi
        cmp edi,esi
        jae  @f
        cmp dword [edi],'#usr'
        jnz .1
        add edi,5+1
        mov [ebx],edi
        add ebx,4
.2:     inc edi
        cmp dword [edi],'....'
        jnz .2
        mov dword [edi],0
        cmp edi,esi
        jb  .1
@@: