RE: [stella] DASM update -- 2.20.10b

Subject: RE: [stella] DASM update -- 2.20.10b
From: mathys66@xxxxxxxxxx
Date: Mon, 15 Aug 2005 15:58:37 -0400
I found the problem, but it's quite ugly. Diffing didn't help me much neither,
so I compiled 2.20.10 and 2.20.07, opened up two instances of Visual Studio
and stepped through both versions, comparing the content of the context windows
as I went on :)

Version 2.20.07 had a typedef called ulong (in asm.h):

typedef long ulong;

Note that this is actually a signed value, although the typedef's name suggests
it's unsigned. In version 2.20.10 this typedef has been removed, and all
(?) occurences of ulong have been replaced by "unsigned long". And there
you have the problem. If you change the type of the field called value in
the structure SYMBOL from "unsigned long" to "long", things *seem* to work
again.

SYMBOL {
    SYMBOL *next;    
    char *name;    
    char *string;
    unsigned char flags;
    unsigned char addrmode;
    long value;              /* Was unsigned long */
    unsigned int namelen;
};

Anyway, there could be also other places in the code where variables that
should be signed are now unsigned, that's why I say it's an ugly problem.

Cheers
Thomas

Archives (includes files) at http://www.biglist.com/lists/stella/archives/
Unsub & more at http://stella.biglist.com

Current Thread