### Author Topic: inkey hangs  (Read 571 times)

#### markallyn

• Member
• Posts: 122
##### Re: inkey hangs
« Reply #15 on: September 17, 2017, 11:43:17 PM »
Good morning, Hutch,

OK, I ran your code and again it failed to read my keystroke.  And I had to terminate the session ungracefully.  Perhaps I should note that I am running masm/masm32 under WINE on a Linux box.  To date I have had no problems although doing this involves a few more keystrokes than would a WIN 32/64 session.

As noted above, the masm32 printf macro works nicely.

Regards,

Mark

#### hutch--

• Member
• Posts: 4934
• Mnemonic Driven API Grinder
##### Re: inkey hangs
« Reply #16 on: September 17, 2017, 11:59:11 PM »
Mark,

It may be the case the Wine does not respond to the MSVCRT dll in the same way that it does in Windows 32/64. From memory you can construct a similar effect with an API function call but its been years since I have done one like that so I don't remember how its done.
hutch at movsd dot com
http://www.masm32.com

#### markallyn

• Member
• Posts: 122
##### Re: inkey hangs
« Reply #17 on: September 18, 2017, 01:10:51 AM »
Hutch,

I'm going to work under that assumption.  Since printf macro works fine it will do as a substitute.

This question is off-topic.  I will post it to The Campus if you think I should do so.  Here goes.

I have been attempting to install the 64 bit version of masm32 on another Linux box that is 64 bits.  The unzipped version I was able to download came with a file buildx64 containing a makeall.bat.  I've run into problems doing the build, again using Wine.  Gets partway thru and asks me (Yes|No) if I want to overwrite the lib file in buildx64.  When I hit the Yes response it crashes.

Is there a more recent version of the 64 bit package that has the lib/include files already built?

Thanks,
Mark

#### dedndave

• Member
• Posts: 8752
• Still using Abacus 2.0
##### Re: inkey hangs
« Reply #18 on: September 18, 2017, 03:01:22 AM »
this program calls a function that uses ReadConsoleInput
it displays the values returned for any keystroke
to exit the program, press the Esc key
the function may be used in a similar way to inkey...

#### hutch--

• Member
• Posts: 4934
• Mnemonic Driven API Grinder
##### Re: inkey hangs
« Reply #19 on: September 18, 2017, 04:25:28 AM »
Mark,

The problem here is I am developing 64 bit on Win 10 64 bit and have had to do a massive amount of testing to make it compatible with what works on Win 10. I check the apps on Win7 64 bit and have had no problems there but I am not willing to install Linux on a machine to further install Wine to test apps as I only have one life left and I don't have to time to learn a variant operating system to do the testing. I only undertake to make this 64 bit stuff so it works correctly on Win64 systems.
hutch at movsd dot com
http://www.masm32.com

#### nidud

• Member
• Posts: 1411
##### Re: inkey hangs
« Reply #20 on: September 18, 2017, 06:20:27 AM »
I've tested this code on Linux Mint 64 using Wine.
Code: [Select]
`include \masm32\include\masm32rt.inc.codestart:    inkey "Hello!"    exit    end start`
Works fine using a win32 file-manger or right-click Open With->Wine Windows Program Loader to execute.

However, using the Linux terminal or the Linux MC file-manger fails.

#### nidud

• Member
• Posts: 1411
##### Re: inkey hangs
« Reply #21 on: September 18, 2017, 06:55:42 AM »
This works thought.

Code: [Select]
`include \masm32\include\masm32rt.inc.dataformat db "hit any key to continue...",10,0.codestart:    invoke crt_printf,addr format    invoke crt__getch    invoke crt_exit,0    end start`

#### markallyn

• Member
• Posts: 122
##### Re: inkey hangs
« Reply #22 on: September 19, 2017, 01:48:36 AM »
Good morning Hutch and Nidud,

Hutch:  Do you have a masm64 package (I'm happy with whatever runs on Win 7) that I can download that is fully "made" in the form in which masm32 is built?  If so, how may I download it?

nidud:  Your last sentence appears to be fully consistent with what I am experiencing.

Thanks, folks.

Mark

#### markallyn

• Member
• Posts: 122
##### Re: inkey hangs
« Reply #23 on: September 19, 2017, 01:54:20 AM »
Hutch,

I forgot that 64 bit Win 7 probably doesn't exist!  My bad.

Mark

#### hutch--

• Member
• Posts: 4934
• Mnemonic Driven API Grinder
##### Re: inkey hangs
« Reply #24 on: September 19, 2017, 09:30:19 AM »
You sound like someone out of the Unix world. Win7 64 bit Ultimate certainly exists and I have it on my last machine which still runs perfectly.

RE : 64 bit MASM, I do not have the right to distribute Microsoft 64 bit binaries and don't intend to drag through negotiation with Microsoft to try and get it. Your best chance is to use JWASM or UASM of Nidud's version as it may be better suited for the Linux platform you are using.
hutch at movsd dot com
http://www.masm32.com

#### dedndave

• Member
• Posts: 8752
• Still using Abacus 2.0
##### Re: inkey hangs
« Reply #25 on: September 20, 2017, 04:17:12 AM »
i am curious to know if this works

Code: [Select]
`;***********************************************************************************************AnyKey  PROC;Wait for Any Console Key Press - DednDave;version 1, 12-2011;version 2, 2-2013;;  This function returns when any console key is pressed (bKeyDown = 1).;A possible drawback is that all input event records are removed from;the console input queue until a key is pressed. In many cases, this is;not an issue. The virtual key code, virtual scan code, TCHAR character,;and control key state values are returned in registers.;Call With: Nothing;;  Returns: EAX = TCHAR character (high word of EAX = 0);           ECX = control key state flags;               Bit   Name                Meaning;                0    RIGHT_ALT_PRESSED   Right ALT key is pressed;                1    LEFT_ALT_PRESSED    Left ALT key is pressed;                2    RIGHT_CTRL_PRESSED  Right CTRL key is pressed;                3    LEFT_CTRL_PRESSED   Left CTRL key is pressed;                4    SHIFT_PRESSED       SHIFT key is pressed;                5    NUMLOCK_ON          NUM LOCK light is on;                6    SCROLLLOCK_ON       SCROLL LOCK light is on;                7    CAPSLOCK_ON         CAPS LOCK light is on;                8    ENHANCED_KEY        Key is enhanced;           EDX:;           low word (DX) = virtual key code;               high word = virtual scan code;;           all other registers are preserved;-------------------------------------------------    LOCAL   ir          :INPUT_RECORD    LOCAL   uRecCnt     :UINT    LOCAL   hStdInp     :HANDLE;-------------------------------------------------    INVOKE  GetStdHandle,STD_INPUT_HANDLE    mov     hStdInp,eax    .repeat        INVOKE  ReadConsoleInput,hStdInp,addr ir,1,addr uRecCnt        movzx   edx,word ptr ir.EventType    .until (edx==KEY_EVENT) && (edx==ir.KeyEvent.bKeyDown)    movzx   eax,word ptr ir.KeyEvent.UnicodeChar    mov     ecx,ir.KeyEvent.dwControlKeyState    mov     edx,dword ptr ir.KeyEvent.wVirtualKeyCode    retAnyKey  ENDP;***********************************************************************************************`

#### nidud

• Member
• Posts: 1411
##### Re: inkey hangs
« Reply #26 on: September 20, 2017, 09:36:15 AM »
i am curious to know if this works

Yes that works