diff --git a/radio/util/fat12.py b/radio/util/fat12.py new file mode 100755 index 000000000..13889f3c7 --- /dev/null +++ b/radio/util/fat12.py @@ -0,0 +1,50 @@ +#!/bin/env python + +curr = 0 +idx = 0 +byte = 0 + +def push4bits(val): + global curr, idx, byte + val = val & 0x0f + curr += val << idx + idx += 4 + if idx == 8: + print "0x%02X," % curr, + idx = 0 + curr = 0 + byte += 1 + if byte % 16 == 0: + print + +cluster = 0 + +def pushCluster(val): + global cluster + push4bits(val) + push4bits(val >> 4) + push4bits(val >> 8) + cluster += 1 + +def pushFile(size): + sectors = size / 512 + count = sectors / 8 + for i in range(count-1): + pushCluster(cluster+1) + pushCluster(0xFFF) + +def pushDisk(eeprom, flash): + global curr, idx, byte, cluster + curr = idx = byte = cluster = 0 + print "Disk with %dk EEPROM and %dk FLASH:" % (eeprom, flash) + pushCluster(0xFF8) + pushCluster(0xFFF) + pushFile(eeprom*1024) + pushFile(flash*1024) + while byte < 512: + push4bits(0) + print + +pushDisk(32, 512) +pushDisk(64, 512) +