chiark / gitweb /
work out addresses exactly ourselves as assembler/linker cannot manage to divide...
authorian <ian>
Sun, 15 May 2005 23:12:01 +0000 (23:12 +0000)
committerian <ian>
Sun, 15 May 2005 23:12:01 +0000 (23:12 +0000)
cebpic/morse-auto.asm-gen

index 56d6df2c9e60c8503955a81570f0faf3f9fb417b..fe5ec8c9e8cbfa29c249e1b026535005467d9d04 100755 (executable)
@@ -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 $!