Misc updates.
[seabios.git] / tools / buildrom.py
index beb51ac25367205d323e741c89a60467c8654ba1..fd490761e2bcae1f3ccf87c1bbaec8f67ce6023e 100755 (executable)
@@ -57,6 +57,10 @@ def main():
     if size32 > freespace:
         print "32bit code too large (%d vs %d)" % (size32, freespace)
         sys.exit(1)
+    if data16[spos:spos+size32] != '\0'*size32:
+        print "Non zero data in 16bit freespace (%d to %d)" % (
+            spos, spos+size32)
+        sys.exit(1)
     outrom = data16[:spos] + data32 + data16[spos+size32:]
 
     # Fixup initial jump to 32 bit code
@@ -64,10 +68,10 @@ def main():
     start32 = int(o32['OFFSET__start'], 16)
     outrom = alteraddr(outrom, jmppos+2, start32)
 
-    # Fixup resume from 16 jump to 32 bit code
-    jmppos = int(o16['OFFSET_set_resume32'], 16)
-    resume32 = int(o32['OFFSET_call16_resume'], 16)
-    outrom = alteraddr(outrom, jmppos+2, resume32)
+    print "Writing output rom %s" % OUT
+    print " 16bit C-code size: %d" % spos
+    print " 32bit C-code size: %d" % size32
+    print " Total C-code size: %d" % (spos+size32)
 
     # Write output rom
     f = open(OUT, 'wb')