#!/usr/bin/env python

import sys

def print_usage():
    print "Compare two amiga disk images. They must be exactly 880 KiB long."
    print ""
    print "Usage: compareadfs [-t] disk1 disk2"
    print ""
    print " -t enables track compare mode (default is sector compare)"

if len(sys.argv) == 1:
    print_usage()
    sys.exit(0)

blocklen = 512
u = 'Sector'

i = 1
while i < len(sys.argv):
    if sys.argv[i] == '-h' or sys.argv[i] == '--help':
        print_usage()
        sys.exit(0)
    elif sys.argv[i] == '-t':
        blocklen = 512 * 11
        u = 'Track'
        i += 1
    else:
        break

f1 = open(sys.argv[i], 'r')
f2 = open(sys.argv[i + 1], 'r')

nblocks = 880 * 1024 / blocklen

for i in xrange(nblocks):
    f1.seek(blocklen * i)
    f2.seek(blocklen * i)
    a = f1.read(blocklen)
    b = f2.read(blocklen)
    assert(len(a) == blocklen)
    assert(len(b) == blocklen)
    if a != b:
        sys.stdout.write('%s %d differs. Offset %d.\n' %(u, i, blocklen * i))

f1.close()
f2.close()
