paperlined.org
apps > mbldr.sf.net
document updated 12 years ago, on Mar 31, 2012
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