m/^\d+$/ or die;
$_<32 or die;
-push @a, $_ ? '0x00' : '0x80';
-push @a, sprintf "0x%02x", $_;
+# @a is the ID locations, one byte per array entry,
+# with $a[0] being the first ID location (ie 0x200000).
+# Values must be in hex (or otherwise suitable for the assembler).
+
+$a[0]= sprintf "0x%02x", $_;
+$a[1]= $_ ? '0x00' : '0x80';
printf "; automatically generated - do not edit\n" or die $!;
for ($i= 0x200000;