Fix parsing of hardware flow control
authorhpa <hpa>
Tue, 20 Nov 2001 04:01:21 +0000 (04:01 +0000)
committerhpa <hpa>
Tue, 20 Nov 2001 04:01:21 +0000 (04:01 +0000)
isolinux.asm
ldlinux.asm
pxelinux.asm
syslinux.doc

index ab2d18d..e44e041 100644 (file)
@@ -1186,16 +1186,20 @@ pc_serial:      call getint                     ; "serial" command
                jc parse_config_2
                call ungetc
                call getint
-               jnc .valid_baud
-               mov ebx,DEFAULT_BAUD            ; No baud rate given
+               mov [FlowControl], byte 0       ; Default to no flow control
+               jc .nobaud
 .valid_baud:   
                push ebx
                call getint                     ; Hardware flow control?
                jnc .valid_flow
-               xor bx,bx                       ; Default -> no flow control
+               xor bl,bl                       ; Default -> no flow control
 .valid_flow:
                mov [FlowControl],bl
                pop ebx                         ; Baud rate
+               jmp short .parse_baud
+.nobaud:
+               mov ebx,DEFAULT_BAUD            ; No baud rate given
+.parse_baud:
                pop di                          ; Serial port #
                cmp ebx,byte 75
                jb parse_config_2               ; < 75 baud == bogus
index 9fe7c9d..ecdcf3a 100644 (file)
@@ -1284,16 +1284,20 @@ pc_serial:      call getint                     ; "serial" command
                jc parse_config_2
                call ungetc
                call getint
-               jnc .valid_baud
-               mov ebx,DEFAULT_BAUD            ; No baud rate given
+               mov [FlowControl], byte 0       ; Default to no flow control
+               jc .nobaud
 .valid_baud:   
                push ebx
                call getint                     ; Hardware flow control?
                jnc .valid_flow
-               xor bx,bx                       ; Default -> no flow control
+               xor bl,bl                       ; Default -> no flow control
 .valid_flow:
                mov [FlowControl],bl
                pop ebx                         ; Baud rate
+               jmp short .parse_baud
+.nobaud:
+               mov ebx,DEFAULT_BAUD            ; No baud rate given
+.parse_baud:
                pop di                          ; Serial port #
                cmp ebx,byte 75
                jb parse_config_2               ; < 75 baud == bogus
index 7ad4ffc..8d1e5d3 100644 (file)
@@ -1001,16 +1001,20 @@ pc_serial:      call getint                     ; "serial" command
                jc parse_config_2
                call ungetc
                call getint
-               jnc .valid_baud
-               mov ebx,DEFAULT_BAUD            ; No baud rate given
+               mov [FlowControl], byte 0       ; Default to no flow control
+               jc .nobaud
 .valid_baud:   
                push ebx
                call getint                     ; Hardware flow control?
                jnc .valid_flow
-               xor bx,bx                       ; Default -> no flow control
+               xor bl,bl                       ; Default -> no flow control
 .valid_flow:
                mov [FlowControl],bl
                pop ebx                         ; Baud rate
+               jmp short .parse_baud
+.nobaud:
+               mov ebx,DEFAULT_BAUD            ; No baud rate given
+.parse_baud:
                pop di                          ; Serial port #
                cmp ebx,byte 75
                jb parse_config_2               ; < 75 baud == bogus
index f346986..19f87e2 100644 (file)
@@ -208,9 +208,14 @@ SERIAL port [[baudrate] flowcontrol]
        to 9600 bps.  The serial parameters are hardcoded to be 8
        bits, no parity, 1 stop bit.
 
-       "flowcontrol" is a flag (0 = off, 1 = on), to support hardware
-       flowcontrol (RTS/CTS).  Specifically, SYSLINUX will assert
-       DTR and RTS, and will honor incoming CTS.
+       "flowcontrol" is one of the following values:
+       
+       Value   Flow control    RTS     DTR     CTS     DCD
+         0     None            U       U       I       I
+         1     RTS/CTS         A       A       O       I
+         2     DTR/DCD         A       A       O       O
+
+       U = Unchanged   A = Asserted   I = Ignored   O = Observed
 
        For this directive to be guaranteed to work properly, it
        should be the first directive in the configuration file.