diff --git a/README.md b/README.md index 975fa252c..798f6e846 100644 --- a/README.md +++ b/README.md @@ -77,7 +77,7 @@ The project includes: - Custom Node modules used by the web server ([HTMLOut](modules/htmlout/), [MarkOut](modules/markout/), [DiskDump](modules/diskdump/), [FileDump](modules/filedump/)) - A variety of IBM PC and C1P configuration and resource files (see [/apps](apps/), [/devices](devices/) and [/disks](disks/)) - The [PCx86](modules/pcx86/), [PC8080](modules/pc8080/), and [C1Pjs](modules/c1pjs/) client applications, both "compiled" and uncompiled -- A smattering of [PCx86](docs/pcx86/) and [C1Pjs](docs/c1pjs/) documentation, along with [blog posts](blog/), related [publications](pubs/) and more +- A smattering of [PCx86](docs/pcx86/) and [C1Pjs](docs/c1pjs/) documentation, along with [blog posts](https://github.com/jeffpar/pcjs/tree/gh-pages/_posts), related [publications](pubs/) and more The bundled web server is not strictly required. Any web server (Node, Apache, Nginx, etc) that can serve the necessary JavaScript files to your browser will work. However, instructions for doing that are beyond the scope of this introduction. @@ -130,9 +130,9 @@ quintessential "stuck in the past" project), but there's also no urgency to upda ### Installing PCjs with Jekyll -PCjs can also be used with [Jekyll](http://jekyllrb.com) and the WEBrick web server, now that the project -has been converted to work with [GitHub Pages](https://pages.github.com). This is how the project is currently -set up at [pcjs.org](http://www.pcjs.org/). +PCjs can also be used with [Jekyll](http://jekyllrb.com) and the Ruby WEBrick web server, now that a +*[gh-pages](https://github.com/jeffpar/pcjs/tree/gh-pages)* branch has been created to work with +[GitHub Pages](https://pages.github.com). This is how the project is currently set up at [pcjs.org](http://www.pcjs.org/). This isn't going to be a Jekyll "How To" guide, because that would unnecessarily repeat all the information available at [GitHub Pages](https://pages.github.com). But we'll summarize the basic steps, which replace the `npm` and `node` @@ -142,27 +142,31 @@ To install Jekyll for use with PCjs: 1. Install Ruby (on OS X, it should already be installed) 2. Install Bundler (on OS X, run `sudo gem install bundler`) - 3. Create a `Gemfile` containing `gem 'github-pages'` (this is already checked in) - 4. Run `bundle install` (GitHub Pages alternatively suggests: `bundle exec jekyll build --safe`) - 5. Checkout the `gh-pages` branch, since only that branch contains all the Jekyll-related files - 6. Run `bundle exec jekyll serve --host=0.0.0.0 --config _config.yml` to start the web server + 3. Checkout the `gh-pages` branch, since only that branch contains all the Jekyll-related files + 4. Create a `Gemfile` containing `gem 'github-pages'` (this is already checked in) + 5. Run `bundle install` (GitHub Pages alternatively suggests: `bundle exec jekyll build --safe`) + 6. Run `bundle exec jekyll serve` to start the web server Now open a web browser and go to `http://localhost:4000/`. You're done! -Using the `--host` option makes it possible to access the web server from other devices on your local network; -for example, you may want to run PCjs on your iPhone, iPad, or other wireless device. +Some useful Jekyll server options include: -Another useful variation is `--config _config.yml,_developer.yml` which uses the settings in `_developer.yml` -to override the defaults in `_config.yml`. Using development (non-production) settings in `_developer.yml` is -analogous to running the Node web server with certain development options; see [Debugging PCjs](#debugging-pcjs). - -Don't see any YML files in the root of your project? You probably forgot to switch to the `gh-pages` branch: - - git checkout gh-pages + bundle exec jekyll serve --host=0.0.0.0 --config _config.yml,_developer.yml + +The `--host` option makes it possible to access the web server from other devices on your local network; +for example, you may want to run PCjs on your iPhone, iPad, or other wireless device. And by adding `_developer.yml`, +you can override the Jekyll configuration defaults in `_config.yml`. Using development (non-production) settings in +`_developer.yml` is analogous to running the Node web server with certain development options; see +[Debugging PCjs](#debugging-pcjs). GitHub Pages says you can run `jekyll serve` instead of `bundle exec jekyll serve`, but with the addition of more gems to `Gemfile` (eg, `jekyll-sitemap`), running `jekyll serve` may trigger dependency errors on some systems. -`bundle exec ...` should always work. +`bundle exec jekyll serve` should always work. + +Don't see any YML files in the root of your project? You probably forgot to switch to the +*[gh-pages](https://github.com/jeffpar/pcjs/tree/gh-pages)* branch: + + git checkout gh-pages Last but not least, run `bundle update` periodically to keep Jekyll up-to-date. @@ -231,7 +235,7 @@ if the folder contains a machine XML file, that is embedded as well. To work well with both the Node and Jekyll web servers, all Markdown files containing one or more embedded machines should contain a Jekyll "Front Matter" header that describes the machines. For example, here's the header from the -pcjs.org home page ([index.md](index.md)): +pcjs.org home page ([index.md](https://github.com/jeffpar/pcjs/blob/gh-pages/index.md)): --- layout: page @@ -253,7 +257,7 @@ Then the following lines are inserted at the points where the machines should ap {% include machine.html id="demoC1P" %} For more information on all the machine options supported in a Markdown file, see the project's Jekyll include file -[machine-engines.html](/_includes/machine-engines.html). +[machine-engines.html](https://github.com/jeffpar/pcjs/blob/gh-pages/_includes/machine-engines.html). ### From The Command-Line @@ -313,7 +317,7 @@ you can start the server with some additional options; eg: node server.js --logging --console --debug -The `--logging` option will create a [node.log](/logs/node.log) that records all the HTTP requests, `--debug` +The `--logging` option will create a [node.log](/logs/) that records all the HTTP requests, `--debug` will generate additional debug-only messages (which will also be logged if `--logging` is enabled), and `--console` will replicate any messages to your console as well. @@ -373,7 +377,7 @@ Updating PCjs To start developing features for a new version of PCjs, here are the recommended steps: -1. Change the version number in the root [package.json](package.json) and [_config.yml](_config.yml) +1. Change the version number in the root [package.json](package.json) (and [_config.yml](https://github.com/jeffpar/pcjs/blob/gh-pages/_config.yml)) 2. Run the "grunt promote" task to bump the version in all the machine XML files 3. Make changes 4. Run "grunt" to build new versions of the apps (eg, "/versions/pcx86/1.x.x/pcx86.js") diff --git a/apps/pcx86/1981/visicalc/manifest.xml b/apps/pcx86/1981/visicalc/manifest.xml index 269dd22e3..626b16282 100644 --- a/apps/pcx86/1981/visicalc/manifest.xml +++ b/apps/pcx86/1981/visicalc/manifest.xml @@ -1,5 +1,5 @@ - + VisiCalc diff --git a/apps/pcx86/1982/esuite/manifest.xml b/apps/pcx86/1982/esuite/manifest.xml index b0801fef0..89510da0b 100644 --- a/apps/pcx86/1982/esuite/manifest.xml +++ b/apps/pcx86/1982/esuite/manifest.xml @@ -1,5 +1,5 @@ - + Executive Suite diff --git a/apps/pcx86/1985/rogue/manifest.xml b/apps/pcx86/1985/rogue/manifest.xml index 795f1bee5..23f274343 100644 --- a/apps/pcx86/1985/rogue/manifest.xml +++ b/apps/pcx86/1985/rogue/manifest.xml @@ -1,5 +1,5 @@ - + Rogue diff --git a/apps/pcx86/1987/thinktank/manifest.xml b/apps/pcx86/1987/thinktank/manifest.xml index 83a559d33..a6b20089b 100644 --- a/apps/pcx86/1987/thinktank/manifest.xml +++ b/apps/pcx86/1987/thinktank/manifest.xml @@ -1,5 +1,5 @@ - + ThinkTank 2.41NP diff --git a/apps/pcx86/1988/moria/manifest.xml b/apps/pcx86/1988/moria/manifest.xml index 8e85006e1..1002dbd0d 100644 --- a/apps/pcx86/1988/moria/manifest.xml +++ b/apps/pcx86/1988/moria/manifest.xml @@ -1,5 +1,5 @@ - + The Dungeons of Moria 4.872 diff --git a/apps/pcx86/1992/moria/manifest.xml b/apps/pcx86/1992/moria/manifest.xml index ccfc5d73f..ac5ec95d9 100644 --- a/apps/pcx86/1992/moria/manifest.xml +++ b/apps/pcx86/1992/moria/manifest.xml @@ -1,5 +1,5 @@ - + The Dungeons of Moria 5.5 diff --git a/devices/c1p/machine/32kb/machine.xml b/devices/c1p/machine/32kb/machine.xml index a4ed2655b..068ebc0d0 100644 --- a/devices/c1p/machine/32kb/machine.xml +++ b/devices/c1p/machine/32kb/machine.xml @@ -1,5 +1,5 @@ - + OSI Challenger 1P (32Kb) with Disk Support diff --git a/devices/c1p/machine/8kb/all/debugger/machine.xml b/devices/c1p/machine/8kb/all/debugger/machine.xml index 50da0475e..ca159940a 100644 --- a/devices/c1p/machine/8kb/all/debugger/machine.xml +++ b/devices/c1p/machine/8kb/all/debugger/machine.xml @@ -1,5 +1,5 @@ - + OSI Challenger 1P (8Kb, Additional Software) diff --git a/devices/c1p/machine/8kb/all/machine.xml b/devices/c1p/machine/8kb/all/machine.xml index 9b05f3c58..95d255e5d 100644 --- a/devices/c1p/machine/8kb/all/machine.xml +++ b/devices/c1p/machine/8kb/all/machine.xml @@ -1,5 +1,5 @@ - + OSI Challenger 1P (8Kb, Additional Software) diff --git a/devices/c1p/machine/8kb/array/machine.xml b/devices/c1p/machine/8kb/array/machine.xml index 8355d88a5..cd4739051 100644 --- a/devices/c1p/machine/8kb/array/machine.xml +++ b/devices/c1p/machine/8kb/array/machine.xml @@ -1,5 +1,5 @@ - + Challenger 1P (8Kb) "Server Array" diff --git a/devices/c1p/machine/8kb/large/debugger/machine.xml b/devices/c1p/machine/8kb/large/debugger/machine.xml index 7249dc10a..07949e1d1 100644 --- a/devices/c1p/machine/8kb/large/debugger/machine.xml +++ b/devices/c1p/machine/8kb/large/debugger/machine.xml @@ -1,5 +1,5 @@ - + OSI Challenger 1P (8Kb) with Debugger diff --git a/devices/c1p/machine/8kb/large/machine.xml b/devices/c1p/machine/8kb/large/machine.xml index 429c0732f..f010a4fce 100644 --- a/devices/c1p/machine/8kb/large/machine.xml +++ b/devices/c1p/machine/8kb/large/machine.xml @@ -1,5 +1,5 @@ - + OSI Challenger 1P (circa 1978) diff --git a/devices/c1p/machine/8kb/small/machine.xml b/devices/c1p/machine/8kb/small/machine.xml index 95da25cf2..faf4e7276 100644 --- a/devices/c1p/machine/8kb/small/machine.xml +++ b/devices/c1p/machine/8kb/small/machine.xml @@ -1,5 +1,5 @@ - + diff --git a/devices/pc8080/machine/exerciser/machine-8080ex1.xml b/devices/pc8080/machine/exerciser/machine-8080ex1.xml index d86223d68..0b8a0a993 100644 --- a/devices/pc8080/machine/exerciser/machine-8080ex1.xml +++ b/devices/pc8080/machine/exerciser/machine-8080ex1.xml @@ -1,5 +1,5 @@ - + 8080 Exerciser Test Machine diff --git a/devices/pc8080/machine/exerciser/machine-8080pre.xml b/devices/pc8080/machine/exerciser/machine-8080pre.xml index 25949d7cd..716abd9ec 100644 --- a/devices/pc8080/machine/exerciser/machine-8080pre.xml +++ b/devices/pc8080/machine/exerciser/machine-8080pre.xml @@ -1,5 +1,5 @@ - + 8080 Exerciser Preliminary Test Machine diff --git a/devices/pc8080/machine/exerciser/machine-cputest.xml b/devices/pc8080/machine/exerciser/machine-cputest.xml index 34c041937..8ded2d625 100644 --- a/devices/pc8080/machine/exerciser/machine-cputest.xml +++ b/devices/pc8080/machine/exerciser/machine-cputest.xml @@ -1,5 +1,5 @@ - + 8080 CPUTEST Machine diff --git a/devices/pc8080/machine/exerciser/machine-test.xml b/devices/pc8080/machine/exerciser/machine-test.xml index bbcb9d646..d7995973b 100644 --- a/devices/pc8080/machine/exerciser/machine-test.xml +++ b/devices/pc8080/machine/exerciser/machine-test.xml @@ -1,5 +1,5 @@ - + 8080 "Kelly Smith" Test Machine diff --git a/devices/pc8080/machine/exerciser/machine.xml b/devices/pc8080/machine/exerciser/machine.xml index d86223d68..0b8a0a993 100644 --- a/devices/pc8080/machine/exerciser/machine.xml +++ b/devices/pc8080/machine/exerciser/machine.xml @@ -1,5 +1,5 @@ - + 8080 Exerciser Test Machine diff --git a/devices/pc8080/machine/invaders/debugger/machine.xml b/devices/pc8080/machine/invaders/debugger/machine.xml index 1754adc1a..c08a9cb61 100644 --- a/devices/pc8080/machine/invaders/debugger/machine.xml +++ b/devices/pc8080/machine/invaders/debugger/machine.xml @@ -1,5 +1,5 @@ - + Space Invaders diff --git a/devices/pc8080/machine/invaders/machine.xml b/devices/pc8080/machine/invaders/machine.xml index 4c35153a0..0ef64e59c 100644 --- a/devices/pc8080/machine/invaders/machine.xml +++ b/devices/pc8080/machine/invaders/machine.xml @@ -1,5 +1,5 @@ - + Space Invaders diff --git a/devices/pc8080/machine/vt100/README.md b/devices/pc8080/machine/vt100/README.md index 04eac5933..129aaf89d 100644 --- a/devices/pc8080/machine/vt100/README.md +++ b/devices/pc8080/machine/vt100/README.md @@ -15,12 +15,13 @@ This is a PCjs emulation of another 8080-based machine: the VT100 Terminal. Unlike other VT100 emulators, it is not simply an emulation of VT100 protocols. It is a simulation of the original VT100 machine, running the [VT100 Firmware](/devices/pc8080/rom/vt100/) inside the [PC8080](/modules/pc8080/) CPU emulator. -A [Debugger Configuration](debugger/) is also available, along with a [Dual VT100 Terminals](dual/) demo. - Admittedly, terminals aren't that useful in isolation, since they're designed to be connected to other (host) machines. But once this PCjs VT100 Terminal simulation is fully operational, you can expect to see it used in conjunction with a variety of other PCjs machines. +[Debugger Configuration](debugger/) is available, along with demos of [Dual VT100 Terminals](dual/) and an +[IBM PC AT connected to a VT100](/devices/pcx86/machine/5170/ega/2048kb/rev3/vt100/). + {% include machine.html id="vt100" %} VT100 Keys diff --git a/devices/pc8080/machine/vt100/debugger/README.md b/devices/pc8080/machine/vt100/debugger/README.md index ec8efda2f..a8474c174 100644 --- a/devices/pc8080/machine/vt100/debugger/README.md +++ b/devices/pc8080/machine/vt100/debugger/README.md @@ -15,7 +15,11 @@ The [PC8080](/modules/pc8080/) machine below is configured to simulate a [VT100 with a Control Panel and Debugger. When you press the "Run" button, it will start running the original [VT100 Firmware](/devices/pc8080/rom/vt100/) inside the [PC8080](/modules/pc8080/) CPU emulator. -Information about [VT100 Keys](#vt100-keys) along with assorted [Hardware Notes](#vt100-memory-usage) are provided below. +Information about [VT100 Keys](#vt100-keys) and assorted [Hardware Notes](#vt100-memory-usage) are provided below, +followed by some [VT100 Technical Manual](/pubs/dec/vt100/) excerpts regarding the [VT100 Initialization Process](#vt100-initialization-process). + +[Non-Debugger Configuration](../) is available, along with demos of [Dual VT100 Terminals](../dual/) and an +[IBM PC AT connected to a VT100](/devices/pcx86/machine/5170/ega/2048kb/rev3/vt100/). {% include machine.html id="vt100" %} @@ -34,52 +38,57 @@ maps modern keys to VT100 key addresses, and most of the mappings are 1-1. Func - F8: NO SCROLL - F9: SET-UP -From the SET-UP screen, you can press **4** to switch to LOCAL mode and verify local operation of most VT100 -keys. The following keys have special meaning inside SET-UP Mode. +Factory defaults are shown below in parentheses. Our VT100 configurations use slightly different defaults: + +- ONLINE instead of LOCAL +- ANSI ON ### SET-UP Mode Keys - 0: RESET - 2: SET/CLEAR TAB - 3: CLEAR ALL TABS -- 4: ONLINE/LOCAL +- 4: ONLINE/LOCAL (LOCAL) - 5: SET-UP A/B - 6: TOGGLE FEATURE -- 7: TRANSMIT SPEED -- 8: RECEIVE SPEED -- 9: 80/132 COLUMNS +- 7: TRANSMIT SPEED (9600) +- 8: RECEIVE SPEED (9600) +- 9: 80/132 COLUMNS (80) - SHIFT-S: Save SET-UP Features - SHIFT-R: Restore SET-UP Features +To access the SET-UP B screen, press **5**. To change SET-UP B options, move the cursor over the corresponding binary digit +and press **6** to toggle. + ### SET-UP B Options #### Block 1 -- 1---: Smooth scroll -- -1--: Auto-Repeat -- --1-: Light Screen Background -- ---1: Block Cursor +- 1---: Smooth scroll (ON) +- -1--: Auto-Repeat (ON) +- --1-: Light Screen Background (OFF) +- ---1: Block Cursor (ON) #### Block 2 -- 1---: Margin Bell -- -1--: Key-click -- --1-: ANSI -- ---1: Auto-XON/XOFF +- 1---: Margin Bell (OFF) +- -1--: Key-click (ON) +- --1-: ANSI (OFF) +- ---1: Auto-XON/XOFF (ON) #### Block 3 -- 1---: UK Pound Symbol -- -1--: Wrap-Around -- --1-: New Line -- ---1: Interlace +- 1---: UK Pound Symbol (OFF) +- -1--: Wrap-Around (OFF) +- --1-: New Line (OFF) +- ---1: Interlace (OFF) #### Block 4 -- 1---: Even Parity -- -1--: Parity Enable -- --1-: 8 Data Bits -- ---1: 50Hz Power +- 1---: Even Parity (OFF) +- -1--: Parity Enable (OFF) +- --1-: 8 Data Bits (ON) +- ---1: 50Hz Power (OFF) VT100 Memory Usage ------------------ diff --git a/devices/pc8080/machine/vt100/debugger/machine.xml b/devices/pc8080/machine/vt100/debugger/machine.xml index 6f2211fac..e76f7b67c 100644 --- a/devices/pc8080/machine/vt100/debugger/machine.xml +++ b/devices/pc8080/machine/vt100/debugger/machine.xml @@ -1,9 +1,9 @@ - + VT100 Terminal - +