README updates and a new EGA config
This commit is contained in:
parent
167824220e
commit
b93f6bf630
13 changed files with 143 additions and 19 deletions
|
|
@ -19,9 +19,8 @@ Below are selected demos of classic IBM PC applications running on [PCjs](/docs/
|
|||
|
||||
Additional software is available in the [IBM PC Disk Archive](/disks/pc/).
|
||||
|
||||
Learn more about
|
||||
[Application Demos](https://github.com/jeffpar/pcjs/tree/master/apps/pc) in the
|
||||
[PCjs Project](https://github.com/jeffpar/pcjs) on [GitHub](https://github.com/).
|
||||
More information about creating [Application Demos](https://github.com/jeffpar/pcjs/tree/master/apps/pc)
|
||||
is available in the [PCjs Project](https://github.com/jeffpar/pcjs) on [GitHub](https://github.com/).
|
||||
|
||||
{% if page.developer %}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,10 +1,15 @@
|
|||
---
|
||||
layout: page
|
||||
title: Machine Configurations
|
||||
title: Device Configurations
|
||||
permalink: /devices/
|
||||
---
|
||||
|
||||
Machine Configurations
|
||||
Device Configurations
|
||||
---
|
||||
|
||||
Browse [IBM PC](/devices/pc/machine/) and [Challenger 1P](/devices/c1p/machine/) machine configurations.
|
||||
All PCjs machines, including the:
|
||||
|
||||
* [IBM PC](pc/machine/)
|
||||
* [Challenger 1P](c1p/machine/)
|
||||
|
||||
are built from collections of [PC Devices](pc/) and [C1P Devices](c1p/).
|
||||
|
|
|
|||
|
|
@ -1,13 +1,12 @@
|
|||
---
|
||||
layout: page
|
||||
title: Challenger 1P Machine Configurations
|
||||
title: Challenger 1P Device Configurations
|
||||
permalink: /devices/c1p/
|
||||
---
|
||||
|
||||
Challenger 1P Configurations
|
||||
Challenger 1P Device Configurations
|
||||
---
|
||||
|
||||
This folder contains Challenger 1P [Machine Configurations](machine/), along with [Control Panels](panel/) and
|
||||
other components.
|
||||
This folder contains [Control Panels](panel/) and other components for all [Challenger 1P Machine Configurations](machine/).
|
||||
|
||||
[Applications](/apps/c1p/) and [Disk Images](/disks/c1p/) are also available.
|
||||
|
|
|
|||
|
|
@ -1,13 +1,48 @@
|
|||
---
|
||||
layout: page
|
||||
title: PC Machine Configurations
|
||||
title: IBM PC Device Configurations
|
||||
permalink: /devices/pc/
|
||||
---
|
||||
|
||||
PC Machine Configurations
|
||||
IBM PC Device Configurations
|
||||
---
|
||||
|
||||
This folder contains IBM PC [Machine Configurations](machine/), along with [Control Panels](/devices/pc/panel/),
|
||||
[Keyboard Layouts](/devices/pc/keyboard/) and other components.
|
||||
IBM PC [Machine Configurations](machine/) are built from a collection of devices, including:
|
||||
|
||||
[Application Demos](/apps/pc/) and [Disk Archives](/disks/pc/) are also available.
|
||||
* CPU
|
||||
* RAM
|
||||
* ROMs (eg, [BASIC](basic/), [BIOS](bios/))
|
||||
* [Keyboards](keyboard/)
|
||||
* [Video Adapters](video/)
|
||||
* Floppy Disk Controllers
|
||||
* Hard Disk (Fixed Disk) Controllers
|
||||
* [Control Panels](panel/)
|
||||
|
||||
Each of those devices can be configured in multiple ways, and also some support external UI controls.
|
||||
|
||||
For example, the IBM PC Keyboard component supports different keyboard models (eg, 83-key, 84-key, 101-key),
|
||||
and each of those models can also be configured to have dedicated buttons for selected key combinations,
|
||||
or even entire keyboard layouts.
|
||||
|
||||
Complete machine configurations are constructed from those devices. A machine configuration is a single XML file
|
||||
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:
|
||||
|
||||
<machine id="ibm5150" class="pc" border="1" pos="center" background="#FAEBD7">
|
||||
<name pos="center">IBM PC (Model 5150) with Monochrome Display</name>
|
||||
<computer id="pc-mda-64k" name="IBM PC" resume="1"/>
|
||||
<ram id="ramLow" addr="0x00000"/>
|
||||
<rom id="romBASIC" addr="0xf6000" size="0x8000" file="/devices/pc/basic/ibm-basic-1.00.json"/>
|
||||
<rom id="romBIOS" addr="0xfe000" size="0x2000" file="/devices/pc/bios/5150/1981-04-24.json"/>
|
||||
<video ref="/devices/pc/video/ibm/mda/ibm-mda.xml"/>
|
||||
<cpu id="cpu8088" model="8088" autostart="true" padleft="8px">
|
||||
<control type="button" binding="run">Run</control>
|
||||
<control type="button" binding="reset">Reset</control>
|
||||
</cpu>
|
||||
<keyboard ref="/devices/pc/keyboard/keyboard-minimal.xml"/>
|
||||
<fdc ref="/disks/pc/samples.xml" pos="right"/>
|
||||
<chipset id="chipset" model="5150" sw1="01000001" sw2="11110000"/>
|
||||
</machine>
|
||||
|
|
|
|||
21
devices/pc/basic/README.md
Normal file
21
devices/pc/basic/README.md
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
---
|
||||
layout: page
|
||||
title: IBM PC BASIC ROMs
|
||||
permalink: /devices/pc/basic/
|
||||
---
|
||||
|
||||
BASIC ROMs
|
||||
---
|
||||
|
||||
The project contains the following BASIC ROMs:
|
||||
|
||||
* [BASIC 1.00](ibm-basic-1.00.json)
|
||||
* [BASIC 1.10](ibm-basic-1.10.json)
|
||||
|
||||
These built-in versions of BASIC were also referred to as *Cassette BASIC*, because no disk drive was required.
|
||||
Only the original IBM PC (Model 5150) actually provided a cassette interface, but IBM continued to use that
|
||||
name to describe the built-in BASIC at least up through the IBM PC AT (Model 5170).
|
||||
|
||||
Here's an [IBM PC Machine](/devices/pc/machine/) XML excerpt that shows how to include a BASIC ROM:
|
||||
|
||||
<rom id="romBASIC" addr="0xf6000" size="0x8000" file="/devices/pc/basic/ibm-basic-1.10.json"/>
|
||||
21
devices/pc/bios/README.md
Normal file
21
devices/pc/bios/README.md
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
---
|
||||
layout: page
|
||||
title: IBM PC BIOS ROMs
|
||||
permalink: /devices/pc/bios/
|
||||
---
|
||||
|
||||
BIOS ROMs
|
||||
---
|
||||
|
||||
The project contains the following IBM PC BIOS ROMs:
|
||||
|
||||
* [Model 5150: Apr 24, 1981](5150/1981-04-24.json)
|
||||
* [Model 5150: Oct 19, 1981](5150/1981-10-19.json)
|
||||
* [Model 5150: Oct 27, 1982](5150/1982-10-27.json)
|
||||
* [Model 5160: Nov 08, 1982](5160/1982-11-08.json)
|
||||
* [Model 5160: May 09, 1986](5160/1986-05-09.json)
|
||||
|
||||
As well as BIOS ROMs, with more detailed information, for the following machines:
|
||||
|
||||
* [Model 5170](5170/)
|
||||
* [Compaq DeskPro 386](compaq/deskpro386/)
|
||||
|
|
@ -19,7 +19,7 @@ along with these IBM PC-compatibles:
|
|||
|
||||
* [Compaq DeskPro 386](compaq/deskpro386/)
|
||||
|
||||
Configurations for the [Challenger 1P](/devices/c1p/machine/) and other non-IBM machines are also [available](/devices/).
|
||||
Browse the [Devices](/devices/) used by all PCjs machines, including the 6502-based [Challenger 1P](/devices/c1p/machine/).
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
21
devices/pc/video/README.md
Normal file
21
devices/pc/video/README.md
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
---
|
||||
layout: page
|
||||
title: IBM PC Video Support
|
||||
permalink: /devices/pc/video/
|
||||
---
|
||||
|
||||
IBM PC Video Support
|
||||
---
|
||||
|
||||
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)
|
||||
|
||||
More detailed information is available for the following IBM-compatible video adapters:
|
||||
|
||||
* [Compaq EGA](/devices/pc/video/compaq/ega/)
|
||||
* [Compaq VGA](/devices/pc/video/compaq/vga/)
|
||||
* [Paradise VGA](/devices/pc/video/paradise/vga/)
|
||||
|
|
@ -60,7 +60,7 @@ For a more human-readable dump, use the `--comments` option:
|
|||
|
||||
And for those who want a binary file, the FileDump API can be used to recreate binary data from JSON data:
|
||||
|
||||
> [http://www.pcjs.org/api/v1/dump?file=http://www.pcjs.org/devices/pc/video/compaq/vga/109360-001/1988-05-18.json&format=rom](http://www.pcjs.org/api/v1/dump?file=http://www.pcjs.org/devices/pc/video/compaq/vga/109360-001/1988-05-18.json&format=rom)
|
||||
> [http://localhost:8088/api/v1/dump?file=/devices/pc/video/compaq/vga/109360-001/1988-05-18.json&format=rom](http://localhost:8088/api/v1/dump?file=/devices/pc/video/compaq/vga/109360-001/1988-05-18.json&format=rom)
|
||||
|
||||
The Compaq VGA ROM BIOS concludes with the usual copyright string and author initials:
|
||||
|
||||
|
|
|
|||
13
devices/pc/video/ibm/ega/ibm-ega-128kb-lockfs.xml
Normal file
13
devices/pc/video/ibm/ega/ibm-ega-128kb-lockfs.xml
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<video id="videoEGA" model="ega" memory="0x20000" screenwidth="640" screenheight="350" touchscreen="mouse" pos="center" padding="8px">
|
||||
<menu>
|
||||
<title>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 type="button" binding="lockPointer" padleft="8px">Lock Pointer</control>
|
||||
<control type="button" binding="fullScreen" padleft="8px">Full Screen</control>
|
||||
</control>
|
||||
</menu>
|
||||
</video>
|
||||
10
devices/pc/video/ibm/vga/README.md
Normal file
10
devices/pc/video/ibm/vga/README.md
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
---
|
||||
layout: page
|
||||
title: "IBM Video Graphics Array (VGA)"
|
||||
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).
|
||||
|
|
@ -23,7 +23,7 @@ For a more human-readable dump, use the `--comments` option:
|
|||
|
||||
And for those who want a binary file, the FileDump API can be used to recreate binary data from JSON data:
|
||||
|
||||
> [http://www.pcjs.org/api/v1/dump?file=http://www.pcjs.org/devices/pc/video/paradise/vga/1988-05-23.json&format=rom](http://www.pcjs.org/api/v1/dump?file=http://www.pcjs.org/devices/pc/video/paradise/vga/1988-05-23.json&format=rom)
|
||||
> [http://localhost:8088/api/v1/dump?file=/devices/pc/video/paradise/vga/1988-05-23.json&format=rom](http://localhost:8088/api/v1/dump?file=/devices/pc/video/paradise/vga/1988-05-23.json&format=rom)
|
||||
|
||||
The first 128 bytes of the ROM BIOS contain:
|
||||
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
<ram id="ramExt" addr="0x100000" size="0x160000" comment=""/>
|
||||
<rom id="romEGA" addr="0xc0000" size="0x4000" file="/devices/pc/video/ibm/ega/ibm-ega.json" notify="videoEGA"/>
|
||||
<rom id="romBIOS" addr="0xf0000" size="0x10000" alias="0xff0000" file="/devices/pc/bios/5170/1985-11-15.json"/>
|
||||
<video ref="/devices/pc/video/ibm/ega/ibm-ega-128kb-autolockfs.xml"/>
|
||||
<video ref="/devices/pc/video/ibm/ega/ibm-ega-128kb-lockfs.xml"/>
|
||||
<keyboard ref="/devices/pc/keyboard/keyboard-minimal-functions.xml"/>
|
||||
<debugger id="debugger" messages="fault" commands=""/>
|
||||
<panel ref="/devices/pc/panel/wide.xml"/>
|
||||
|
|
|
|||
Loading…
Reference in a new issue