PBXGA graphics card

Table of Contents

General description

Charon-AXP supports emulation of PBXGA graphics card(s) by direct virtualization and provides a virtual console for displaying graphics.

The console starts automatically upon starting the emulator. Its resolution is 800 x 600 by default.

Support for AXP graphics is provided with two components:

  • emulation of PBXGA PCI graphics adapter and
  • emulation of display unit (display unit is emulated with separate executable PBXGA_TV)

Emulated cards

  • PBXGA_AA emulates 8bpp graphics card (256 colors, pseudo-color) with 4MB frame buffer - ZLXp-E1
  • PBXGA_BA emulates 24bpp graphics card (16M colors, TrueColor) with 16MB frame buffer - ZLXp-E2

Important notes

  • PBXGA graphics console cannot be used as the system console. Use OPA0 for this purpose.
  • If PBXGA graphics card is going to be used, the resolution of CHARON host screen must be sufficient to provide ability to display the graphics console properly.
  • If PBXGA graphics card is configured, starting with version 4.12, Charon can now run as a service and is therefore compatible with the Linux Toolkit. Alternatively the emulator can also be run in detached mode (# <emulator exe> -d <configuration file>)
  • If the window of the PBXGA graphics card console is closed by user or killed as a process, it will not re-appear automatically ((lightbulb) the Charon emulator will continue to work). In this situation the user has to restart the pbxga_tv program with the correct parameters, as defined in the configuration file, to restart the graphical display (see PBXGA graphics card#application chapter further)

Virtual PBXGA PCI graphics card settings

Loading virtual PBXGA graphics card

Syntax for loading PBXGA graphics card:

load <emulated card> <name>

Syntax for loading PBXGA graphics card on AlphaServer 400:

load <emulated card> <name> irq_bus = isa

Example (more examples below):

load PBXGA_BA GYA

On Charon startup a window will appear on CHARON host monitor to display graphics.

All the parameters described in the "Placement of peripheral devices on PCI bus" chapter, such as "bus", "device", "function", "irq", "irq_bus" are applicable for PBXGA graphics card.


Configuration parameters

size

Parametersize
TypeText string
Value

Predefine the screen size.

Possible values: 640x480, 800x600 (default), 1024x768, 1152x900, 1280x1024, 1920x1080

Example:

set GYA size = 1024x768

cpu_draw

Parametercpu_draw
Typeboolean
Value

Offloading raster operations. The default value is "true"

Example:

set GYA cpu_draw = false

.

application

Parameter

application

Type

Text string

Value

Specifies the application to open for displaying the emulated graphics device.

The pbxga_tv executable file is provided for this. It is located in the same folder as the Charon emulator executable file.

Syntax:

pbxga_tv -c <configuration_name> -n <device name(s)>

When several graphics cards are loaded, the <device name(s)> have to be separated by a pipe character and the application has to be defined for the latest loaded PBXGA card. See examples below. Note that correct consolidation is only possible when screens are of the same depth and size.

Example:

set GYA application = "pbxga_tv -c DS20 -n GYA"

There is no need to supply display size to PBXGA_TV application.

Using PanoramiX/XINERAMA extensions to DECwindows is also possible (topics of proper configuration OpenVMS/Tru64 are not covered here). These extensions allow to join multiple heads in one big virtual screen. The PBXGA_TV virtual display unit has special notation allowing to consolidate multiple frame buffers in single window (topology is flexible, to some extent):

  • Screens are joined horizontally when separated by "|"
  • Screens are joined vertically when separated by "/"

Example:

set GYD application = "pbxga_tv -c MYCONF -n GYA|GYB/GYC|GYD"



Using PBXGA_TV

General Information

The PBXGA_TV display unit starts in passive mode. It displays content of frame buffer but does not react on keyboard input and/or mouse movements. In order to switch it to active mode, place mouse cursor with the window and click once. When PBXGA_TV is active, mouse cursor is stuck to PBXGA_TV window. Press CTRL+ALT+R to release.

The PBXGA_TV display unit starts in Window Mode. Use CTRL+ALT+F to toggle Full Screen Mode.

The PBXGA_TV application uses the SDL2 library to draw its window. The PBXGA_TV driver is statically linked with SDL2. You may need to install the "libdecor" package additionally.

Running PBXGA_TV remotely is not supported.

Please note: PBXGA_TV can only consolidate multiple screens from a single emulator instance.

Command-Line Parameters

The "pbxga_tv" application accepts the following parameters:


ParameterDescription

-c, --configuration-name <CONF>

Specify the configuration-name in the emulator configuration file

-n, --device-name <DEVICE>

Specify the device-name in the emulator configuration file
--guest-os <GUEST>
-Tru64
-OpenVMS

Specify guest operating-system running in emulator. Values for
<GUEST> are Tru64 or OpenVMS. -Tru64 and -OpenVMS are the same
as --guest-os Tru64 and --guest-os OpenVMS

-u,--screen-update-period-ms <PERIOD>Screen update period in milliseconds. If omitted, the default is 100

Multiple Screens

The PBXGA_TV application supports using multiple PBXGA adapters in screen consolidation mode, provided that guest OS is configured for PANORAMIX/XINERAMA extension. In order to join multiple PBXGA displays in a single window the value of device-name must list the desired device names as follows:


-n <device-name-1>[|<device-name-2>...][/<device-name-3>[|<device-name-4>...]]

Example of dual display (two displays joined horizontally):

set session configuration_name = DUAL
...
load PBXGA GYA
load PBXGA GYB
set GYA application = "pbxga_tv -c DUAL -n GYA|GYB"

If the two displays must be joined vertically:

set GYA application = "pbxga_tv -c DUAL -n GYA/GYB"

The PBXGA_TV application can consolidate up to 3 displays in a row (or column) or up to 4 displays in a matrix of 2x2. All displays must have the same geometry and bits-per-pixel.

The PBXGA_TV application can run independently, from command line, or using shortcuts created by the user. Terminating the PBXGA_TV application does not destroy the graphics context (which is drawn by AXP emulator). But it must run on the same host as the AXP emulator (including Remote Desktop or VNC sessions).

Examples

Example 1: 8-bpp graphics on AlphaServer 400

...
set session hw_model = AlphaServer_400
set session configuration_name = AS400
...
load PBXGA_AA GYA irq_bus = isa size = 1024x768
set GYA application = "pbxga_tv -c AS400 -n GYA"

Example 2: 24-bpp graphics on AlphaServer DS20

...
set session hw_model = AlphaServer_DS20
set session configuration_name = DS20
...
load PBXGA_BA GYA size = 1280x1024
set GYA application = "pbxga_tv -c DS20 -n GYA"

Example 3: two display units, running independently

...
set session configuration_name = MYCONF
...

load PBXGA_BA GYA
set GYA application = "pbxga_tv -c MYCONF -n GYA"
load PBXGA_BA GYB size = 1280x1024
set GYB application = "pbxga_tv -c MYCONF -n GYB"

In the above example, display units have different resolutions.

Example 4: dual head display, 2x 1280x1024

...
set session hw_model = AlphaServer_ES45
set session configuration_name = ES45
...
load PBXGA_BA GYA size = 1280x1024
load PBXGA_BA GYB size = 1280x1024
set GYB application = "pbxga_tv -c ES45 -n GYA|GYB"

Example 5: triple head display, 3x 1280x1024

...
set session hw_model = AlphaServer_ES45
set session configuration_name = ES45
...
load PBXGA_BA GYA size = 1280x1024
load PBXGA_BA GYB size = 1280x1024
load PBXGA_BA GYC size = 1280x1024
set GYC application = "pbxga_tv -c ES45 -n GYA|GYB|GYC"

Example 6: Two screens consolidated in a column in one window

...
set session configuration_name = MYCONF
...

load PBXGA_BA GYAsize = 1280x1024
load PBXGA_BA GYB size = 1280x1024
set GYB application = "pbxga_tv -c MYCONF -n GYA/GYB"



© Stromasys, 1999-2024  - All the information is provided on the best effort basis, and might be changed anytime without notice. Information provided does not mean Stromasys commitment to any features described.

Robert Urban
December 14, 2023

@Vadim Model, perhaps it would be better to dynamically link against the sdl2 library, so that the standard package dependency mechanism can be used to pull in dependencies