News:

MASM32 SDK Description, downloads and other helpful links
MASM32.com New Forum Link
masmforum WebSite

presentation of my program

Started by Rockphorr, March 11, 2008, 11:04:10 AM

Previous topic - Next topic

Rockphorr

Quote from: dedndave on November 03, 2010, 10:28:00 AM
crashes under XP...
The NTVDM CPU has encountered an illegal instruction.
CS:0000 IP:0077 OP:f0 37 05 1b 02 Choose 'Close' to terminate the application.

that makes no sense   :P
why would the CS = 0 ?
some peculiarity with NTVDM, i guess

edit:
the opcodes they report disassemble to:
        lock    aaa
        add     ax,21Bh




Can you launch it ?
Strike while the iron is hot - Бей утюгом, пока он горячий

dedndave

no - i tried it in the root directory
same error

japheth


There's a problem in your program:


1371:01B6 9A00003615        CALL    1536:0000
1371:01BB E828FF            CALL    00E6
-u 8f
1371:008F 9A27008B14        CALL    148B:0027
1371:0094 7208              JB      009E
1371:0096 9ABA008B14        CALL    148B:00BA
1371:009B E8CAFF            CALL    0068
1371:009E C3                RET
1371:009F 1E                PUSH    DS
1371:00A0 52                PUSH    DX
1371:00A1 8CC8              MOV     AX,CS
1371:00A3 8ED8              MOV     DS,AX
1371:00A5 9A92003615        CALL    1536:0092
1371:00AA 2EA30402          MOV     CS:[0204],AX
1371:00AE 2EA31902          MOV     CS:[0219],AX
-u 148b:ba
148B:00BA 1E                PUSH    DS
148B:00BB 8CC8              MOV     AX,CS
148B:00BD 8ED8              MOV     DS,AX
148B:00BF E8E7FF            CALL    00A9
148B:00C2 9A05000000        CALL    0000:0005    ;<----- ???
148B:00C7 9A05000000        CALL    0000:0005    ;<----- ???
148B:00CC 1F                POP     DS
148B:00CD CB                RETF
148B:00CE 0000              ADD     [BX+SI],AL


It crashes when 0000:0005 is executed. Might be a link error.

ramguru

wow, I have to use an emulator in order to run this program in Windows 7 64bit, not exactly handy..
16bit appz are extinct, face it !

dedndave

i got it to work
i had to put the SWAP folder in the same directory as the EXE
so - apparently, if that folder is not present, the code crashes
you may want to add tests to insure that folder and its' contents are present

Rockphorr

Quote from: dedndave on November 07, 2010, 11:45:14 AM
i got it to work
i had to put the SWAP folder in the same directory as the EXE
so - apparently, if that folder is not present, the code crashes
you may want to add tests to insure that folder and its' contents are present

you try launch mde.exe alone ??? I think about add ckeck of is swap\*.lis present. But i think that every one who unpack new prog extract all content of .zip in a folder. I do not assume that you try use it alone.
Strike while the iron is hot - Бей утюгом, пока он горячий

Rockphorr

Quote from: Rockphorr on November 03, 2010, 11:11:27 AM
Quote from: dedndave on November 03, 2010, 10:28:00 AM
crashes under XP...
The NTVDM CPU has encountered an illegal instruction.
CS:0000 IP:0077 OP:f0 37 05 1b 02 Choose 'Close' to terminate the application.

that makes no sense   :P
why would the CS = 0 ?
some peculiarity with NTVDM, i guess

edit:
the opcodes they report disassemble to:
        lock    aaa
        add     ax,21Bh




CS = 0 in table for all loading images in \swap subfolder at start up

on win 2003 - ok



i think it means that \swap required.
Strike while the iron is hot - Бей утюгом, пока он горячий

Rockphorr

#22
Quote from: Rockphorr on November 08, 2010, 05:57:33 AM
Quote from: dedndave on November 07, 2010, 11:45:14 AM
i got it to work
i had to put the SWAP folder in the same directory as the EXE
so - apparently, if that folder is not present, the code crashes
you may want to add tests to insure that folder and its' contents are present

you try launch mde.exe alone ??? I will think about add check of is swap\*.lis present. But i think that every one who unpack new prog extract all content of .zip in a folder. I do not assume that you try use it alone.
Strike while the iron is hot - Бей утюгом, пока он горячий

Rockphorr

Quote from: dedndave on November 07, 2010, 11:45:14 AM
i got it to work
i had to put the SWAP folder in the same directory as the EXE
so - apparently, if that folder is not present, the code crashes
you may want to add tests to insure that folder and its' contents are present

dedndave, what do you think about, now when you launch it ???
Strike while the iron is hot - Бей утюгом, пока он горячий

dedndave

i unzipped it into a long-filename folder
it won't work in that folder, so i moved the EXE to a simple-name folder
that's how the error occurs

that is a fatal crash - lol
you should test for any condition that causes fatal error, and display a message

however, i think there is a better solution in this case
i don't know what those files are, but they are small enough to be internal to the EXE
if the EXE is self-contained, no need to test - and it is portable
Hutch just made a tool for converting binaries into data defines using DB   :U

dedndave

i can't really say, as i don't read Russian - lol

dedndave

another approach is to pack the data internal to the EXE
then, when the program is run, if the files are not present, they are generated

i have a 16-bit program like that
it uses a user-modifiable text file (.CFG)
if the file is not present, it unpacks it and creates it...

http://www.masm32.com/board/index.php?topic=15251.msg124088#msg124088

the EXE without the packed config file data is 19.5 Kb
the EXE with the packed config data is 35.8 Kb (zipped is 27.2 Kb   :bg )
the unpacked config file that it generates is 19.9 Kb

Rockphorr

Quote from: dedndave on November 08, 2010, 11:08:59 AM
i can't really say, as i don't read Russian - lol




If someone want correct or translate messages of my program  i can post incfiles that include all messages.
Please notify your language here.
Your name may by add to copyright page as translator.



I can post my russian to english translation inc file. Everyone can correct and make it better. My english is so so as you allready know.
Strike while the iron is hot - Бей утюгом, пока он горячий

Rockphorr

Quote from: japheth on November 07, 2010, 11:06:07 AM

There's a problem in your program:




148B:00BF E8E7FF            CALL    00A9
148B:00C2 9A05000000        CALL    0000:0005    ;<----- ???
148B:00C7 9A05000000        CALL    0000:0005    ;<----- ???



It crashes when 0000:0005 is executed. Might be a link error.


it is not problem - it is incorrect result of my dynamic linking mechanism. - can not load lis or lig file
Strike while the iron is hot - Бей утюгом, пока он горячий

Rockphorr

patched english version (fix bug of halt editor on eol at start of file)

Rename mde_en.zip to mde_en.rar (why rar ext is not allowed ???)

In rar you will find src\src_en.inc - it is file with my translation of messages. If someone can - correct it and post here.
Strike while the iron is hot - Бей утюгом, пока он горячий