Documentation updates
This commit is contained in:
parent
a05f9b58fd
commit
06094fcd48
20 changed files with 298 additions and 122 deletions
|
|
@ -45,9 +45,9 @@ Some pre-configured machines are shown below, ready to run BASIC, DOS, Windows,
|
|||

|
||||

|
||||
|
||||
Check out the rest of the PCjs [Application](/apps/pc/), [Disk](/disks/pc/), and [Machine](/devices/pc/machine/)
|
||||
demos, including an [IBM PC with Dual Displays](/devices/pc/machine/5150/dual/64kb/) demonstrating early multi-monitor
|
||||
support, and multiple IBM PC XT machines running side-by-side with [CGA Displays](/devices/pc/machine/5160/cga/256kb/array/)
|
||||
There are many more [PCjs Demos](/devices/pc/machine/#ready-to-run-app-demos), including an
|
||||
[IBM PC with Dual Displays](/devices/pc/machine/5150/dual/64kb/) demonstrating early multi-monitor support,
|
||||
and multiple IBM PC XT machines running side-by-side with [CGA Displays](/devices/pc/machine/5160/cga/256kb/array/)
|
||||
and [EGA Displays](/devices/pc/machine/5160/ega/640kb/array/).
|
||||
|
||||
C1Pjs
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ Below are selected demos of classic IBM PC applications running on [PCjs](/docs/
|
|||
* [ThinkTank (1987)](1987/thinktank/)
|
||||
* [The Dungeons of Moria (1992)](1992/moria/)
|
||||
|
||||
Additional software is available in the [IBM PC Disk Archive](/disks/pc/).
|
||||
A list of all the software available to PCjs machines can be found in the [IBM PC Disk Library](/disks/pc/).
|
||||
|
||||
### Creating IBM PC Application Demos
|
||||
|
||||
|
|
@ -34,8 +34,8 @@ Next, the [manifest](1981/visicalc/manifest.xml) required a disk image containin
|
|||
cd apps/pc/1981/visicalc
|
||||
node ../../../../modules/diskdump/bin/diskdump --path="archive/VC.COM;../README.md" --format=json --output=disk.json --manifest
|
||||
|
||||
The DiskDump command created a disk image named "disk.json" containing two files ("VC.COM" from the "static" subdirectory,
|
||||
and "README.md" from the "static" parent directory) and automatically added that disk image to the demo's [manifest](1981/visicalc/manifest.xml):
|
||||
The DiskDump command created a disk image named "disk.json" containing two files ("VC.COM" from the "archive" subdirectory,
|
||||
and "README.md" from the "archive" parent directory) and automatically added that disk image to the demo's [manifest](1981/visicalc/manifest.xml):
|
||||
|
||||
<disk id="disk01" size="163840" chs="40:1:8" dir="archive/" href="/apps/pc/1981/visicalc/disk.json" md5="61494f998d5fb0e31e7b8bd99f1cc588" md5json="3ad82ed815725e6bd786f92a4714e84f">
|
||||
<file size="27520" time="1981-12-16 23:00:00" attr="0x20" md5="28997dfedb2440c6054d8be835be8634">VC.COM</file>
|
||||
|
|
|
|||
|
|
@ -28,8 +28,8 @@ Complete machine configurations are constructed from those devices. A machine c
|
|||
that lists all the device components to be used. A machine XML file can choose to configure every device itself,
|
||||
or it can include pre-configured device XML files, such as those provided above or elsewhere.
|
||||
|
||||
For example, here's what the machine located at [/devices/pc/machine/5150/mda/64kb/machine.xml](/devices/pc/machine/5150/mda/64kb/machine.xml)
|
||||
looks like:
|
||||
For example, here's what the machine located at
|
||||
[/devices/pc/machine/5150/mda/64kb/machine.xml](/devices/pc/machine/5150/mda/64kb/machine.xml) looks like:
|
||||
|
||||
<machine id="ibm5150" class="pc" border="1" pos="center" background="#FAEBD7">
|
||||
<name pos="center">IBM PC (Model 5150) with Monochrome Display</name>
|
||||
|
|
@ -47,5 +47,6 @@ looks like:
|
|||
<chipset id="chipset" model="5150" sw1="01000001" sw2="11110000"/>
|
||||
</machine>
|
||||
|
||||
All the devices are fully configured within the XML file, except for the Keyboard and Floppy Disk Controller (FDC)
|
||||
devices, which are defined in separate XML files.
|
||||
All the devices are fully configured within the XML file, except for the [Video](/docs/pcjs/video/),
|
||||
[Keyboard](/docs/pcjs/keyboard/), and [Floppy Disk Controller (FDC)](/docs/pcjs/fdc/) components, which are defined
|
||||
in separate XML files.
|
||||
|
|
|
|||
|
|
@ -1,12 +1,41 @@
|
|||
---
|
||||
layout: page
|
||||
title: 8042 Keyboard Controller Internals
|
||||
title: IBM PC Keyboard Devices
|
||||
permalink: /devices/pc/keyboard/
|
||||
---
|
||||
|
||||
8042 Keyboard Controller Internals
|
||||
IBM PC Keyboard Devices
|
||||
---
|
||||
|
||||
### Keyboard Configuration Files
|
||||
|
||||
The easiest way for a machine to include a *[Keyboard](/docs/pcjs/keyboard/)* component in its XML configuration file
|
||||
is to reference one of the project's keyboard configuration files, using the *ref* attribute; eg:
|
||||
|
||||
<keyboard ref="/devices/pc/keyboard/us83-buttons-minimal.xml"/>
|
||||
|
||||
The referenced XML file automatically defines the keyboard's hardware characteristics (eg, model) and
|
||||
any visual elements, such as buttons to simulate common keystrokes, or even complete "soft keyboard" layouts.
|
||||
|
||||
Here's what *us83-buttons-minimal.xml* currently looks like:
|
||||
|
||||
<keyboard id="keyboard" model="us83" pos="left" padleft="8px" padbottom="8px">
|
||||
<control type="button" binding="esc">ESC</control>
|
||||
<control type="button" binding="f1">F1</control>
|
||||
<control type="button" binding="f10">F10</control>
|
||||
</keyboard>
|
||||
|
||||
The following IBM keyboard configuration files are currently available:
|
||||
|
||||
- [us83-buttons-arrows.xml](us83-buttons-arrows.xml)
|
||||
- [us83-buttons-functions.xml](us83-buttons-functions.xml)
|
||||
- [us83-buttons-minimal.xml](us83-buttons-minimal.xml)
|
||||
- [us83-buttons-softkeys.xml](us83-buttons-softkeys.xml)
|
||||
- [us84-buttons-arrows.xml](us84-buttons-arrows.xml)
|
||||
- [us84-buttons-functions.xml](us84-buttons-functions.xml)
|
||||
|
||||
### 8042 Keyboard Controller Internals
|
||||
|
||||
The following documents were obtained from [halicery.com](http://halicery.com/):
|
||||
|
||||
- [8042_INTERN.TXT](8042_INTERN.TXT)
|
||||
|
|
|
|||
13
devices/pc/machine/5170/README.md
Normal file
13
devices/pc/machine/5170/README.md
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
---
|
||||
layout: page
|
||||
title: IBM PC AT (Model 5170)
|
||||
permalink: /devices/pc/machine/5170/
|
||||
---
|
||||
|
||||
IBM PC AT Machines (Model 5170)
|
||||
---
|
||||
|
||||
All our Model 5170, aka IBM PC AT, configurations are located here, including:
|
||||
|
||||
* [IBM PC AT with EGA Display](/devices/pc/machine/5170/ega/)
|
||||
* [IBM PC AT with VGA Display](/devices/pc/machine/5170/vga/)
|
||||
10
devices/pc/machine/5170/ega/640kb/rev1/machine.md
Normal file
10
devices/pc/machine/5170/ega/640kb/rev1/machine.md
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
---
|
||||
layout: page
|
||||
title: "IBM PC AT (Model 5170, 640Kb) with EGA Display"
|
||||
permalink: /devices/pc/machine/5170/ega/640kb/rev1/
|
||||
machines:
|
||||
- type: pc
|
||||
id: ibm5170
|
||||
---
|
||||
|
||||
{% include machine.html id="ibm5170" %}
|
||||
15
devices/pc/machine/5170/ega/README.md
Normal file
15
devices/pc/machine/5170/ega/README.md
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
---
|
||||
layout: page
|
||||
title: "IBM PC AT (Model 5170) with Enhanced Color Display"
|
||||
permalink: /devices/pc/machine/5170/ega/
|
||||
---
|
||||
|
||||
IBM PC AT with Enhanced Color Graphics (EGA) Display
|
||||
---
|
||||
|
||||
All our Enhanced Color Graphics (EGA) configurations of the IBM PC AT (Model 5170) are located here, including:
|
||||
|
||||
* [IBM PC AT (6Mhz, 640Kb) with EGA Display (Debugger)](/devices/pc/machine/5170/ega/640kb/rev1/debugger/)
|
||||
* [IBM PC AT (6Mhz, 1Mb, 20Mb Drive) with EGA Display (Debugger)](/devices/pc/machine/5170/ega/1152kb/rev1/debugger/)
|
||||
* [IBM PC AT (8Mhz, 1Mb, 20Mb Drive) with EGA Display (Debugger)](/devices/pc/machine/5170/ega/1152kb/rev3/debugger/)
|
||||
* [IBM PC AT (8Mhz, 2Mb, 20Mb Drive) with EGA Display](/devices/pc/machine/5170/ega/2048kb/rev3/) ([Debugger](/devices/pc/machine/5170/ega/2048kb/rev3/debugger/))
|
||||
12
devices/pc/machine/5170/vga/README.md
Normal file
12
devices/pc/machine/5170/vga/README.md
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
---
|
||||
layout: page
|
||||
title: "IBM PC AT (Model 5170) with VGA Display"
|
||||
permalink: /devices/pc/machine/5170/vga/
|
||||
---
|
||||
|
||||
IBM PC AT with VGA Display
|
||||
---
|
||||
|
||||
All our VGA configurations of the IBM PC AT (Model 5170) are located here, including:
|
||||
|
||||
* [IBM PC AT (8Mhz, 2Mb, 20Mb Drive) with VGA Display](/devices/pc/machine/5170/vga/2048kb/) ([Debugger](/devices/pc/machine/5170/vga/2048kb/debugger/))
|
||||
|
|
@ -21,9 +21,8 @@ along with these IBM PC-compatibles:
|
|||
|
||||
* [COMPAQ](/devices/pc/machine/compaq/) (eg, [DeskPro 386](/devices/pc/machine/compaq/deskpro386/))
|
||||
|
||||
We also support a few non-IBM [Devices](/devices/):
|
||||
|
||||
* [6502 Challenger 1P](/devices/c1p/machine/)
|
||||
Learn more about the [Devices](/devices/) used to build all our machines, such as the 6502-based
|
||||
[Ohio Scientific Challenger 1P](/devices/c1p/machine/).
|
||||
|
||||
### Ready-To-Run App Demos
|
||||
|
||||
|
|
@ -37,7 +36,7 @@ Machines from our [IBM PC Application Archive](/apps/pc/):
|
|||
|
||||
### Ready-To-Boot Disk Demos
|
||||
|
||||
And here are some machines from our [IBM PC Disk Archive](/disks/pc/):
|
||||
And here are some machines from our [IBM PC Disk Library](/disks/pc/):
|
||||
|
||||
* [CP/M-86 v1.1B](/disks/pc/cpm/1.1b/)
|
||||
* [PC-DOS 1.00](/disks/pc/dos/ibm/1.00/)
|
||||
|
|
@ -58,9 +57,11 @@ a predefined state, which automatically restores the machine and the specified a
|
|||
state, while others include a hard disk with preinstalled software.
|
||||
|
||||
However, most simply boot an early version of DOS, and the hard disk, if any, will generally be unformatted.
|
||||
From there, you can load another disk image
|
||||
From there, you can other disks and install other software.
|
||||
|
||||
### [Model 5150 Machine Configurations](/devices/pc/machine/5150/)
|
||||
### Model 5150 Machine Configurations
|
||||
|
||||
[Model 5150 Machines](/devices/pc/machine/5150/) include:
|
||||
|
||||
* [IBM PC (64Kb) with Monochrome Display](/devices/pc/machine/5150/mda/64kb/) ([Debugger](/devices/pc/machine/5150/mda/64kb/debugger/))
|
||||
* [IBM PC (64Kb) with Monochrome Display and Soft Keyboard (Debugger)](/devices/pc/machine/5150/mda/64kb/softkbd/)
|
||||
|
|
@ -69,7 +70,9 @@ From there, you can load another disk image
|
|||
* [IBM PC (384Kb) with Color Display and Soft Keyboard (Debugger)](/devices/pc/machine/5150/cga/384kb/softkbd/)
|
||||
* [IBM PC (64Kb) with Dual Displays (Monochrome and Color)](/devices/pc/machine/5150/dual/64kb/)
|
||||
|
||||
### [Model 5160 Machine Configurations](/devices/pc/machine/5160/)
|
||||
### Model 5160 Machine Configurations
|
||||
|
||||
[Model 5160 Machines](/devices/pc/machine/5160/) include:
|
||||
|
||||
* [IBM PC XT (64Kb, 10Mb Drive) with Monochrome Display](/devices/pc/machine/5160/mda/64kb/softkbd/)
|
||||
* [IBM PC XT (256Kb, 10Mb Drive) with Monochrome Display](/devices/pc/machine/5160/mda/256kb/) ([Debugger](/devices/pc/machine/5160/mda/256kb/debugger/))
|
||||
|
|
@ -87,6 +90,8 @@ From there, you can load another disk image
|
|||
|
||||
### Model 5170 Machine Configurations
|
||||
|
||||
[Model 5170 Machines](/devices/pc/machine/5170/) include:
|
||||
|
||||
* [IBM PC AT (6Mhz, 640Kb) with EGA Display (Debugger)](/devices/pc/machine/5170/ega/640kb/rev1/debugger/)
|
||||
* [IBM PC AT (6Mhz, 1Mb, 20Mb Drive) with EGA Display (Debugger)](/devices/pc/machine/5170/ega/1152kb/rev1/debugger/)
|
||||
* [IBM PC AT (8Mhz, 1Mb, 20Mb Drive) with EGA Display (Debugger)](/devices/pc/machine/5170/ega/1152kb/rev3/debugger/)
|
||||
|
|
|
|||
|
|
@ -7,6 +7,13 @@ permalink: /devices/pc/panel/
|
|||
IBM PC Control Panels
|
||||
---
|
||||
|
||||
[Control Panels](/docs/pcjs/panel/) are XML files that define a particular layout for controls provided by the
|
||||
[Computer](/docs/pcjs/computer/), [CPU](/docs/pcjs/cpu/), [Keyboard](/docs/pcjs/keyboard/)
|
||||
and [Debugger](/docs/pcjs/debugger/) components.
|
||||
[Control Panels](/docs/pcjs/panel/) are XML files that define layouts for Debugger-related controls.
|
||||
|
||||
The following IBM PC control panel configuration files are currently available:
|
||||
|
||||
- [default.xml](default.xml) (a simple layout for 8086/8088-based machines)
|
||||
- [wide.xml](wide.xml) (a wide version of default.xml)
|
||||
- [wide386.xml](wide386.xml) (a wide version of default.xml for 80386-based machines)
|
||||
|
||||
The visual controls described by these layouts are provided by the [Computer](/docs/pcjs/computer/),
|
||||
[CPU](/docs/pcjs/cpu/), [Keyboard](/docs/pcjs/keyboard/), and [Debugger](/docs/pcjs/debugger/) components.
|
||||
|
|
|
|||
|
|
@ -6,16 +6,22 @@ redirect_from:
|
|||
- /devices/pc/bios/
|
||||
---
|
||||
|
||||
BASIC ROMs
|
||||
IBM PC ROMs
|
||||
---
|
||||
|
||||
ROMs are added to machines by including one *[ROM](/docs/pcjs/rom/)* component in the machine XML configuration file
|
||||
for each ROM in the machine; eg:
|
||||
|
||||
<rom id="romBIOS" addr="0xf0000" size="0x10000" alias="0xff0000" file="/devices/pc/rom/5170/bios/1984-01-10/ATBIOS-REV1.json"/>
|
||||
|
||||
### BASIC ROMs
|
||||
|
||||
The project contains the following IBM PC BASIC ROMs:
|
||||
|
||||
* [IBM BASIC 1.00](5150/basic/BASIC100.json)
|
||||
* [IBM BASIC 1.10](5160/basic/BASIC110.json)
|
||||
|
||||
BIOS ROMs
|
||||
---
|
||||
### BIOS ROMs
|
||||
|
||||
The project contains the following IBM PC BIOS ROMs:
|
||||
|
||||
|
|
@ -25,7 +31,14 @@ The project contains the following IBM PC BIOS ROMs:
|
|||
* [Model 5160: Nov 08, 1982](5160/bios/1982-11-08/XTBIOS-REV1.json)
|
||||
* [Model 5160: May 09, 1986](5160/bios/1986-05-09/XTBIOS-REV3.json)
|
||||
|
||||
As well as BIOS ROMs, with more detailed information, for the following machines:
|
||||
The project also contains BIOS ROMs, along with more detailed information, for the following machines:
|
||||
|
||||
* [IBM PC AT Model 5170](5170/bios/)
|
||||
* [COMPAQ Portable and DeskPro Machines](compaq/bios/)
|
||||
|
||||
### Other ROMs
|
||||
|
||||
The project contains other ROMs, including IBM [EGA](/devices/pc/video/ibm/ega/#ibm-ega-rom) and
|
||||
[VGA](/devices/pc/video/ibm/vga/#ibm-vga-rom) ROMs, the Xebec Hard Disk Controller ROM used in
|
||||
the PC XT, etc, but those ROMs seemed more appropriately filed in their respective component folders;
|
||||
eg, [IBM PC Video Devices](/devices/pc/video/).
|
||||
|
|
|
|||
|
|
@ -1,18 +1,21 @@
|
|||
---
|
||||
layout: page
|
||||
title: IBM PC Video Support
|
||||
title: IBM PC Video Devices
|
||||
permalink: /devices/pc/video/
|
||||
---
|
||||
|
||||
IBM PC Video Support
|
||||
IBM PC Video Devices
|
||||
---
|
||||
|
||||
Video devices are added to machines by including a *[Video](/docs/pcjs/video/)* component in the machine XML
|
||||
configuration file. See one of the following video adapters for examples of how to do this.
|
||||
|
||||
PCjs supports the following IBM PC video adapters:
|
||||
|
||||
* MDA (Monochrome Display Adapter)
|
||||
* CGA (Color Graphics Adapter)
|
||||
* EGA (Enhanced Graphics Adapter)
|
||||
* [VGA](ibm/vga/) (Video Graphics Adapter)
|
||||
* Monochrome Display Adapter (MDA)
|
||||
* Color Graphics Adapter (CGA)
|
||||
* [Enhanced Graphics Adapter (EGA)](ibm/ega/)
|
||||
* [Video Graphics Array (VGA)](ibm/vga/)
|
||||
|
||||
More detailed information is available for the following IBM-compatible video adapters:
|
||||
|
||||
|
|
|
|||
|
|
@ -1,12 +1,51 @@
|
|||
---
|
||||
layout: page
|
||||
title: IBM EGA ROM
|
||||
title: "IBM Enhanced Graphics Adapter (EGA)"
|
||||
permalink: /devices/pc/video/ibm/ega/
|
||||
---
|
||||
|
||||
IBM EGA ROM
|
||||
IBM Enhanced Graphics Adapter (EGA)
|
||||
---
|
||||
|
||||
### IBM EGA Configurations
|
||||
|
||||
The easiest way for a machine to include an EGA *[Video](/docs/pcjs/video/)* component in its XML configuration file
|
||||
is to reference one of the project's predefined EGA configuration files, using the *ref* attribute; eg:
|
||||
|
||||
<video ref="/devices/pc/video/ibm/ega/1984-09-13/64kb.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 *64kb.xml* currently looks like:
|
||||
|
||||
<video id="videoEGA" model="ega" memory="0x10000" screenwidth="640" screenheight="350" touchscreen="mouse" pos="center" padding="8px">
|
||||
<menu>
|
||||
<title>IBM Enhanced 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>
|
||||
</menu>
|
||||
<rom id="romEGA" addr="0xc0000" size="0x4000" file="/devices/pc/video/ibm/ega/1984-09-13/ibm-ega.json" notify="videoEGA"/>
|
||||
</video>
|
||||
|
||||
The following IBM EGA configuration files are currently available:
|
||||
|
||||
- [64kb.xml](1984-09-13/64kb.xml)
|
||||
- [128kb-autolock640.xml](1984-09-13/128kb-autolock640.xml)
|
||||
- [128kb-autolockfs.xml](1984-09-13/128kb-autolockfs.xml)
|
||||
- [128kb-lockfs.xml](1984-09-13/128kb-lockfs.xml)
|
||||
- [256kb-autolock640.xml](1984-09-13/256kb-autolock640.xml)
|
||||
- [256kb-autolockfs.xml](1984-09-13/256kb-autolockfs.xml)
|
||||
- [256kb-lockfs.xml](1984-09-13/256kb-lockfs.xml)
|
||||
|
||||
### IBM EGA ROM
|
||||
|
||||
We have only one IBM EGA ROM revision, dated September 13, 1984.
|
||||
|
||||
To (re)build the JSON-encoded IBM EGA ROM with symbols, run the following command:
|
||||
|
||||
filedump --file=archive/ibm-ega.rom --format=bytes --decimal
|
||||
|
|
@ -15,9 +54,9 @@ The symbol information in the MAP file will be automatically converted and appen
|
|||
|
||||
The PCjs server's Dump API can be used as well:
|
||||
|
||||
http://www.pcjs.org/api/v1/dump?file=http://archive.pcjs.org/devices/pc/video/ibm/ega/ibm-ega.rom&format=bytes&decimal=true
|
||||
http://www.pcjs.org/api/v1/dump?file=http://archive.pcjs.org/devices/pc/video/ibm/ega/1984-09-13/ibm-ega.rom&format=bytes&decimal=true
|
||||
|
||||
### Font Information
|
||||
### IBM EGA Font Information
|
||||
|
||||
As noted in [Video.onROMLoad()](/modules/pcjs/lib/video.js), the Video component needs to know where the card's
|
||||
font data is located:
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
Aa;
|
||||
;
|
||||
; ROM BIOS for IBM VGA Adapter (aka IBM PS/2 Display Adapter)
|
||||
; (C)COPYRIGHT IBM Corp. 1984, 1986 10/27/86
|
||||
;
|
||||
|
|
@ -7,4 +7,51 @@ permalink: /devices/pc/video/ibm/vga/
|
|||
IBM Video Graphics Array (VGA)
|
||||
---
|
||||
|
||||
The disassembled contents of the ROM from the IBM's PS/2 Display Adapter is available [here](ibm-vga.nasm).
|
||||
### IBM VGA Configurations
|
||||
|
||||
The easiest way for a machine to include an VGA *[Video](/docs/pcjs/video/)* component in its XML configuration file
|
||||
is to reference one of the project's VGA configuration files, using the *ref* attribute; eg:
|
||||
|
||||
<video ref="/devices/pc/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:
|
||||
|
||||
<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/pc/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=http://archive.pcjs.org/devices/pc/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).
|
||||
|
|
|
|||
|
|
@ -1,25 +1,25 @@
|
|||
---
|
||||
layout: page
|
||||
title: Disk Archives
|
||||
title: Disk Libraries
|
||||
permalink: /disks/
|
||||
---
|
||||
|
||||
Disk Archives
|
||||
Disk Libraries
|
||||
---
|
||||
Browse [IBM PC](pc/) and [Challenger 1P](c1p/) disk archives.
|
||||
Browse [IBM PC](pc/) and [Challenger 1P](c1p/) disk libraries.
|
||||
|
||||
### PCjs Disk Image Formats
|
||||
|
||||
PCjs works best with disk images in a **JSON** format, to save conversion time, so that's the only
|
||||
disk image format you'll find on the PCjs website.
|
||||
PCjs works best with disk images in a **JSON** format, to save conversion time, so that's the only disk image format
|
||||
you'll find in the PCjs Project.
|
||||
|
||||
To convert any of our **JSON** disk images back into an **IMG** file, you can use the [DiskDump API](/api/v1/dump)
|
||||
with the *format* parameter set to `img` instead of `json`. For example:
|
||||
|
||||
{{ site.url }}/api/v1/dump?disk=/disks/pc/dos/ibm/2.00/PCDOS200-DISK1.json&format=img
|
||||
|
||||
In fact, when browsing the disk archives, the PCjs web server automatically provides "onclick" handlers
|
||||
for links to JSON-encoded disk images, which will invoke the API for you.
|
||||
As an added bonus, when browsing the disk library with the PCjs Node web server, links to JSON-encoded disk images
|
||||
automatically include "onclick" handlers that invoke the API for you.
|
||||
|
||||
See **Creating PCjs-Compatible Disk Images** in the [PCjs Documentation](/docs/pcjs/#creating-pcjs-compatible-disk-images)
|
||||
for more information about supported disks and formats.
|
||||
|
|
|
|||
|
|
@ -1,19 +1,27 @@
|
|||
---
|
||||
layout: page
|
||||
title: IBM PC Disk Archive
|
||||
title: IBM PC Disk Library
|
||||
menu_title: Disks
|
||||
menu_order: 4
|
||||
permalink: /disks/pc/
|
||||
---
|
||||
|
||||
IBM PC Disk Archive
|
||||
IBM PC Disk Library
|
||||
---
|
||||
|
||||
This is a list of disks available to any [IBM PC Machine](/devices/pc/machine/) that uses our
|
||||
[Library](/disks/pc/library.xml) XML disk configuration file.
|
||||
These disks are available to any [IBM PC Machine](/devices/pc/machine/) that uses the
|
||||
PCjs [Disk Library](/disks/pc/library.xml), which references all the [Disk Manifests](#disk-manifests)
|
||||
in the PCjs Project.
|
||||
|
||||
For some of the disks below, we have provided more information about the software, and in some cases, machines
|
||||
that automatically run the software.
|
||||
The list below is *not* a complete list of everything in the [Disk Library](/disks/pc/library.xml),
|
||||
just highlights. For some of the disks, we have provided more information about the software,
|
||||
and in some cases, machines that automatically run the software. Ideally, everything in the
|
||||
[Disk Library](/disks/pc/library.xml) would also be listed below, and linked to a page that describes
|
||||
the software in more detail, along with a live demonstration of the software. But there's just
|
||||
too much to do.
|
||||
|
||||
For more demos, see the [IBM PC Application Archive](/apps/pc/). There again, the Application Archive
|
||||
merely provides some highlights from the Disk Library.
|
||||
|
||||
### PC-DOS (IBM)
|
||||
|
||||
|
|
@ -145,83 +153,57 @@ in [PC Tech Journal](/pubs/pc/magazines/pctj/).
|
|||
|
||||
* [Infocom Zork I](/disks/pc/games/infocom/zork1/)
|
||||
|
||||
Learn more about
|
||||
[Disk Sets](https://github.com/jeffpar/pcjs/tree/master/disks/pc) in the
|
||||
[PCjs Project](https://github.com/jeffpar/pcjs) on [GitHub](https://github.com/).
|
||||
|
||||
### PCjs Test Suites
|
||||
|
||||
* [VGA "Black Book" Tests](/tests/pc/vga/)
|
||||
|
||||
{% if site.developer %}
|
||||
---
|
||||
|
||||
### Developer Notes: Disk Sets and Manifests
|
||||
Disk Manifests
|
||||
---
|
||||
|
||||
Collections of related disks are organized into *Disk Sets* which can then be loaded from the
|
||||
[FDC (Floppy Disk Controller)](/docs/pcjs/fdc/) component of an [IBM PC Machine Configuration](/devices/pc/machine/).
|
||||
Typically, all the distribution disks for a single version of a piece of software are placed in a single
|
||||
folder, along with a **manifest.xml** file that contains *metadata* about the software, including a list of
|
||||
the individual disks. This is generally referred to as a [Software Manifest](/apps/), but when we're only
|
||||
interested in the disks, we may also refer to it as a Disk Manifest.
|
||||
|
||||
Disk Sets are stored in their own folders, along with a **manifest.xml** file listing the individual diskettes.
|
||||
Manifests also record a variety of metadata about the software; more information about the manifest format
|
||||
is available in [Application Archives](/apps/).
|
||||
A Disk Manifest can then be added to a *[Floppy Disk Controller (FDC)](/docs/pcjs/fdc/)* configuration file,
|
||||
making all its disks available to any machine loading that particular configuration file.
|
||||
|
||||
A simple FDC XML file, such as [samples.xml](samples.xml), *could* contain <disk> entries like:
|
||||
A simple FDC configuration file, such as [samples.xml](samples.xml), *could* contain individual <disk>
|
||||
entries like:
|
||||
|
||||
<disk path="/disks/pc/dos/ibm/1.00/PCDOS100.json">PC-DOS 1.0</disk>
|
||||
<disk path="/disks/pc/dos/ibm/1.10/PCDOS110.json">PC-DOS 1.1</disk>
|
||||
<disk path="/disks/pc/dos/ibm/2.00/PCDOS200-DISK1.json">PC-DOS 2.0 (Disk 1)</disk>
|
||||
<disk path="/disks/pc/dos/ibm/2.00/PCDOS200-DISK2.json">PC-DOS 2.0 (Disk 2)</disk>
|
||||
<disk path="/disks/pc/dos/ibm/1.00/PCDOS100.json">PC-DOS 1.00</disk>
|
||||
<disk path="/disks/pc/dos/ibm/1.10/PCDOS110.json">PC-DOS 1.10</disk>
|
||||
<disk path="/disks/pc/dos/ibm/2.00/PCDOS200-DISK1.json">PC-DOS 2.00 (Disk 1)</disk>
|
||||
<disk path="/disks/pc/dos/ibm/2.00/PCDOS200-DISK2.json">PC-DOS 2.00 (Disk 2)</disk>
|
||||
...
|
||||
|
||||
listing all the diskettes available for the machine to load. However, listing individual diskettes is tedious,
|
||||
so the FDC also supports **manifest.xml** files. Instead of listing the PC-DOS 2.0 diskettes individually,
|
||||
they can be added to [samples.xml](samples.xml) with a single line:
|
||||
However, listing individual diskettes like that is tedious, so support was added for Disk Manifests.
|
||||
|
||||
So instead of listing the PC-DOS 2.00 diskettes individually, they can be added to [samples.xml](samples.xml)
|
||||
with a single line:
|
||||
|
||||
<manifest ref="/disks/pc/dos/ibm/2.00/manifest.xml" disk="*"/>
|
||||
|
||||
The same feature works with [Application Manifests](/apps/#software-application-manifests). Here's how you might
|
||||
add [VisiCalc](/apps/pc/1981/visicalc/) to [samples.xml](samples.xml):
|
||||
When you want to include only one particular disk from a manifest, set the *disk* value to the *id* of the disk.
|
||||
Here's how you would include only the *first* disk from PC-DOS 2.00:
|
||||
|
||||
<manifest ref="/apps/pc/1981/visicalc/manifest.xml" disk="disk"/>
|
||||
<manifest ref="/disks/pc/dos/ibm/2.00/manifest.xml" disk="disk01"/>
|
||||
|
||||
The application must have a **manifest.xml** with <disk> section containing an *id* value that matches the
|
||||
*disk* value specified above:
|
||||
For reference, here's what the entire Disk Manifest for PC-DOS 2.00 currently looks like:
|
||||
|
||||
<disk id="disk" dir="/apps/pc/1981/visicalc/bin/">
|
||||
<file>VC.COM</file>
|
||||
<file dir="../">README.md</file>
|
||||
<link href="http://www.bricklin.com/history/vclicense.htm">VisiCalc License</link>
|
||||
</disk>
|
||||
|
||||
If multiple disks are defined in the manifest, and you want to include them all, you can set the *disk* value to '*', as in:
|
||||
|
||||
<manifest ref="/apps/pc/1981/visicalc/manifest.xml" disk="*"/>
|
||||
|
||||
As an added bonus, PCjs will automatically display the descriptive <link> whenever this item is selected, and it will
|
||||
dynamically generate a disk image containing all the specified <file> entries when the selected item is loaded.
|
||||
|
||||
Pre-generated disk images are preferred to dynamically-generated images, and you can now include those in the application
|
||||
**manifest.xml** as well, by adding an *href* value to the <disk> section that was used to create the image:
|
||||
|
||||
<disk id="disk" dir="/apps/pc/1981/visicalc/bin/" href="/apps/pc/1981/visicalc/disk.json">
|
||||
<file>VC.COM</file>
|
||||
<file dir="../">README.md</file>
|
||||
<link href="http://www.bricklin.com/history/vclicense.htm">VisiCalc License</link>
|
||||
</disk>
|
||||
|
||||
The PCjs [DiskDump](/modules/diskdump/) module is used to create all our pre-generated JSON-encoded disk images.
|
||||
In the above example, a pre-generated disk image could be created from the command-line with either the "--dir" option
|
||||
(which will traverse all subdirectories as well):
|
||||
|
||||
node diskdump --dir=./apps/pc/1981/visicalc/bin/ --format=json --output=./apps/pc/1981/visicalc/disk.json
|
||||
|
||||
or with the "--path" option, which specifies either a single file or a set files separated by semi-colons:
|
||||
|
||||
node diskdump --path="./apps/pc/1981/visicalc/bin/vc.com;../readme.md" --format=json --output=./apps/pc/1981/visicalc/disk.json
|
||||
|
||||
or via the PCjs server's [DiskDump API](/api/v1/dump):
|
||||
|
||||
{{ site.url }}/api/v1/dump?path=/apps/pc/1981/visicalc/bin/vc.com&format=json
|
||||
|
||||
Learn more about PCjs disk image formats [here](/disks/).
|
||||
|
||||
{% endif %}
|
||||
<manifest type="software">
|
||||
<title>PC-DOS</title>
|
||||
<version>2.00</version>
|
||||
<type>DOS</type>
|
||||
<category>Operating System</category>
|
||||
<author>IBM/Microsoft</author>
|
||||
<releaseDate/>
|
||||
<disk id="disk01" size="184320" chs="40:1:9" img="archive/PCDOS200-DISK1.img" href="/disks/pc/dos/ibm/2.00/PCDOS200-DISK1.json" md5="d57ceef82122790d1c0ff7bebc12f90a" md5json="2507c02da6cbafe9a94a35cbdd993be2">
|
||||
<name>PC-DOS 2.00 (Disk 1)</name>
|
||||
</disk>
|
||||
<disk id="disk02" size="184320" chs="40:1:9" img="archive/PCDOS200-DISK2.img" href="/disks/pc/dos/ibm/2.00/PCDOS200-DISK2.json" md5="1c7aac53c78446992f8821cf42d04c4a" md5json="b66e296319c1f97990b596b1aa376d39">
|
||||
<name>PC-DOS 2.00 (Disk 2)</name>
|
||||
</disk>
|
||||
</manifest>
|
||||
|
|
|
|||
|
|
@ -44,4 +44,4 @@ of OS/2 when it was still a work-in-progress. Not all of the disks run properly
|
|||
October 12, 1988, which included the built-in kernel debugger used by Microsoft and IBM for internal development,
|
||||
along with a rudimentary program selector. For more details, see the [OS/2 1.0](/blog/2014/12/04/) blog post.
|
||||
|
||||
[Return to [IBM PC Disk Archive](/disks/pc/#other-os2-disks)]
|
||||
[Return to [IBM PC Disk Library](/disks/pc/#other-os2-disks)]
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ Attributes
|
|||
|
||||
* *notify* (optional)
|
||||
|
||||
The *id* of a component to notify when *file* has been loaded. For example, the [Video](/docs/pcjs/video/)
|
||||
The *id* of a component to notify when *file* has been loaded. For example, the *[Video](/docs/pcjs/video/)*
|
||||
component may need to know when an external video ROM has been loaded. Any component can load its own files,
|
||||
including ROM image files, but it's simpler to use the ROM component and request notification.
|
||||
|
||||
|
|
|
|||
6
index.md
6
index.md
|
|
@ -55,9 +55,9 @@ Some pre-configured machines are shown below, ready to run BASIC, DOS, Windows,
|
|||
{% include screenshot.html src="/disks/pc/games/microsoft/adventure/thumbnail.jpg" width="200" height="120" title="IBM PC w/MDA, Microsoft Adventure" link="/disks/pc/games/microsoft/adventure/" %}
|
||||
{% include screenshot.html src="/disks/pc/games/infocom/zork1/thumbnail.jpg" width="200" height="120" title="IBM PC w/CGA, Zork I" link="/disks/pc/games/infocom/zork1/" %}
|
||||
|
||||
Check out the rest of the PCjs [Application](/apps/pc/), [Disk](/disks/pc/), and [Machine](/devices/pc/machine/)
|
||||
demos, including an [IBM PC with Dual Displays](/devices/pc/machine/5150/dual/64kb/) demonstrating early multi-monitor
|
||||
support, and multiple IBM PC XT machines running side-by-side with [CGA Displays](/devices/pc/machine/5160/cga/256kb/array/)
|
||||
There are many more [PCjs Demos](/devices/pc/machine/#ready-to-run-app-demos), including an
|
||||
[IBM PC with Dual Displays](/devices/pc/machine/5150/dual/64kb/) demonstrating early multi-monitor support,
|
||||
and multiple IBM PC XT machines running side-by-side with [CGA Displays](/devices/pc/machine/5160/cga/256kb/array/)
|
||||
and [EGA Displays](/devices/pc/machine/5160/ega/640kb/array/).
|
||||
|
||||
C1Pjs
|
||||
|
|
|
|||
Loading…
Reference in a new issue