News:

Masm32 SDK description, downloads and other helpful links
Message to All Guests

Main Menu

Track down why program will not run under Wine

Started by Magnum, August 02, 2016, 02:10:02 PM

Previous topic - Next topic

Magnum

Is there a way to track down why a program will not run correctly under Wine ?

I have Ollydbg.

This is one example that does not run correctly.

;Telephone.asm
;              Simulate telephone ringing
;              Help from SuperDave -- a.k.a. DednDave,
;
;              PRODUCE 1 KHz TONE FOR 54.9 mS
;              PRODUCE 800 Hz TONE FOR 54.9 mS

.486                       ; create 32 bit code
.model flat, stdcall       ; 32 bit memory model
option casemap :none       ; case sensitive

include \masm32\include\windows.inc
include \masm32\include\masm32.inc
include \masm32\include\user32.inc
include \masm32\include\kernel32.inc
include \masm32\include\shell32.inc
includelib \masm32\lib\masm32.lib
includelib \masm32\lib\user32.lib
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\shell32.lib
include \masm32\macros\macros.asm

.data

.code 
                 
start:

mov ecx, 15
@@:
push ecx
invoke Beep, 1000, 55 ; Frequency in hertz and sound duration
invoke Beep, 800, 55   
pop ecx
dec ecx
jnz @B
invoke Sleep, 1500   

mov ecx, 15
@@:
push ecx
invoke Beep, 1000, 55 ; Frequency in hertz and sound duration
invoke Beep, 800, 55   
pop ecx
dec ecx
jnz @B
invoke Sleep, 1500

; mov ecx, 15
; @@:
; push ecx
; invoke Beep, 1000, 55 ;
; invoke Beep, 800, 55   
; pop ecx
; dec ecx
; jnz

invoke ExitProcess,0

end start


Take care,
                   Andy

Ubuntu-mate-18.04-desktop-amd64

http://www.goodnewsnetwork.org

anunitu

Main reason,it is an emulator,and may not do this in a perfect way. Write your own version(open source) and make it do as you wish..

Now there is a project to work your inner programmer dreams.

The source be with you.

https://wiki.winehq.org/Source_Code


Magnum

Do you mean to write it using a Linux assembler ?

Take care,
                   Andy

Ubuntu-mate-18.04-desktop-amd64

http://www.goodnewsnetwork.org

cman

You could try to write this using NASM. The most difficult part of this is that Linux does not have an API function to play a sound ( as far as I can tell ). You would have to use a special library to generate a tone.  :(

mineiro

Hello Magnum
I think beep is not working because speakers need priviledge access (root) under linux. As I say on previous topic I don't have speakers on my machine to try, nor speaker box nor speaker on motherboard.
Wine have a debug command 'winedbg'.
I do not have tried but you can try 'sudo wine yourprogram'.

On linux everything is a file. So, devices are files, a text file can be viewed as a sound card, a graphic card, hard disks. This means that if you like to clone a hard disk you just deal with it as being a file. A raw dump will clone it.
I'm saying this because you can try to echo on terminal (tty) a bell ascii and that will output on speaker. You can try too /dev/dsp device or other related to sound.
You can try to change permissions on some files/devices but I don't recomend this, so, you can access speaker as a normal user or group of users.
I'd rather be this ambulant metamorphosis than to have that old opinion about everything