Add API call to determine the serial console configuration.
authorhpa <hpa>
Mon, 17 Jun 2002 16:10:15 +0000 (16:10 +0000)
committerhpa <hpa>
Mon, 17 Jun 2002 16:10:15 +0000 (16:10 +0000)
comboot.doc
comboot.inc
isolinux.asm
ldlinux.asm
parseconfig.inc
pxelinux.asm

index a677b54..032eed4 100644 (file)
@@ -1,4 +1,4 @@
-$Id$
+        $Id$
 
                       COMBOOT and COM32 files
 
@@ -363,3 +363,14 @@ AX=000Ah   Get Derivative-Specific Information
        This call gives information specific to a particular SYSLINUX
        derivative.  The value returned in AL is the same as is
        returned in DL by INT 22h AX=0001h.
+
+
+AX=000Bh       Get Serial Console Configuration
+
+       Input:  AX      000Bh
+       Output: DX      Serial port I/O base (e.g. 3F8h = COM1...)
+               CX      Baud rate divisor (1 = 115200 bps, 2 = 57600 bps...)
+               BX      Flow control configuration bits (see syslinux.doc)
+
+       If no serial port is configured, DX will be set to 0 and the
+       other registers are undefined.
index 80b15b8..d25fd2c 100644 (file)
@@ -462,6 +462,22 @@ comapi_derinfo:
                ret
 
 ;
+; INT 22h AX=000Bh     Get Serial Console Configuration
+;
+comapi_serialcfg:
+               mov ax,[SerialPort]
+               mov P_DX,ax
+               mov ax,[BaudDivisor]
+               mov P_CX,ax
+               mov ax,[FlowControl]
+               or al,ah
+               mov ah,[FlowIgnore]
+               shr ah,4
+               mov P_BX,ax
+               clc
+               ret
+
+;
 ; This stuff should really be in the data section...
 ;
 %macro                 int21 2
@@ -495,6 +511,7 @@ int22_table:
                dw comapi_close                 ; 0008 close file
                dw comapi_pxecall               ; 0009 call PXE stack
                dw comapi_derinfo               ; 000A derivative-specific info
+               dw comapi_serialcfg             ; 000B get serial port config
 int22_count    equ ($-int22_table)/2
 
 APIKeyWait     db 0
index 5d5e418..1fd90d4 100644 (file)
@@ -185,6 +185,7 @@ CursorRow       resb 1                      ; Cursor row for message file
 ScreenSize      equ $
 VidCols         resb 1                 ; Columns on screen-1
 VidRows         resb 1                 ; Rows on screen-1
+BaudDivisor    resw 1                  ; Baud rate divisor
 FlowControl    equ $
 FlowOutput     resb 1                  ; Outputs to assert for serial flow
 FlowInput      resb 1                  ; Input bits for serial flow
index f35deb6..d81353b 100644 (file)
@@ -178,6 +178,7 @@ CursorRow       resb 1                      ; Cursor row for message file
 ScreenSize      equ $
 VidCols         resb 1                 ; Columns on screen-1
 VidRows         resb 1                 ; Rows on screen-1
+BaudDivisor    resw 1                  ; Baud rate divisor
 FlowControl    equ $
 FlowOutput     resb 1                  ; Outputs to assert for serial flow
 FlowInput      resb 1                  ; Input bits for serial flow
index cee88df..96c52b4 100644 (file)
@@ -170,6 +170,7 @@ pc_serial:  call getint
                mov eax,BAUD_DIVISOR
                cdq
                div ebx
+               mov [BaudDivisor],ax
                push ax                         ; Baud rate divisor
                cmp di,3
                ja .port_is_io                  ; If port > 3 then port is I/O addr
index d19e171..53b46b8 100644 (file)
@@ -233,6 +233,7 @@ CursorRow       resb 1                      ; Cursor row for message file
 ScreenSize      equ $
 VidCols         resb 1                 ; Columns on screen-1
 VidRows         resb 1                 ; Rows on screen-1
+BaudDivisor    resw 1                  ; Baud rate divisor
 FlowControl    equ $
 FlowOutput     resb 1                  ; Outputs to assert for serial flow
 FlowInput      resb 1                  ; Input bits for serial flow