diff options
Diffstat (limited to 'ldlinux.asm')
-rw-r--r-- | ldlinux.asm | 51 |
1 files changed, 13 insertions, 38 deletions
diff --git a/ldlinux.asm b/ldlinux.asm index e46643a8..2a93985a 100644 --- a/ldlinux.asm +++ b/ldlinux.asm @@ -940,6 +940,13 @@ all_read: ; ; Now set up screen parameters call adjust_screen + + ; Wipe the F-key area + mov al,NULLFILE + mov di,FKeyName + mov cx,10*(1 << FILENAME_MAX_LG2) + rep stosb + ; ; Now, everything is "up and running"... patch kaboom for more ; verbosity and using the full screen system @@ -1092,21 +1099,19 @@ ctrl_f: push di jmp short show_help func_key: + ; AL = 0 if we get here push di cmp ah,68 ; F10 ja get_char_2 sub ah,59 ; F1 jb get_char_2 - shr ax,8 + xchg al,ah show_help: ; AX = func key # (0 = F1, 9 = F10) - mov cl,al - shl ax,4 ; Convert to x16 - mov bx,1 - shl bx,cl - and bx,[FKeyMap] - jz get_char_2 ; Undefined F-key - mov di,ax + shl ax,FILENAME_MAX_LG2 ; Convert to pointer + xchg di,ax add di,FKeyName + cmp byte [di],NULLFILE + je get_char_2 ; Undefined F-key call searchdir jz fk_nofile push si @@ -1673,35 +1678,6 @@ initrd_cmd_len equ 7 ; Config file keyword table ; %include "keywords.inc" - align 2, db 0 - -keywd_table: - keyword append, pc_append - keyword default, pc_default - keyword timeout, pc_timeout - keyword font, pc_font - keyword kbdmap, pc_kbd - keyword display, pc_display - keyword prompt, pc_prompt - keyword label, pc_label - keyword implicit, pc_implicit - keyword kernel, pc_kernel - keyword serial, pc_serial - keyword say, pc_say - keyword f1, pc_f1 - keyword f2, pc_f2 - keyword f3, pc_f3 - keyword f4, pc_f4 - keyword f5, pc_f5 - keyword f6, pc_f6 - keyword f7, pc_f7 - keyword f8, pc_f8 - keyword f9, pc_f9 - keyword f10, pc_f10 - keyword f0, pc_f10 - -keywd_count equ ($-keywd_table)/keywd_size - ; ; Extensions to search for (in *reverse* order). Note that the last ; (lexically first) entry in the table is a placeholder for the original @@ -1724,7 +1700,6 @@ debug_magic dw 0D00Dh ; Debug code sentinel %endif AppendLen dw 0 ; Bytes in append= command KbdTimeOut dw 0 ; Keyboard timeout (if any) -FKeyMap dw 0 ; Bitmap for F-keys loaded CmdLinePtr dw cmd_line_here ; Command line advancing pointer initrd_flag equ $ initrd_ptr dw 0 ; Initial ramdisk pointer/flag |