New script to calculate FAT12 structure
This commit is contained in:
Executable
+50
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user