Browse Source

Fix some regressions in the floppy image creation script.

coderain 7 years ago
parent
commit
b51e2e47dc
1 changed files with 7 additions and 6 deletions
  1. 7 6
      tests/mkfat.sh

+ 7 - 6
tests/mkfat.sh

@@ -78,7 +78,7 @@ function set_next_cluster()
                                             iflag=fullblock \
                                             oflag=seek_bytes \
                                             of=$OUTPUT_FILE \
-                                            seek=$((BYTES_PER_SECTOR + fat * SECTORS_PER_FAT + 3 * (cluster / 2))) \
+                                            seek=$((BYTES_PER_SECTOR * (1 + fat * SECTORS_PER_FAT) + 3 * (cluster / 2))) \
                                             bs=3 \
                                             count=1 \
                                             2>/dev/null
@@ -135,12 +135,12 @@ do
 
     (
         echo -en "${dosname}\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
-        printf '%02X%02X' $((first_cluster & 0xFF)) $((first_cluster >> 8)) | xxd -r -p | tr -d '\n'
-        printf "%02X%02X%02X%02X" \
+        printf '%02X%02X' $((first_cluster & 0xFF)) $((first_cluster >> 8)) | xxd -r -p
+        printf '%02X%02X%02X%02X' \
                $((size & 0xFF)) \
                $(((size >> 8) & 0xFF)) \
                $(((size >> 16) & 0xFF)) \
-               $(((size >> 24) & 0xFF)) | xxd -r -p | tr -d '\n'
+               $(((size >> 24) & 0xFF)) | xxd -r -p
     ) | dd conv=notrunc \
            iflag=fullblock \
            of=$OUTPUT_FILE \
@@ -158,8 +158,9 @@ do
            if=$file \
            of=$OUTPUT_FILE \
            skip=$i \
-           seek=$((FIRST_DATA_SECTOR + current_cluster)) \
-           bs=$BYTES_PER_SECTOR count=1 \
+           seek=$((FIRST_DATA_SECTOR + current_cluster - 2)) \
+           bs=$BYTES_PER_SECTOR \
+           count=1 \
            2>/dev/null
 
         set_next_cluster $current_cluster 4095