Lines Matching +full:no +full:- +full:scan +full:- +full:on +full:- +full:init
38 * Note - this code uses many tricks to save space and fit in one sector.
49 * bootloader) at 0:0x7c00. This code depends on %cs:%ip being 0:0x7c00
63 * made of four 16-byte entries each containing:
81 * On entry, the registers contain the following values:
128 .set B0_OFF,(B0_BASE-0x200) # Offset of boot0 data
132 .set KEY_ENTER,0x1c # Enter key scan code
133 .set KEY_F1,0x3b # F1 key scan code
134 .set KEY_1,0x02 # #1 key scan code
154 .set _TICKS, (PRT_OFF - 0x200 - 2) # Timeout ticks
157 .set TLEN, (desc_ofs - bootable_ids) # size of bootable ids
191 * to the variables embedded in the bootblock (nextdrv and so on).
197 incb -0xe(%di) # Set the S field to 1
199 jmp main-LOAD+ORIGIN # Jump to relocated code
204 * Init the serial port. bioscom preserves the driver number in DX.
220 jz save_curdrive # no, use the default
256 * Loop around on the partition table, printing values until we
259 read_entry: movb %ch,-0x4(%bx) # Zero active flag (ch == 0)
261 jnc next_entry # No
266 * Scan the table of bootable ids, which starts at %di and has
267 * length TLEN. On a match, %di points to the element following the
268 * match; the corresponding offset to the description is $(TLEN-1)
278 * The byte at $(TLEN-1)(%di) contains the offset of the description
281 addw $(TLEN-1), %di # Adjust
296 subb $0x80-0x1,%al # Does next
321 * so we do not see an extra CRLF on the screen.
346 * Busy loop, looking for keystrokes but keeping one eye on the time.
361 jb read_key # No
381 movb %ah,%al # move scan code to %al
388 je use_default # enter -> default
391 * The console (non-SIO) code looks at scancodes and accepts
393 * relying on the fact that F1..F6 have higher scancodes than 1..6
398 #else /* console mode -- use scancodes */
399 subb $KEY_F1,%al /* Subtract F1 scan code */
403 subb $(KEY_1 - KEY_F1),%al # Less #1 scan code
423 jnc beep # No
453 * If not asked to do a write-back (flags 0x40) don't do one.
458 testb $NOUPDATE,_FLAGS(%bp) # No updates?
467 * Remember to un-ascii it. Hey 0x80 is already set, cool!
475 * fails or there is no 0x55aa marker, treat it as a bad selection.
482 jne beep # No
524 jz putstr.1 # No
544 /* One-sector disk I/O routine */
563 jz 1f # No
611 * which is used for non-matching names.
613 .byte os_linux-. # 131, Linux
614 .byte os_freebsd-. # 165, FreeBSD
615 .byte os_bsd-. # 166, OpenBSD
616 .byte os_bsd-. # 169, NetBSD
617 .byte os_dos-. # 6, FAT16 >= 32M
618 .byte os_win-. # 7, NTFS
619 .byte os_win-. # 11, FAT32
622 .byte os_ext-. # 5, DOS Ext
625 .byte os_dos-. # 1, FAT12 DOS
626 .byte os_dos-. # 4, FAT16 <32M
628 .byte os_misc-. # Unknown
636 #ifndef SAVE_MORE_MEMORY /* 'DOS' remapped to 'WIN' if no room */