aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhpa <hpa>2005-01-04 22:17:17 +0000
committerhpa <hpa>2005-01-04 22:17:17 +0000
commit0f5815800c602279e8a764441a16fd5478c0f387 (patch)
treec920ee4220350d5f721f34241a0cf002c32e94d1
parent10ae4b4ddda70fd165620864591886a8810d4be0 (diff)
downloadsyslinux-elf-0f5815800c602279e8a764441a16fd5478c0f387.tar.gz
syslinux-elf-0f5815800c602279e8a764441a16fd5478c0f387.tar.xz
syslinux-elf-0f5815800c602279e8a764441a16fd5478c0f387.zip
New CONSOLE directive to enable/disable the video console.syslinux-3.02-pre3
-rw-r--r--NEWS2
-rw-r--r--conio.inc7
-rw-r--r--extlinux.asm5
-rw-r--r--keywords1
-rw-r--r--keywords.inc1
-rw-r--r--ldlinux.asm3
-rw-r--r--rawcon.inc4
-rw-r--r--syslinux.doc9
8 files changed, 30 insertions, 2 deletions
diff --git a/NEWS b/NEWS
index ba23f6f3..bb8180bc 100644
--- a/NEWS
+++ b/NEWS
@@ -13,6 +13,8 @@ Changes in 3.02:
* Simple menu system: minor aestetic improvements, and try to
work better over a serial console (speed, and readability on
monochrome terminal emulators.)
+ * New CONSOLE directive to control output on the video console
+ (useful for dealing with some broken serial-forwarding BIOSes.)
Changes in 3.01:
* EXTLINUX, SYSLINUX: Fix compile errors on some systems.
diff --git a/conio.inc b/conio.inc
index b652eb41..7af5ebe1 100644
--- a/conio.inc
+++ b/conio.inc
@@ -1,7 +1,7 @@
;; $Id$
;; -----------------------------------------------------------------------
;;
-;; Copyright 1994-2004 H. Peter Anvin - All Rights Reserved
+;; Copyright 1994-2005 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
@@ -111,6 +111,8 @@ msg_putchar: ; Normal character
msg_normal: call write_serial_displaymask ; Write to serial port
test [DisplayMask],cl
jz msg_ignore ; Not screen
+ test byte [DisplayCon],01h
+ jz msg_ignore
mov bl,[TextAttribute]
mov bh,[BIOS_page]
mov ah,09h ; Write character/attribute
@@ -374,6 +376,9 @@ debug_tracer: pushad
%endif ; DEBUG_TRACERS
section .data
+ ; This is a word to pc_setint16 can set it
+DisplayCon dw 01h ; Console display enabled
+
ScrollAttribute db 07h ; Grey on white (normal text color)
section .bss
diff --git a/extlinux.asm b/extlinux.asm
index 9577d310..78496bd5 100644
--- a/extlinux.asm
+++ b/extlinux.asm
@@ -6,7 +6,7 @@
;
; A program to boot Linux kernels off an ext2/ext3 filesystem.
;
-; Copyright (C) 1994-2004 H. Peter Anvin
+; Copyright (C) 1994-2005 H. Peter Anvin
;
; 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
@@ -1151,12 +1151,15 @@ unmangle_name: call strcpy
writechr:
call write_serial ; write to serial port if needed
pushfd
+ test byte [cs:DisplayCon],01h
+ jz .nothing
pushad
mov ah,0Eh
mov bl,07h ; attribute
mov bh,[cs:BIOS_page] ; current page
int 10h
popad
+.nothing:
popfd
ret
diff --git a/keywords b/keywords
index 046a2f29..155a4e19 100644
--- a/keywords
+++ b/keywords
@@ -13,6 +13,7 @@ localboot
prompt
say
serial
+console
timeout
allowoptions
ontimeout
diff --git a/keywords.inc b/keywords.inc
index a4b665e1..6f68554e 100644
--- a/keywords.inc
+++ b/keywords.inc
@@ -57,6 +57,7 @@ keywd_table:
keyword prompt, pc_setint16, ForcePrompt
keyword say, pc_say
keyword serial, pc_serial
+ keyword console, pc_setint16, DisplayCon
keyword timeout, pc_timeout
keyword ontimeout, pc_ontimeout
keyword onerror, pc_onerror
diff --git a/ldlinux.asm b/ldlinux.asm
index 71428fb9..ceb079fe 100644
--- a/ldlinux.asm
+++ b/ldlinux.asm
@@ -1055,12 +1055,15 @@ searchdir:
writechr:
call write_serial ; write to serial port if needed
pushfd
+ test byte [cs:DisplayCon], 01h
+ jz .nothing
pushad
mov ah,0Eh
mov bl,07h ; attribute
mov bh,[cs:BIOS_page] ; current page
int 10h
popad
+.nothing:
popfd
ret
diff --git a/rawcon.inc b/rawcon.inc
index 87e69fa8..9f02e4f2 100644
--- a/rawcon.inc
+++ b/rawcon.inc
@@ -13,6 +13,9 @@ writechr:
pop ds
call write_serial ; write to serial port if needed
pushfd
+ test byte [DisplayCon],01h ; Write to screen?
+ jz .nothing
+
pushad
mov bh,[BIOS_page]
push ax
@@ -43,6 +46,7 @@ writechr:
mov ah,02h ; Set cursor position
int 10h
.ret: popad
+.nothing:
popfd
pop ds
ret
diff --git a/syslinux.doc b/syslinux.doc
index 6373d67c..0092f887 100644
--- a/syslinux.doc
+++ b/syslinux.doc
@@ -288,6 +288,15 @@ SERIAL port [[baudrate] flowcontrol]
ports detected by the BIOS. They may or may not correspond to
the legacy port values 0x3F8, 0x2F8, 0x3E8, 0x2E8.
+CONSOLE flag_val
+ If flag_val is 0, disable output to the normal video console.
+ If flag_val is 1, enable output to the video console (this is
+ the default.)
+
+ Some BIOSes try to forward this to the serial console and
+ sometimes make a total mess thereof, so this option lets you
+ disable the video console on these systems.
+
FONT filename
Load a font in .psf format before displaying any output
(except the copyright line, which is output as ldlinux.sys