• Multi monitor on modern IntelHD/NVIDIA/AMD display adapter under DOS?

    From JJ@21:1/5 to All on Thu Oct 17 08:27:17 2024
    With modern display adapters such as Intel HD, NVIDIA, and AMD; is it even possible for non primary monitor to display a text video mode?

    If it's possible, was there a driver/TSR which provide acces to other
    monitor in multi-monitor setup? i.e. designed for use by other program to specifically display things on non primary monitor. Or a demo program which
    can use non primary monitor in text video mode.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From John McCue@21:1/5 to jj4public@outlook.com on Thu Oct 17 13:41:13 2024
    JJ <jj4public@outlook.com> wrote:
    With modern display adapters such as Intel HD, NVIDIA, and AMD;
    is it even possible for non primary monitor to display a text
    video mode?

    If it's possible, was there a driver/TSR which provide acces
    to other monitor in multi-monitor setup? i.e. designed for use
    by other program to specifically display things on non primary
    monitor. Or a demo program which can use non primary monitor in
    text video mode.

    In a way, MS-DOS kind of had support for multi-monitors (2)
    where you can flip between the two.

    I had a B&W and a VGA and I was able to do this by using two
    video boards.

    Some Debuggers did support using 2 monitors. Zortech c and
    Microsoft 5.1 debuggers allowed for this. The debugger would
    show up on the B&W monitor where program output would show up
    on the VGA. This was on a 286.

    So it was more up to the application as opposed to MS-DOS.


    --
    [t]csh(1) - "An elegant shell, for a more... civilized age."
    - Paraphrasing Star Wars

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From JJ@21:1/5 to John McCue on Fri Oct 18 16:00:29 2024
    On Thu, 17 Oct 2024 13:41:13 -0000 (UTC), John McCue wrote:
    JJ <jj4public@outlook.com> wrote:
    With modern display adapters such as Intel HD, NVIDIA, and AMD;
    is it even possible for non primary monitor to display a text
    video mode?

    If it's possible, was there a driver/TSR which provide acces
    to other monitor in multi-monitor setup? i.e. designed for use
    by other program to specifically display things on non primary
    monitor. Or a demo program which can use non primary monitor in
    text video mode.

    In a way, MS-DOS kind of had support for multi-monitors (2)
    where you can flip between the two.

    I had a B&W and a VGA and I was able to do this by using two
    video boards.

    Some Debuggers did support using 2 monitors. Zortech c and
    Microsoft 5.1 debuggers allowed for this. The debugger would
    show up on the B&W monitor where program output would show up
    on the VGA. This was on a 286.

    So it was more up to the application as opposed to MS-DOS.

    Sorry. I should have been more clearer.

    I wasn't referring to multi-monitor provided by multiple video adapters.

    I was referring to one video adapter which support multi monitors. i.e. has
    at least 2 video output ports.

    Mac, Windows, and Linux support multiple monitors on a single IntelHD/NVIDIA/AMD video adapter, but so far, I've seen non primary monitors used only for graphics video mode. I never seen any which is used for text video mode. Though, may be I don't have enough experience working with
    various hardware setups.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From John McCue@21:1/5 to jj4public@outlook.com on Fri Oct 18 15:49:20 2024
    JJ <jj4public@outlook.com> wrote:
    On Thu, 17 Oct 2024 13:41:13 -0000 (UTC), John McCue wrote:
    JJ <jj4public@outlook.com> wrote:
    <snip>

    Sorry. I should have been more clearer.

    I wasn't referring to multi-monitor provided by multiple video adapters.
    OK :)

    I was referring to one video adapter which support multi monitors. i.e. has at least 2 video output ports.

    I would be surprised if MS/DR-DOS could support this,
    but with FreeDOS you have a chance. FreeDOS is still
    being developed, but not sure if thay are adding new
    hardware support.

    Mac, Windows, and Linux support multiple monitors on a single IntelHD/NVIDIA/AMD video adapter, but so far, I've seen non primary monitors used only for graphics video mode. I never seen any which is used for text video mode. Though, may be I don't have enough experience working with various hardware setups.

    --
    [t]csh(1) - "An elegant shell, for a more... civilized age."
    - Paraphrasing Star Wars

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Phil Ashby@21:1/5 to All on Sun Oct 20 13:56:24 2024
    On 18/10/2024 10:00, JJ wrote:
    On Thu, 17 Oct 2024 13:41:13 -0000 (UTC), John McCue wrote:
    JJ <jj4public@outlook.com> wrote:
    With modern display adapters such as Intel HD, NVIDIA, and AMD;
    is it even possible for non primary monitor to display a text
    video mode?

    If it's possible, was there a driver/TSR which provide acces
    to other monitor in multi-monitor setup? i.e. designed for use
    by other program to specifically display things on non primary
    monitor. Or a demo program which can use non primary monitor in
    text video mode.

    In a way, MS-DOS kind of had support for multi-monitors (2)
    where you can flip between the two.

    I had a B&W and a VGA and I was able to do this by using two
    video boards.

    Some Debuggers did support using 2 monitors. Zortech c and
    Microsoft 5.1 debuggers allowed for this. The debugger would
    show up on the B&W monitor where program output would show up
    on the VGA. This was on a 286.

    So it was more up to the application as opposed to MS-DOS.

    Sorry. I should have been more clearer.

    I wasn't referring to multi-monitor provided by multiple video adapters.

    I was referring to one video adapter which support multi monitors. i.e. has at least 2 video output ports.

    Mac, Windows, and Linux support multiple monitors on a single IntelHD/NVIDIA/AMD video adapter, but so far, I've seen non primary monitors used only for graphics video mode. I never seen any which is used for text video mode. Though, may be I don't have enough experience working with various hardware setups.

    So this question intrigued me, as I have used dual display adapters for
    DOS development in the past (as mentioned above by John McCue - I was developing a graphical application on a VGA, using Microsoft C5.1 and
    their CodeView debugger on an MDA). What of modern hardware?

    I am aware that booting my laptop (Lenovo ThinkPad E590) with the lid
    shut results in the text mode boot screen (and any subsequent DOS
    output) appearing on the HDMI output, so it's possible, but is it
    possible after boot to switch outputs or have text mode on >1 output?

    Fortunately my laptop has an Intel i8265U SOC with UHD 620 (Intel HD)
    graphics, which is well documented in the programmers reference manuals
    here:

    https://www.intel.com/content/www/us/en/docs/graphics-for-linux/developer-reference/1-0/kaby-lake.html

    (actually the i8265U is CoffeLake, but the graphics are the same)

    Reading the "Display" manual (volume 12, from page 105) I see that it
    has real VGA hardware, which is off to the side of the main rendering
    pipelines (x3), and can be wired into Pipeline A, which is then
    multiplexed into one of three Transcoders: one for the flat panel, one
    back into RAM and one that can be further multiplexed to any of four
    output ports, including the HDMI.

    So one can see how the Intel HD specific BIOS wires the VGA to whichever
    output port is active (eDP or HDMI) at boot, and indeed it seems
    possible to switch the pipeline around by programming the multiplexers
    (via PCI registers). FWIW I tried to find such code in Coreboot but got
    a bit lost in their directory structure!) and I don't think my E590 is supported yet (although Intel HD may be).

    Unfortunately I haven't found any standardised API (eg: UEFI-GOP, VBE)
    that supports output management at the BIOS level, which would have
    allowed DOS to support multi-output adapters generically. Indeed if one
    looks at the Linux DRM driver stack, there is an API there for managing outputs, which is implemented in hardware-specific driver code (all of
    which is extremely non-trivial!)

    I guess if your laptop or whatever is supported by Coreboot, and it has
    the necessary multiplxer drivers, then it /could/ export a suitable
    API.. otherwise it's porting ugly chunks of Linux kernel code into DOS
    as a TSR or similar, or starting again with the manuals... good luck :)

    Phil (rabbit hole explorer :))

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From JJ@21:1/5 to Phil Ashby on Mon Oct 21 07:43:16 2024
    On Sun, 20 Oct 2024 13:56:24 +0100, Phil Ashby wrote:

    So this question intrigued me, as I have used dual display adapters for
    DOS development in the past (as mentioned above by John McCue - I was developing a graphical application on a VGA, using Microsoft C5.1 and
    their CodeView debugger on an MDA). What of modern hardware?

    I am aware that booting my laptop (Lenovo ThinkPad E590) with the lid
    shut results in the text mode boot screen (and any subsequent DOS
    output) appearing on the HDMI output, so it's possible, but is it
    possible after boot to switch outputs or have text mode on >1 output?

    Fortunately my laptop has an Intel i8265U SOC with UHD 620 (Intel HD) graphics, which is well documented in the programmers reference manuals
    here:

    https://www.intel.com/content/www/us/en/docs/graphics-for-linux/developer-reference/1-0/kaby-lake.html

    (actually the i8265U is CoffeLake, but the graphics are the same)

    Reading the "Display" manual (volume 12, from page 105) I see that it
    has real VGA hardware, which is off to the side of the main rendering pipelines (x3), and can be wired into Pipeline A, which is then
    multiplexed into one of three Transcoders: one for the flat panel, one
    back into RAM and one that can be further multiplexed to any of four
    output ports, including the HDMI.

    So one can see how the Intel HD specific BIOS wires the VGA to whichever output port is active (eDP or HDMI) at boot, and indeed it seems
    possible to switch the pipeline around by programming the multiplexers
    (via PCI registers). FWIW I tried to find such code in Coreboot but got
    a bit lost in their directory structure!) and I don't think my E590 is supported yet (although Intel HD may be).

    Thanks for the pointers. I actually already have downloaded the "Display"
    and "PCIE Configuration Register" manuals from Intel, but for 2013 Haswell Intel HD since it's the one for my machine.

    While I've grasp the concept of VGA hardware programming, I have none yet
    for multi-monitors. So I was clueless of what I should search for in the documents, since I've searched for e.g. "secondary", "multi", "monitors",
    etc. but still lead to nowhere. But thanks to your pointers, I began to
    grasp how multi-monitors are handled. At least for Intel HD...

    AMD's documentations are less cryptic than Intel's. So, thumbs up to them.

    NVIDIA is... suck. Big time. I couldn't find any documentation for basic display adapter hardware programming. AFAIK, NVIDIA drivers for open source OSes such as Linux are all prorietary drivers. Maybe that's why.

    Unfortunately I haven't found any standardised API (eg: UEFI-GOP, VBE)
    that supports output management at the BIOS level, which would have
    allowed DOS to support multi-output adapters generically.

    Yes, I'm pretty sure BIOS nor VBE has any API for multi-monitors. The technology was not popular enough back then to be standardized. There may be some undocumented video BIOS interrupt services, but that's like a gambling.

    Indeed if one
    looks at the Linux DRM driver stack, there is an API there for managing outputs, which is implemented in hardware-specific driver code (all of
    which is extremely non-trivial!)

    I guess if your laptop or whatever is supported by Coreboot, and it has
    the necessary multiplxer drivers, then it /could/ export a suitable
    API.. otherwise it's porting ugly chunks of Linux kernel code into DOS
    as a TSR or similar, or starting again with the manuals... good luck :)

    Phil (rabbit hole explorer :))

    Those are rabbit holes indeed. :) But I have to use them too as references.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)