{
  "format": "tfx-launcher-comparison-1",
  "launchers": [
    {
      "version": "floppy_1993_11_loose",
      "launcher_path": "installs/floppy_1993_11_loose/TFX/START.EXE",
      "launcher_bytes": 33776,
      "launcher_sha256": "7637f820bfe459757c4e960a79b21612c6dc419701b5abe2e78cb065f5afc600",
      "engine_sha256": "e4566026fe706e5e399e438da0748775112aa6a06df40a86959da2ee902c93ad",
      "archive_bytes": 10493349,
      "archive_sha256": "905f7df315cd85a4bee5f352baf41a08adf4f0a6b822b3c28a28b55b04df0334",
      "archive_entries": 3460,
      "archive_trailing_hex": "43b3ffff",
      "components": {
        "osl": {
          "file_start": "0x2e40",
          "file_end_exclusive": "0x4da0",
          "bytes": 8032,
          "sha256": "2361bafd51801ba80fa1f132f6a23c73bb839a8fc6d35b448a20c665387e0437",
          "build_stamps": [
            "Date: 11/12/93",
            "Time: 21:22:29"
          ],
          "sha256_without_build_stamps": "3ebcf59af6194cb1c84273f34c0f0b06356ea3ecdd47753dd1b97b94df293c1f"
        },
        "wrapper": {
          "file_start": "0x4da0",
          "file_end_exclusive": "0x4ea0",
          "bytes": 256,
          "sha256": "8ffcfff026fe51f1e47bb2471f2eaef30cdf8a12c7d8e831c7c222013b9b5027",
          "build_stamps": [],
          "sha256_without_build_stamps": "8ffcfff026fe51f1e47bb2471f2eaef30cdf8a12c7d8e831c7c222013b9b5027"
        },
        "fm": {
          "file_start": "0x4ea0",
          "file_end_exclusive": "0x5f80",
          "bytes": 4320,
          "sha256": "bbac2be717d96a191cb94a20aae7c97ef3946d5f419adf0bbe1fee24d9ed9a43",
          "build_stamps": [
            "Date: 11/12/93",
            "Time: 21:22:29"
          ],
          "sha256_without_build_stamps": "4dbbde7e583a7a51d1f647934f85b4f245da4ac10cb6e7191817862b59aad8a9"
        },
        "scc1": {
          "file_start": "0x5f80",
          "file_end_exclusive": "0x6810",
          "bytes": 2192,
          "sha256": "1c225c728adb0c6f37c63c272841ac9024d4979c6f0575468ab4681b75c17acc",
          "build_stamps": [
            "Date: 11/12/93",
            "Time: 21:22:29"
          ],
          "sha256_without_build_stamps": "d93de6dc6b5160c5a0d85ce9a19191fb93c6cbd30b0ddb31ad1918e4e9db2ebf"
        },
        "lapc1": {
          "file_start": "0x6810",
          "file_end_exclusive": "0x6d60",
          "bytes": 1360,
          "sha256": "f779815756f5590b5e16b8ccb9c2f6c16f816afeabb1247cb0f249eb7a55e2bb",
          "build_stamps": [
            "Date: 11/12/93",
            "Time: 21:22:29"
          ],
          "sha256_without_build_stamps": "8587a881b73830b46a9acded81a4b7f93bb8f442e607b0c5b0fce31da2c60a7a"
        }
      },
      "osl_dispatch_offsets": [
        "0xa08",
        "0xa16",
        "0xa29",
        "0xa86",
        "0xab8",
        "0xc3e",
        "0xc7b",
        "0xd00",
        "0xd4b",
        "0xd8c",
        "0xda3",
        "0xda6",
        "0xdaa",
        "0xdf5",
        "0xe30",
        "0xe4a",
        "0xe64",
        "0xe88",
        "0x1725",
        "0x1eb6",
        "0x1ea5",
        "0x1dc6",
        "0x1dc0",
        "0x1e81",
        "0x1e87",
        "0x1e3f",
        "0x9e2",
        "0x1d4f",
        "0x1de5",
        "0x1df4",
        "0x9e2",
        "0x1d32",
        "0x1f30",
        "0x1d20"
      ],
      "mute_call_bytes": "b4 09 b0 00 cd 60",
      "failure_fm_name": "tunes/1unsucc.adl",
      "interrupt": {
        "fixed": "0x60"
      },
      "checks_hardware_stamp": true,
      "failure_fm_archive_lookup": {
        "tunes/1unsucc.adl": false,
        "tunes/1unsuc.adl": true
      }
    },
    {
      "version": "cd_1993_12",
      "launcher_path": "installs/cd_1993_12/TFX/START.EXE",
      "launcher_bytes": 33840,
      "launcher_sha256": "177d37c05df463b5932b2c2898077f7e1915bb48a76b704328fadcb37814cf7b",
      "engine_sha256": "2c28addc475be1d589bac7f6866ee14a888b094cf1679c672ad4ee2c3534a014",
      "archive_bytes": 12681671,
      "archive_sha256": "4ec6b35627b12dfe41b9da59d09816fdf105aebb61d662c80553b8241c85b085",
      "archive_entries": 3474,
      "archive_trailing_hex": "",
      "components": {
        "osl": {
          "file_start": "0x2e80",
          "file_end_exclusive": "0x4de0",
          "bytes": 8032,
          "sha256": "bca38018869468d5915351aca690b86a53382d73b552f8f12f043eae1c52b184",
          "build_stamps": [
            "Date: 12/06/93",
            "Time: 14:50:00"
          ],
          "sha256_without_build_stamps": "3f87199ffe3b4dee20ac7360cb824a062826f381f312c8919c6640d5ede1baa8"
        },
        "wrapper": {
          "file_start": "0x4de0",
          "file_end_exclusive": "0x4ee0",
          "bytes": 256,
          "sha256": "ea7eb5af0af1c86d8b0e6e8e04eef318deda0836b9e5edefd8b7c5e0f88b8af6",
          "build_stamps": [],
          "sha256_without_build_stamps": "ea7eb5af0af1c86d8b0e6e8e04eef318deda0836b9e5edefd8b7c5e0f88b8af6"
        },
        "fm": {
          "file_start": "0x4ee0",
          "file_end_exclusive": "0x5fc0",
          "bytes": 4320,
          "sha256": "2165324949e6acd9db08ef892c15995ed9cebb03f8001437088cd66271ffc4f9",
          "build_stamps": [
            "Date: 12/06/93",
            "Time: 14:50:00"
          ],
          "sha256_without_build_stamps": "4dbbde7e583a7a51d1f647934f85b4f245da4ac10cb6e7191817862b59aad8a9"
        },
        "scc1": {
          "file_start": "0x5fc0",
          "file_end_exclusive": "0x6850",
          "bytes": 2192,
          "sha256": "36b6709d3c4338d3d7ca768f2cb75a43465b90adc70658bf713eded1444f80eb",
          "build_stamps": [
            "Date: 12/06/93",
            "Time: 14:50:00"
          ],
          "sha256_without_build_stamps": "d93de6dc6b5160c5a0d85ce9a19191fb93c6cbd30b0ddb31ad1918e4e9db2ebf"
        },
        "lapc1": {
          "file_start": "0x6850",
          "file_end_exclusive": "0x6da0",
          "bytes": 1360,
          "sha256": "87e855d18005a84b861357cdcb56299830ef358642e823b4c03a467824e94ba4",
          "build_stamps": [
            "Date: 12/06/93",
            "Time: 14:50:00"
          ],
          "sha256_without_build_stamps": "8587a881b73830b46a9acded81a4b7f93bb8f442e607b0c5b0fce31da2c60a7a"
        }
      },
      "osl_dispatch_offsets": [
        "0xa08",
        "0xa16",
        "0xa29",
        "0xa86",
        "0xab8",
        "0xc3e",
        "0xc7b",
        "0xd00",
        "0xd4b",
        "0xd8c",
        "0xda3",
        "0xda6",
        "0xdaa",
        "0xdf5",
        "0xe30",
        "0xe4a",
        "0xe64",
        "0xe88",
        "0x1725",
        "0x1eb6",
        "0x1ea5",
        "0x1dc6",
        "0x1dc0",
        "0x1e81",
        "0x1e87",
        "0x1e3f",
        "0x9e2",
        "0x1d4f",
        "0x1de5",
        "0x1df4",
        "0x9e2",
        "0x1d32",
        "0x1f30",
        "0x1d20"
      ],
      "mute_call_bytes": "b4 09 b0 00 cd 60",
      "failure_fm_name": "tunes/1unsucc.adl",
      "interrupt": {
        "fixed": "0x60"
      },
      "checks_hardware_stamp": false,
      "failure_fm_archive_lookup": {
        "tunes/1unsucc.adl": false,
        "tunes/1unsuc.adl": true
      },
      "archive_identical_to_disc": true
    },
    {
      "version": "floppy_1994_03_archived",
      "launcher_path": "installs/floppy_1994_03_archived/TFX/START.EXE",
      "launcher_bytes": 36112,
      "launcher_sha256": "6f7cf444803ed5a630af978901af8aa2fcd0802bdc3fff0447bb4a3772668814",
      "engine_sha256": "822d8b930daa6cc1c9676ee93ba97cd2e1fa7ba3a88d6886c52de5fcf225944d",
      "archive_bytes": 10493349,
      "archive_sha256": "2e009df436d27d05ae749ce72e574a1e3af9b39ca202c3feb7cdc5e8eaf65d07",
      "archive_entries": 3460,
      "archive_trailing_hex": "03b1ffff",
      "components": {
        "osl": {
          "file_start": "0x36b0",
          "file_end_exclusive": "0x5610",
          "bytes": 8032,
          "sha256": "909ecfddcea2568f86150ffbb846b9bc0edba1ffb77323720a67a82c764b0580",
          "build_stamps": [
            "Date: 02/02/94",
            "Time: 08:13:26"
          ],
          "sha256_without_build_stamps": "df2b28bd19bdfaa4a7b70b437537277ac859f9569acfaedaf3b7797ca415f218"
        },
        "wrapper": {
          "file_start": "0x5610",
          "file_end_exclusive": "0x5730",
          "bytes": 288,
          "sha256": "e66e4651c5105a2a8f8e07e8bdc3a033a6eaa1e2b9eac68f5cba3e5ab191a6be",
          "build_stamps": [],
          "sha256_without_build_stamps": "e66e4651c5105a2a8f8e07e8bdc3a033a6eaa1e2b9eac68f5cba3e5ab191a6be"
        },
        "fm": {
          "file_start": "0x5730",
          "file_end_exclusive": "0x6810",
          "bytes": 4320,
          "sha256": "592f7cb4dd75179f38d1db0015267faa2ed5d5ce9b64d39eb8303602f5d32902",
          "build_stamps": [
            "Date: 02/02/94",
            "Time: 08:13:26"
          ],
          "sha256_without_build_stamps": "4dbbde7e583a7a51d1f647934f85b4f245da4ac10cb6e7191817862b59aad8a9"
        },
        "scc1": {
          "file_start": "0x6810",
          "file_end_exclusive": "0x70a0",
          "bytes": 2192,
          "sha256": "dec2ffb4381ade2a9f51c54c5817c40f6ab0ddfe5abc8680e6f6b87d8d12eb42",
          "build_stamps": [
            "Date: 02/02/94",
            "Time: 08:13:26"
          ],
          "sha256_without_build_stamps": "d93de6dc6b5160c5a0d85ce9a19191fb93c6cbd30b0ddb31ad1918e4e9db2ebf"
        },
        "lapc1": {
          "file_start": "0x70a0",
          "file_end_exclusive": "0x75f0",
          "bytes": 1360,
          "sha256": "153f10b5f663e370f02e6ba04ecb19497e9aa8a60c605705c96d3941d6e2c3ee",
          "build_stamps": [
            "Date: 02/02/94",
            "Time: 08:13:26"
          ],
          "sha256_without_build_stamps": "8587a881b73830b46a9acded81a4b7f93bb8f442e607b0c5b0fce31da2c60a7a"
        }
      },
      "osl_dispatch_offsets": [
        "0xa08",
        "0xa16",
        "0xa29",
        "0xa86",
        "0xab8",
        "0xc3e",
        "0xc7b",
        "0xd00",
        "0xd4b",
        "0xd8c",
        "0xda3",
        "0xda6",
        "0xdaa",
        "0xdf5",
        "0xe30",
        "0xe4a",
        "0xe64",
        "0xe88",
        "0x1725",
        "0x1eb6",
        "0x1ea5",
        "0x1dc6",
        "0x1dc0",
        "0x1e81",
        "0x1e87",
        "0x1e3f",
        "0x9e2",
        "0x1d4f",
        "0x1de5",
        "0x1df4",
        "0x9e2",
        "0x1d32",
        "0x1f30",
        "0x1d20"
      ],
      "mute_call_bytes": "b1 00 b4 09 cd 60",
      "failure_fm_name": "tunes/1unsucc.adl",
      "interrupt": {
        "config_keyword": "IRQBASE",
        "default": "0x87"
      },
      "checks_hardware_stamp": false,
      "failure_fm_archive_lookup": {
        "tunes/1unsucc.adl": false,
        "tunes/1unsuc.adl": true
      }
    },
    {
      "version": "cd_1994_03",
      "launcher_path": "installs/cd_1994_03/TFX/START.EXE",
      "launcher_bytes": 36288,
      "launcher_sha256": "c5a60c7791c971a872aaed1e19ef2638aab0b21eb1e039907b8d64eb8f8980d6",
      "engine_sha256": "1df51f7dacb6d6598830820566aed840ef56445a7b4e76a80ecb0da318123aa5",
      "archive_bytes": 11450048,
      "archive_sha256": "e534c24868c45009f045232619a067f44f8a6d7019af44692dcc6c9872d9a2dd",
      "archive_entries": 3148,
      "archive_trailing_hex": "",
      "components": {
        "osl": {
          "file_start": "0x3730",
          "file_end_exclusive": "0x5690",
          "bytes": 8032,
          "sha256": "25e40e0937a3e6078dbaee0d0f293f29b2df4fc57587fccaf5febbbf6211ba58",
          "build_stamps": [
            "Date: 03/15/94",
            "Time: 10:16:04"
          ],
          "sha256_without_build_stamps": "4d646c8e7d59e4f535d79a3f38e59d2be9242904380cb1a3f147932fa074ca75"
        },
        "wrapper": {
          "file_start": "0x5690",
          "file_end_exclusive": "0x57b0",
          "bytes": 288,
          "sha256": "20d8f0ff81495f3782b60beacc7c4bcff5dd0cf66e25c8608d445fba7bd75aa2",
          "build_stamps": [],
          "sha256_without_build_stamps": "20d8f0ff81495f3782b60beacc7c4bcff5dd0cf66e25c8608d445fba7bd75aa2"
        },
        "fm": {
          "file_start": "0x57b0",
          "file_end_exclusive": "0x6890",
          "bytes": 4320,
          "sha256": "ac4ae8a1390c00fc1ea8a537f86d3d6913e7d49bf57b6fee24158301d82a439f",
          "build_stamps": [
            "Date: 03/15/94",
            "Time: 10:16:04"
          ],
          "sha256_without_build_stamps": "4dbbde7e583a7a51d1f647934f85b4f245da4ac10cb6e7191817862b59aad8a9"
        },
        "scc1": {
          "file_start": "0x6890",
          "file_end_exclusive": "0x7120",
          "bytes": 2192,
          "sha256": "52f76d137ad125b8bead7b8f4a59b23c64ad3854762e910dfc0d8f011a501a3c",
          "build_stamps": [
            "Date: 03/15/94",
            "Time: 10:16:04"
          ],
          "sha256_without_build_stamps": "d93de6dc6b5160c5a0d85ce9a19191fb93c6cbd30b0ddb31ad1918e4e9db2ebf"
        },
        "lapc1": {
          "file_start": "0x7120",
          "file_end_exclusive": "0x7670",
          "bytes": 1360,
          "sha256": "2d6f6fec203249062b49ab3b30e39de0e1bd8e8a168c04bc62ee8cb5b2165003",
          "build_stamps": [
            "Date: 03/15/94",
            "Time: 10:16:04"
          ],
          "sha256_without_build_stamps": "8587a881b73830b46a9acded81a4b7f93bb8f442e607b0c5b0fce31da2c60a7a"
        }
      },
      "osl_dispatch_offsets": [
        "0xa08",
        "0xa16",
        "0xa29",
        "0xa86",
        "0xab8",
        "0xc3e",
        "0xc7b",
        "0xd00",
        "0xd4b",
        "0xd8c",
        "0xda3",
        "0xda6",
        "0xdaa",
        "0xdf5",
        "0xe30",
        "0xe4a",
        "0xe64",
        "0xe88",
        "0x1725",
        "0x1eb6",
        "0x1ea5",
        "0x1dc6",
        "0x1dc0",
        "0x1e81",
        "0x1e87",
        "0x1e3f",
        "0x9e2",
        "0x1d4f",
        "0x1de5",
        "0x1df4",
        "0x9e2",
        "0x1d32",
        "0x1f30",
        "0x1d20"
      ],
      "mute_call_bytes": "b1 00 b4 09 cd 60",
      "failure_fm_name": "tunes/1unsuc.adl",
      "interrupt": {
        "config_keyword": "IRQBASE",
        "default": "0x87"
      },
      "checks_hardware_stamp": false,
      "failure_fm_archive_lookup": {
        "tunes/1unsucc.adl": false,
        "tunes/1unsuc.adl": true
      },
      "archive_identical_to_disc": true
    },
    {
      "version": "cd_1994_09",
      "launcher_path": "installs/cd_1994_09/TFX/START.EXE",
      "launcher_bytes": 36288,
      "launcher_sha256": "c5a60c7791c971a872aaed1e19ef2638aab0b21eb1e039907b8d64eb8f8980d6",
      "engine_sha256": "2cc41a39fa95a2c9fd883c4220d7bdd9cca00c543c89b019eb270763f59d1d9a",
      "archive_bytes": 11509643,
      "archive_sha256": "e62a4b372a9a4b2d4c881a4ea6ec6b132e8db62f83d5f7e45ba05b772ffbee40",
      "archive_entries": 3488,
      "archive_trailing_hex": "",
      "components": {
        "osl": {
          "file_start": "0x3730",
          "file_end_exclusive": "0x5690",
          "bytes": 8032,
          "sha256": "25e40e0937a3e6078dbaee0d0f293f29b2df4fc57587fccaf5febbbf6211ba58",
          "build_stamps": [
            "Date: 03/15/94",
            "Time: 10:16:04"
          ],
          "sha256_without_build_stamps": "4d646c8e7d59e4f535d79a3f38e59d2be9242904380cb1a3f147932fa074ca75"
        },
        "wrapper": {
          "file_start": "0x5690",
          "file_end_exclusive": "0x57b0",
          "bytes": 288,
          "sha256": "20d8f0ff81495f3782b60beacc7c4bcff5dd0cf66e25c8608d445fba7bd75aa2",
          "build_stamps": [],
          "sha256_without_build_stamps": "20d8f0ff81495f3782b60beacc7c4bcff5dd0cf66e25c8608d445fba7bd75aa2"
        },
        "fm": {
          "file_start": "0x57b0",
          "file_end_exclusive": "0x6890",
          "bytes": 4320,
          "sha256": "ac4ae8a1390c00fc1ea8a537f86d3d6913e7d49bf57b6fee24158301d82a439f",
          "build_stamps": [
            "Date: 03/15/94",
            "Time: 10:16:04"
          ],
          "sha256_without_build_stamps": "4dbbde7e583a7a51d1f647934f85b4f245da4ac10cb6e7191817862b59aad8a9"
        },
        "scc1": {
          "file_start": "0x6890",
          "file_end_exclusive": "0x7120",
          "bytes": 2192,
          "sha256": "52f76d137ad125b8bead7b8f4a59b23c64ad3854762e910dfc0d8f011a501a3c",
          "build_stamps": [
            "Date: 03/15/94",
            "Time: 10:16:04"
          ],
          "sha256_without_build_stamps": "d93de6dc6b5160c5a0d85ce9a19191fb93c6cbd30b0ddb31ad1918e4e9db2ebf"
        },
        "lapc1": {
          "file_start": "0x7120",
          "file_end_exclusive": "0x7670",
          "bytes": 1360,
          "sha256": "2d6f6fec203249062b49ab3b30e39de0e1bd8e8a168c04bc62ee8cb5b2165003",
          "build_stamps": [
            "Date: 03/15/94",
            "Time: 10:16:04"
          ],
          "sha256_without_build_stamps": "8587a881b73830b46a9acded81a4b7f93bb8f442e607b0c5b0fce31da2c60a7a"
        }
      },
      "osl_dispatch_offsets": [
        "0xa08",
        "0xa16",
        "0xa29",
        "0xa86",
        "0xab8",
        "0xc3e",
        "0xc7b",
        "0xd00",
        "0xd4b",
        "0xd8c",
        "0xda3",
        "0xda6",
        "0xdaa",
        "0xdf5",
        "0xe30",
        "0xe4a",
        "0xe64",
        "0xe88",
        "0x1725",
        "0x1eb6",
        "0x1ea5",
        "0x1dc6",
        "0x1dc0",
        "0x1e81",
        "0x1e87",
        "0x1e3f",
        "0x9e2",
        "0x1d4f",
        "0x1de5",
        "0x1df4",
        "0x9e2",
        "0x1d32",
        "0x1f30",
        "0x1d20"
      ],
      "mute_call_bytes": "b1 00 b4 09 cd 60",
      "failure_fm_name": "tunes/1unsuc.adl",
      "interrupt": {
        "config_keyword": "IRQBASE",
        "default": "0x87"
      },
      "checks_hardware_stamp": false,
      "failure_fm_archive_lookup": {
        "tunes/1unsucc.adl": false,
        "tunes/1unsuc.adl": true
      },
      "archive_identical_to_disc": true
    }
  ],
  "synth_drivers_identical_except_build_stamps": true,
  "all_34_dispatch_entries_identical": true,
  "floppy_install_assembly": {
    "pack_order": [
      "DISKA.DAT",
      "DISKB.DAT",
      "DISKC.DAT",
      "DISKD.DAT",
      "DISKE.DAT",
      "DISKF.DAT",
      "DISKG.DAT",
      "DISKH.DAT"
    ],
    "diska_archive_start": 759961,
    "body_bytes": 10493345,
    "body_sha256": "9e16e55d0eed47b343712fc1b78f768db638e706814b1c062705339956ffc18b",
    "exact_installed_body_match": true,
    "appended_stamp_hex": "43b3ffff",
    "installer": "install media/floppy_1993_11/alternate_installer/INSTALL.EXE",
    "installer_sha256": "0d9cda57e6e2e809c27f6ba16ff25459635fc83d3aa805bf0f37082d4ce5e6ab",
    "installer_file_offsets": {
      "append_stamp_function": "0xe3b",
      "fingerprint_function": "0x2909",
      "bios_date_hash": "0x294a",
      "cpu_class": "0x2981",
      "fpu_class": "0x2a15"
    },
    "append_mode_ds_offset": "0x59f",
    "append_mode": "ab",
    "fingerprint_inputs": [
      "8 BIOS date bytes at F000:FFF5",
      "CPU class",
      "FPU class"
    ],
    "early_start_file_offsets": {
      "read_and_check_trailer": "0xa48",
      "fingerprint": "0xa8b"
    }
  },
  "scope": "Static comparison of original retained files. Build-stamp masking applies only to the three synth driver blocks; it is not a claim that the entire launchers are identical. Runtime observations are in launcher-tests.json."
}
