From: ian Date: Sun, 15 May 2005 23:12:01 +0000 (+0000) Subject: work out addresses exactly ourselves as assembler/linker cannot manage to divide... X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ijackson/git?a=commitdiff_plain;h=53a92559730ab7a486bc7761574921f3923b17ee;p=trains.git work out addresses exactly ourselves as assembler/linker cannot manage to divide by four --- diff --git a/cebpic/morse-auto.asm-gen b/cebpic/morse-auto.asm-gen index 56d6df2..fe5ec8c 100755 --- a/cebpic/morse-auto.asm-gen +++ b/cebpic/morse-auto.asm-gen @@ -59,12 +59,16 @@ END print <<'END' or die $! include morse-defs.inc + include morse-auto.inc + radix dec org morse_messages_start END if $which eq 'asm'; +$bytes= 0; + while (<>) { chomp; s/\#.*//; @@ -98,11 +102,14 @@ while (<>) { push @data, ('0') x (3 - (scalar(@data) + 3) % 4); - print ("morse_$morse_name db @data\n") or die $! + print("morse_$morse_name db @data\n") or die $! if $which eq 'asm'; - print (" extern morse_$morse_name\n") or die $! + printf("morse_$morse_name equ morse_messages_start+0x%x\n", + $bytes) or die $! if $which eq 'inc'; + + $bytes += scalar @data; } print <<'END' or die $!