dual monitor setup with dual vga cards

Hi all,

I am new to this list and have a question :slight_smile:

I have been asked to help solve a qnx 4.25 hardware/software problem
and so far I have diagnosed it as being a software problem. And to do
some further diagnosis without destroying the original pc I am setting
up a clone. This pc has a dual s3 virge 86c375 video card with 2 1024x768
lcd screens attached. When booting the pc the bios messages appear
on the left monitor that is attched to the first video card. So far so good.
After a lot of searching with google and reading on
qnx.com/developers/qnx4/qnx4kb I have a setup that is kind
of working in graphics mode. Unfortunally the left monitor displays the right
halve of the desktop and the right monitor the left halve of the desktop.
Most of the info I have read comes from “crttrap trap” and the qnx website.
This is the first line I have in /etc/config/trap/crt.1 :
Hydra.ms -S -i0x105 -s0x0000,0x0048 -RL -nqnx/crt48;Hydra.ms -S -i0x105 -s0x0000,0x0058 -cnone -nqnx/crt58 -RL;Pg.flat -HC0x00000058 -PX -HNqnx/crt58 -g1024x768x8 -o1024 -A0xCC000000,0x4000000 -WB1024;Pg.flat -HC0x00000048 -PX -HNqnx/crt48 -g1024x768x8 -A0xC4000000,0x400000 -WB1024;

I also tried the next, among others, lines in the crt.1 file, these fail in different ways :
virge.ms -i0x105 -0x0000,0x0048 -RL;virge.ms -i0x105 -s0x0000,0x0058 -RL -cnone -nqnx/crt;Pg.virge -HNqnx/crt -g1024x768x8 -o1024 -A0xCC000000,0x4000000 -WB1024 -WM10,5,0,3,0x00400000;Pg.virge -HNqnx/crt -g1024x768x8 -A0xCC000000,0x4000000 -WB1024 -WM10,5,0,3,0x00400000;

virge.ms -i0x105 -0x0000,0x0048 -M10,5,0,3,0x00400000 -RL;virge.ms -i0x105 -s0x0000,0x0058 -M10,5,0,3,0x00400000 -RL -cnone -nqnx/crt;Pg.virge -HNqnx/crt -g1024x768x8 -o1024 -A0xCC000000,0x4000000 -WB1024 -WM10,5,0,3,0x00400000;Pg.virge -HNqnx/crt -g1024x768x8 -A0xCC000000,0x4000000 -WB1024 -WM10,5,0,3,0x00400000;
Hydra.ms -S -i0x105 -s0x0000,0x0048 -RL -nqnx/crt48;Hydra.ms -S -i0x105 -s0x0000,0x0058 -cnone -nqnx/crt58 -RL;Pg.flat -HC0x00000058 -PX -HNqnx/crt58 -g1024x768x8 -o1024 -A0xCC000000,0x4000000 -WB1024;Pg.flat -HC0x00000048 -PX -HNqnx/crt48 -g1024x768x8 -A0xC4000000,0x400000 -WB1024;

virge.ms -i0x105 -s0x0000,0x0048 -nqnx/crt48 -RL;virge.ms -i0x105 -s0x0000,0x0058 -cnone -nqnx/crt58 -RL;Pg.virge -HC0x00000058 -PX -HNqnx/crt58 -g1024x768x8 -o1024 -A0xCC000000,0x4000000 -WB1024;Pg.virge -HC0x00000048 -PX -HNqnx/crt48 -g1024x768x8 -A0xC4000000,0x400000 -WB1024;

The “pci -vv” command shows the video cards :
Class = Display (VGA)
Vendor ID = 5333h, S3 Inc.
Device ID = 8a01h, ViRGE/DX or /GX
PCI index = 0h
Class Codes = 030000h
Revision ID = 1h
Bus number = 0
Device number = 9
Function num = 0
Status Reg = 200h
Command Reg = 7h
I/O space access enabled
Memory space access enabled
Bus Master enabled
Special Cycle operations ignored
Memory Write and Invalidate disabled
Palette Snooping disabled
Parity Error Response disabled
Data/Address stepping disabled
SERR# driver disabled
Fast back-to-back transactions to different agents disabled
PCI INTx enabled
Header type = 0h Single-function
BIST = 0h Build-in-self-test not supported
Latency Timer = 40h
Cache Line Size= 0h
BAR - 0 [Mem] = cc000000h 32bit length 67108864 enabled
Subsystem Vendor ID = 5333h
Subsystem ID = 8a01h
PCI Expansion ROM = cbff0000h length 65536 disabled
Max Lat = 255ns
Min Gnt = 4ns
PCI Int Pin = INT A
Interrupt line = 11
CPU Interrupt = bh
Device Dependent Registers:
0x040: 0000 0000 0000 0000 0000 0000 0000 0000
…
0x0f0: 0000 0000 0000 0000 0000 0000 0000 0000

Class = Display (VGA)
Vendor ID = 5333h, S3 Inc.
Device ID = 8a01h, ViRGE/DX or /GX
PCI index = 1h
Class Codes = 030000h
Revision ID = 1h
Bus number = 0
Device number = 11
Function num = 0
Status Reg = 200h
Command Reg = 0h
I/O space access disabled
Memory space access disabled
Bus Master disabled
Special Cycle operations ignored
Memory Write and Invalidate disabled
Palette Snooping disabled
Parity Error Response disabled
Data/Address stepping disabled
SERR# driver disabled
Fast back-to-back transactions to different agents disabled
PCI INTx enabled
Header type = 0h Single-function
BIST = 0h Build-in-self-test not supported
Latency Timer = 40h
Cache Line Size= 0h
BAR - 0 [Mem] = 0h 32bit length 67108864 disabled
Subsystem Vendor ID = 5333h
Subsystem ID = 8a01h
PCI Expansion ROM = 0h length 65536 disabled
Max Lat = 255ns
Min Gnt = 4ns
PCI Int Pin = INT A
Interrupt line = 11
CPU Interrupt = bh
Device Dependent Registers:
0x040: 0000 0000 0000 0000 0000 0000 0000 0000
…
0x0f0: 0000 0000 0000 0000 0000 0000 0000 0000

Also the graphical config utility gives an error about the crttrap program
not being found and that should be solved with “export SYSNAME=qnx4”.
I have not been able to get that working yet, but I do not care much
about that now.

Can anybody help me with information about switching the left and right
monitor views ?
Without reversing the physical connectors on the video cards :slight_smile:
And perhaps offer some help with getting the virge.ms and pg.virge combo
going ?

I did not try the 15 or 16 bit colour modes yet.

Before I forget, when booting with the Hydra.ms line in crt.1 the driver, I think,
emits one long beep and three short beeps. Do not know what that means yet.

roelof

Well, quite honestly I can’t see why you don’t want to just switch the connectors (or the monitors for that matter) but as I recall. the crt.# file indicates offsets in the X and Y of Photon space where the video drivers should position themselves.

Hi,

Thanks for the reply.

Of course I can just switch the monitors/cables. But the original
pc has the bios boot information on the left monitor and also the
left halve of the desktop. So I am curious how to get the monitors
switched in the setup.
Yes, I do have the “-o1024” option on the pg.flat line for the
second monitor. That should shift the right halve of the desktop
in to view so to say.
Ordering of the config line is a bit strange with
hydra.ms first; hydra.ms second; pg.flat second; pg.flat first;
Maybe the information I found on the qnx.com website is wrong
about how to split the config line for the first monitor to add the
config for the second monitor in between. Maybe it should be
hydra.ms first; hydra.ms second; pg.flat first; pg.flat second;
I’ll try that.

roelof