DOSBox-X branch

Here you can discuss the development of patches.

Re: DOSBox-X branch

Postby pantercat » 2019-11-02 @ 10:45

Hi, still having same SM bug with 0.82.23 :( at least on my system: Debian x64 and dosbox-x compiled with ./build-debug

sm segment:offset af -> byte becomes 00
sm segment:offset bf -> byte becomes BF (OK)
sm segment:offset cf -> byte becomes 00
sm segment:offset df -> byte becomes 00
sm segment:offset ef -> byte becomes EF (OK)
sm segment:offset ff -> byte becomes FF (OK)

Same behaviour with "sm segment offset" syntax.

If you need more details or something you can ask, or if I can do something for fixing it.

Regards.
pantercat
Newbie
 
Posts: 46
Joined: 2018-9-06 @ 17:22

Re: DOSBox-X branch

Postby hail-to-the-ryzen » 2019-11-29 @ 06:45

It may not be reproducible, but where a large time delay occurs at startup (such as loading cd audio), then sometimes movement of the parent window before the shell loads will lead to a sudden exit.
hail-to-the-ryzen
Member
 
Posts: 344
Joined: 2017-3-09 @ 01:34

Re: DOSBox-X branch

Postby pantercat » 2019-12-04 @ 12:39

Well, I've manage to locate where the problem is.

For anyone interested the following patch will let you write bytes AC, AF, CF and DF in memory.

Code: Select all
--- debug.cpp.ORIG   2019-12-01 01:27:21.000000000 +0100
+++ debug.cpp   2019-12-04 13:19:02.243257342 +0100
@@ -1330,10 +1330,6 @@
     else if (strncmp(hex, "FS", 2) == 0) { hex += 2; regval = SegValue(fs); }
     else if (strncmp(hex, "GS", 2) == 0) { hex += 2; regval = SegValue(gs); }
     else if (strncmp(hex, "SS", 2) == 0) { hex += 2; regval = SegValue(ss); }
-    else if (strncmp(hex, "AC", 2) == 0) { hex += 2; regval = GETFLAG(AC); }
-    else if (strncmp(hex, "AF", 2) == 0) { hex += 2; regval = GETFLAG(AF); }
-    else if (strncmp(hex, "CF", 2) == 0) { hex += 2; regval = GETFLAG(CF); }
-    else if (strncmp(hex, "DF", 2) == 0) { hex += 2; regval = GETFLAG(DF); }
     else if (strncmp(hex, "ID", 2) == 0) { hex += 2; regval = GETFLAG(ID); }
     else if (strncmp(hex, "IF", 2) == 0) { hex += 2; regval = GETFLAG(IF); }
     else if (strncmp(hex, "NT", 2) == 0) { hex += 2; regval = GETFLAG(NT); }


When I type "SM some:addr XX" I want to write opcode XX in memory, not 0 or 1 based on some flag value for XX=AC, AF, CF or DF.

Patch tested with last dosbox-x release: 0.82.24

Happy debugging :)
pantercat
Newbie
 
Posts: 46
Joined: 2018-9-06 @ 17:22

Re: DOSBox-X branch

Postby ripsaw8080 » 2019-12-04 @ 21:30

I believe the register/flag name parsing was originally intended to be for SR only, not for SM.

Does it work to write register values into memory (e.g. SM 0000:0200 AX)? If so, it may have been intended as a feature, but the collision between flag names and hex values could have been overlooked.
User avatar
ripsaw8080
DOSBox Author
 
Posts: 4426
Joined: 2006-4-25 @ 23:24

Re: DOSBox-X branch

Postby pantercat » 2019-12-05 @ 23:05

Yes, you can write register values into memory.
pantercat
Newbie
 
Posts: 46
Joined: 2018-9-06 @ 17:22

Previous

Return to DOSBox Patches

Who is online

Users browsing this forum: No registered users and 4 guests