summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@zytor.com>2006-10-02 21:44:00 -0700
committerH. Peter Anvin <hpa@zytor.com>2006-10-02 21:44:00 -0700
commit72677e475f8f292c4d2c83e7a6c9fccb66993dc9 (patch)
tree4b567de72cea6f883f02b92733420d94a1a8eec3
parentf50f6ed18ba4aa2776b697581d0c3874c0335e0f (diff)
downloadsyslinux-72677e475f8f292c4d2c83e7a6c9fccb66993dc9.tar.gz
New TEXT..ENDTEXT statement for the benefit of the menu system
-rw-r--r--keywords1
-rw-r--r--keywords.inc69
-rw-r--r--parseconfig.inc25
3 files changed, 62 insertions, 33 deletions
diff --git a/keywords b/keywords
index bfcbc2a4..39a871c0 100644
--- a/keywords
+++ b/keywords
@@ -1,4 +1,5 @@
menu
+text
append
default
display
diff --git a/keywords.inc b/keywords.inc
index cffe6a75..811d5bd8 100644
--- a/keywords.inc
+++ b/keywords.inc
@@ -1,6 +1,6 @@
;; -----------------------------------------------------------------------
;;
-;; Copyright 1994-2002 H. Peter Anvin - All Rights Reserved
+;; Copyright 1994-2006 H. Peter Anvin - All Rights Reserved
;;
;; This program is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
@@ -42,42 +42,45 @@ keywd_size equ 8 ; Bytes per keyword
align 4, db 0
+%define FKeyN(n) (FKeyName+(((n)-1) << FILENAME_MAX_LG2))
+
keywd_table:
- keyword menu, pc_comment
- keyword append, pc_append
- keyword default, pc_default
- keyword display, pc_filecmd, get_msg_file
- keyword font, pc_filecmd, loadfont
- keyword implicit, pc_setint16, AllowImplicit
- keyword kbdmap, pc_filecmd, loadkeys
- keyword kernel, pc_kernel
- keyword label, pc_label
- keyword prompt, pc_setint16, ForcePrompt
- keyword say, pc_say
- keyword serial, pc_serial
- keyword console, pc_setint16, DisplayCon
- keyword timeout, pc_timeout, KbdTimeout
- keyword totaltimeout, pc_timeout, TotalTimeout
- keyword ontimeout, pc_ontimeout
- keyword onerror, pc_onerror
- keyword allowoptions, pc_setint16, AllowOptions
- keyword noescape, pc_setint16, NoEscape
- keyword f1, pc_fkey, FKeyName+(0<<FILENAME_MAX_LG2)
- keyword f2, pc_fkey, FKeyName+(1<<FILENAME_MAX_LG2)
- keyword f3, pc_fkey, FKeyName+(2<<FILENAME_MAX_LG2)
- keyword f4, pc_fkey, FKeyName+(3<<FILENAME_MAX_LG2)
- keyword f5, pc_fkey, FKeyName+(4<<FILENAME_MAX_LG2)
- keyword f6, pc_fkey, FKeyName+(5<<FILENAME_MAX_LG2)
- keyword f7, pc_fkey, FKeyName+(6<<FILENAME_MAX_LG2)
- keyword f8, pc_fkey, FKeyName+(7<<FILENAME_MAX_LG2)
- keyword f9, pc_fkey, FKeyName+(8<<FILENAME_MAX_LG2)
- keyword f10, pc_fkey, FKeyName+(9<<FILENAME_MAX_LG2)
- keyword f0, pc_fkey, FKeyName+(9<<FILENAME_MAX_LG2)
+ keyword menu, pc_comment
+ keyword text, pc_text
+ keyword append, pc_append
+ keyword default, pc_default
+ keyword display, pc_filecmd, get_msg_file
+ keyword font, pc_filecmd, loadfont
+ keyword implicit, pc_setint16, AllowImplicit
+ keyword kbdmap, pc_filecmd, loadkeys
+ keyword kernel, pc_kernel
+ keyword label, pc_label
+ keyword prompt, pc_setint16, ForcePrompt
+ keyword say, pc_say
+ keyword serial, pc_serial
+ keyword console, pc_setint16, DisplayCon
+ keyword timeout, pc_timeout, KbdTimeout
+ keyword totaltimeout, pc_timeout, TotalTimeout
+ keyword ontimeout, pc_ontimeout
+ keyword onerror, pc_onerror
+ keyword allowoptions, pc_setint16, AllowOptions
+ keyword noescape, pc_setint16, NoEscape
+ keyword f1, pc_fkey, FKeyN(1)
+ keyword f2, pc_fkey, FKeyN(2)
+ keyword f3, pc_fkey, FKeyN(3)
+ keyword f4, pc_fkey, FKeyN(4)
+ keyword f5, pc_fkey, FKeyN(5)
+ keyword f6, pc_fkey, FKeyN(6)
+ keyword f7, pc_fkey, FKeyN(7)
+ keyword f8, pc_fkey, FKeyN(8)
+ keyword f9, pc_fkey, FKeyN(9)
+ keyword f10, pc_fkey, FKeyN(10)
+ keyword f0, pc_fkey, FKeyN(10)
%if IS_PXELINUX
- keyword ipappend, pc_ipappend
+ keyword ipappend, pc_ipappend
%endif
%if IS_PXELINUX || IS_ISOLINUX
- keyword localboot, pc_localboot
+ keyword localboot, pc_localboot
%endif
keywd_count equ ($-keywd_table)/keywd_size
diff --git a/parseconfig.inc b/parseconfig.inc
index aef31613..de64a18f 100644
--- a/parseconfig.inc
+++ b/parseconfig.inc
@@ -306,6 +306,31 @@ pc_say: call pc_getline ; "say" command
jmp crlf ; tailcall
;
+; "text" command; ignore everything until we get an "endtext" line
+;
+pc_text: call pc_getline ; Ignore rest of line
+.loop:
+ call pc_getline
+.skipspace:
+ lodsb
+ and al,al
+ jz .loop
+ cmp al,' '
+ jbe .skipspace
+
+ dec si
+ lodsd
+ and eax,0xfdfdfdfd
+ cmp eax,'ENDT'
+ jne .loop
+ lodsd
+ and eax,0x00fdfdfd
+ cmp eax,'EXT'
+ jne .loop
+ ; If we get here we hit ENDTEXT
+ ret
+
+;
; Comment line
;
pc_comment: ; Fall into pc_getline