format PE64 Console 5.0 ;entry Start include 'win64wx.inc' ;include 'ENCODING\WIN1251.INC' include 'data.inc' .code Start: invoke SetConsoleTitle,conTitle test rax,rax jz Exit invoke GetStdHandle,STD_OUTPUT_HANDLE mov [hStdOut],rax invoke GetStdHandle,STD_INPUT_HANDLE mov [hStdIn],rax ;------------------------------------------------------------------------------- invoke GetConsoleScreenBufferInfoEx,[hStdOut],lpConsoleScreenBufferInfoEx SLE ; mov rdx,MAX_HEIGHT ; shl rdx,16 ; or rdx,MAX_WIDTH ; invoke SetConsoleScreenBufferSize,[hStdOut],rdx ; SLE ; invoke SetConsoleWindowInfo,[hStdOut],1,srect ; SLE ; invoke GetConsoleScreenBufferInfo,[hStdOut],lpConsoleScreenBufferInfo invoke WriteConsole,[hStdOut],mes,mesLen,chrsWritten,0 invoke ReadConsole,[hStdIn],readBuf,1,chrsRead,0 Exit: invoke ExitProcess,0 ;=============================================================================== proc locate x,y ;перемещение курсора shl rdx,16 mov r10,rdx or r10,rcx invoke GetStdHandle,STD_OUTPUT_HANDLE invoke SetConsoleCursorPosition,rax,r10 ret endp ;------------------------------------------------------------------------------- ;proc SetWindowSize wd,ht ; ; ret ;endp ;------------------------------------------------------------------------------- proc ShowLastError uses rbx,hWnd:qword local lpBuffer:QWORD mov [hWnd],rcx invoke GetLastError lea rbx,[lpBuffer] invoke FormatMessage,FORMAT_MESSAGE_ALLOCATE_BUFFER+FORMAT_MESSAGE_FROM_SYSTEM,0,rax,LANG_NEUTRAL,rbx,0,0 invoke MessageBox,[hWnd],[lpBuffer],NULL,MB_ICONERROR+MB_OK invoke LocalFree,[lpBuffer] ret endp .end Start