common.c lists a lot of embedded variables (see below) CommonPrepareMBR() is the routine that sets these embedded variables. // 1 byte (number of timer interrupt - user or system) #define MBLDR_TIMER_INTERRUPT1 0x30 // 1 byte (ASCII code of interrupt key) #define MBLDR_TIMER_INTERRUPT_KEY 0x44 // 2 bytes (opcode, which chooses between ASCII and scan code) #define MBLDR_USE_ASCII_OR_SCAN_OPCODE 0x4C // 1 byte (base ASCII/scan code for the first OS in the list) #define MBLDR_BASE_ASCII_OR_SCAN_CODE 0x4F // 1 byte (number of OS entries in the boot menu) #define MBLDR_NUMBER_OF_BOOTABLE_PARTITIONS 0x51 // 2 bytes (1/10 of number of ticks to wait for timed boot) // (ThisValue*10*55ms=DefaultBootTimeout) #define MBLDR_TIMEOUT 0x55 // 2 bytes (opcode for progress-bar symbol) // Either [0x88, 0xF0] or [0xB0, 0xNN] (where NN is a progress-bar symbol) #define MBLDR_PROGRESS_BAR_SYMBOL_OPCODE 0x5F // 2 bytes (opcode for progress-bar switch on/off) #define MBLDR_PROGRESS_BAR_SWITCH_OPCODE 0x61 // 1 byte (number of default entry in the boot menu) #define MBLDR_NUMBER_OF_DEFAULT_PARTITION 0x6B // 3 bytes (opcode, which saves new default entry in the boot menu) #define MBLDR_MODIFY_DEFAULT_PARTITION_OPCODE 0x6C // 1 byte (number of timer interrupt - user or system) #define MBLDR_TIMER_INTERRUPT2 0x73 // 2 bytes (whether to mark primary partitions active or inactive depending // on what to boot or leave "active" flag as-is) #define MBLDR_MARK_ACTIVE_PARTITION 0x97 // 1 byte (jump offset to enable/disable hiding of other primary partitions) #define MBLDR_HIDING_JUMP_OFFSET 0xBF // 1 byte (opcode, which controls timer ticks) #define MBLDR_TIMED_BOOT_ALLOWED 0xF6 // 1 byte (opcode, which controls whether to do an IRET or proceed with old vector) #define MBLDR_IRET 0xF7 // Offset of the boot menu text, which occupies the rest of MBR #define MBLDR_BOOT_MENU_TEXT 0x10A // DiskSignature (or so-called NT Drive Serial Number) for Microsoft // Windows. These bytes should not be overwritten since it breaks boot // process under Windows Vista // 4 bytes (the signature itself) + 2 bytes (seems to be always 0000h) #define MBLDR_WINDOWS_DISK_SIGNATURE 0x1B8