Package: z80asm Version: 1.5-1 Severity: normal Tags: patch
Hi The following assembler program causes "a.asm:7: error: relative jump out of range (65537)": nop label: nop ds 64*1024-4,0 ;jr label ;works ;jr 1 ;works jr $+3 ;error ;jr label2 ;works label2: equ 1 This "jr" instruction is valid because the program counter wraps around when jump is executed (this program fills the entire Z80 address space). The error is only reported when "$" is used in the argument to "jr". With other jump instructions, which should produce equivalent code, the program assembles correctly. I believe the patch below fixes the problem (but it could be it just fixes symptoms of a bug deeper down in the expression evaluation code). Best regards Tomaz diff -ru z80asm-1.5/z80asm.c z80asm-1.5-new/z80asm.c --- z80asm-1.5/z80asm.c 2007-06-14 12:26:47.000000000 +0200 +++ z80asm-1.5-new/z80asm.c 2007-06-28 23:39:31.000000000 +0200 @@ -1397,6 +1397,8 @@ return; case TYPE_RELB: val -= count; + if (val >= 0x10000) + val -= 0x10000; if (val < -128 || val > 127) { printerr (1, "relative jump out of range (%d)\n", val); -- System Information: Debian Release: lenny/sid APT prefers testing APT policy: (500, 'testing') Architecture: i386 (i686) Kernel: Linux 2.6.18-4-k7 (SMP w/1 CPU core) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/bash Versions of packages z80asm depends on: ii libc6 2.5-9+b1 GNU C Library: Shared libraries z80asm recommends no packages. -- no debconf information -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]