📄 grub-0.97-patch1-startups
字号:
+ xorl %ebx, %ebx # invalid file descriptor for CLOSE below+ + movl $ABS(msg_too_many_files), %ecx+ jmp 4f /* error */++3:++ /* not yet, this is the first filename */++ movl %ecx, %eax # save ECX to EAX+ //movl %ecx, ABS(filename) # save ECX to filename+ jmp 1b # continue++2:++ /* it is an option */++ /* check --no-backup-mbr */++ movl $16, %ecx+ movl $ABS(option_no_backup_mbr), %esi+ movl %ebx, %edi++ cld+ repz cmpsb++ jnz 3f++ xorl %ebx, %ebx # invalid file descriptor for CLOSE below+ + cmpl $1, ABS(backup_mbr)+ movl $ABS(msg_option_backup_mbr), %ecx+ jnz 4f /* error */+ movl $0, ABS(backup_mbr)+ jmp 1b++3:+ /* check --force-backup-mbr */++ movl $19, %ecx+ movl $ABS(option_force_backup_mbr), %esi+ movl %ebx, %edi++ cld+ repz cmpsb++ jnz 3f++ xorl %ebx, %ebx # invalid file descriptor for CLOSE below+ + cmpl $1, ABS(backup_mbr)+ movl $ABS(msg_option_backup_mbr), %ecx+ jnz 4f /* error */+ movl $2, ABS(backup_mbr)+ jmp 1b++3:++ /* check --mbr-enable-floppy */++ movl $20, %ecx+ movl $ABS(option_mbr_enable_floppy), %esi+ movl %ebx, %edi++ cld+ repz cmpsb++ jnz 3f++ xorl %ebx, %ebx # invalid file descriptor for CLOSE below+ + cmpl $0, ABS(mbr_floppy)+ movl $ABS(msg_option_mbr_floppy), %ecx+ jnz 4f /* error */+ movl $2, ABS(mbr_floppy)+ jmp 1b++3:++ /* check --mbr-disable-floppy */++ movl $21, %ecx+ movl $ABS(option_mbr_disable_floppy), %esi+ movl %ebx, %edi++ cld+ repz cmpsb++ jnz 3f++ xorl %ebx, %ebx # invalid file descriptor for CLOSE below+ + cmpl $0, ABS(mbr_floppy)+ movl $ABS(msg_option_mbr_floppy), %ecx+ jnz 4f /* error */+ movl $1, ABS(mbr_floppy)+ jmp 1b++3:++ /* check --mbr-enable-osbr */++ movl $18, %ecx+ movl $ABS(option_mbr_enable_osbr), %esi+ movl %ebx, %edi++ cld+ repz cmpsb++ jnz 3f++ xorl %ebx, %ebx # invalid file descriptor for CLOSE below+ + cmpl $0, ABS(mbr_osbr)+ movl $ABS(msg_option_mbr_osbr), %ecx+ jnz 4f /* error */+ movl $2, ABS(mbr_osbr)+ jmp 1b++3:++ /* check --mbr-disable-osbr */++ movl $19, %ecx+ movl $ABS(option_mbr_disable_osbr), %esi+ movl %ebx, %edi++ cld+ repz cmpsb++ jnz 3f++ xorl %ebx, %ebx # invalid file descriptor for CLOSE below+ + cmpl $0, ABS(mbr_osbr)+ movl $ABS(msg_option_mbr_osbr), %ecx+ jnz 4f /* error */+ movl $1, ABS(mbr_osbr)+ jmp 1b++3:++ /* check --boot-prevmbr-first */++ movl $21, %ecx+ movl $ABS(option_boot_prevmbr_first), %esi+ movl %ebx, %edi++ cld+ repz cmpsb++ jnz 3f++ xorl %ebx, %ebx # invalid file descriptor for CLOSE below+ + cmpl $0, ABS(boot_prevmbr)+ movl $ABS(msg_option_boot_prevmbr), %ecx+ jnz 4f /* error */+ movl $1, ABS(boot_prevmbr)+ jmp 1b++3:++ /* check --boot-prevmbr-last */++ movl $20, %ecx+ movl $ABS(option_boot_prevmbr_last), %esi+ movl %ebx, %edi++ cld+ repz cmpsb++ jnz 3f++ xorl %ebx, %ebx # invalid file descriptor for CLOSE below+ + cmpl $0, ABS(boot_prevmbr)+ movl $ABS(msg_option_boot_prevmbr), %ecx+ jnz 4f /* error */+ movl $2, ABS(boot_prevmbr)+ jmp 1b++3:++ /* check --preferred-drive= */++ movl $18, %ecx+ movl $ABS(option_preferred_drive), %esi+ movl %ebx, %edi++ cld+ repz cmpsb++ jnz 3f++ xorl %ebx, %ebx # invalid file descriptor for CLOSE below+ + cmpl $0xff, ABS(preferred_drive)+ movl $ABS(msg_option_preferred_drive), %ecx+ jnz 4f /* error */++ movl $0xfe, %ebx+ call 7f /* parse_number */+ movl %ebx, %edi # save EBX to EDI+ movl $0, %ebx # invalid file descriptor for CLOSE below+ movl $ABS(msg_invalid_number), %ecx+ jc 4f /* error */+ movl %edi, ABS(preferred_drive)+ jmp 1b++3:++ /* check --preferred-partition= */++ movl $22, %ecx+ movl $ABS(option_preferred_partition), %esi+ movl %ebx, %edi++ cld+ repz cmpsb++ jnz 3f++ xorl %ebx, %ebx # invalid file descriptor for CLOSE below+ + cmpl $0xff, ABS(preferred_partition)+ movl $ABS(msg_option_preferred_partition), %ecx+ jnz 4f /* error */++ movl $0xfe, %ebx+ call 7f /* parse_number */+ movl %ebx, %edi # save EBX to EDI+ movl $0, %ebx # invalid file descriptor for CLOSE below+ movl $ABS(msg_invalid_number), %ecx+ jc 4f /* error */+ movl %edi, ABS(preferred_partition)+ jmp 1b++3:++ /* check --time-out= */++ movl $11, %ecx+ movl $ABS(option_time_out), %esi+ movl %ebx, %edi++ cld+ repz cmpsb++ jnz 3f++ xorl %ebx, %ebx # invalid file descriptor for CLOSE below+ + cmpl $0xffffff05, ABS(time_out)+ movl $ABS(msg_option_time_out), %ecx+ jnz 4f /* error */++ movl $0xff, %ebx+ call 7f /* parse_number */+ movl %ebx, %edi # save EBX to EDI+ movl $0, %ebx # invalid file descriptor for CLOSE below+ movl $ABS(msg_invalid_number), %ecx+ jc 4f /* error */+ movl %edi, ABS(time_out)+ jmp 1b++3:++ /* check --hot-key= */++ movl $10, %ecx+ movl $ABS(option_hot_key), %esi+ movl %ebx, %edi++ cld+ repz cmpsb++ jnz 3f++ xorl %ebx, %ebx # invalid file descriptor for CLOSE below+ + cmpl $0xffff3920, ABS(hot_key)+ movl $ABS(msg_option_hot_key), %ecx+ jnz 4f /* error */++ movl $0xffff, %ebx+ call 7f /* parse_number */+ movl %ebx, %edi # save EBX to EDI+ movl $0, %ebx # invalid file descriptor for CLOSE below+ movl $ABS(msg_invalid_number), %ecx+ jc 4f /* error */+ movl %edi, ABS(hot_key)+ jmp 1b++3:++ /* check --install-partition= */++ movl $20, %ecx+ movl $ABS(option_install_partition), %esi+ movl %ebx, %edi++ cld+ repz cmpsb++ jnz 3f++ xorl %ebx, %ebx # invalid file descriptor for CLOSE below+ + cmpl $0xffffffff, ABS(install_partition)+ movl $ABS(msg_option_install_partition), %ecx+ jnz 4f /* error */++ movl $0xffff, %ebx+ call 7f /* parse_number */+ movl %ebx, %edi # save EBX to EDI+ movl $0, %ebx # invalid file descriptor for CLOSE below+ movl $ABS(msg_invalid_number), %ecx+ jc 4f /* error */+ movl %edi, ABS(install_partition)+ jmp 1b++3:++ /* check --sectors-per-track= */++ movl $20, %ecx+ movl $ABS(option_sectors_per_track), %esi+ movl %ebx, %edi++ cld+ repz cmpsb++ jnz 3f++ xorl %ebx, %ebx # invalid file descriptor for CLOSE below+ + cmpl $0xffffff3f, ABS(sectors_per_track)+ movl $ABS(msg_option_sectors_per_track), %ecx+ jnz 4f /* error */++ movl $0x3f, %ebx # maximum is 63+ call 7f /* parse_number */+ movl %ebx, %edi # save EBX to EDI+ movl $0, %ebx # invalid file descriptor for CLOSE below+ movl $ABS(msg_invalid_number), %ecx+ jc 4f /* error */+ cmpl $0, %edi+ je 4f /* error */+ movl %edi, ABS(sectors_per_track)+ jmp 1b++3:++ /* check --heads= */++ movl $8, %ecx+ movl $ABS(option_heads), %esi+ movl %ebx, %edi++ cld+ repz cmpsb++ jnz 3f++ xorl %ebx, %ebx # invalid file descriptor for CLOSE below+ + cmpl $0xffff00ff, ABS(heads)+ movl $ABS(msg_option_heads), %ecx+ jnz 4f /* error */++ movl $0x100, %ebx # maximum is 256+ call 7f /* parse_number */+ movl %ebx, %edi # save EBX to EDI+ movl $0, %ebx # invalid file descriptor for CLOSE below+ movl $ABS(msg_invalid_number), %ecx+ jc 4f /* error */+ cmpl $0, %edi+ je 4f /* error */+ movl %edi, ABS(heads)+ jmp 1b++3:++ /* check --start-sector= */++ movl $15, %ecx+ movl $ABS(option_start_sector), %esi+ movl %ebx, %edi++ cld+ repz cmpsb++ jnz 3f++ xorl %ebx, %ebx # invalid file descriptor for CLOSE below+ + cmpl $0xffffffff, ABS(start_sector)+ movl $ABS(msg_option_start_sector), %ecx+ jnz 4f /* error */++ movl $0xfffffffe, %ebx+ call 7f /* parse_number */+ movl %ebx, %edi # save EBX to EDI+ movl $0, %ebx # invalid file descriptor for CLOSE below+ movl $ABS(msg_invalid_number), %ecx+ jc 4f /* error */+ movl %edi, ABS(start_sector)+ jmp 1b++3:++ /* check --total-sectors= */++ movl $16, %ecx+ movl $ABS(option_total_sectors), %esi+ movl %ebx, %edi++ cld+ repz cmpsb++ jnz 3f++ xorl %ebx, %ebx # invalid file descriptor for CLOSE below+ + cmpl $0, ABS(total_sectors)+ movl $ABS(msg_option_total_sectors), %ecx+ jnz 4f /* error */++ movl $0xffffffff, %ebx+ call 7f /* parse_number */+ movl %ebx, %edi # save EBX to EDI+ movl $0, %ebx # invalid file descriptor for CLOSE below+ movl $ABS(msg_invalid_number), %ecx+ jc 4f /* error */+ cmpl $0, %edi+ je 4f /* error */+ movl %edi, ABS(total_sectors)+ jmp 1b++3:++ /* check --floppy= */++ movl $9, %ecx+ movl $ABS(option_floppy_partition), %esi+ movl %ebx, %edi++ cld+ repz cmpsb++ jnz 3f++ xorl %ebx, %ebx # invalid file descriptor for CLOSE below+ + cmpl $0xffffffff, ABS(floppy)+ movl $ABS(msg_option_floppy), %ecx+ jnz 4f /* error */++ movl $0xfe, %ebx+ call 7f /* parse_number */+ movl %ebx, %edi # save EBX to EDI+ movl $0, %ebx # invalid file descriptor for CLOSE below+ movl $ABS(msg_invalid_number), %ecx+ jc 4f /* error */+ movl %edi, ABS(floppy)+ jmp 1b++3:++ /* check --read-only */++ movl $12, %ecx+ movl $ABS(option_read_only), %esi+ movl %ebx, %edi++ cld+ repz cmpsb++ jnz 3f++ xorl %ebx, %ebx # invalid file descriptor for CLOSE below+ + cmpl $2, ABS(read_only)+ movl $ABS(msg_option_read_only), %ecx+ jnz 4f /* error */++ movl $0, ABS(read_only)+ jmp 1b++3:++ /* check --floppy */++ movl $9, %ecx+ movl $ABS(option_floppy), %esi+ movl %ebx, %edi++ cld+ repz cmpsb++ jnz 3f++ xorl %ebx, %ebx # invalid file descriptor for CLOSE below+ + cmpl $0xffffffff, ABS(floppy)+ movl $ABS(msg_option_floppy), %ecx+ jnz 4f /* error */++ movl $0xff, ABS(floppy)+ jmp 1b++3:++ /* check --lba */++ movl $6, %ecx+ movl $ABS(option_lba), %esi+ movl %ebx, %edi++ cld+ repz cmpsb++ jnz 3f++ xorl %ebx, %ebx # invalid file descriptor for CLOSE below+ + cmpl $0xffffffff, ABS(lba)+ movl $ABS(msg_option_lba), %ecx+ jnz 4f /* error */++ movl $1, ABS(lba)+ jmp 1b++3:++ /* check --chs */++ movl $6, %ecx+ movl $ABS(option_chs), %esi+ movl %ebx, %edi++ cld+ repz cmpsb++ jnz 3f++ xorl %ebx, %ebx # invalid file descriptor for CLOSE below+ + cmpl $0xffffffff, ABS(lba)+ movl $ABS(msg_option_lba), %ecx+ jnz 4f /* error */++ movl $0, ABS(lba)+ jmp 1b++3:++ /* check --fat12 */++ movl $8, %ecx+ movl $ABS(option_fat12), %esi+ movl %ebx, %edi++ cld+ repz cmpsb++ jnz 3f++ xorl %ebx, %ebx # invalid file descriptor for CLOSE below+ + cmpl $0xfffffff7, ABS(fstypes)+ jnz 2f+ movl $0, ABS(fstypes)+2:+ orb $1, ABS(fstypes)+ jmp 1b++3:++ /* check --fat16 */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -