diff -up z80dasm-1.1.2/src/dz80.c.16-bit-addr z80dasm-1.1.2/src/dz80.c
--- z80dasm-1.1.2/src/dz80.c.16-bit-addr 2012-02-27 16:22:45.752821420 -0800
+++ z80dasm-1.1.2/src/dz80.c 2012-02-27 16:28:02.023832401 -0800
@@ -92,7 +92,7 @@ int ckrange(int skip, char *str)
/* not enough data in file */
return -1;
}
- val=t[skip+0]+256*t[skip+1];
+ val=(t[skip+0]+256*t[skip+1]) & 0xffff;
if(pass==1 || pass==2 || (!a_labels)) {
/* on first two passes don't bother printing labels (or if
@@ -149,7 +149,7 @@ int ckrange_rel(int skip, int pc, char *
} else {
val=pc+2+t[skip]-256;
}
-
+ val &= 0xffff;
symb=symbol_find(val);
}
diff -up z80dasm-1.1.2/src/table.c.16-bit-addr z80dasm-1.1.2/src/table.c
--- z80dasm-1.1.2/src/table.c.16-bit-addr 2012-02-27 16:22:35.847821076 -0800
+++ z80dasm-1.1.2/src/table.c 2012-02-27 16:23:13.163822371 -0800
@@ -123,7 +123,7 @@ else if(ia[0]==0x10)
if(argtyp==undef) {
return 1;
} else {
- symbol_newref(argval,prc,argtyp);
+ symbol_newref(argval & 0xffff,prc,argtyp);
}
return(1);/*ok*/