Consolidated /docs into /pubs
This commit is contained in:
parent
9d356c582b
commit
71d117fa02
106 changed files with 350 additions and 317 deletions
90
pubs/about/README.md
Normal file
90
pubs/about/README.md
Normal file
|
|
@ -0,0 +1,90 @@
|
|||
---
|
||||
layout: page
|
||||
title: About PCjs
|
||||
menu_title: About
|
||||
menu_order: 9
|
||||
permalink: /pubs/about/
|
||||
---
|
||||
|
||||
## About PCjs
|
||||
|
||||
The [PCjs Project](https://github.com/jeffpar/pcjs) is a collection of computer simulations written in
|
||||
[JavaScript](/modules/). It is an open-source project maintained and hosted on [GitHub](https://github.com/) as
|
||||
[{{ site.pcjs.domain }}]({{ site.url }}/) (formerly [jsmachines.net](http://jsmachines.net/)).
|
||||
|
||||
The goals of the project are to create fast, full-featured simulations of classic computer hardware,
|
||||
help people understand how these early machines worked, make it easy to experiment with different machine
|
||||
configurations, and provide a platform for running and analyzing old computer software.
|
||||
|
||||
The simulations are written entirely in JavaScript and run well in a variety of web browsers, on both
|
||||
desktop and mobile devices. Machines are created with simple XML files that define a set of machine components,
|
||||
along with the features that each component should enable. More details about machine definitions and component
|
||||
capabilities can be found in the [Documentation](/pubs/).
|
||||
|
||||
### Simulating the Challenger 1P
|
||||
|
||||
The first PCjs simulation was [C1Pjs](/pubs/c1pjs/), which emulates the
|
||||
Challenger 1P, a 6502-based microcomputer introduced by Ohio Scientific in 1978.
|
||||
C1Pjs v1.0 was released in July 2012. More information about the first release of C1Pjs was
|
||||
[posted](http://osiweb.org/osiforum/viewtopic.php?f=3&t=103) on the
|
||||
[OSI Discussion Forum](http://osiweb.org/osiforum/index.php) at [osiweb.org](http://osiweb.org/).
|
||||
|
||||
### Simulating the IBM PC
|
||||
|
||||
The next PCjs simulation was [PCx86](/pubs/about/pcx86/), which emulates the original IBM PC, IBM PC XT,
|
||||
and IBM PC AT. PCx86 v1.0 was released in late 2012. Browse the source code [here](/modules/pcx86/) or on
|
||||
[GitHub](https://github.com/jeffpar/pcjs).
|
||||
|
||||
[PCx86](/pubs/about/pcx86/) emulates the Intel 8088, 80186, 80286 and 80386 CPUs, as well as IBM Monochrome Display
|
||||
Adapter (MDA), Color Graphics Adapter (CGA), Enhanced Graphics Adapter (EGA), and Video Graphics Array (VGA) video
|
||||
cards, along with assorted motherboard and expansion bus components. It also includes an optional
|
||||
[Debugger](/pubs/pcx86/debugger/) and a user-configurable [Control Panel](/pubs/pcx86/panel/).
|
||||
|
||||
Read [About PCx86](/pubs/about/pcx86/) to learn more about its history, features, and upcoming improvements.
|
||||
|
||||
### Migrating to Node
|
||||
|
||||
The PCjs web server was originally written in PHP and hosted by [DreamHost](https://www.dreamhost.com/) as
|
||||
[jsmachines.net](http://jsmachines.net/), but in 2014, it was migrated to a [Node.js](http://nodejs.org) web server
|
||||
and hosted by [Amazon Web Services](https://aws.amazon.com/elasticbeanstalk/) as [pcjs.org](http://www.pcjs.org/).
|
||||
|
||||
The goals included:
|
||||
|
||||
- Using JavaScript exclusively, for both client and server development
|
||||
- Leveraging the Node.js web server to provide more sophisticated I/O capabilities
|
||||
- Improving overall website design, including structure, appearance and responsiveness
|
||||
|
||||
The PCjs Node web server includes a number of custom Node modules that provide many of the same server-side features
|
||||
found on [jsmachines.net](http://jsmachines.net/), including new ROM and disk image conversion APIs, and a
|
||||
Markdown module that supports a subset of the [Markdown syntax](http://daringfireball.net/projects/markdown/syntax),
|
||||
including extensions to the link syntax that make it easy to embed PCjs machines in Markdown documents.
|
||||
|
||||
### Migrating to GitHub Pages
|
||||
|
||||
To simplify hosting requirements, the PCjs Project was migrated to [GitHub Pages](https://pages.github.com/) in late 2015.
|
||||
The project still includes the original Node-based web server, which is useful for development and debugging, but for
|
||||
production sites (including [pcjs.org](http://www.pcjs.org/)), using Jekyll to generate a static copy of the project for
|
||||
the web is the preferred solution.
|
||||
|
||||
---
|
||||
|
||||
License
|
||||
---
|
||||
The [PCjs Project](https://github.com/jeffpar/pcjs) is now an open-source project on [GitHub](http://github.com/).
|
||||
All published portions are free for redistribution and/or modification under the terms of the
|
||||
[GNU General Public License](/LICENSE) as published by the Free Software Foundation, either version 3 of the License,
|
||||
or (at your option) any later version.
|
||||
|
||||
You are required to include the following copyright notice, with a link to [{{ site.pcjs.domain }}]({{ site.url }}/):
|
||||
|
||||
> [PCjs]({{ site.url }}/) © 2012-2017 by [Jeff Parsons](mailto:Jeff@pcjs.org) ([@jeffpar](http://twitter.com/jeffpar))
|
||||
|
||||
in every source code file of every copy or modified version of this work, and to display that notice on every web page
|
||||
or computer that runs any version of this software.
|
||||
|
||||
See [LICENSE](/LICENSE) for details.
|
||||
|
||||
More Information
|
||||
---
|
||||
If you have questions or run into any problems, feel free to [tweet](http://twitter.com/jeffpar) or
|
||||
[email](mailto:Jeff@pcjs.org).
|
||||
131
pubs/about/pcx86/README.md
Normal file
131
pubs/about/pcx86/README.md
Normal file
|
|
@ -0,0 +1,131 @@
|
|||
---
|
||||
layout: page
|
||||
title: About PCx86
|
||||
permalink: /pubs/about/pcx86/
|
||||
redirect_from:
|
||||
- /pc/
|
||||
- /pcjs/
|
||||
---
|
||||
|
||||
About PCx86
|
||||
---
|
||||
|
||||
PCx86 is a IBM PC/XT/AT simulator written entirely in [JavaScript](/modules/pcx86/). It's designed to load and run
|
||||
fast, it works well in all modern web browsers (both desktop and mobile), and it's easy to customize. It is part of
|
||||
the [PCjs Project](https://github.com/jeffpar/pcjs), an open-source project on [GitHub](http://github.com/).
|
||||
|
||||
Check out the [Demos](/#demos) on the home page, and all the other PCx86 [Application](/apps/pcx86/), [Disk](/disks/pcx86/),
|
||||
and [Machine](/devices/pcx86/machine/) demos, including an [IBM PC Dual Display System](/devices/pcx86/machine/5150/dual/64kb/)
|
||||
demo of multiple monitor support, and [IBM PC XT "Server Array"](/devices/pcx86/machine/5160/cga/256kb/array/) and
|
||||
[Windows 1.01 "Server Array"](/devices/pcx86/machine/5160/ega/640kb/array/) demos of multiple machines running side-by-side.
|
||||
|
||||
### Features
|
||||
|
||||
+ Build your own IBM PC, PC XT, and PC AT simulations using simple XML machine configuration files.
|
||||
You decide how much RAM you want, how many disk drives, which disk images to include (and which should be
|
||||
pre-loaded), what kind of video adapter (MDA, CGA, EGA or VGA), serial ports, mouse, and more. See the
|
||||
[Documentation](/pubs/pcx86/) for details.
|
||||
|
||||
+ Excellent IBM hardware compatibility ensures all the original IBM BIOS ROMs operate properly, and that the
|
||||
machines run at their original speed. Even obsolete hardware, such as the original PC XT hard drive controller,
|
||||
is supported.
|
||||
|
||||
+ The CPU component is easily configured to emulate an 8088, 80186, 80286, or 80386. A target speed can also
|
||||
be specified, and in some cases, even specific CPU *steppings* (including specific errata) can be enabled.
|
||||
|
||||
+ Similarly, the FPU (floating-point) component can be configured to emulate an 8087, 80287, or 80387; however,
|
||||
only 8087 support is complete at this point.
|
||||
|
||||
+ The modular design allows you to specify which components to enable, and which external controls
|
||||
to display for each component. You can choose the size of the display window created by the [Video](/pubs/pcx86/video/)
|
||||
component, add **Halt** or **Speed** buttons to the [CPU](/pubs/pcx86/cpu/) component, display clickable "DIP Switches"
|
||||
for the [Chipset](/pubs/pcx86/chipset/) component, or even design your own [Control Panel](/pubs/pcx86/panel/).
|
||||
|
||||
+ The UI includes a responsive design that tailors itself to your browser and device, and support for touch events
|
||||
and soft keyboards means you get the best possible emulation experience -- better than any other browser-based
|
||||
emulator currently available. It almost feels like your DOS and Windows mouse-based applications have been rewritten
|
||||
to work with your iPad or iPhone -- almost. Please note, however, that some mobile devices provide better support than
|
||||
others.
|
||||
|
||||
+ A fully-integrated [Debugger](/pubs/pcx86/debugger/) is available. Disassemble code, set breakpoints on
|
||||
memory write/read/execution addresses, dump and edit memory, dump disk sectors, enable/disable categories of diagnostic
|
||||
messages, and view instruction history, cycle counts and more. The Debugger does not rely on CPU breakpoint
|
||||
instructions or the trace flag, and does not alter the machine state in any way, allowing you to debug anything,
|
||||
including 8086 debuggers.
|
||||
|
||||
+ Machines created with the [Computer](/pubs/pcx86/computer/) *resume* property set will save their entire machine
|
||||
state using your browser's local storage, so that any changes are preserved when your browser closes, including
|
||||
disk modifications. Any files you create or modify *inside* the machine will still be there when you return.
|
||||
TIP: To restore a diskette's original contents, simply press the "Download" button again.
|
||||
|
||||
+ Machine states can also be dumped (using the built-in [Debugger](/pubs/pcx86/debugger/)), saved as JSON files, and
|
||||
pre-loaded into a machine, bypassing the normal boot process. You can even combine a pre-defined state with the
|
||||
"resume" feature, preserving any changes you make to the machine's original state.
|
||||
|
||||
+ Most modern web browsers are supported, including IE (v9.0 and higher), Edge, Safari, Firefox, Chrome and Opera,
|
||||
and no JavaScript extensions (typed arrays) or third-party libraries are required. Safari is recommended for iOS
|
||||
users, Chrome or Firefox for other platforms.
|
||||
|
||||
### Future
|
||||
|
||||
PCx86 has been been steadily evolving for almost 4 years now, in much the same way that the PC architecture evolved,
|
||||
first with the 8088-based IBM PC in 1981, then with the 80286-based IBM PC AT in 1984, and finally the 80386 and the
|
||||
first 32-bit PC architecture introduced by COMPAQ in late 1986.
|
||||
|
||||
PCx86 will remain focused on 1980's era hardware and software, so there are currently no plans to move beyond the
|
||||
80386. Some of the PCx86 demos do include software from the 1990's (eg, DOS 5.0, Windows 3.x, and Windows 95), but the
|
||||
project's priority is older software, especially software that is difficult and sometimes impossible to run on newer
|
||||
hardware.
|
||||
|
||||
Some of the features planned for future releases include:
|
||||
|
||||
+ Improved FPU compatibility, with accurate cycle counts
|
||||
|
||||
+ Improved Video compatibility (eg, custom EGA and VGA fonts)
|
||||
|
||||
### History
|
||||
|
||||
A more [complete list of releases](https://github.com/jeffpar/pcjs/releases) is on GitHub, but here are some highlights:
|
||||
|
||||
+ v1.20 added 8087 coprocessor (FPU) support, [OS/2 improvements](http://www.pcjs.org/blog/2016/02/08/),
|
||||
and new Disk/Machine [Save Options](http://www.pcjs.org/blog/2016/02/17/).
|
||||
|
||||
+ v1.19 improved 80386 compatibility and added support for [Windows 95](http://www.pcjs.org/blog/2015/09/21/).
|
||||
|
||||
+ v1.18 added basic 80386 CPU functionality and [COMPAQ DeskPro 386](http://www.pcjs.org/blog/2015/04/16/) emulation.
|
||||
|
||||
+ v1.16 added support for [OS/2 1.0](http://www.pcjs.org/blog/2014/12/04/), the Microsoft/IBM multitasking operating
|
||||
system introduced in December 1987 for 80286-based machines.
|
||||
|
||||
+ v1.15 introduced [IBM PC AT](http://www.pcjs.org/blog/2014/09/13/) (Model 5170) emulation.
|
||||
|
||||
+ v1.14 added basic [EGA Support](http://www.pcjs.org/blog/2014/07/30/) and the ability to run Windows 1.01
|
||||
in color.
|
||||
|
||||
+ v1.13 introduced manifest files that describe software packages that can be used with PCx86.
|
||||
More information on software manifests is available [here](/apps/).
|
||||
|
||||
+ v1.12.1 coincided with the first release of the new PCjs web server running on [Node.js](http://nodejs.org).
|
||||
The new server includes ROM and disk image conversion APIs, as well as a
|
||||
[Markdown](http://daringfireball.net/projects/markdown/syntax) module that supports link extensions
|
||||
for embedding C1Pjs and PCx86 machine files in Markdown documents and automatically converts "README.md"
|
||||
files into "index.html" web pages.
|
||||
|
||||
+ v1.11 improved the *embedPC()* and *embedC1P()* functions, so now you can embed XML machine configuration files
|
||||
that reference other configuration files, such as an external [Keyboard](/pubs/pcx86/keyboard/) or
|
||||
[Control Panel](/pubs/pcx86/panel/) XML layout. It does this by building the entire XML configuration internally,
|
||||
rather than relying on XSLT's *document()* function, which doesn't seem to work in all JavaScript XSLT processors.
|
||||
|
||||
+ v1.10 fixed embedding in Internet Explorer 11 (Microsoft removed "MSIE" from their default user-agent string).
|
||||
The ability to embed multiple PCs on a single web page is now supported as well.
|
||||
|
||||
+ v1.08 added soft-keyboard support, which isn't quite finished (sticky-shift and auto-repeat will be added in a future
|
||||
version), but it's good enough for use on iPads. Browse [IBM PC Machine Configurations](/devices/pcx86/machine/) for
|
||||
machines that include a soft-keyboard.
|
||||
|
||||
+ v1.06c added support for user-defined diskette images. Select "Remote Disk" from the diskette list, click
|
||||
"Download", and enter a URL at the prompt. See **Creating PCx86-Compatible Disk Images** in the
|
||||
[PCx86 Documentation](/pubs/pcx86/) for more information about supported disk images.
|
||||
|
||||
+ v1.05b added support for webkitAudioContext, bringing your simulated IBM PC's speaker to life. Relive the thrill
|
||||
of running MUSIC.BAS and listening to those classic tunes. *Sound support is still experimental*.
|
||||
Loading…
Reference in a new issue