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
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
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
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.