pcjs/devices/pcx86/video/ibm/vga/README.md
2017-08-23 20:20:17 -07:00

61 lines
2.6 KiB
Markdown

---
layout: page
title: IBM Video Graphics Array (VGA)
permalink: /devices/pcx86/video/ibm/vga/
---
IBM Video Graphics Array (VGA)
---
### IBM VGA Configurations
The easiest way for a machine to include an VGA *[Video](/docs/pcx86/video/)* component in its XML configuration file
is to reference one of the project's VGA configuration files, using the *ref* attribute; eg:
```xml
<video ref="/devices/pcx86/video/ibm/vga/1986-10-27/256kb-autolockfs.xml"/>
```
The referenced XML file automatically defines visual elements (eg, dimensions of the display window and other
visual indicators), display behaviors (eg, touchscreen support, mouse pointer locking), the ROM to load (and where
to load it), and other video card hardware features (eg, *memory* and *switches*).
Here's what *256kb-autolockfs.xml* currently looks like:
```xml
<video id="videoVGA" model="vga" screenwidth="1280" screenheight="960" scale="true" touchscreen="mouse" autolock="true" pos="center" padding="8px">
<menu>
<title>IBM VGA Color Display</title>
<control type="container" pos="right">
<control type="led" label="Caps" binding="caps-lock" padleft="8px"/>
<control type="led" label="Num" binding="num-lock" padleft="8px"/>
<control type="led" label="Scroll" binding="scroll-lock" padleft="8px"/>
<control type="button" binding="fullScreen" padleft="8px">Full Screen</control>
</control>
</menu>
<rom id="romVGA" addr="0xc0000" size="0x6000" file="/devices/pcx86/video/ibm/vga/1986-10-27/ibm-vga.json" notify="videoVGA[0x378d,0x3f8d]"/>
</video>
```
The following IBM VGA configuration files are currently available:
- [256kb-autolockfs.xml](1986-10-27/256kb-autolockfs.xml)
- [256kb-lockfs.xml](1986-10-27/256kb-lockfs.xml)
### IBM VGA ROM
We have only one IBM VGA ROM revision, dated October 27, 1986, from an IBM PS/2 Display Adapter. Which, BTW,
has to be one of the *most* confusing product names ever, since the adapter was an 8-bit card designed for ISA
machines, *not* PS/2 machines.
To (re)build the JSON-encoded IBM VGA ROM with symbols, run the following command:
filedump --file=archive/ibm-vga.rom --format=bytes --decimal
The symbol information in the MAP file will be automatically converted and appended to the dump of the ROM file.
The PCjs server's Dump API can be used as well:
http://www.pcjs.org/api/v1/dump?file=https://s3-us-west-2.amazonaws.com/archive.pcjs.org/devices/pcx86/video/ibm/vga/1986-10-27/ibm-vga.rom&format=bytes&decimal=true
The disassembled contents of the 1986-10-27 ROM from the IBM PS/2 Display Adapter is available [here](1986-10-27/ibm-vga.asm).