92 lines
4.8 KiB
Markdown
92 lines
4.8 KiB
Markdown
---
|
|
layout: page
|
|
title: About PCjs
|
|
menu_title: About
|
|
menu_order: 9
|
|
permalink: /docs/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](/docs/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](/docs/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](/docs/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](/docs/pcx86/debugger/) and a user-configurable [Control Panel](/docs/pcx86/panel/).
|
|
|
|
Read [About PCx86](/docs/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 [{{ site.pcjs.domain }}]({{ site.url }}/).
|
|
|
|
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 [{{ site.pcjs.domain }}]({{ site.url }}/)), 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).
|