Assorted redirects and title updates
This commit is contained in:
parent
71b4bc41e5
commit
b10810ae4d
66 changed files with 7048 additions and 50 deletions
1
Gemfile
1
Gemfile
|
|
@ -1,3 +1,4 @@
|
||||||
source 'https://rubygems.org'
|
source 'https://rubygems.org'
|
||||||
gem 'github-pages'
|
gem 'github-pages'
|
||||||
gem 'jekyll-sitemap'
|
gem 'jekyll-sitemap'
|
||||||
|
gem 'jekyll-redirect-from'
|
||||||
|
|
|
||||||
|
|
@ -20,6 +20,10 @@ kramdown:
|
||||||
input: GFM
|
input: GFM
|
||||||
hard_wrap: false
|
hard_wrap: false
|
||||||
|
|
||||||
|
gems:
|
||||||
|
- jekyll-sitemap
|
||||||
|
- jekyll-redirect-from
|
||||||
|
|
||||||
# Custom site settings
|
# Custom site settings
|
||||||
|
|
||||||
pcjs:
|
pcjs:
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
---
|
---
|
||||||
layout: page
|
layout: page
|
||||||
title: "IBM PC (Model 5150) with Color Display"
|
title: "IBM PC (Model 5150, 384Kb) with Color Display"
|
||||||
permalink: /devices/pc/machine/5150/cga/384kb/softkbd/
|
permalink: /devices/pc/machine/5150/cga/384kb/softkbd/
|
||||||
machines:
|
machines:
|
||||||
- type: pc-dbg
|
- type: pc-dbg
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
---
|
---
|
||||||
layout: page
|
layout: page
|
||||||
title: "IBM PC (Model 5150) with Color Display"
|
title: "IBM PC (Model 5150, 64Kb) with Color Display"
|
||||||
permalink: /devices/pc/machine/5150/cga/64kb/
|
permalink: /devices/pc/machine/5150/cga/64kb/
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,9 @@
|
||||||
---
|
---
|
||||||
layout: page
|
layout: page
|
||||||
title: IBM PC (Model 5150) running DONKEY.BAS
|
title: IBM PC (Model 5150, 64Kb) running DONKEY.BAS
|
||||||
permalink: /devices/pc/machine/5150/cga/64kb/donkey/
|
permalink: /devices/pc/machine/5150/cga/64kb/donkey/
|
||||||
|
redirect_from:
|
||||||
|
- /configs/pc/machines/5150/cga/64kb/donkey/
|
||||||
machines:
|
machines:
|
||||||
- type: pc
|
- type: pc
|
||||||
id: ibm5150
|
id: ibm5150
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,13 @@
|
||||||
---
|
---
|
||||||
layout: page
|
layout: page
|
||||||
title: "IBM PC (Model 5150) with Color Display"
|
title: "IBM PC (Model 5150, 64Kb) running DONKEY.BAS with Debugger"
|
||||||
permalink: /devices/pc/machine/5150/cga/64kb/donkey/debugger/
|
permalink: /devices/pc/machine/5150/cga/64kb/donkey/debugger/
|
||||||
machines:
|
machines:
|
||||||
- type: pc-dbg
|
- type: pc-dbg
|
||||||
id: ibm5150
|
id: ibm5150
|
||||||
---
|
---
|
||||||
|
|
||||||
|
IBM PC (Model 5150) running DONKEY.BAS with Debugger
|
||||||
|
---
|
||||||
|
|
||||||
{% include machine.html id="ibm5150" %}
|
{% include machine.html id="ibm5150" %}
|
||||||
|
|
|
||||||
|
|
@ -1,10 +0,0 @@
|
||||||
---
|
|
||||||
layout: page
|
|
||||||
title: "IBM PC (Model 5150) with Color Display"
|
|
||||||
permalink: /devices/pc/machine/5150/cga/64kb/donkey/
|
|
||||||
machines:
|
|
||||||
- type: pc
|
|
||||||
id: ibm5150
|
|
||||||
---
|
|
||||||
|
|
||||||
{% include machine.html id="ibm5150" %}
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
---
|
---
|
||||||
layout: page
|
layout: page
|
||||||
title: "IBM PC (Model 5150) with Color Display"
|
title: "IBM PC (Model 5150, 64Kb) with Color Display and Soft Keyboard"
|
||||||
permalink: /devices/pc/machine/5150/cga/64kb/softkbd/
|
permalink: /devices/pc/machine/5150/cga/64kb/softkbd/
|
||||||
machines:
|
machines:
|
||||||
- type: pc-dbg
|
- type: pc-dbg
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
---
|
---
|
||||||
layout: page
|
layout: page
|
||||||
title: "IBM PC (Model 5150) with Monochrome Display"
|
title: "IBM PC (Model 5150, 64Kb) with Monochrome Display and Debugger"
|
||||||
permalink: /devices/pc/machine/5150/mda/64kb/debugger/
|
permalink: /devices/pc/machine/5150/mda/64kb/debugger/
|
||||||
machines:
|
machines:
|
||||||
- type: pc-dbg
|
- type: pc-dbg
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
---
|
---
|
||||||
layout: page
|
layout: page
|
||||||
title: "IBM PC (Model 5150) with Monochrome Display"
|
title: "IBM PC (Model 5150, 64Kb) with Monochrome Display"
|
||||||
permalink: /devices/pc/machine/5150/mda/64kb/
|
permalink: /devices/pc/machine/5150/mda/64kb/
|
||||||
machines:
|
machines:
|
||||||
- type: pc
|
- type: pc
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
---
|
---
|
||||||
layout: page
|
layout: page
|
||||||
title: "IBM PC (Model 5150) with Monochrome Display"
|
title: "IBM PC (Model 5150, 64Kb) with Monochrome Display and Soft Keyboard"
|
||||||
permalink: /devices/pc/machine/5150/mda/64kb/softkbd/
|
permalink: /devices/pc/machine/5150/mda/64kb/softkbd/
|
||||||
machines:
|
machines:
|
||||||
- type: pc-dbg
|
- type: pc-dbg
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
---
|
---
|
||||||
layout: page
|
layout: page
|
||||||
title: "IBM PC XT (Model 5160) with Color Display, 256Kb"
|
title: "IBM PC XT (Model 5160, 256Kb) Server Array"
|
||||||
permalink: /devices/pc/machine/5160/cga/256kb/array/
|
permalink: /devices/pc/machine/5160/cga/256kb/array/
|
||||||
machines:
|
machines:
|
||||||
- type: pc
|
- type: pc
|
||||||
|
|
@ -10,7 +10,7 @@ machines:
|
||||||
---
|
---
|
||||||
|
|
||||||
IBM PC XT "Server Array"
|
IBM PC XT "Server Array"
|
||||||
===
|
---
|
||||||
|
|
||||||
### Demonstration of Multiple IBM PCs on a Single Web Page
|
### Demonstration of Multiple IBM PCs on a Single Web Page
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,15 @@
|
||||||
---
|
---
|
||||||
layout: page
|
layout: page
|
||||||
title: "IBM PC XT (Model 5160) with Color Display, 256Kb"
|
title: "IBM PC XT (Model 5160, 256Kb) with Color Display"
|
||||||
permalink: /devices/pc/machine/5160/cga/256kb/demo/
|
permalink: /devices/pc/machine/5160/cga/256kb/demo/
|
||||||
machines:
|
machines:
|
||||||
- type: pc
|
- type: pc
|
||||||
id: ibm5160
|
id: ibm5160
|
||||||
---
|
---
|
||||||
|
|
||||||
|
IBM PC XT with Color Display
|
||||||
|
---
|
||||||
|
|
||||||
{% include machine.html id="ibm5160" %}
|
{% include machine.html id="ibm5160" %}
|
||||||
|
|
||||||
The above simulation is configured for a clock speed of 4.77Mhz, with 256Kb of RAM and a CGA display,
|
The above simulation is configured for a clock speed of 4.77Mhz, with 256Kb of RAM and a CGA display,
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
---
|
---
|
||||||
layout: page
|
layout: page
|
||||||
title: "IBM PC XT (Model 5160) with Color Display, 256Kb"
|
title: "IBM PC XT (Model 5160, 256Kb) with Color Display and Debugger"
|
||||||
permalink: /devices/pc/machine/5160/cga/256kb/demo/debugger/
|
permalink: /devices/pc/machine/5160/cga/256kb/demo/debugger/
|
||||||
machines:
|
machines:
|
||||||
- type: pc-dbg
|
- type: pc-dbg
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
---
|
---
|
||||||
layout: page
|
layout: page
|
||||||
title: "IBM PC XT (Model 5160) with Color Display, 256Kb, Soft Keyboard"
|
title: "IBM PC XT (Model 5160, 256Kb) with Color Display and Soft Keyboard"
|
||||||
permalink: /devices/pc/machine/5160/cga/256kb/softkbd/
|
permalink: /devices/pc/machine/5160/cga/256kb/softkbd/
|
||||||
machines:
|
machines:
|
||||||
- type: pc-dbg
|
- type: pc-dbg
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,17 @@
|
||||||
---
|
---
|
||||||
layout: page
|
layout: page
|
||||||
title: "IBM PC XT (Model 5160, 256Kb) Windows 1.01 with CGA Display"
|
title: "IBM PC XT (Model 5160, 256Kb) running Windows 1.01"
|
||||||
permalink: /devices/pc/machine/5160/cga/256kb/win101/
|
permalink: /devices/pc/machine/5160/cga/256kb/win101/
|
||||||
|
redirect_from:
|
||||||
|
- /configs/pc/machines/5160/cga/256kb/win101/
|
||||||
machines:
|
machines:
|
||||||
- type: pc
|
- type: pc
|
||||||
id: ibm5160
|
id: ibm5160
|
||||||
---
|
---
|
||||||
|
|
||||||
|
IBM PC XT running Windows 1.01
|
||||||
|
---
|
||||||
|
|
||||||
{% include machine.html id="ibm5160" %}
|
{% include machine.html id="ibm5160" %}
|
||||||
|
|
||||||
The above simulation is configured for a clock speed of 4.77Mhz, with 256Kb of RAM and a CGA display,
|
The above simulation is configured for a clock speed of 4.77Mhz, with 256Kb of RAM and a CGA display,
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,15 @@
|
||||||
---
|
---
|
||||||
layout: page
|
layout: page
|
||||||
title: "IBM PC XT (Model 5160) with Color Display, 256Kb, Windows 1.01"
|
title: "IBM PC XT (Model 5160, 256Kb) running Windows 1.01 with Debugger"
|
||||||
permalink: /devices/pc/machine/5160/cga/256kb/win101/debugger/
|
permalink: /devices/pc/machine/5160/cga/256kb/win101/debugger/
|
||||||
|
redirect_from:
|
||||||
|
- /configs/pc/machines/5160/cga/256kb/win101/debugger/
|
||||||
machines:
|
machines:
|
||||||
- type: pc-dbg
|
- type: pc-dbg
|
||||||
id: ibm5160
|
id: ibm5160
|
||||||
---
|
---
|
||||||
|
|
||||||
|
IBM PC XT running Windows 1.01
|
||||||
|
---
|
||||||
|
|
||||||
{% include machine.html id="ibm5160" %}
|
{% include machine.html id="ibm5160" %}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
---
|
---
|
||||||
layout: page
|
layout: page
|
||||||
title: "IBM PC XT (Model 5160) with Color Display, 256Kb, Windows 1.01, Soft Keyboard"
|
title: "IBM PC XT (Model 5160, 256Kb) running Windows 1.01 with Soft Keyboard"
|
||||||
permalink: /devices/pc/machine/5160/cga/256kb/win101/softkbd/
|
permalink: /devices/pc/machine/5160/cga/256kb/win101/softkbd/
|
||||||
machines:
|
machines:
|
||||||
- type: pc-dbg
|
- type: pc-dbg
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
---
|
---
|
||||||
layout: page
|
layout: page
|
||||||
title: "IBM PC XT (Model 5160) with Color Display, 512Kb, Windows 1.01, Soft Keyboard"
|
title: "IBM PC XT (Model 5160, 512Kb) running Windows 1.01 with Soft Keyboard"
|
||||||
permalink: /devices/pc/machine/5160/cga/512kb/win101/softkbd/
|
permalink: /devices/pc/machine/5160/cga/512kb/win101/softkbd/
|
||||||
machines:
|
machines:
|
||||||
- type: pc-dbg
|
- type: pc-dbg
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
---
|
---
|
||||||
layout: page
|
layout: page
|
||||||
title: "IBM PC XT (Model 5160) with Color Display, 640Kb"
|
title: "IBM PC XT (Model 5160, 640Kb) with Color Display and Debugger"
|
||||||
permalink: /devices/pc/machine/5160/cga/640kb/debugger/
|
permalink: /devices/pc/machine/5160/cga/640kb/debugger/
|
||||||
machines:
|
machines:
|
||||||
- type: pc-dbg
|
- type: pc-dbg
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,10 @@
|
||||||
---
|
---
|
||||||
layout: page
|
layout: page
|
||||||
title: "IBM PC XT (Model 5160) with Multitasking MS-DOS 4.00"
|
title: "IBM PC XT (Model 5160, 640Kb) with Multitasking MS-DOS 4.00"
|
||||||
permalink: /devices/pc/machine/5160/cga/640kb/dos400m/
|
permalink: /devices/pc/machine/5160/cga/640kb/dos400m/
|
||||||
|
redirect_from:
|
||||||
|
- /configs/pc/machines/5160/cga/640kb/dos400m/
|
||||||
|
- /videos/pcjs/
|
||||||
machines:
|
machines:
|
||||||
- type: pc-dbg
|
- type: pc-dbg
|
||||||
id: ibm5160
|
id: ibm5160
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
---
|
---
|
||||||
layout: page
|
layout: page
|
||||||
title: "IBM PC XT (Model 5160) with Color Display, 640Kb"
|
title: "IBM PC XT (Model 5160, 640Kb) with Color Display"
|
||||||
permalink: /devices/pc/machine/5160/cga/640kb/
|
permalink: /devices/pc/machine/5160/cga/640kb/
|
||||||
machines:
|
machines:
|
||||||
- type: pc
|
- type: pc
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
---
|
---
|
||||||
layout: page
|
layout: page
|
||||||
title: "IBM PC XT (Model 5160) with EGA Display, 256Kb"
|
title: "IBM PC XT (Model 5160, 256Kb) with EGA Display and Debugger"
|
||||||
permalink: /devices/pc/machine/5160/ega/256kb/debugger/
|
permalink: /devices/pc/machine/5160/ega/256kb/debugger/
|
||||||
machines:
|
machines:
|
||||||
- type: pc-dbg
|
- type: pc-dbg
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
---
|
---
|
||||||
layout: page
|
layout: page
|
||||||
title: Windows 1.01 "Server Array"
|
title: "Windows 1.01 Server Array"
|
||||||
permalink: /devices/pc/machine/5160/ega/640kb/array/
|
permalink: /devices/pc/machine/5160/ega/640kb/array/
|
||||||
machines:
|
machines:
|
||||||
- type: pc
|
- type: pc
|
||||||
|
|
@ -14,7 +14,7 @@ machines:
|
||||||
---
|
---
|
||||||
|
|
||||||
Windows 1.01 "Server Array"
|
Windows 1.01 "Server Array"
|
||||||
===
|
---
|
||||||
|
|
||||||
### Demonstration of Multiple IBM PCs on a Single Web Page
|
### Demonstration of Multiple IBM PCs on a Single Web Page
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
---
|
---
|
||||||
layout: page
|
layout: page
|
||||||
title: "IBM PC XT (Model 5160) with EGA Display, 640Kb"
|
title: "IBM PC XT (Model 5160, 640Kb) with EGA Display and Debugger"
|
||||||
permalink: /devices/pc/machine/5160/ega/640kb/debugger/
|
permalink: /devices/pc/machine/5160/ega/640kb/debugger/
|
||||||
machines:
|
machines:
|
||||||
- type: pc-dbg
|
- type: pc-dbg
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
---
|
---
|
||||||
layout: page
|
layout: page
|
||||||
title: "IBM PC XT (Model 5160) with EGA Display, 640Kb"
|
title: "IBM PC XT (Model 5160, 640Kb) with EGA Display"
|
||||||
permalink: /devices/pc/machine/5160/ega/640kb/
|
permalink: /devices/pc/machine/5160/ega/640kb/
|
||||||
machines:
|
machines:
|
||||||
- type: pc
|
- type: pc
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
---
|
---
|
||||||
layout: page
|
layout: page
|
||||||
title: "IBM PC XT (Model 5160) with EGA Display, 640Kb, Windows 1.01"
|
title: "IBM PC XT (Model 5160, 640Kb) with EGA Display running Windows 1.01 and Debugger"
|
||||||
permalink: /devices/pc/machine/5160/ega/640kb/win101/debugger/
|
permalink: /devices/pc/machine/5160/ega/640kb/win101/debugger/
|
||||||
machines:
|
machines:
|
||||||
- type: pc-dbg
|
- type: pc-dbg
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
---
|
---
|
||||||
layout: page
|
layout: page
|
||||||
title: "IBM PC XT (Model 5160, 640Kb) Windows 1.01 with EGA Display"
|
title: "IBM PC XT (Model 5160, 640Kb) with EGA Display running Windows 1.01"
|
||||||
permalink: /devices/pc/machine/5160/ega/640kb/win101/
|
permalink: /devices/pc/machine/5160/ega/640kb/win101/
|
||||||
machines:
|
machines:
|
||||||
- type: pc
|
- type: pc
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
---
|
---
|
||||||
layout: page
|
layout: page
|
||||||
title: "IBM PC XT (Model 5160) with Monochrome Display, 256Kb"
|
title: "IBM PC XT (Model 5160, 256Kb) with Monochrome Display"
|
||||||
permalink: /devices/pc/machine/5160/mda/256kb/debugger/
|
permalink: /devices/pc/machine/5160/mda/256kb/debugger/
|
||||||
machines:
|
machines:
|
||||||
- type: pc-dbg
|
- type: pc-dbg
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
---
|
---
|
||||||
layout: page
|
layout: page
|
||||||
title: "IBM PC XT (Model 5160) with Monochrome Display, 256Kb"
|
title: "IBM PC XT (Model 5160, 80188, 256Kb) with Monochrome Display and Debugger"
|
||||||
permalink: /devices/pc/machine/5160/mda/256kb/fake188/debugger/
|
permalink: /devices/pc/machine/5160/mda/256kb/fake188/debugger/
|
||||||
machines:
|
machines:
|
||||||
- type: pc-dbg
|
- type: pc-dbg
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
---
|
---
|
||||||
layout: page
|
layout: page
|
||||||
title: "IBM PC XT (Model 5160) with Monochrome Display, 256Kb"
|
title: "IBM PC XT (Model 5160, 80188, 256Kb) with Monochrome Display"
|
||||||
permalink: /devices/pc/machine/5160/mda/256kb/fake188/
|
permalink: /devices/pc/machine/5160/mda/256kb/fake188/
|
||||||
machines:
|
machines:
|
||||||
- type: pc
|
- type: pc
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
---
|
---
|
||||||
layout: page
|
layout: page
|
||||||
title: "IBM PC XT (Model 5160) with Monochrome Display, 256Kb"
|
title: "IBM PC XT (Model 5160, 256Kb) with Monochrome Display"
|
||||||
permalink: /devices/pc/machine/5160/mda/256kb/
|
permalink: /devices/pc/machine/5160/mda/256kb/
|
||||||
machines:
|
machines:
|
||||||
- type: pc
|
- type: pc
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
---
|
---
|
||||||
layout: page
|
layout: page
|
||||||
title: "IBM PC XT (Model 5160) with Monochrome Display, 64Kb"
|
title: "IBM PC XT (Model 5160, 64Kb) with Monochrome Display and Soft Keyboard"
|
||||||
permalink: /devices/pc/machine/5160/mda/64kb/softkbd/
|
permalink: /devices/pc/machine/5160/mda/64kb/softkbd/
|
||||||
machines:
|
machines:
|
||||||
- type: pc-dbg
|
- type: pc-dbg
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
---
|
---
|
||||||
layout: page
|
layout: page
|
||||||
title: "IBM PC AT (Model 5170) with EGA Display, 1152Kb, 20Mb Hard Disk"
|
title: "IBM PC AT (Model 5170, 1152Kb) with EGA Display and 20Mb Hard Disk"
|
||||||
permalink: /devices/pc/machine/5170/ega/1152kb/rev1/
|
permalink: /devices/pc/machine/5170/ega/1152kb/rev1/
|
||||||
machines:
|
machines:
|
||||||
- type: pc-dbg
|
- type: pc-dbg
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
---
|
---
|
||||||
layout: page
|
layout: page
|
||||||
title: "IBM PC AT (Model 5170) with EGA Display, 1152Kb, 20Mb Hard Disk"
|
title: "IBM PC AT (Model 5170, 1152Kb) with EGA Display and 20Mb Hard Disk"
|
||||||
permalink: /devices/pc/machine/5170/ega/1152kb/rev3/backtrack/
|
permalink: /devices/pc/machine/5170/ega/1152kb/rev3/backtrack/
|
||||||
machines:
|
machines:
|
||||||
- type: pc
|
- type: pc
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
---
|
---
|
||||||
layout: page
|
layout: page
|
||||||
title: "IBM PC AT (Model 5170) with EGA Display, 1152Kb, 20Mb Hard Disk"
|
title: "IBM PC AT (Model 5170, 1152Kb) with EGA Display and 20Mb Hard Disk"
|
||||||
permalink: /devices/pc/machine/5170/ega/1152kb/rev3/
|
permalink: /devices/pc/machine/5170/ega/1152kb/rev3/
|
||||||
machines:
|
machines:
|
||||||
- type: pc-dbg
|
- type: pc-dbg
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
---
|
---
|
||||||
layout: page
|
layout: page
|
||||||
title: "IBM PC AT (Model 5170) with EGA Display, 640Kb"
|
title: "IBM PC AT (Model 5170, 640Kb) with EGA Display"
|
||||||
permalink: /devices/pc/machine/5170/ega/640kb/rev1/
|
permalink: /devices/pc/machine/5170/ega/640kb/rev1/
|
||||||
machines:
|
machines:
|
||||||
- type: pc-dbg
|
- type: pc-dbg
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
---
|
---
|
||||||
layout: page
|
layout: page
|
||||||
title: "Compaq DeskPro 386 with EGA, 2Mb RAM"
|
title: "Compaq DeskPro 386 (2Mb) with EGA Display"
|
||||||
permalink: /devices/pc/machine/compaq/deskpro386/ega/2048kb/
|
permalink: /devices/pc/machine/compaq/deskpro386/ega/2048kb/
|
||||||
machines:
|
machines:
|
||||||
- type: pc-dbg
|
- type: pc-dbg
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
---
|
---
|
||||||
layout: page
|
layout: page
|
||||||
title: "Compaq DeskPro 386 with VGA, 2Mb RAM"
|
title: "Compaq DeskPro 386 (2Mb) with VGA Display"
|
||||||
permalink: /devices/pc/machine/compaq/deskpro386/vga/2048kb/
|
permalink: /devices/pc/machine/compaq/deskpro386/vga/2048kb/
|
||||||
machines:
|
machines:
|
||||||
- type: pc-dbg
|
- type: pc-dbg
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
---
|
---
|
||||||
layout: page
|
layout: page
|
||||||
title: "Compaq DeskPro 386 with VGA, 4Mb RAM"
|
title: "Compaq DeskPro 386 (4Mb) with VGA Display"
|
||||||
permalink: /devices/pc/machine/compaq/deskpro386/vga/4096kb/
|
permalink: /devices/pc/machine/compaq/deskpro386/vga/4096kb/
|
||||||
machines:
|
machines:
|
||||||
- type: pc-dbg
|
- type: pc-dbg
|
||||||
|
|
|
||||||
|
|
@ -64,7 +64,8 @@ that automatically run the software.
|
||||||
|
|
||||||
### Microsoft Windows
|
### Microsoft Windows
|
||||||
|
|
||||||
* Microsoft Windows 1.01
|
* Microsoft Windows 1.00
|
||||||
|
* [Microsoft Windows 1.01](/disks/pc/windows/1.01/)
|
||||||
* Microsoft Windows 1.03
|
* Microsoft Windows 1.03
|
||||||
* Microsoft Windows 1.03A
|
* Microsoft Windows 1.03A
|
||||||
* Microsoft Windows 1.04
|
* Microsoft Windows 1.04
|
||||||
|
|
|
||||||
|
|
@ -2,9 +2,14 @@
|
||||||
layout: page
|
layout: page
|
||||||
title: "IBM PC (Model 5150) running CP/M-86"
|
title: "IBM PC (Model 5150) running CP/M-86"
|
||||||
permalink: /disks/pc/cpm/1.1b/
|
permalink: /disks/pc/cpm/1.1b/
|
||||||
|
redirect_from:
|
||||||
|
- /disks/pc/cpm/
|
||||||
machines:
|
machines:
|
||||||
- type: pc
|
- type: pc
|
||||||
id: ibm5150
|
id: ibm5150
|
||||||
---
|
---
|
||||||
|
|
||||||
|
CP/M-86 1.1b
|
||||||
|
---
|
||||||
|
|
||||||
{% include machine.html id="ibm5150" %}
|
{% include machine.html id="ibm5150" %}
|
||||||
|
|
|
||||||
14
disks/pc/windows/1.01/machine.md
Normal file
14
disks/pc/windows/1.01/machine.md
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
---
|
||||||
|
layout: page
|
||||||
|
title: Microsoft Windows 1.01
|
||||||
|
permalink: /disks/pc/windows/1.01/
|
||||||
|
machines:
|
||||||
|
- type: pc
|
||||||
|
id: ibm5160
|
||||||
|
config: /devices/pc/machine/5160/ega/640kb/win101/machine.xml
|
||||||
|
---
|
||||||
|
|
||||||
|
Microsoft Windows 1.01
|
||||||
|
---
|
||||||
|
|
||||||
|
{% include machine.html id="ibm5160" %}
|
||||||
|
|
@ -2,6 +2,7 @@
|
||||||
<?xml-stylesheet type="text/xsl" href="/versions/pcjs/1.20.4/manifest.xsl"?>
|
<?xml-stylesheet type="text/xsl" href="/versions/pcjs/1.20.4/manifest.xsl"?>
|
||||||
<manifest type="software">
|
<manifest type="software">
|
||||||
<title>Microsoft Windows 1.01</title>
|
<title>Microsoft Windows 1.01</title>
|
||||||
|
<machine href="/devices/pc/machine/5160/ega/640kb/win101/machine.xml"/>
|
||||||
<disk id="disk01" size="368640" chs="40:2:9" dir="static/01-SETUP/" href="/disks/pc/windows/1.01/WIN101-DISK1-SETUP.json" md5="f82a9804ea9baab98f0d1fe9bf639637" md5json="6fd1f1762e78830e27f44e3e9386ae55">
|
<disk id="disk01" size="368640" chs="40:2:9" dir="static/01-SETUP/" href="/disks/pc/windows/1.01/WIN101-DISK1-SETUP.json" md5="f82a9804ea9baab98f0d1fe9bf639637" md5json="6fd1f1762e78830e27f44e3e9386ae55">
|
||||||
<name>Windows 1.01 (SETUP)</name>
|
<name>Windows 1.01 (SETUP)</name>
|
||||||
<file size="13008" time="1985-11-15 05:43:02" attr="0x20" md5="448755ac06a2d21ef62f5967a3a5d8e5">CGA.DRV</file>
|
<file size="13008" time="1985-11-15 05:43:02" attr="0x20" md5="448755ac06a2d21ef62f5967a3a5d8e5">CGA.DRV</file>
|
||||||
|
|
|
||||||
165
versions/c1pjs/1.20.4/c1p-dbg.js
Normal file
165
versions/c1pjs/1.20.4/c1p-dbg.js
Normal file
|
|
@ -0,0 +1,165 @@
|
||||||
|
(function(){var f;function n(a,b){var c="";void 0===b?b=8:8<b&&(b=8);if(null==a||isNaN(a))for(;0<b--;)c="?"+c;else for(;0<b--;){var d=a&15,d=d+(0<=d&&9>=d?48:55),c=String.fromCharCode(d)+c;a>>=4}return c}function p(a){return"0x"+n(a,2)}function q(a){return"0x"+n(a,4)}var aa={"&":"&","<":"<",">":">",'"':""","'":"'"};function ba(a){return a.replace(/[&<>"']/g,function(a){return aa[a]})}var t=Date.now||function(){return+new Date};
|
||||||
|
function u(a,b,c){var d;d=!0;var e=0,g=null,h=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");d&&(h.onreadystatechange=function(){4===h.readyState&&(g=h.responseText,200==h.status||!h.status&&g.length&&"file:"==(window?window.location.protocol:"file:")||(e=h.status||-1),c&&(b?c.call(b,a,g,e,void 0):c(a,g,e,void 0)))});h.open("GET",a,d);h.send();d||(g=h.responseText,200!=h.status&&(e=h.status||-1),c&&(b?c.call(b,a,g,e,void 0):c(a,g,e,void 0)))}
|
||||||
|
function v(a){window&&window.alert(a)}function w(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&b.match(/(iPod|iPhone|iPad)/)&&b.match(/AppleWebKit/)||"MSIE"==a&&b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)?!0:!1}return!1}function ca(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}
|
||||||
|
function da(a,b){function c(){b(100===d)&&(e=setTimeout(c,d),d=100)}var d=0,e=null,g=!1;a.onmousedown=function(){g||e||(d=500,c())};a.ontouchstart=function(){e||(d=500,c())};a.onmouseup=a.onmouseout=function(){e&&(clearTimeout(e),e=null)};a.ontouchend=a.ontouchcancel=function(){e&&(clearTimeout(e),e=null);g=!0}}var x={init:[],show:[],exit:[]},ea=!1,fa=!0;function ga(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function y(a){x.init.push(a)}
|
||||||
|
function ha(a){if(fa)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){v("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks.")}}function z(a){!fa&&a?(fa=!0,ea&&ia("init")):fa=a}function ia(a){x[a]&&ha(x[a])}ga("onload",function(){ea=!0;ha(x.init)});ga("onpageshow",function(){ha(x.show)});ga(w("Opera")||w("iOS")?"onunload":"onbeforeunload",function(){ha(x.exit)});
|
||||||
|
function A(a,b,c,d){this.type=a;b||(b={id:"",name:""});this.id=b.id;this.name=b.name;void 0===this.id&&(this.id="");b=this.id.indexOf(".");0<b?(this.rb=this.id.substr(0,b),this.qb=this.id.substr(b+1)):this.qb=this.id;this[a]=c;this.C={Za:!1,Ba:!1,jb:!1,M:!1,Ca:!1};this.cb=null;this.C.Ca=!1;this.H={};this.u=null;this.la=d||0;B[B.length]=this}var ja=void 0;
|
||||||
|
if(window){ja||(ja=window.location.search.substr(1));for(var ka,la=/\+/g,ma=/([^&=]+)=?([^&]*)/g;ka=ma.exec(ja);)ka[1].replace(la," "),ka[2].replace(la," ")}function na(a){function b(){}if(window){if(!a)throw new TypeError;if(Object.create)return Object.create(a);var c=typeof a;if("object"!==c&&"function"!==c)throw new TypeError;}b.prototype=a;return new b}function C(a){var b;b||(b=A);a.prototype=na(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}var B=[];
|
||||||
|
function oa(a,b){if(void 0!==a){var c;b&&0<(c=b.indexOf("."))&&(a=b.substr(0,c+1)+a);for(c=0;c<B.length;c++)if(B[c].id===a)return B[c]}return null}function D(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("({"+a+"})")}catch(c){v(c.message+" ("+a+")")}return b}window&&!window.document.ELEMENT_NODE&&(window.document.ELEMENT_NODE=1);
|
||||||
|
function E(a,b){for(var c=F(b.parentNode,"c1pjs-control"),d=0;d<c.length;d++)for(var e=c[d].childNodes,g=0;g<e.length;g++){var h=e[g];if(h.nodeType===window.document.ELEMENT_NODE){var k=h.getAttribute("class");if(k)for(var l=k.split(" "),m=0;m<l.length;m++)switch(k=l[m],k){case "c1pjs-binding":(k=D(h))&&k.binding&&a.T(k.type,k.binding,h),m=l.length}}}}
|
||||||
|
function F(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var e=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)e.test(a[b].className)&&c.push(a[b]);return c}
|
||||||
|
A.prototype={constructor:A,parent:null,toString:function(){return this.name?this.name:this.id||this.type},T:function(a,b,c){switch(b){case "clear":return this.H[b]||(this.H[b]=c,c.onclick=function(a){return function(){a.H.print&&(a.H.print.value="")}}(this)),!0;case "print":return this.H[b]||(this.gb=this.H[b]=c,c.value="",this.l=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c),
|
||||||
|
this.$a=function(a,b,c){this.l(a,"notice",c)}),!0;default:return!1}},log:function(){},l:function(){},status:function(a){this.l(this.qb+": "+a)},$a:function(a,b){b||v(a)},X:function(a){this.C.Ca||(this.C.Za=!1!==a,this.C.Za&&(a=this.cb,this.cb=null,a&&a()))}};function G(a,b){if(a.u){a===a.u?b|=0:b=b||a.la;var c=a.u.la&b;return!!b&&c===b||!!(c&a.u.Re)}return!1}function H(a,b){if(a.C.jb)return a.C.Ba&&(a.C.Ba=!1),a.C.jb=!1;if(a.C.Ca)return a.l(a.toString()+" error"),!1;a.C.Ba=b;return a.C.Ba}
|
||||||
|
function J(a,b){a.C.Ba&&(b?a.C.jb=!0:void 0===b&&a.l(a.toString()+" busy"));return a.C.Ba}function K(a,b){b&&(a.C.Za?b():a.cb=b);return a.C.Za}function pa(a,b){a.C.Ca=!0;a.$a(b)}function qa(a){A.call(this,"C1PPanel",a);this.C.M=!1}C(qa);qa.prototype.T=function(a,b,c){return this.J&&this.J.T(a,b,c)||this.s&&this.s.T(a,b,c)||this.b&&this.b.T(a,b,c)||this.u&&this.u.T(a,b,c)?!0:A.prototype.T.call(this,a,b,c)};
|
||||||
|
qa.prototype.ha=function(a,b){a&&!this.C.M&&(this.C.M=!0,this.J=b,this.s=L(b,"cpu"),this.b=L(b,"keyboard"),this.u=L(b,"debugger"),ra())};function ra(){for(var a=!1,b=F(window.document,"c1pjs","panel"),c=0;c<b.length;c++){var d=b[c],e=D(d),g=oa(e.id);g||(a=!0,g=new qa(e));E(g,d);a&&g.X()}}y(ra);
|
||||||
|
function sa(a){A.call(this,"C1PCPU",a);ta(this);this.C.M=!1;this.C.ma=!1;this.Ta=a.autoStart;this.Ra=0;this.Ob=1;this.eb=2;this.speed=this.Ra;this.Ja=30;this.Ia=5;this.Ma=8;this.Sa=["Slow","Fast","Max"];this.ib=["(1Mhz)","(up to "+this.Ma+"Mhz)","(unlimited)"];this.P=[];this.K=[];this.oa=65536;this.pa=0;this.da=65536;this.ia=0;this.Qa=32;this.bb=2;this.Nb=1;this.o=[this.yc,this.Sd,this.Je,this.m,this.m,this.Ud,this.oc,this.m,this.Xd,this.Rd,this.nc,this.m,this.m,this.Od,this.lc,this.m,this.xc,this.Td,
|
||||||
|
this.m,this.m,this.m,this.Vd,this.pc,this.m,this.Bc,this.Qd,this.m,this.m,this.m,this.Pd,this.mc,this.m,this.pd,this.hc,this.m,this.m,this.uc,this.jc,this.ce,this.m,this.Zd,this.gc,this.be,this.m,this.tc,this.dc,this.$d,this.m,this.vc,this.ic,this.m,this.m,this.m,this.kc,this.de,this.m,this.te,this.fc,this.m,this.m,this.m,this.ec,this.ae,this.m,this.je,this.cd,this.m,this.m,this.m,this.ed,this.Ld,this.m,this.Wd,this.bd,this.Kd,this.m,this.od,this.Zc,this.Id,this.m,this.zc,this.dd,this.m,this.m,this.m,
|
||||||
|
this.fd,this.Md,this.m,this.Dc,this.ad,this.m,this.m,this.m,this.$c,this.Jd,this.m,this.ke,this.yb,this.m,this.m,this.m,this.Ab,this.he,this.m,this.Yd,this.xb,this.ge,this.m,this.nd,this.ub,this.ee,this.m,this.Ac,this.zb,this.m,this.m,this.m,this.Bb,this.ie,this.m,this.ve,this.wb,this.m,this.m,this.m,this.vb,this.fe,this.m,this.m,this.ze,this.m,this.m,this.He,this.Be,this.Ee,this.m,this.Yc,this.m,this.Ne,this.m,this.Ge,this.we,this.De,this.m,this.qc,this.Ae,this.m,this.m,this.Ie,this.Ce,this.Fe,this.m,
|
||||||
|
this.Pe,this.ye,this.Oe,this.m,this.m,this.xe,this.m,this.m,this.Fd,this.ud,this.Ad,this.m,this.Gd,this.wd,this.Bd,this.m,this.Le,this.td,this.Ke,this.m,this.Dd,this.qd,this.yd,this.m,this.rc,this.vd,this.m,this.m,this.Hd,this.xd,this.Cd,this.m,this.Ec,this.sd,this.Me,this.m,this.Ed,this.rd,this.zd,this.m,this.Rc,this.Jc,this.m,this.m,this.Sc,this.Lc,this.Vc,this.m,this.md,this.Ic,this.Xc,this.m,this.Qc,this.Fc,this.Tc,this.m,this.wc,this.Kc,this.m,this.m,this.m,this.Mc,this.Wc,this.m,this.Cc,this.Hc,
|
||||||
|
this.m,this.m,this.m,this.Gc,this.Uc,this.m,this.Oc,this.Gb,this.m,this.m,this.Pc,this.Ib,this.jd,this.m,this.ld,this.Fb,this.Nd,this.m,this.Nc,this.Cb,this.gd,this.m,this.sc,this.Hb,this.m,this.m,this.m,this.Jb,this.kd,this.m,this.ue,this.Eb,this.m,this.m,this.m,this.Db,this.hd,this.m];this.fb=[7,6,0,0,0,3,5,0,3,2,2,0,0,4,6,0,2,5,0,0,0,4,6,0,2,4,0,0,0,4,7,0,3,6,0,0,3,3,5,0,4,2,2,0,4,4,6,0,2,5,0,0,0,4,6,0,2,4,0,0,0,4,7,0,6,6,0,0,0,3,5,0,3,2,2,0,3,4,6,0,2,5,0,0,0,4,6,0,2,4,0,0,0,4,7,0,6,6,0,0,0,3,
|
||||||
|
5,0,4,2,2,0,5,4,6,0,2,5,0,0,0,4,6,0,2,4,0,0,0,4,7,0,0,6,0,0,3,3,3,0,2,0,2,0,4,4,4,0,2,5,0,0,4,4,4,0,2,4,2,0,0,4,0,0,2,6,2,0,3,3,3,0,2,2,2,0,4,4,4,0,2,5,0,0,4,4,4,0,2,4,2,0,4,4,4,0,2,6,0,0,3,3,5,0,2,2,2,0,4,4,6,0,2,5,0,0,0,4,6,0,2,4,0,0,0,4,7,0,2,6,0,0,3,3,5,0,2,2,2,0,4,4,6,0,2,5,0,0,0,4,6,0,2,4,0,0,0,4,7,0]}C(sa);f=sa.prototype;
|
||||||
|
f.reset=function(a){this.C.ma&&this.aa();ta(this);this.f=this.a[65532]|this.a[65533]<<8;this.C.Ca=!1;this.u?this.u.reset():a&&(!0===this.Ta||null===this.Ta&&!this.u&&void 0===this.H.run)&&this.va()};
|
||||||
|
f.T=function(a,b,c){a=!1;switch(b){case "run":this.H[b]=c;c.onclick=function(a){return function(){a.C.ma?a.aa():a.va()}}(this);a=!0;break;case "A":case "X":case "Y":case "S":case "PC":case "C":case "Z":case "I":case "D":case "B":case "V":case "N":case "speed":this.H[b]=c;a=!0;break;case "setSpeed":this.H[b]=c,c.onclick=function(a){return function(){M(a,2<=a.speed?a.Ra:a.speed+1,!0)}}(this),a=!0}return a};
|
||||||
|
f.ba=function(a,b,c){this.a=a;this.O=b;this.qa=c-b+1;this.Ga=this.O+this.qa;this.O?v("unsupported CPU address buffer offset ("+this.O+")"):this.X()};f.ha=function(a,b){if(a&&!this.C.M){this.J=b;(this.u=L(b,"debugger"))&&this.u.Tb();var c=L(b,"video");c&&(this.hb=function(a){return function(){ua(a)}}(c),this.ca=function(a){return function(){a.ca()}}(c));this.C.M=!0;this.reset(!0);this.update()}};function va(a,b,c,d,e){0>wa(a.P,b,c,d,e)&&(a.oa>b&&(a.oa=b),a.pa<c&&(a.pa=c),a.P.push([b,c,d,e]))}
|
||||||
|
function xa(a,b,c){for(var d=0;d<a.P.length;d++)b>=a.P[d][0]&&b<=a.P[d][1]&&a.P[d][3].call(a.P[d][2],b,c)}function N(a,b,c,d,e){0>wa(a.K,b,c,d,e)&&(a.da>b&&(a.da=b),a.ia<c&&(a.ia=c),a.K.push([b,c,d,e]))}function ya(a,b,c){for(var d=0;d<a.K.length;d++)b>=a.K[d][0]&&b<=a.K[d][1]&&a.K[d][3].call(a.K[d][2],b,c)}function wa(a,b,c,d,e){for(var g=0;g<a.length;g++)if(a[g][0]==b&&a[g][1]==c&&a[g][2]==d&&a[g][3]==e)return g;return-1}
|
||||||
|
function M(a,b,c){void 0!==b&&(a.speed=b,a.H.setSpeed&&(a.H.setSpeed.innerHTML=a.Sa[2<=b?0:b+1]),a.l("running at "+a.Sa[b].toLowerCase()+" speed "+a.ib[b]),c&&a.ca());a.U=0;a.Oa=t();za(a)}f.hb=function(){};f.ca=function(){};function O(a,b,c,d){void 0!==a.H[b]&&(void 0===d&&(d=1),c="0000"+c.toString(16),a.H[b].innerHTML=c.slice(c.length-d).toUpperCase())}
|
||||||
|
function Aa(a){O(a,"A",a.h,2);O(a,"X",a.w,2);O(a,"Y",a.F,2);var b=Ba(a);O(a,"C",b&1?1:0);O(a,"Z",b&2?1:0);O(a,"I",b&4?1:0);O(a,"D",b&8?1:0);O(a,"B",b&16?1:0);O(a,"V",b&64?1:0);O(a,"N",b&128?1:0);O(a,"S",a.G,4);O(a,"PC",a.f,4);a.H.speed&&a.ta&&(a.H.speed.innerHTML=a.ta.toFixed(1)+"Mhz")}
|
||||||
|
function za(a,b){var c=30;c<a.Ja&&(c=a.Ja);c<a.Ia&&(c=a.Ia);var d=1;b&&a.speed>a.Ra&&a.ta&&(d=a.ta);d>a.Ma&&2>a.speed&&(d=a.Ma);a.kb=Math.round(1E3/30);a.ja=Math.floor(1E6/c*d);a.ra=Math.floor(1E6/30*d);a.Xa=Math.floor(1E6/a.Ja*d);a.Wa=Math.floor(1E6/a.Ia*d);b||(a.R=a.ra,a.Z=a.Xa,a.V=a.Wa);a.Aa=0}
|
||||||
|
function Ca(a){var b=t(),c=a.kb;a.$&&(c=Math.round(c*a.$/a.ra));c=c-(b-a.lb);if(b=b-a.Oa)a.ta=Math.round(a.U/(100*b))/10,864E5<=b&&M(a);0>c?c=0:1==a.speed?a.ta<=a.Ma&&(c=0):2==a.speed&&(c=0);a.Aa+=a.$;return c}
|
||||||
|
f.va=function(){if(H(this,!0)){this.C.ma||(M(this),this.J&&this.J.start(),this.C.ma=!0,this.H.run&&(this.H.run.innerHTML="Halt"),this.ca());1E6<=this.Aa&&za(this,!0);this.$=0;this.lb=t();try{do{this.step(this.ja);var a=this.L-this.D;this.U+=a;this.$+=a;this.L=this.D=0;this.Z-=this.ja;0>=this.Z&&(this.Z+=this.Xa,this.hb());this.V-=this.ja;0>=this.V&&(this.V+=this.Wa,Aa(this));this.R-=this.ja;if(0>=this.R){this.R+=this.ra;break}}while(this.C.ma)}catch(b){this.aa();this.update();H(this,!1);pa(this,b.stack||
|
||||||
|
b.message);return}setTimeout(function(a){return function(){a.va()}}(this),Ca(this))}else this.update(),this.J&&this.J.stop(this.Oa,this.U)};
|
||||||
|
f.step=function(a){var b=!0;this.b=this.g=-1;var c;if(c=a&&this.u)c=this.u,c=0<c.sa.length||0<c.wa.length||0<c.ya.length;this.L=this.D=a;do{a=this.a[this.f];var d;if(d=c){d=this.u;var e=a,g=!1;Da(d,this.f,d.sa,"exec")?g=!0:(d.L++,d.B[e][1]++,d.xa[d.La++]=d.s.f,d.La>=d.xa.length&&(d.La=0));d=!!g}if(d){b=void 0;this.aa();break}this.f++;this.o[a].call(this);if(0<=this.b){this.b>=this.oa&&this.b<=this.pa&&xa(this,this.b,this.f);if(d=c)d=this.u,e=!1,Da(d,this.b,d.wa,"read")&&(e=!0),d=!!e;if(d){b=!1;this.aa();
|
||||||
|
break}this.b=-1}else if(0<=this.g){this.g>=this.da&&this.g<=this.ia&&ya(this,this.g,this.f);if(d=c){d=this.u;var e=this.g,g=this.a[this.g],h=!1;(g&255)!=g&&(d.l("invalid value at "+q(e)+": "+g),h=!0);Da(d,e,d.ya,"write")&&(h=!0);d=!!h}if(d){b=!1;this.aa();break}this.g=-1}this.D-=this.fb[a]}while(0<this.D);return b};function Ea(a){a.R=0;a.L-=a.D;a.D=0}f.aa=function(){J(this,!0);this.L-=this.D;this.D=0;this.C.ma&&(this.C.ma=!1,this.H.run&&(this.H.run.innerHTML="Run"))};
|
||||||
|
f.update=function(){this.hb();Aa(this)};function Fa(a){return a.C.ma?a.U+a.L-a.D:0}f.S=function(a){return this.a[a]};f.W=function(a,b){this.a[a]=b};function Ba(a){var b=a.c&256?1:0,b=b|(a.j&255?0:2),b=b|((a.v&255^a.A^a.v>>1)&128?64:0),b=b|(a.i&128?128:0);return a.B&60|b}
|
||||||
|
function Ga(a){a.B|=8;a.o[97]=a.$b;a.o[101]=a.bc;a.o[105]=a.Zb;a.o[109]=a.Wb;a.o[113]=a.ac;a.o[117]=a.cc;a.o[121]=a.Yb;a.o[125]=a.Xb;a.o[225]=a.pe;a.o[229]=a.re;a.o[233]=a.oe;a.o[237]=a.le;a.o[241]=a.qe;a.o[245]=a.se;a.o[249]=a.ne;a.o[253]=a.me}function Ha(a){a.B&=-9;a.o[97]=a.yb;a.o[101]=a.Ab;a.o[105]=a.xb;a.o[109]=a.ub;a.o[113]=a.zb;a.o[117]=a.Bb;a.o[121]=a.wb;a.o[125]=a.vb;a.o[225]=a.Gb;a.o[229]=a.Ib;a.o[233]=a.Fb;a.o[237]=a.Cb;a.o[241]=a.Hb;a.o[245]=a.Jb;a.o[249]=a.Eb;a.o[253]=a.Db}
|
||||||
|
function P(a,b,c){var d=a.c&256?1:0,e=(b&15)+(c&15)+d;10<=e&&(e=e+6&15|16);e+=(b&240)+(c&240);a.A=b^c;a.v=e;a.i=e&255;160<=e&&(e+=96);512<=e&&(e-=256);a.c=e;a.j=b+c+d&255;a.D--;return e&255}function Q(a,b,c){var d=a.c&256?0:1,e=(b&15)-(c&15)-d;0>e&&(e=(e-6&15)-16);e+=(b&240)-(c&240);0>e&&(e-=96);a.i=a.j=(a.c=b-c-d)&255;a.A=b^c;a.v=a.c;a.c^=256;a.D--;return e&255}function ta(a){a.h=0;a.w=0;a.F=0;a.G=256;a.B=0;a.i=0;a.j=0;a.A=0;a.v=0;a.c=0;a.f=0;a.b=-1;a.g=-1;a.ta=0;a.U=a.L=a.D=0}
|
||||||
|
f.yc=function(){this.f++;this.a[this.G--]=this.f>>8;this.G|=256;this.a[this.G--]=this.f&255;this.G|=256;this.B|=16;this.B=Ba(this);this.a[this.G--]=this.B;this.G|=256;this.B&=239;this.b=65534;this.f=this.a[this.b]|this.a[this.b+1]<<8};f.Sd=function(){this.b=this.a[this.f++]+this.w&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.i=this.j=this.h|=this.a[this.b]};f.Ud=function(){this.b=this.a[this.f++];this.i=this.j=this.h|=this.a[this.b]};
|
||||||
|
f.oc=function(){this.g=this.a[this.f++];this.c=this.a[this.g]<<1;this.i=this.j=this.a[this.g]=this.c&255};f.Xd=function(){this.B=Ba(this);this.a[this.G--]=this.B;this.G|=256};f.Rd=function(){this.b=this.f++;this.i=this.j=this.h|=this.a[this.b]};f.nc=function(){this.c=this.h<<1;this.i=this.j=this.h=this.c&255};f.Od=function(){this.b=this.a[this.f++]|this.a[this.f++]<<8;this.i=this.j=this.h|=this.a[this.b]};
|
||||||
|
f.lc=function(){this.g=this.a[this.f++]|this.a[this.f++]<<8;this.c=this.a[this.g]<<1;this.i=this.j=this.a[this.g]=this.c&255};f.xc=function(){this.f+=(this.i&128?0:(this.D--,this.a[this.f]<<24>>24))+1};f.Td=function(){this.b=this.a[this.f++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.F;this.i=this.j=this.h|=this.a[this.b]};f.Vd=function(){this.b=this.a[this.f++]+this.w&255;this.i=this.j=this.h|=this.a[this.b]};
|
||||||
|
f.pc=function(){this.g=this.a[this.f++]+this.w&255;this.c=this.a[this.g]<<1;this.i=this.j=this.a[this.g]=this.c&255};f.Bc=function(){this.c=0};f.Qd=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.F;this.i=this.j=this.h|=this.a[this.b]};f.Pd=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.w;this.i=this.j=this.h|=this.a[this.b]};f.mc=function(){this.g=(this.a[this.f++]|this.a[this.f++]<<8)+this.w;this.c=this.a[this.g]<<1;this.i=this.j=this.a[this.g]=this.c&255};
|
||||||
|
f.pd=function(){this.b=this.f++;this.a[this.G--]=this.f>>8;this.G|=256;this.a[this.G--]=this.f&255;this.G|=256;this.f=this.a[this.b]|this.a[this.b+1]<<8};f.hc=function(){this.b=this.a[this.f++]+this.w&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.i=this.j=this.h&=this.a[this.b]};f.uc=function(){this.b=this.a[this.f++];this.j=this.h&this.a[this.b];this.i=this.i&127|this.a[this.b]&128;this.v=0;this.A=this.a[this.b]&64?128:0};f.jc=function(){this.b=this.a[this.f++];this.i=this.j=this.h&=this.a[this.b]};
|
||||||
|
f.ce=function(){this.g=this.a[this.f++];this.c=this.c&65280|this.a[this.g];this.c<<=1;this.c=this.c&65534|(this.c&512?1:0);this.i=this.j=this.a[this.g]=this.c&255};f.Zd=function(){this.G=this.G+1&255|256;this.B=this.a[this.G];this.c=this.B&1?256:0;this.j=this.B&2?0:1;this.i=this.B&128;this.v=0;this.A=this.B&64?128:0};f.gc=function(){this.b=this.f++;this.i=this.j=this.h&=this.a[this.b]};
|
||||||
|
f.be=function(){this.c=this.c&65280|this.h;this.c<<=1;this.c=this.c&65534|(this.c&512?1:0);this.i=this.j=this.h=this.c&255};f.tc=function(){this.b=this.a[this.f++]|this.a[this.f++]<<8;this.j=this.h&this.a[this.b];this.i=this.i&127|this.a[this.b]&128;this.v=0;this.A=this.a[this.b]&64?128:0};f.dc=function(){this.b=this.a[this.f++]|this.a[this.f++]<<8;this.i=this.j=this.h&=this.a[this.b]};
|
||||||
|
f.$d=function(){this.g=this.a[this.f++]|this.a[this.f++]<<8;this.c=this.c&65280|this.a[this.g];this.c<<=1;this.c=this.c&65534|(this.c&512?1:0);this.i=this.j=this.a[this.g]=this.c&255};f.vc=function(){this.f+=(this.i&128?(this.D--,this.a[this.f]<<24>>24):0)+1};f.ic=function(){this.b=this.a[this.f++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.F;this.i=this.j=this.h&=this.a[this.b]};f.kc=function(){this.b=this.a[this.f++]+this.w&255;this.i=this.j=this.h&=this.a[this.b]};
|
||||||
|
f.de=function(){this.g=this.a[this.f++]+this.w&255;this.c=this.c&65280|this.a[this.g];this.c<<=1;this.c=this.c&65534|(this.c&512?1:0);this.i=this.j=this.a[this.g]=this.c&255};f.te=function(){this.c=256};f.fc=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.F;this.i=this.j=this.h&=this.a[this.b]};f.ec=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.w;this.i=this.j=this.h&=this.a[this.b]};
|
||||||
|
f.ae=function(){this.g=(this.a[this.f++]|this.a[this.f++]<<8)+this.w;this.c=this.c&65280|this.a[this.g];this.c<<=1;this.c=this.c&65534|(this.c&512?1:0);this.i=this.j=this.a[this.g]=this.c&255};f.je=function(){this.G=this.G+1&255|256;this.B=this.a[this.G];this.c=this.B&1?256:0;this.j=this.B&2?0:1;this.i=this.B&128;this.v=0;this.A=this.B&64?128:0;this.G=this.G+2&255|256;this.f=this.a[this.G-1|256]|this.a[this.G]<<8};
|
||||||
|
f.cd=function(){this.b=this.a[this.f++]+this.w&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.i=this.j=this.h^=this.a[this.b]};f.ed=function(){this.b=this.a[this.f++];this.i=this.j=this.h^=this.a[this.b]};f.Ld=function(){this.g=this.a[this.f++];this.c=this.c&65279|(this.a[this.g]&1?256:0);this.a[this.g]=(this.c=this.c&65280|this.a[this.g]>>1)&255;this.i=this.j=this.c&255};f.Wd=function(){this.a[this.G--]=this.h;this.G|=256};f.bd=function(){this.b=this.f++;this.i=this.j=this.h^=this.a[this.b]};
|
||||||
|
f.Kd=function(){this.c=this.c&65279|(this.h&1?256:0);this.h=(this.c=this.c&65280|this.h>>1)&255;this.i=this.j=this.c&255};f.od=function(){this.b=this.f;this.f=this.a[this.b]|this.a[this.b+1]<<8};f.Zc=function(){this.b=this.a[this.f++]|this.a[this.f++]<<8;this.i=this.j=this.h^=this.a[this.b]};f.Id=function(){this.g=this.a[this.f++]|this.a[this.f++]<<8;this.c=this.c&65279|(this.a[this.g]&1?256:0);this.a[this.g]=(this.c=this.c&65280|this.a[this.g]>>1)&255;this.i=this.j=this.c&255};
|
||||||
|
f.zc=function(){this.f+=((this.v&255^this.A^this.v>>1)&128?0:(this.D--,this.a[this.f]<<24>>24))+1};f.dd=function(){this.b=this.a[this.f++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.F;this.i=this.j=this.h^=this.a[this.b]};f.fd=function(){this.b=this.a[this.f++]+this.w&255;this.i=this.j=this.h^=this.a[this.b]};f.Md=function(){this.g=this.a[this.f++]+this.w&255;this.c=this.c&65279|(this.a[this.g]&1?256:0);this.a[this.g]=(this.c=this.c&65280|this.a[this.g]>>1)&255;this.i=this.j=this.c&255};
|
||||||
|
f.Dc=function(){this.B&=251};f.ad=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.F;this.i=this.j=this.h^=this.a[this.b]};f.$c=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.w;this.i=this.j=this.h^=this.a[this.b]};f.Jd=function(){this.g=(this.a[this.f++]|this.a[this.f++]<<8)+this.w;this.c=this.c&65279|(this.a[this.g]&1?256:0);this.a[this.g]=(this.c=this.c&65280|this.a[this.g]>>1)&255;this.i=this.j=this.c&255};
|
||||||
|
f.ke=function(){this.G=this.G+2&255|256;this.f=(this.a[this.G-1|256]|this.a[this.G]<<8)+1};f.yb=function(){this.b=this.a[this.f++]+this.w&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.c=this.h+this.a[this.b]+(this.c&256?1:0);this.A=this.h^this.a[this.b];this.v=this.c;this.i=this.j=this.h=this.c&255};f.$b=function(){this.b=this.a[this.f++]+this.w&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.h=P(this,this.h,this.a[this.b])};
|
||||||
|
f.Ab=function(){this.b=this.a[this.f++];this.c=this.h+this.a[this.b]+(this.c&256?1:0);this.A=this.h^this.a[this.b];this.v=this.c;this.i=this.j=this.h=this.c&255};f.bc=function(){this.b=this.a[this.f++];this.h=P(this,this.h,this.a[this.b])};f.he=function(){this.g=this.a[this.f++];this.c=this.c&65280|this.a[this.g];this.c=this.c&65023|(this.c&1?512:0);this.c>>=1;this.i=this.j=this.a[this.g]=this.c&255};f.Yd=function(){this.G=this.G+1&255|256;this.i=this.j=this.h=this.a[this.G]};
|
||||||
|
f.xb=function(){this.b=this.f++;this.c=this.h+this.a[this.b]+(this.c&256?1:0);this.A=this.h^this.a[this.b];this.v=this.c;this.i=this.j=this.h=this.c&255};f.Zb=function(){this.b=this.f++;this.h=P(this,this.h,this.a[this.b])};f.ge=function(){this.c=this.c&65280|this.h;this.c=this.c&65023|(this.c&1?512:0);this.c>>=1;this.i=this.j=this.h=this.c&255};f.nd=function(){this.b=this.a[this.f++]|this.a[this.f++]<<8;this.f=this.a[this.b]|this.a[this.b+1]<<8};
|
||||||
|
f.ub=function(){this.b=this.a[this.f++]|this.a[this.f++]<<8;this.c=this.h+this.a[this.b]+(this.c&256?1:0);this.A=this.h^this.a[this.b];this.v=this.c;this.i=this.j=this.h=this.c&255};f.Wb=function(){this.b=this.a[this.f++]|this.a[this.f++]<<8;this.h=P(this,this.h,this.a[this.b])};f.ee=function(){this.g=this.a[this.f++]|this.a[this.f++]<<8;this.c=this.c&65280|this.a[this.g];this.c=this.c&65023|(this.c&1?512:0);this.c>>=1;this.i=this.j=this.a[this.g]=this.c&255};
|
||||||
|
f.Ac=function(){this.f+=((this.v&255^this.A^this.v>>1)&128?(this.D--,this.a[this.f]<<24>>24):0)+1};f.zb=function(){this.b=this.a[this.f++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.F;this.c=this.h+this.a[this.b]+(this.c&256?1:0);this.A=this.h^this.a[this.b];this.v=this.c;this.i=this.j=this.h=this.c&255};f.ac=function(){this.b=this.a[this.f++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.F;this.h=P(this,this.h,this.a[this.b])};
|
||||||
|
f.Bb=function(){this.b=this.a[this.f++]+this.w&255;this.c=this.h+this.a[this.b]+(this.c&256?1:0);this.A=this.h^this.a[this.b];this.v=this.c;this.i=this.j=this.h=this.c&255};f.cc=function(){this.b=this.a[this.f++]+this.w&255;this.h=P(this,this.h,this.a[this.b])};f.ie=function(){this.g=this.a[this.f++]+this.w&255;this.c=this.c&65280|this.a[this.g];this.c=this.c&65023|(this.c&1?512:0);this.c>>=1;this.i=this.j=this.a[this.g]=this.c&255};f.ve=function(){this.B|=4};
|
||||||
|
f.wb=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.F;this.c=this.h+this.a[this.b]+(this.c&256?1:0);this.A=this.h^this.a[this.b];this.v=this.c;this.i=this.j=this.h=this.c&255};f.Yb=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.F;this.h=P(this,this.h,this.a[this.b])};f.vb=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.w;this.c=this.h+this.a[this.b]+(this.c&256?1:0);this.A=this.h^this.a[this.b];this.v=this.c;this.i=this.j=this.h=this.c&255};
|
||||||
|
f.Xb=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.w;this.h=P(this,this.h,this.a[this.b])};f.fe=function(){this.g=(this.a[this.f++]|this.a[this.f++]<<8)+this.w;this.c=this.c&65280|this.a[this.g];this.c=this.c&65023|(this.c&1?512:0);this.c>>=1;this.i=this.j=this.a[this.g]=this.c&255};f.ze=function(){this.g=this.a[this.f++]+this.w&255;this.g=this.a[this.g]|this.a[this.g+1]<<8;this.a[this.g]=this.h};f.He=function(){this.g=this.a[this.f++];this.a[this.g]=this.F};
|
||||||
|
f.Be=function(){this.g=this.a[this.f++];this.a[this.g]=this.h};f.Ee=function(){this.g=this.a[this.f++];this.a[this.g]=this.w};f.Yc=function(){this.i=this.j=this.F=this.F-1&255};f.Ne=function(){this.i=this.j=this.h=this.w};f.Ge=function(){this.g=this.a[this.f++]|this.a[this.f++]<<8;this.a[this.g]=this.F};f.we=function(){this.g=this.a[this.f++]|this.a[this.f++]<<8;this.a[this.g]=this.h};f.De=function(){this.g=this.a[this.f++]|this.a[this.f++]<<8;this.a[this.g]=this.w};
|
||||||
|
f.qc=function(){this.f+=(this.c&256?0:(this.D--,this.a[this.f]<<24>>24))+1};f.Ae=function(){this.g=this.a[this.f++];this.g=(this.a[this.g]|this.a[this.g+1]<<8)+this.F;this.a[this.g]=this.h};f.Ie=function(){this.g=this.a[this.f++]+this.w&255;this.a[this.g]=this.F};f.Ce=function(){this.g=this.a[this.f++]+this.w&255;this.a[this.g]=this.h};f.Fe=function(){this.g=this.a[this.f++]+this.F&255;this.a[this.g]=this.w};f.Pe=function(){this.i=this.j=this.h=this.F};
|
||||||
|
f.ye=function(){this.g=(this.a[this.f++]|this.a[this.f++]<<8)+this.F;this.a[this.g]=this.h};f.Oe=function(){this.G=this.w|256};f.xe=function(){this.g=(this.a[this.f++]|this.a[this.f++]<<8)+this.w;this.a[this.g]=this.h};f.Fd=function(){this.b=this.f++;this.i=this.j=this.F=this.a[this.b]};f.ud=function(){this.b=this.a[this.f++]+this.w&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.i=this.j=this.h=this.a[this.b]};f.Ad=function(){this.b=this.f++;this.i=this.j=this.w=this.a[this.b]};
|
||||||
|
f.Gd=function(){this.b=this.a[this.f++];this.i=this.j=this.F=this.a[this.b]};f.wd=function(){this.b=this.a[this.f++];this.i=this.j=this.h=this.a[this.b]};f.Bd=function(){this.b=this.a[this.f++];this.i=this.j=this.w=this.a[this.b]};f.Le=function(){this.i=this.j=this.F=this.h};f.td=function(){this.b=this.f++;this.i=this.j=this.h=this.a[this.b]};f.Ke=function(){this.i=this.j=this.w=this.h};f.Dd=function(){this.b=this.a[this.f++]|this.a[this.f++]<<8;this.i=this.j=this.F=this.a[this.b]};
|
||||||
|
f.qd=function(){this.b=this.a[this.f++]|this.a[this.f++]<<8;this.i=this.j=this.h=this.a[this.b]};f.yd=function(){this.b=this.a[this.f++]|this.a[this.f++]<<8;this.i=this.j=this.w=this.a[this.b]};f.rc=function(){this.f+=(this.c&256?(this.D--,this.a[this.f]<<24>>24):0)+1};f.vd=function(){this.b=this.a[this.f++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.F;this.i=this.j=this.h=this.a[this.b]};f.Hd=function(){this.b=this.a[this.f++]+this.w&255;this.i=this.j=this.F=this.a[this.b]};
|
||||||
|
f.xd=function(){this.b=this.a[this.f++]+this.w&255;this.i=this.j=this.h=this.a[this.b]};f.Cd=function(){this.b=this.a[this.f++]+this.F&255;this.i=this.j=this.w=this.a[this.b]};f.Ec=function(){this.A=this.v=0};f.sd=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.F;this.i=this.j=this.h=this.a[this.b]};f.Me=function(){this.i=this.j=this.w=this.G&255};f.Ed=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.w;this.i=this.j=this.F=this.a[this.b]};
|
||||||
|
f.rd=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.w;this.i=this.j=this.h=this.a[this.b]};f.zd=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.F;this.i=this.j=this.w=this.a[this.b]};f.Rc=function(){this.b=this.f++;this.i=this.j=this.c=this.F-this.a[this.b];this.c^=256};f.Jc=function(){this.b=this.a[this.f++]+this.w&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.i=this.j=this.c=this.h-this.a[this.b];this.c^=256};
|
||||||
|
f.Sc=function(){this.b=this.a[this.f++];this.i=this.j=this.c=this.F-this.a[this.b];this.c^=256};f.Lc=function(){this.b=this.a[this.f++];this.i=this.j=this.c=this.h-this.a[this.b];this.c^=256};f.Vc=function(){this.g=this.a[this.f++];this.i=this.j=this.a[this.g]=this.a[this.g]-1&255};f.md=function(){this.i=this.j=this.F=this.F+1&255};f.Ic=function(){this.b=this.f++;this.i=this.j=this.c=this.h-this.a[this.b];this.c^=256};f.Xc=function(){this.i=this.j=this.w=this.w-1&255};
|
||||||
|
f.Qc=function(){this.b=this.a[this.f++]|this.a[this.f++]<<8;this.i=this.j=this.c=this.F-this.a[this.b];this.c^=256};f.Fc=function(){this.b=this.a[this.f++]|this.a[this.f++]<<8;this.i=this.j=this.c=this.h-this.a[this.b];this.c^=256};f.Tc=function(){this.g=this.a[this.f++]|this.a[this.f++]<<8;this.i=this.j=this.a[this.g]=this.a[this.g]-1&255};f.wc=function(){this.f+=(this.j&255?(this.D--,this.a[this.f]<<24>>24):0)+1};
|
||||||
|
f.Kc=function(){this.b=this.a[this.f++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.F;this.i=this.j=this.c=this.h-this.a[this.b];this.c^=256};f.Mc=function(){this.b=this.a[this.f++]+this.w&255;this.i=this.j=this.c=this.h-this.a[this.b];this.c^=256};f.Wc=function(){this.g=this.a[this.f++]+this.w&255;this.i=this.j=this.a[this.g]=this.a[this.g]-1&255};f.Cc=function(){Ha(this)};
|
||||||
|
f.Hc=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.F;this.i=this.j=this.c=this.h-this.a[this.b];this.c^=256};f.Gc=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.w;this.i=this.j=this.c=this.h-this.a[this.b];this.c^=256};f.Uc=function(){this.g=(this.a[this.f++]|this.a[this.f++]<<8)+this.w;this.i=this.j=this.a[this.g]=this.a[this.g]-1&255};f.Oc=function(){this.b=this.f++;this.i=this.j=this.c=this.w-this.a[this.b];this.c^=256};
|
||||||
|
f.Gb=function(){this.b=this.a[this.f++]+this.w&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.c=this.h-this.a[this.b]-(this.c&256?0:1);this.A=this.h^this.a[this.b];this.v=this.c;this.i=this.j=this.h=this.c&255;this.c^=256};f.pe=function(){this.b=this.a[this.f++]+this.w&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.h=Q(this,this.h,this.a[this.b])};f.Pc=function(){this.b=this.a[this.f++];this.i=this.j=this.c=this.w-this.a[this.b];this.c^=256};
|
||||||
|
f.Ib=function(){this.b=this.a[this.f++];this.c=this.h-this.a[this.b]-(this.c&256?0:1);this.A=this.h^this.a[this.b];this.v=this.c;this.i=this.j=this.h=this.c&255;this.c^=256};f.re=function(){this.b=this.a[this.f++];this.h=Q(this,this.h,this.a[this.b])};f.jd=function(){this.g=this.a[this.f++];this.i=this.j=this.a[this.g]=this.a[this.g]+1&255};f.ld=function(){this.i=this.j=this.w=this.w+1&255};
|
||||||
|
f.Fb=function(){this.b=this.f++;this.c=this.h-this.a[this.b]-(this.c&256?0:1);this.A=this.h^this.a[this.b];this.v=this.c;this.i=this.j=this.h=this.c&255;this.c^=256};f.oe=function(){this.b=this.f++;this.h=Q(this,this.h,this.a[this.b])};f.Nd=function(){};f.Nc=function(){this.b=this.a[this.f++]|this.a[this.f++]<<8;this.i=this.j=this.c=this.w-this.a[this.b];this.c^=256};
|
||||||
|
f.Cb=function(){this.b=this.a[this.f++]|this.a[this.f++]<<8;this.c=this.h-this.a[this.b]-(this.c&256?0:1);this.A=this.h^this.a[this.b];this.v=this.c;this.i=this.j=this.h=this.c&255;this.c^=256};f.le=function(){this.b=this.a[this.f++]|this.a[this.f++]<<8;this.h=Q(this,this.h,this.a[this.b])};f.gd=function(){this.g=this.a[this.f++]|this.a[this.f++]<<8;this.i=this.j=this.a[this.g]=this.a[this.g]+1&255};f.sc=function(){this.f+=(this.j&255?0:(this.D--,this.a[this.f]<<24>>24))+1};
|
||||||
|
f.Hb=function(){this.b=this.a[this.f++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.F;this.c=this.h-this.a[this.b]-(this.c&256?0:1);this.A=this.h^this.a[this.b];this.v=this.c;this.i=this.j=this.h=this.c&255;this.c^=256};f.qe=function(){this.b=this.a[this.f++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.F;this.h=Q(this,this.h,this.a[this.b])};
|
||||||
|
f.Jb=function(){this.b=this.a[this.f++]+this.w&255;this.c=this.h-this.a[this.b]-(this.c&256?0:1);this.A=this.h^this.a[this.b];this.v=this.c;this.i=this.j=this.h=this.c&255;this.c^=256};f.se=function(){this.b=this.a[this.f++]+this.w&255;this.h=Q(this,this.h,this.a[this.b])};f.kd=function(){this.g=this.a[this.f++]+this.w&255;this.i=this.j=this.a[this.g]=this.a[this.g]+1&255};f.ue=function(){Ga(this)};
|
||||||
|
f.Eb=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.F;this.c=this.h-this.a[this.b]-(this.c&256?0:1);this.A=this.h^this.a[this.b];this.v=this.c;this.i=this.j=this.h=this.c&255;this.c^=256};f.ne=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.F;this.h=Q(this,this.h,this.a[this.b])};
|
||||||
|
f.Db=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.w;this.c=this.h-this.a[this.b]-(this.c&256?0:1);this.A=this.h^this.a[this.b];this.v=this.c;this.i=this.j=this.h=this.c&255;this.c^=256};f.me=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.w;this.h=Q(this,this.h,this.a[this.b])};f.hd=function(){this.g=(this.a[this.f++]|this.a[this.f++]<<8)+this.w;this.i=this.j=this.a[this.g]=this.a[this.g]+1&255};
|
||||||
|
f.Je=function(){var a;a=this.a[this.f++];switch(a){case 0:this.l("HALT");this.aa();break;case 1:a=this.f;for(var b="";a<this.a.length;){var c=this.a[a++];if(!c)break;b+=String.fromCharCode(c)}this.f=a;b=b.replace(/%A/g,n(this.h,2)).replace(/%X/g,n(this.w,2)).replace(/%Y/g,n(this.F,2));this.l(b);Ea(this);break;default:this.f-=2,this.l("undefined opSim: "+p(a)+" at "+q(this.f)),this.aa()}};f.m=function(){var a=this.a[--this.f];this.l("undefined opcode: "+p(a)+" at "+q(this.f));this.aa()};
|
||||||
|
y(function(){for(var a=F(window.document,"c1pjs","cpu"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new sa(d);E(d,c)}});function R(a){A.call(this,"C1PROM",a);this.b=this.a=null;this.g=a.size;if(this.o=a.image){a=this.o;var b;b=this.o;var c="",d=b.lastIndexOf(".");0<=d&&(c=b.substr(d+1).toLowerCase());b=c;"json"!=b&&"hex"!=b&&(a="http://"+(window?window.location.host:"www.pcjs.org")+"/api/v1/dump?file="+this.o+"&format=bytes");u(a,this,this.A)}}C(R);
|
||||||
|
R.prototype.ba=function(a,b,c,d){this.a=a;this.v=b;a=c-b+1;this.g||(this.g=a);a!=this.g?pa(this,"computer-specified ROM size ("+q(a)+") does not match component-specified size ("+q(this.g)+")"):(d&&(this.s=d,N(d,b,c,this,this.W)),Ia(this))};R.prototype.ha=function(a,b){a&&!this.C.M&&(this.C.M=!0,this.u=L(b,"debugger"))};R.prototype.W=function(a,b){if(void 0!==b){this.u&&S(this.u,this,a,b,this.u.pb,!0);var c=a-this.v;this.a[this.v+c]=this.b?this.b[c]:0}};
|
||||||
|
R.prototype.A=function(a,b,c){if(c)this.l('Error loading ROM "'+a+'" ('+c+")");else{if("["==b.charAt(0)||"{"==b.charAt(0))try{var d=eval("("+b+")"),e=d.bytes;e?this.b=e:this.b=d}catch(g){this.l('Error processing ROM "'+a+'": '+g.message);return}else for(a=b.replace(/\n/gm," ").replace(/ +$/,"").split(" "),this.b=Array(a.length),b=0;b<a.length;b++)this.b[b]=parseInt(a[b],16);Ia(this)}};
|
||||||
|
function Ia(a){if(!K(a))if(!a.o)a.X();else if(a.b&&a.a){var b=a.b.length;if(b!=a.g)pa(a,"ROM image size ("+q(b)+") does not match component-specified size ("+q(a.g)+")");else{for(var c=0;c<b;c++)a.a[a.v+c]=a.b[c];a.X()}}}y(function(){for(var a=F(window.document,"c1pjs","rom"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new R(d);E(d,c)}});function Ja(a){A.call(this,"C1PRAM",a)}C(Ja);Ja.prototype.ba=function(a){this.a=a;this.X()};
|
||||||
|
y(function(){for(var a=F(window.document,"c1pjs","ram"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new Ja(d);E(d,c)}});
|
||||||
|
function Ka(a){A.call(this,"C1PKeyboard",a);this.C.M=!1;this.Ia=a.model;this.da=8;this.fb=10;this.Xa=13;this.ia=27;this.Oa=this.da;this.Wa=this.fb;this.Ja=this.Xa;this.$=this.ia;this.L=241;this.Z=224;this.Sa=3;this.Ta=15;this.K=1;this.D=[];this.D["break"]=this.Z;this.D.esc=this.$;this.D["ctrl-c"]=this.Sa;this.D["ctrl-o"]=this.Ta;this.b=[];this.b[49]=30464;this.b[33]=30704;this.b[50]=30208;this.b[34]=30448;this.b[51]=29952;this.b[35]=30192;this.b[52]=29696;this.b[36]=29936;this.b[53]=29440;this.b[37]=
|
||||||
|
29680;this.b[54]=29184;this.b[38]=29424;this.b[55]=28928;this.b[39]=29168;this.b[56]=26368;this.b[40]=26608;this.b[57]=26112;this.b[41]=26352;this.b[48]=25856;this.b[58]=25600;this.b[42]=25840;this.b[45]=25344;this.b[61]=25584;this.b[46]=22272;this.b[62]=22512;this.b[108]=22016;this.b[76]=22256;this.b[92]=22256;this.b[111]=21760;this.b[79]=22E3;this.b[this.Oa]=22E3;this.b[this.Wa]=21504;this.b[this.Ja]=21248;this.b[119]=18176;this.b[87]=18416;this.b[101]=17920;this.b[69]=18160;this.b[114]=17664;this.b[82]=
|
||||||
|
17904;this.b[116]=17408;this.b[84]=17648;this.b[121]=17152;this.b[89]=17392;this.b[117]=16896;this.b[85]=17136;this.b[105]=16640;this.b[73]=16880;this.b[115]=14080;this.b[83]=14320;this.b[100]=13824;this.b[68]=14064;this.b[102]=13568;this.b[70]=13808;this.b[103]=13312;this.b[71]=13552;this.b[104]=13056;this.b[72]=13296;this.b[106]=12800;this.b[74]=13040;this.b[107]=12544;this.b[75]=12784;this.b[91]=12784;this.b[120]=9984;this.b[88]=10224;this.b[99]=9728;this.b[67]=9968;this.b[118]=9472;this.b[86]=
|
||||||
|
9712;this.b[98]=9216;this.b[66]=9456;this.b[110]=8960;this.b[78]=9200;this.b[94]=9200;this.b[109]=8704;this.b[77]=8944;this.b[93]=8944;this.b[44]=8448;this.b[60]=8688;this.b[113]=5888;this.b[81]=6128;this.b[97]=5632;this.b[65]=5872;this.b[122]=5376;this.b[90]=5616;this.b[32]=5120;this.b[47]=4864;this.b[63]=5104;this.b[59]=4608;this.b[43]=4848;this.b[112]=4352;this.b[80]=4592;this.b[64]=4592;this.b[this.L]=1536;this.b[this.$]=1280;this.b[240]=512;this.b[242]=256;this.b[244]=0;this.reset()}C(Ka);
|
||||||
|
f=Ka.prototype;f.reset=function(){this.Na(this.Ia);this.g=this.K;this.oa=0;this.o=[this.K,0,0,0,0,0,0,0];this.P=[];if(this.v)for(var a in this.v)isNaN(a)||this.v[a]&&clearTimeout(this.v[a]);this.v=[];this.Aa=this.A=0;this.pa=-1;this.ja=this.o;this.qa=this.V=0;this.B=""};
|
||||||
|
f.T=function(a,b,c){if(void 0===this.H[b])switch(b){case "keyDown":return this.H[b]=c,c.onkeydown=function(a){return function(b){return La(a,b,!0)}}(this),!0;case "keyPress":return this.H[b]=c,c.onkeypress=function(a){return function(b){var c=!0;b=b||window.event;b=b.which||b.keyCode;a.B="";a.g&8?a.g&=-9:c=!Ma(a,b);a.u&&G(a.u,a.u.za)&&a.u.message("keyPress("+p(b)+"): "+(c?"pass":"consume"));return c}}(this),!0;case "keyUp":return this.H[b]=c,c.onkeyup=function(a){return function(b){return La(a,b,
|
||||||
|
!1)}}(this),!0;case "break":return this.H[b]=c,c.onclick=function(a){return function(){a.J&&a.J.reset(!0)}}(this),!0;default:if(void 0!==this.D[b])return this.H[b]=c,c.onclick=function(a,b,c){return function(){a.s&&a.s.ca();return!Ma(a,c)}}(this,b,this.D[b]),!0}return!1};f.ba=function(a,b,c,d){this.a=a;this.ra=b;this.ib=c-b+1;this.lb=this.ra+this.ib;d&&(this.s=d,N(d,b,c,this,this.W));this.X()};f.Na=function(a){this.O=a;this.R=255;600!=this.O&&(this.R=0,this.l("updated keyboard model: "+this.O))};
|
||||||
|
f.ha=function(a,b){a&&!this.C.M&&(this.C.M=!0,this.J=b,this.u=L(b,"debugger"))};f.X=function(){this.U=(this.kb=w("iOS"))||w("Android");this.u&&G(this.u,this.u.za)&&this.u.message("mobile keyboard support: "+(this.U?"true":"false")+" ("+window.navigator.userAgent+")");A.prototype.X.call(this)};function Na(a,b){var c=b?100:250;a.s&&a.s.ta&&(c/=a.s.ta);return c}function Oa(a,b){!a.A||void 0!==b&&b==a.A||(a.u&&G(a.u,a.u.za)&&a.u.message("autoClear("+p(a.A)+")"),clearTimeout(a.v[a.A]),T(a,a.A,!1,4))}
|
||||||
|
function U(a,b,c){a.B=b;Pa(a,c||300)}function Pa(a,b){if(0<a.B.length){var c=a.B.charCodeAt(0);10==c&&(c=13);65<=c&&90>=c&&(c+=32);a.B=a.B.substr(1);Ma(a,c)}0<a.B.length&&setTimeout(function(a){return function(){Pa(a,b)}}(a),b)}
|
||||||
|
function La(a,b,c){var d,e=!c;b=b.keyCode;c&&(a.Aa=b);16==b?(a.g&=-5,c&&(a.g|=4),b+=224,e=!1):18==b?(a.g&=-3,c&&(a.g|=2),b+=224,e=!1):b==a.L-224?(a.g&=-65,c&&(a.g|=64),b+=224,e=!1):20==b?(c=!c,a.g&=~a.K,c&&(a.g|=a.K),b+=224,e=!1):91==b?(a.g&=-9,c&&(a.g|=8),e=!1,d=!0):d=9==b?e=!1:b==a.ia||b==a.da?c?!Ma(a,b):!1:!0;e&&(a.g&=-9,a.U||b!=a.Aa||Oa(a));void 0===d&&(d=!T(a,b,c,2));a.u&&G(a.u,a.u.za)&&a.u.message("key"+(c?"Down":"Up")+"("+p(b)+"): "+(d?"pass":"consume"));return d}
|
||||||
|
function Ma(a,b){var c=!1;b==a.Z?a.J&&(a.J.reset(!0),c=!0):(a.U&&65<=b&&90>=b&&(b+=32),Oa(a,b),T(a,b,!0,0)&&(a.s.speed==a.s.eb?T(a,b,!1,1):(c=!1,a.v[b]&&(clearTimeout(a.v[b]),c=!0),c=Na(a,c),a.v[a.A=b]=setTimeout(function(a){return function(){T(a,b,!1,3)}}(a),c),a.u&&G(a.u,a.u.za)&&a.u.message("keyPressSimulate("+p(b)+"): setTimeout()")),c=!0));a.u&&G(a.u,a.u.za)&&a.u.message("keyPressSimulate("+p(b)+"): "+(c?"true":"false"));return c}
|
||||||
|
function T(a,b,c,d){var e=!1;c||(a.v[b]=null,a.A==b&&(a.A=0));var g=0,h=a.b[b];void 0===h&&(1<=b&&26>=b&&(b+=64,g=a.L),h=a.b[b]);void 0!==h&&(b=h>>12,e=h>>8&15,g||(g=h&255),c?(a.o[b]|=1<<e,a.o[0]=g==a.L?a.o[0]|64:240==g?a.o[0]|4:242==g?a.o[0]|2:a.o[0]&-71):(a.o[b]&=~(1<<e),a.o[0]&=-71,a.o[0]|=a.g&70),c=0==d&&!a.P.length,a.P.push(a.o.slice()),Qa(a,c),e=!0);return e}f.S=function(){};f.W=function(a){this.oa=this.s.S(a)^this.R;this.V++;Qa(this,!1,a)};
|
||||||
|
function Qa(a,b,c){var d=Fa(a.s);b||(a.s.speed==a.s.eb?b=void 0!==c&&32<=a.V:(b=d-a.qa,b=0>b||8192<=b));b&&(b=a.P.shift(),void 0!==b&&(a.ja=b),a.V=0,a.qa=d);for(b=d=0;8>b;b++)a.oa&1<<b&&(d|=a.ja[b]);d^=a.R;if(void 0!==c)a.a[c]=d;else if(c=a.ra,d!=a.pa)for(;c<a.lb;c++)a.a[c]=d;a.pa=d}y(function(){for(var a=F(window.document,"c1pjs","keyboard"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new Ka(d);E(d,c)}});
|
||||||
|
function Ra(a,b,c,d){A.call(this,"C1PVideo",a);this.ja=a.model;this.Z=a.charCols;this.$=a.charRows;this.pa=a.screenWidth;this.qa=a.screenHeight;this.A=a.charWidth;this.B=a.charHeight;Sa(this);this.D=b;this.ia=c;this.o=d}C(Ra);f=Ra.prototype;f.reset=function(a){this.Na(this.ja);if(this.a)for(var b=this.K;b<this.P;b++)this.a[b]=a?Math.floor(256*Math.random()):32};f.T=function(a,b,c){switch(b){case "refresh":return this.H[b]=c,c.onclick=function(a){return function(){Ta(a);ua(a)}}(this),!0}return!1};
|
||||||
|
f.ba=function(a,b,c,d){this.a=a;this.K=b;this.oa=c-b+1;this.P=this.K+this.oa;d&&(this.s=d,va(d,56832,56832,this,this.S),N(d,56832,56832,this,this.W));this.reset(!0)};function Sa(a,b,c,d,e){a.J=void 0!==b?b:a.Z;a.ra=void 0!==c?c:a.$;a.g=a.J*a.ra;a.P=a.K+a.g;a.V=void 0!==d?d:0;a.da=void 0!==e?e:c;a.R=Math.floor(a.pa/a.J);a.U=Math.floor(a.qa/a.da)}f.ca=function(){this.D.focus()};
|
||||||
|
f.Na=function(a){this.O=a;600==this.O?(Sa(this,this.Z,this.$,3,25),1024==this.g&&this.s&&(this.v=this.P+this.g-1,N(this.s,this.v,this.v,this,this.Mb))):(this.l("updated video model: "+this.O),Sa(this,64,32));Ta(this);ua(this)};f.ha=function(a,b){if(a&&!this.C.M&&K(this)){if(this.C.M=!0,this.u=L(b,"debugger"),this.b=L(b,"keyboard"))this.b.T("canvas","keyDown",this.D),this.b.T("canvas","keyPress",this.D),this.b.T("canvas","keyUp",this.D)}else!a&&this.C.M&&(this.C.M=!1)};
|
||||||
|
f.X=function(){this.A||(this.A=Math.floor(this.o.width/16));this.B||(this.B=Math.floor(this.o.height/16));A.prototype.X.call(this)};f.S=function(a,b){var c=this.s.S(a);void 0!==b&&this.u&&S(this.u,this,a,b,this.u.ab);this.s.W(a,c&127|(Math.floor(Fa(this.s)/8333)&1?128:0))};f.W=function(a,b){void 0!==b&&this.u&&S(this.u,this,a,b,this.u.ab)};
|
||||||
|
f.Mb=function(a,b){if(void 0!==b){this.u&&S(this.u,this,a,b,this.u.ab,!0);this.Na(540);this.b&&this.b.Na(542);var c=this.s,d=c.K,e=[],g=wa(d,this.v,this.v,this,this.Mb);if(0<=g){e.push(d[g][0]);e.push(d[g][1]);d.splice(g,1);for(var h=65536,k=0,g=0;g<d.length;g++)h>d[g][0]&&(h=d[g][0]),k<d[g][1]&&(k=d[g][1]);e.push(h);e.push(k)}4==e.length&&(c.da=e[2],c.ia=e[3])}};function Ta(a){a.L=Array(a.g);for(var b=0;b<=a.g;b++)a.L[b]=-1}
|
||||||
|
function ua(a){var b=0;if(a.C.M)for(;b<a.g;){var c=a.a[a.K+b];if(a.L[b]!=c){var d=Math.floor(b/a.J);if(d>=a.V&&(d-=a.V,d<a.da)){var e=c*a.A;a.ia.drawImage(a.o,e%a.o.width,Math.floor(e/a.o.width)*a.B,a.A,a.B,b%a.J*a.R,d*a.U,a.R,a.U)}a.L[b]=c}b++}}
|
||||||
|
y(function(){for(var a=F(window.document,"c1pjs","video"),b=0;b<a.length;b++){var c=a[b],d=D(c),e=window.document.createElement("canvas");if(void 0===e||!e.getContext){c.innerHTML="<br/>Missing <canvas> support. Please try a newer web browser.";break}e.setAttribute("class","c1pjs-canvas");e.setAttribute("width",d.screenWidth);e.setAttribute("height",d.screenHeight);e.setAttribute("contenteditable","true");e.setAttribute("autocapitalize","off");e.setAttribute("autocorrect","off");e.style.backgroundColor=
|
||||||
|
d.screenColor;e.style.height="auto";0<=(window?window.navigator.userAgent:"").indexOf("MSIE")&&(e.style.height=(c.clientWidth*d.screenHeight/d.screenWidth|0)+"px",c.onresize=function(a,b,c,d){return function(){b.style.height=(a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight));c.appendChild(e);var g=new Image,h=e.getContext("2d"),e=new Ra(d,e,h,g);g.onload=function(a){return function(){a.X()}}(e,d.charSet);g.src=d.charSet;E(e,c)}});
|
||||||
|
function Ua(a){A.call(this,"C1PSerialPort",a);this.C.M=!1;this.O=a.demo;this.reset()}C(Ua);f=Ua.prototype;f.reset=function(){if(2!=this.g){this.v=this.B=0;var a=1;if(this.rb){var b=this.rb.match(/\d+/);null!==b&&(a=parseInt(b[0],10))}this.o='10 PRINT "HELLO OSI #'+a+'"\n';this.g=this.A=0}};f.start=function(){this.b&&this.O&&(U(this.b," C\n\n",3E3),setTimeout(function(a){return function(){a.g=1;U(a.b,"LOAD\n")}}(this),12E3));this.O=!1};
|
||||||
|
f.T=function(a,b,c){var d=this;switch(b){case "listSerial":return this.H[b]=c,!0;case "loadSerial":return this.H[b]=c,c.onclick=function(){d.H.listSerial&&u(d.H.listSerial.value,d,d.sb)},!0;case "mountSerial":return!w("Mobi")&&window&&"FileReader"in window?(this.H[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length}),c.onsubmit=function(a){var b=a.currentTarget[1].files[0],c=new FileReader;c.onload=function(){d.sb(b.name,c.result.toString(),
|
||||||
|
0)};c.readAsText(b);return!1}):c.parentNode.removeChild(c),!0}return!1};f.ba=function(a,b,c,d){this.a=a;this.D=b;this.L=c-b+1;this.K=this.D+this.L;if(this.s=d)va(d,b,c,this,this.S),N(d,b,c,this,this.W);this.X()};f.ha=function(a,b){a&&!this.C.M&&(this.C.M=!0,this.J=b,this.b=L(b,"keyboard"),this.u=L(b,"debugger"))};
|
||||||
|
f.sb=function(a,b,c){b?(this.o=b,this.g=this.A=0,this.J&&this.b&&this.s.C.ma?(this.l("auto-loading "+a),this.s.ca(),"."!=this.o.charAt(0)?(this.g=1,U(this.b,"NEW\nLOAD\n")):(this.g=2,this.J.reset(!0),U(this.b,"ML"))):this.l(a+" ready to load")):this.l(a+" load error ("+c+")")};f.S=function(a,b){void 0!==b&&(a&1?Va(this):this.o&&!this.A&&Va(this))};f.W=function(a,b){void 0!==b&&this.u&&S(this.u,this,a,b,this.u.Rb,!0)};
|
||||||
|
function Va(a){if(void 0!==a.o){a.B=0;a.v=0;if(a.A<a.o.length){var b=a.o.charCodeAt(a.A++);10==b&&(b=13);a.B=b;a.v=1}else 1==a.g&&a.b&&U(a.b," \nRUN\n"),a.g=0;for(b=a.D+0;b<a.K;b+=2)a.a[b]=a.v?1:0;for(b=a.D+1;b<a.K;b+=2)a.a[b]=a.v?a.B:0}}y(function(){for(var a=F(window.document,"c1pjs","serial"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new Ua(d);E(d,c)}});function Wa(a){A.call(this,"C1PDiskController",a);this.C.M=!1;this.reset(!0)}C(Wa);f=Wa.prototype;
|
||||||
|
f.reset=function(a){Xa(this);this.b=-1;a&&(this.g=[],this.g[0]={Se:0,tb:40,Sb:!0,Fa:20,na:0,Ea:-1,Va:[]})};
|
||||||
|
function Xa(a){a.K={I:64,read:function(){},update:function(a){return function(c){void 0!==c&&(this.I=c);a.B.I&4||V(a,0,this)}}(a)};a.o={I:255,read:function(){this.update()},update:function(a){return function(c){void 0===c?c=a.o.I:Ya(a,c,a.A.I);c=(c|190)&-2;if(0<=a.b&&a.g[a.b].Va.length){var d=a.g[a.b];d.Sb&&(c&=-33);d.na||(c&=-3);10>=--d.Fa&&(0<d.Fa?(c&=-129,Za(a)):(d.Fa=100,0<=a.b&&(a.g[a.b].Ea=0,$a(a))))}this.I=c;a.B.I&4&&V(a,0,this)}}(a)};a.B={I:0,read:function(){},update:function(a){return function(c){void 0!==
|
||||||
|
c&&(this.I=c&-193);V(a,1,this);a.o.update();a.K.update()}}(a)};a.L={I:255,read:function(){},update:function(a){return function(c){void 0!==c&&(this.I=c);a.D.I&4||V(a,2,this)}}(a)};a.A={I:255,read:function(){},update:function(a){return function(c){void 0===c?c=a.A.I:Ya(a,a.o.I,c);if(0<=a.b&&a.b<a.g.length){var d=a.g[a.b];d.Va.length&&a.A.I&8&&!(c&8)&&(c&4?d.na--:d.na++,a.u&&G(a.u,a.u.Ha)&&a.u.message("stepping "+(c&4?"down":"up")+" to track "+d.na),d.na>=d.tb&&(d.na=d.tb),0>d.na&&(d.na=0),d.Fa=20,
|
||||||
|
a.o.update(a.o.I|128),Za(a))}this.I=c;a.D.I&4&&V(a,2,this)}}(a)};a.D={I:0,read:function(){},update:function(a){return function(c){void 0!==c&&(this.I=c&-193);V(a,3,this);a.A.update();a.L.update()}}(a)};a.P={I:0,read:function(){},update:function(a){return function(c){void 0!==c&&(3==(c&3)&&(a.v.I=14),this.I=c);a.v.update()}}(a)};a.v={I:14,read:function(){},update:function(a){return function(c){void 0===c&&(c=a.v.I);c&=-2;0<=a.b&&0<=a.g[a.b].Ea&&(c|=1);this.I=c;V(a,16,this)}}(a)};a.O={I:0,read:function(a){return function(){$a(a)}}(a),
|
||||||
|
update:function(a){return function(c){void 0!==c&&(this.I=c);V(a,17,this)}}(a)};a.R={I:0,read:function(){},update:function(){return function(){}}(a)}}
|
||||||
|
f.T=function(a,b,c){switch(b){case "listDisk":return this.H[b]=c,!0;case "loadDisk":return this.H[b]=c,c.onclick=function(a){return function(){if(a.H.listDisk){var b=a.H.listDisk.value,c=b;".json"!=b.substr(b.length-5)&&(c="http://"+window.location.host+"/api/v1/dump?disk="+b);var h=b,k=b.lastIndexOf("/");0<=k&&(h=b.substr(k+1));k=h.indexOf("&");0<k&&(h=h.substr(0,k));a.l("loading "+h+"...");u(c,a,a.Ub)}}}(this),!0}return!1};
|
||||||
|
f.ba=function(a,b,c,d){this.a=a;this.J=b;if(this.s=d)va(d,b,c,this,this.S),N(d,b,c,this,this.W);this.X()};f.ha=function(a,b){a&&!this.C.M&&(this.C.M=!0,this.u=L(b,"debugger"))};
|
||||||
|
f.Ub=function(a,b,c){if(c)this.l("disk load error ("+c+")");else{c=[];this.l("mounting "+a+"...");try{if(c=eval("("+b+")"),c.length)if(c[0].length){var d=c[0];if(void 0===d[0].trackNum)this.l("data error: "+d[0]);else if(this.g[0]){for(b=0;b<d.length;b++){var e,g=d[b],h=g.sectors;if(void 0===(e=g.trackNum)||void 0===h)throw Error("track "+b+" missing data");e!=b&&v("track "+e+" out of order (expected "+b+")");c=[];var k,l,m;if(e){ab(c,g,"trackSig");bb(c,g);W(c,g,"trackType");for(var r=0;r<h.length;r++){k=
|
||||||
|
h[r];l=k.sectorData;W(c,k,"sectorSig");W(c,k,"sectorNum");W(c,k,"sectorPages");for(m=0;m<l.length;m++)c.push(l[m]);ab(c,k,"sectorEndSig")}}else for(k=h[0],l=k.sectorData,W(c,g,"trackLoad",2),W(c,k,"sectorPages"),m=0;m<l.length;m++)c.push(l[m]);d[e].Lb=c;this.u&&G(this.u,this.u.Ha)&&this.u.message("track "+e+": "+c.length+" bytes")}this.g[0].Va=d;this.l("mount of "+a+" complete")}else this.l("no available drives")}else this.l("no tracks: "+a);else this.l("no data: "+a)}catch(I){this.l("disk data error: "+
|
||||||
|
I.message)}}};function bb(a,b){var c=b.trackNum;if(void 0===c)throw Error("missing bcd value: trackNum");a.push(Math.floor(c/10)<<4|c%10)}function W(a,b,c,d){b=b[c];if(void 0===b)throw Error("missing binary value: "+c);2==d&&a.push(b>>8&255);a.push(b&255)}function ab(a,b,c){b=b[c];if(void 0===b)throw Error("missing signature: "+c);for(c=0;c<b.length;c++)a.push(b.charCodeAt(c))}
|
||||||
|
function cb(a,b,c){b&=63;16>b?b&=3:32>b&&(b&=17);switch(b){case 0:a=a.B.I&4?a.o:a.K;break;case 1:a=a.B;break;case 2:a=a.D.I&4?a.A:a.L;break;case 3:a=a.D;break;case 16:a=c?a.P:a.v;break;case 17:a=a.O;break;default:a=a.R}return a}f.S=function(a,b){if(void 0!==b){var c=cb(this,a-this.J,!1);this.u&&S(this.u,this,a,b,this.u.Ha,!1,c.Kb);c.read()}};
|
||||||
|
f.W=function(a,b){if(void 0!==b){var c=this.s.S(a),d=cb(this,a-this.J,!0);if(this.u&&G(this.u,this.u.Ha|this.u.pb)&&(S(this.u,this,a,b,this.u.Ha,!0,d.Kb),d.Pb))for(var e=128,g=d.I^c;g&&e;)g&e&&this.u.message(" changed "+d.Kb+"."+d.Pb[e]+" to "+(c&e?"1":"0")),e>>=1;d.update(c)}};function Ya(a,b,c){var d=-1;void 0!==b&&void 0!==c&&(d=0,c&32||(d|=2),a.o.I&64||(d|=1));a.b!=d&&(a.b=d,a.v.update())}function Za(a){0<=a.b&&(a.g[a.b].Ea=-1,a.O.update(255),a.v.update())}
|
||||||
|
function $a(a){var b=null;if(0<=a.b){var b=a.g[a.b],c=b.Va[b.na];void 0!==c&&(0<=b.Ea&&b.Ea<c.Lb.length?(b.Fa=100,b=c.Lb[b.Ea++],a.O.update(b),a.v.update()):(b.Fa=10,Za(a)))}}function V(a,b,c){a.s.W(b+a.J,c.I)}y(function(){for(var a=F(window.document,"c1pjs","disk"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new Wa(d);E(d,c)}});
|
||||||
|
function db(a){A.call(this,"C1PDebugger",a);this.u=this;this.L=-1;this.ua=0;this.nb=null;this.Ya=!1;this.ga=0;this.sa=[];this.wa=[];this.ya=[];this.La=0;this.xa=[];this.B=[];this.pb=1;this.za=16;this.ab=32;this.Ha=64;this.Rb=128;this.la=this.Z=0;this.Ua={port:1,kbd:16,video:32,disk:64,serial:128};this.Qa=28;this.bb=56;this.Ka="ADC AND ASL BCC BCS BEQ BIT BMI BNE BPL BRK BVC BVS CLC CLD CLI CLV CMP CPX CPY DEC DEX DEY EOR INC INX INY JMP JSR LDA LDX LDY LSR NOP ORA PHA PHP PLA PLP ROL ROR RTI RTS SBC SEC SED SEI STA STX STY TAX TAY TSX TXA TXS TYA SIM .DB".split(" ");
|
||||||
|
this.V=["HLT","MSG"];eb(this,!0);this.fa=[[10],[34,1,this.D],[this.bb,1],[],[],[34,1,this.b],[2,1,this.b],[],[36],[34,1,this.v],[2,0,this.P],[],[],[34,2,this.N],[2,2,this.N],[],[9,1,this.ea],[34,1,this.J],[],[],[],[34,1,this.g],[2,1,this.g],[],[13],[34,2,this.A],[],[],[],[34,2,this.o],[2,2,this.o],[],[this.Qa,2,this.Pa],[1,1,this.D],[],[],[6,1,this.b],[1,1,this.b],[39,1,this.b],[],[38],[1,1,this.v],[39,0,this.P],[],[6,2,this.N],[1,2,this.N],[39,2,this.N],[],[7,1,this.ea],[1,1,this.J],[],[],[],[1,
|
||||||
|
1,this.g],[39,1,this.g],[],[44],[1,2,this.A],[],[],[],[1,2,this.o],[39,2,this.o],[],[41],[23,1,this.D],[],[],[],[23,1,this.b],[32,1,this.b],[],[35],[23,1,this.v],[32,0,this.P],[],[27,2,this.Pa],[23,2,this.N],[32,2,this.N],[],[11,1,this.ea],[23,1,this.J],[],[],[],[23,1,this.g],[32,1,this.g],[],[15],[23,2,this.A],[],[],[],[23,2,this.o],[32,2,this.o],[],[42],[0,1,this.D],[],[],[],[0,1,this.b],[40,1,this.b],[],[37],[0,1,this.v],[40,0,this.P],[],[27,2,this.ob],[0,2,this.N],[40,2,this.N],[],[12,1,this.ea],
|
||||||
|
[0,1,this.J],[],[],[],[0,1,this.g],[40,1,this.g],[],[46],[0,2,this.A],[],[],[],[0,2,this.o],[40,2,this.o],[],[],[47,1,this.D],[],[],[49,1,this.b],[47,1,this.b],[48,1,this.b],[],[22],[],[53],[],[49,2,this.N],[47,2,this.N],[48,2,this.N],[],[3,1,this.ea],[47,1,this.J],[],[],[49,1,this.g],[47,1,this.g],[48,1,this.U],[],[55],[47,2,this.A],[54],[],[],[47,2,this.o],[],[],[31,1,this.v],[29,1,this.D],[30,1,this.v],[],[31,1,this.b],[29,1,this.b],[30,1,this.b],[],[51],[29,1,this.v],[50],[],[31,2,this.N],[29,
|
||||||
|
2,this.N],[30,2,this.N],[],[4,1,this.ea],[29,1,this.J],[],[],[31,1,this.g],[29,1,this.g],[30,1,this.U],[],[16],[29,2,this.A],[52],[],[31,2,this.o],[29,2,this.o],[30,2,this.A],[],[19,1,this.v],[17,1,this.D],[],[],[19,1,this.b],[17,1,this.b],[20,1,this.b],[],[26],[17,1,this.v],[21],[],[19,2,this.N],[17,2,this.N],[20,2,this.N],[],[8,1,this.ea],[17,1,this.J],[],[],[],[17,1,this.g],[20,1,this.g],[],[14],[17,2,this.A],[],[],[],[17,2,this.o],[20,2,this.o],[],[18,1,this.v],[43,1,this.D],[],[],[18,1,this.b],
|
||||||
|
[43,1,this.b],[24,1,this.b],[],[25],[43,1,this.v],[33],[],[18,2,this.N],[43,2,this.N],[24,2,this.N],[],[5,1,this.ea],[43,1,this.J],[],[],[],[43,1,this.g],[24,1,this.g],[],[45],[43,2,this.A],[],[],[],[43,2,this.o],[24,2,this.o],[]]}C(db);f=db.prototype;
|
||||||
|
f.T=function(a,b,c){var d=this;switch(b){case "debugInput":return this.R=this.H[b]=c,this.R.focus(),c.onkeypress=function(a,c){return function(d){13==d.keyCode&&(b=c.value,c.value="",fb(a,b))}}(this,c),!0;case "debugEnter":return this.H[b]=c,da(c,function(){return d.R?(b=d.R.value,fb(d,b),!0):!1}),!0;case "step":return this.H[b]=c,da(c,function(a){var b=!1;J(d,!0)||(H(d,!0),b=d.step(a?1:0),H(d,!1));return b}),!0}return!1};
|
||||||
|
f.ba=function(a,b,c){this.a=a;this.O=b;this.qa=c-b+1;this.Ga=this.O+this.qa;this.X()};f.ha=function(a,b){a&&!this.C.M&&(this.C.M=!0,this.s=L(b,"cpu"))};f.ca=function(){this.R.focus()};
|
||||||
|
function eb(a,b){a.P=0;a.v=1;a.o=2;a.A=3;a.Pa=4;a.ob=5;a.g=6;a.U=7;a.D=8;a.J=9;a.N=10;a.b=11;a.ea=a.Pa;var c="",d,e;if(b)for(a.ka="A #$nn $nnnn,X $nnnn,Y $nnnn ($nnnn) $nn,X $nn,Y ($nn,X) ($nn),Y $nnnn $nn".split(" "),d=0;d<a.ka.length;d++)e=a.ka[d],c+="("+e.replace(/\(/g,"\\(").replace(/\)/g,"\\)").replace(/nnnn/g,"[0-9A-F][0-9A-F][0-9A-F][0-9A-F]?").replace(/nn/g,"[0-9A-F][0-9A-F]?").replace(/\$/g,"\\$")+"|)";else for(a.ka="A nn [nnnn+X] [nnnn+Y] nnnn [nnnn] [nn+X] [nn+Y] [[nn+X]] [[nn]+Y] [nnnn] [nn]".split(" "),
|
||||||
|
d=0;d<a.ka.length;d++)e=a.ka[d],c+="("+e.replace(/\[/g,"\\[").replace(/]/g,"\\]").replace(/nnnn/g,"[0-9A-F][0-9A-F][0-9A-F][0-9A-F]?").replace(/nn/g,"[0-9A-F][0-9A-F]?").replace(/\+/g,"\\+")+"|)";a.Qe=new RegExp(c);a.Qb=[27,a.Qa,9,7,11,12,3,4,8,5]}f.aa=function(){this.s.aa()};function S(a,b,c,d,e,g,h){(a.la&e)==e&&(e=a.s.S(c),a.message(b.id+"."+(g?"setByte":"getByte")+"("+q(c)+")"+(void 0!==d?" @"+q(d):"")+": "+(h?h+"=":"")+p(e)))}f.message=function(a){this.l(a);Ea(this.s)};f.Tb=function(){this.l("Type ? for list of debugger commands\n")};
|
||||||
|
f.va=function(){if(!gb(this))return!1;this.s.va();return!0};f.step=function(a){if(!gb(this))return!1;var b;try{b=this.s.step(a)}catch(c){b=void 0,pa(this.s,c.stack||c.message)}void 0!==b&&this.L++;this.s.update(!0);this.update(!0);return b};f.update=function(a){this.ua=this.s.f;a||this.Da?hb(this):ib(this)};function gb(a){a.s&&K(a.s)&&!J(a.s)?(a=a.s,a.C.Ca?(a.l(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}
|
||||||
|
f.reset=function(){var a;this.xa.length||(this.xa=Array(1E3));for(a=0;a<this.xa.length;a++)this.xa[a]=-1;this.B.length||(this.B=Array(256));for(a=0;a<this.B.length;a++)this.B[a]=[a,0];this.L&&this.update();this.L=0};f.start=function(){this.Da||this.l("running")};f.stop=function(a,b){if(!this.Da&&(this.l("stopped"),b)){var c=t();this.l(c-a+"ms ("+b+" cycles)")}this.update();this.ca();this.Da||(this.L=0);jb(this,this.s.f)};function kb(a,b){return a+(b<<24>>24)}
|
||||||
|
f.S=function(a){var b;a>=this.O&&a<this.Ga&&(xa(this.s,a),b=this.a[this.O+a],b&=255);return b};f.W=function(a,b){a<this.O||a>=this.Ga?this.l("invalid address: "+q(a)):(this.a[this.O+a]=b&255,ya(this.s,a),this.s.update())};function lb(a,b){X(a.sa,b,void 0)||a.sa.push(b);return!0}function X(a,b,c){for(var d=!1,e=0;e<a.length;e++)if(a[e]==b){c&&a.splice(e,1);d=!0;break}return d}function mb(a,b){void 0!==b&&(jb(a,a.K),lb(a,b)&&(a.K=b))}
|
||||||
|
function jb(a,b){void 0!==a.K&&b==a.K&&X(a.sa,a.K,!0)&&(a.K=void 0);a.Da=!1}function Da(a,b,c,d){for(var e=!1,g=0;g<c.length;g++)if(c[g]==b){b!=a.K&&a.l("breakpoint hit: "+q(b)+" ("+d+")");e=!0;break}return e}
|
||||||
|
function nb(a,b,c){var d=n(b,4),e=a.S(b++),g=a.fa[e],h=void 0===e?0:e,k=[],l=void 0===g[1]?0:g[1];do{d+=" "+n(h,2);if(!l--)break;h=a.S(b++);if(void 0===h)break;k.push(h)}while(1);void 0===g[0]&&(g=[57,1,a.v],k.push(e));var d=(d+" ").substr(0,15),d=d+a.Ka[g[0]],m=null;if(void 0!==g[2]){l=g[2];m=a.ka[l];if(1==g[1]&&l==a.ea)m=m.replace(/nnnn/,n(kb(b,h=k.pop()),4));else for(;k.length;)m=m.replace(/nn/,n(h=k.pop(),2));l==a.v&&1==g[1]&&32<=h&&128>h&&(m+=" ;'"+String.fromCharCode(h)+"'")}if(e==a.s.bb&&
|
||||||
|
(h<a.V.length&&(m=a.V[h]),h==a.s.Nb)){l=0;for(m='"';h=a.S(b++);)16>l?m+=String.fromCharCode(h):16==l&&(m+="\u2026"),l++;m+='"'}m&&(d+=" "+m);c&&(d=(d+" ").substr(0,30),d+=";"+c.toString());a.$=b;return d}
|
||||||
|
function Y(a,b){var c=a.ua;if(void 0!==b){var d=16;"$"==b.charAt(0)?b=b.substr(1):"0x"==b.substr(0,2)?b=b.substr(2):"."==b.charAt(b.length-1)&&(d=10,b=b.substr(0,b.length-1));c=parseInt(b,d);isNaN(c)&&(a.l("invalid base-"+d+" address: "+b),c=void 0)}void 0!==c&&(c<a.O||c>=a.Ga)&&(a.l("address out of range: "+n(c)),c=void 0);return c}
|
||||||
|
function ob(a,b){if("?"==b)a.l("\nfrequency commands:"),a.l("clear\tclear all frequency counts");else{var c=0,d;if(a.B)if("clear"==b){for(d=0;d<a.B.length;d++)a.B[d]=[d,0];a.l("frequency data cleared");c++}else if(void 0!==b)a.l("unknown frequency command: "+b),c++;else{var e=a.B.slice();e.sort(function(a,b){return b[1]-a[1]});for(d=0;d<e.length;d++){var g=e[d][0],h=e[d][1];h&&(a.l(a.Ka[a.fa[g][0]]+" ("+p(g)+"): "+h+" times"),c++)}}c||a.l("no frequency data available")}}
|
||||||
|
function hb(a,b,c,d){var e=Y(a,b);if(void 0!==e){void 0===d&&(d=1);b=a.Ga;if(void 0!==c){b=Y(a,c);if(void 0===b||b<e)return;if(256<b-e){a.l("range too large");return}b++;d=-1}for(e!=a.ua&&a.l();d--&&e<b;)c=nb(a,e,J(a,!1)||a.Da?a.L:0),a.l(c),a.ua=e=a.$}}
|
||||||
|
function ib(a,b){if(b&&"?"==b[1])a.l("\nregister commands:"),a.l("r to display all"),a.l("r [target=value] to modify"),a.l("supported targets:"),a.l("A,X,Y,S,PC and flags C,Z,D,V,N");else{var c=!0;if(void 0!==b&&1<b.length){var c=!1,d=b[1],e=null,g=d.indexOf("=");if(0<g)e=d.substr(g+1),d=d.substr(0,g);else if(2<b.length)e=b[2];else{a.l("missing value for "+b[1]);return}g=parseInt(e,16);if(isNaN(g)){a.l("invalid value: "+e);return}switch(d.toUpperCase()){case "A":a.s.h=g&255;break;case "X":a.s.w=g&
|
||||||
|
255;break;case "Y":a.s.F=g&255;break;case "C":a.s.c=g?256:0;break;case "Z":a.s.j=g?0:1;break;case "D":g?Ga(a.s):Ha(a.s);break;case "V":g?(d=a.s,d.v=0,d.A=128):(d=a.s,d.v=0,d.A=0);break;case "N":a.s.i=g?128:0;break;case "S":if(256!=(g&-256)){a.l("invalid stack pointer: "+e);return}a.s.G=g;break;case "PC":c=!0;a.s.f=g&65535;a.ua=a.s.f;break;default:a.l("unknown register: "+d);return}a.s.update()}a.l("A="+n(a.s.h,2)+" X="+n(a.s.w,2)+" Y="+n(a.s.F,2)+" P="+n(Ba(a.s),2)+" S="+n(a.s.G,4)+" PC="+n(a.s.f,
|
||||||
|
4));c&&hb(a,n(a.ua=a.s.f,4))}}function pb(a,b){var c=void 0===b?1:parseInt(b,10),d=1==c?0:1;ca(c,function(a){return function(){return H(a,!0)&&a.step(d)}}(a),function(a){return function(){H(a,!1)}}(a))}
|
||||||
|
function fb(a,b){b.length||(a.Ya?(a.l("ended assemble @"+n(a.ga,4)),a.ua=a.ga,a.Ya=!1):a.nb&&(b=a.nb));if(K(a)&&!J(a,!0)&&0<b.length){a.Ya?b="a "+n(a.ga,4)+" "+b:1<b.length&&1!=b.indexOf(" ")&&(b=b.charAt(0).toLowerCase()+" "+b.substr(1));var c=b.split(" ");a.nb=c[0];switch(c[0].toLowerCase()){case "a":var d=Y(a,c[1]);if(void 0!==d)if(a.ga=d,void 0===c[2])a.l("begin assemble @"+q(a.ga)),a.Ya=!0,a.s.update();else{var e,g=c[2],h=c[3],c=a.ga,d=[];if(void 0!==g){var k,g=g.toUpperCase();"?"==g.charAt(g.length-
|
||||||
|
1)&&(h="?",g=g.substr(0,g.length-1));for(k=0;k<a.Ka.length&&g!=a.Ka[k];k++);k==a.Ka.length&&(a.l("unknown operation: "+g),k=-1);var l="",m;if(0<=k&&void 0!==h)if(l=h.toUpperCase(),"?"==l){for(h=m=0;h<a.fa.length;h++)a.fa[h][0]===k&&(m||a.l("supported opcodes:"),a.l(" "+n(h,2)+": "+g+(void 0!==a.fa[h][2]?" "+a.ka[a.fa[h][2]]:"")),m++);k=-1}else if(m=l.match(a.Qe),null!==m&&m[0]==l){for(h=1;h<m.length;h++)if(m[h]==l)if(void 0===e)e=h-1;else{a.l("too many operand matches (both "+a.ka[e]+" and "+
|
||||||
|
a.ka[h-1]+")");k=-1;break}e==a.Pa&&0>a.Qb.indexOf(k)&&(e=a.N);e==a.ob&&27!=k&&(e=a.N)}else a.l("unknown operand: "+l),k=-1;if(0<=k){m=-1;for(h=0;h<a.fa.length;h++)if(a.fa[h][0]===k&&a.fa[h][2]===e)if(0>m)m=h;else{a.l("too many instruction matches (both "+p(m)+" and "+p(h)+")");m=-2;break}if(0<=m){if(d.push(m),void 0!==e)if(g=a.fa[m][1],l=l.match(/[0-9A-F]+/),null!==l)for(l=parseInt(l[0],16),1==g&&e==a.ea&&(l-=c+2,-128>l||127<l)&&(a.l("branch out of range ("+l+")"),d=[],g=0),h=0;h<g;h++)d.push(l&255),
|
||||||
|
l>>>=8;else g&&a.l("instruction missing "+g+" bytes")}else a.l("unknown instruction: "+g+" "+l+"")}}e=d;if(e.length){for(c=0;c<e.length;c++)a.W(a.ga+c,e[c]);a.l(nb(a,a.ga));a.ga+=e.length}}break;case "b":e=c[1];c=c[2];if(void 0===e||"?"==e)a.l("\nbreakpoint commands:"),a.l("bp [a]\tset exec breakpoint at [a]"),a.l("br [a]\tset read breakpoint at [a]"),a.l("bw [a]\tset write breakpoint at [a]"),a.l("bc [a]\tclear breakpoint at [a]"),a.l("bl\tlist all breakpoints");else if(void 0===c&&1<e.length&&(c=
|
||||||
|
e.substr(1),e=e.substr(0,1)),"l"==e){e=0;d=a.sa;for(c=0;c<d.length;c++)a.l("breakpoint enabled: "+q(d[c])+" (exec)"),e++;d=a.wa;for(c=0;c<d.length;c++)a.l("breakpoint enabled: "+q(d[c])+" (read)"),e++;d=a.ya;for(c=0;c<d.length;c++)a.l("breakpoint enabled: "+q(d[c])+" (write)"),e++;e||a.l("no breakpoints")}else void 0===c?a.l("missing breakpoint address"):"c"==e&&"*"==c?(a.sa=[],a.wa=[],a.ya=[],a.l("all breakpoints cleared")):(c=Y(a,c),void 0!==c&&("p"==e?lb(a,c)?a.l("breakpoint enabled: "+q(c)+" (exec)"):
|
||||||
|
a.l("breakpoint not set: "+q(c)):"c"==e?X(a.sa,c,!0)?a.l("breakpoint cleared: "+q(c)+" (exec)"):X(a.wa,c,!0)?a.l("breakpoint cleared: "+q(c)+" (read)"):X(a.ya,c,!0)?a.l("breakpoint cleared: "+q(c)+" (write)"):a.l("breakpoint missing: "+q(c)):"r"==e?(X(a.wa,c,void 0)||a.wa.push(c),a.l("breakpoint enabled: "+q(c)+" (read)")):"w"==e?(X(a.ya,c,void 0)||a.ya.push(c),a.l("breakpoint enabled: "+q(c)+" (write)")):a.l("unknown breakpoint command: "+e)));break;case "d":e=c[1];d=c[2];if("?"==e)a.l("\ndump commands:"),
|
||||||
|
a.l("d [a] [#] dump # lines of memory");else if(e=Y(a,e),void 0!==e){c=0;void 0!==d&&("l"==d.charAt(0)&&(d=d.substr(1)),c=parseInt(d,10));c||(c=1);for(d=0;d<c;d++){l=g="";h=e;for(k=0;8>k&&e<a.Ga;k++)m=a.S(e),void 0===m&&(m=0),g+=n(m,2)+" ",l+=32<=m&&128>m?String.fromCharCode(m):".",e++;a.l(n(h,4)+" "+g+l)}a.ua=e}break;case "e":e=c[1];if(void 0===e)a.l("missing address");else if(e=Y(a,e),void 0!==e)for(d=2;d<c.length;d++)g=parseInt(c[d],16),a.W(e++,g);break;case "f":ob(a,c[1]);break;case "g":e=
|
||||||
|
c[1];void 0!==e&&mb(a,Y(a,e));a.va()||a.s.ca();break;case "h":a.aa();break;case "o":if(void 0===c[1]||"?"==c[1])a.l("\noption commands:"),a.l("max\trun at maximum speed"),a.l("fast\trun faster (up to "+a.s.Ma+"Mhz)"),a.l("slow\trun at normal speed (1Mhz)"),a.l("classic\tuse classic operand syntax"),a.l("modern\tuse modern operand syntax"),a.l("msg\tenable message categories");else switch(e=c[1],e){case "slow":M(a.s,a.s.Ra);break;case "fast":M(a.s,a.s.Ob);break;case "max":M(a.s,a.s.eb);break;case "classic":eb(a,
|
||||||
|
!0);a.l("classic syntax enabled");break;case "modern":eb(a,!1);a.l("modern syntax enabled");break;case "msg":e=0;void 0!==c[2]&&("all"==c[2]?e=255:void 0!==a.Ua[c[2]]&&(e=a.Ua[c[2]]),e&&("on"==c[3]?a.la|=e:"off"==c[3]&&(a.la&=~e)));for(d in a.Ua)if(void 0===c[2]||"all"==c[2]||c[2]==d)e=a.Ua[d],a.l(d+" messages: "+(a.la&e?"on":"off"));break;default:a.l("unknown option: "+e)}break;case "p":l=c[1];e=10;c=a.La;d=a.xa;if(void 0!==d){g=void 0===l?a.Vb:parseInt(l,10);void 0===g&&(g=10);g>d.length&&(a.l("note: only "+
|
||||||
|
d.length+" available"),g=d.length);void 0!==l&&(a.mb=0,a.l(g+" instructions earlier:"));l=a.mb?a.mb:1;c-=g;for(0>c&&(c=d.length-1);e&&c!=a.La;){h=d[c];if(0>h)break;a.l(nb(a,h,l++));++c==d.length&&(c=0);e--;g--}a.Vb=g;a.mb=l}10==e&&a.l("no history available");break;case "r":ib(a,c);break;case "s":a.S(a.s.f)==a.s.Qa?(mb(a,a.s.f+3),a.Da=!0,a.va()||a.s.ca()):pb(a);break;case "t":pb(a,c[1]);break;case "u":hb(a,c[1],c[2],8);break;case "?":case "help":a.l("\ncommands:\n?\thelp\na [#]\tassemble\nb [#]\tbreakpoint\nd [#]\tdump memory\ne [#]\tedit memory\nf\tdump frequencies\ng [#]\trun to [#]\nh\thalt\no\toptions\np [#]\tdump history\nr\tdump/edit registers\ns\tstep over instruction\nt [#]\tstep instruction(s)\nu [#]\tunassemble");
|
||||||
|
a.l("note: frequency and history commands operate only when breakpoints are set");break;default:a.l("unknown command: "+b)}}}y(function(){for(var a=F(window.document,"c1pjs","debugger"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new db(d);E(d,c)}});function Z(a,b){A.call(this,"C1PComputer",a);this.Y=b}C(Z);Z.prototype.reset=function(a){var b=null,c;for(c in this.Y)for(var d=0;d<this.Y[c].length;d++){var e=this.Y[c][d];e&&e.reset&&(e.reset(),"cpu"==c&&(b=e))}b&&(b.update(),a&&b.va())};
|
||||||
|
Z.prototype.start=function(){for(var a in this.Y)if("cpu"!=a)for(var b=0;b<this.Y[a].length;b++){var c=this.Y[a][b];c&&c.start&&c.start()}};Z.prototype.stop=function(a,b){for(var c in this.Y)if("cpu"!=c)for(var d=0;d<this.Y[c].length;d++){var e=this.Y[c][d];e&&e.stop&&e.stop(a,b)}};Z.prototype.T=function(a,b,c){switch(b){case "reset":return this.H[b]=c,c.onclick=function(a){return function(){a.reset()}}(this),!0}return!1};function L(a,b){return a.Y[b]?a.Y[b][0]:null}
|
||||||
|
function qb(a){var b=null,c;for(c in a.Y)for(var d=0;d<a.Y[c].length;d++){var e=a.Y[c][d];if(e){if(!K(e)){K(e,function(a){return function(){qb(a)}}(a));return}"cpu"==c?b=e:e.ha&&e.ha(!0,a)}}a.X();a.l("C1Pjs v1.20.4\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>");b&&b.ha(!0,a)}
|
||||||
|
y(function(){for(var a=F(window.document,"c1pjs","computer"),b=0;b<a.length;b++){for(var c=a[b],d=D(c),e,g={},h,k=0,l=0,m=0;m<d.modules.length;m++){var r=d.modules[m];if(!m){if("cpu"!=r.type)break;k=r.start;l=r.end;h=Array(l+1-k);for(e=k;e<h.length;e++)h[e]=0}if(e=oa(r.refID,d.id)){var I=r.type;void 0===g[I]&&(g[I]=[]);g[I].push(e);e.ba&&void 0!==r.start&&e.ba(h,r.start,r.end,g.cpu[0])}else{v('no component for <module refid="'+r.refID+'">');return}}if(void 0===h){v('<module type="cpu"> definition must appear first in the <computer> specification');
|
||||||
|
break}if(e=oa("debugger",d.id))g["debugger"]=[e],e.ba&&e.ba(h,k,l,g.cpu[0]);k=new Z(d,g);if(l=oa("panel",d.id))if(g.panel=[l],l.gb){e=d.id;d=void 0;g=[];e&&(e=0<(d=e.indexOf("."))?e.substr(0,d+1):"");for(d=0;d<B.length;d++)m=B[d],e&&m.id.indexOf(e)||g.push(m);d=g;for(g=0;g<d.length;g++)e=d[g],e!=l&&(e.$a=l.$a,e.l=l.l,e.gb=l.gb)}E(k,c);qb(k)}});var rb=0;function sb(a,b,c,d,e,g){e("Loading "+a+"...");u(a,null,function(h,k,l){l?(k||(k="unable to load "+a+" ("+l+")"),g(k,null)):tb(k,a,b,c,d,e,g)})}
|
||||||
|
function tb(a,b,c,d,e,g,h){function k(a,g){if(g)h(g,null);else{if(c){var k=b;k&&0>k.indexOf("/")&&(k=window.location.pathname+k);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" state=$2"+d+"$2":"")+(k?" url=$2"+k+"$2":""))}k=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(k=new window.ActiveXObject("Microsoft.XMLDOM"),k.async=!1,k.loadXML(a)):k=(new window.DOMParser).parseFromString(a,"text/xml")}catch(I){k=
|
||||||
|
null,a=I.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,k)}}a?e?ub(a,g,k):k(a,null):h("no data"+(b?" for file: "+b:""),null)}
|
||||||
|
function ub(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");u(e,null,function(g,h,k){if(k||!h)c(a,"unable to resolve XML reference: "+d[0]+" ("+k+")");else{if(g=d[3])if(k=h.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var l=k[0],m,r=/( [a-z]+=)(['"])(.*?)\2/g;m=r.exec(g);)l=0>l.indexOf(m[1])?l.replace(">",m[0]+">"):l.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);k[0]!=l&&(h=h.replace(k[0],l))}else{c(a,"missing <"+d[1]+"> in "+e);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/,
|
||||||
|
"");a=a.replace(d[0],h);ub(a,b,c)}})}else c(a,null)}
|
||||||
|
function vb(a,b,c){function d(a){if(void 0===h){var b=g&&F(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=ba(a))}function e(a){d("Error: "+a);k&&(--rb||z(!0));k=!1}var g,h,k=!0;rb++;try{if(g=window.document.getElementById(a)){c||(c="/versions/c1pjs/1.20.4/components.xsl");var l=function(h,k){if(k){var l=function(h,l){if(l)if(l)if(d("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var m=k.transformNode(l);m?(g.outerHTML=m,--rb||z(!0)):e("transformNodeToObject failed")}else window.document.implementation&&
|
||||||
|
window.document.implementation.createDocument?(m=new XSLTProcessor,m.importStylesheet(l),(m=m.transformToFragment(k,window.document))?g.parentNode?(g.parentNode.replaceChild(m,g),--rb||z(!0)):e("invalid machine element: "+a):e("transformToFragment failed")):e("unable to transform XML: unsupported browser");else e("failed to load XSL file: "+c);else e(h)};k?sb(c,null,null,!1,d,l):e("failed to load XML file: "+b)}else e(h)};"<"!=b.charAt(0)?sb(b,a,void 0,!0,d,l):tb(b,null,a,void 0,!1,d,l)}else e("missing machine element: "+
|
||||||
|
a)}catch(m){e(m.message)}return k}window.embedC1P=function(a,b,c){z(!1);return vb(a,b,c)};window.enableEvents=z;window.sendEvent=ia;})();
|
||||||
126
versions/c1pjs/1.20.4/c1p.js
Normal file
126
versions/c1pjs/1.20.4/c1p.js
Normal file
|
|
@ -0,0 +1,126 @@
|
||||||
|
(function(){var e;function n(a,b){var c="";void 0===b?b=8:8<b&&(b=8);if(null==a||isNaN(a))for(;0<b--;)c="?"+c;else for(;0<b--;){var d=a&15,d=d+(0<=d&&9>=d?48:55),c=String.fromCharCode(d)+c;a>>=4}return c}var aa={"&":"&","<":"<",">":">",'"':""","'":"'"};function ba(a){return a.replace(/[&<>"']/g,function(a){return aa[a]})}var q=Date.now||function(){return+new Date};
|
||||||
|
function r(a,b,c){var d;d=!0;var f=0,g=null,k=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");d&&(k.onreadystatechange=function(){4===k.readyState&&(g=k.responseText,200==k.status||!k.status&&g.length&&"file:"==(window?window.location.protocol:"file:")||(f=k.status||-1),c&&(b?c.call(b,a,g,f,void 0):c(a,g,f,void 0)))});k.open("GET",a,d);k.send();d||(g=k.responseText,200!=k.status&&(f=k.status||-1),c&&(b?c.call(b,a,g,f,void 0):c(a,g,f,void 0)))}
|
||||||
|
function t(a){window&&window.alert(a)}function u(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&b.match(/(iPod|iPhone|iPad)/)&&b.match(/AppleWebKit/)||"MSIE"==a&&b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)?!0:!1}return!1}var v={init:[],show:[],exit:[]},ca=!1,w=!0;function x(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function y(a){v.init.push(a)}
|
||||||
|
function z(a){if(w)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){t("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks.")}}function A(a){!w&&a?(w=!0,ca&&da("init")):w=a}function da(a){v[a]&&z(v[a])}x("onload",function(){ca=!0;z(v.init)});x("onpageshow",function(){z(v.show)});x(u("Opera")||u("iOS")?"onunload":"onbeforeunload",function(){z(v.exit)});
|
||||||
|
function B(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id;this.name=b.name;void 0===this.id&&(this.id="");b=this.id.indexOf(".");0<b?(this.Da=this.id.substr(0,b),this.Ca=this.id.substr(b+1)):this.Ca=this.id;this[a]=c;this.u={va:!1,pa:!1,Aa:!1,H:!1,qa:!1};this.xa=null;this.u.qa=!1;this.A={};C[C.length]=this}var ea=void 0;if(window){ea||(ea=window.location.search.substr(1));for(var fa,ga=/\+/g,ha=/([^&=]+)=?([^&]*)/g;fa=ha.exec(ea);)fa[1].replace(ga," "),fa[2].replace(ga," ")}
|
||||||
|
function ia(a){function b(){}if(window){if(!a)throw new TypeError;if(Object.create)return Object.create(a);var c=typeof a;if("object"!==c&&"function"!==c)throw new TypeError;}b.prototype=a;return new b}function E(a){var b;b||(b=B);a.prototype=ia(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}var C=[];function F(a,b){if(void 0!==a){var c;b&&0<(c=b.indexOf("."))&&(a=b.substr(0,c+1)+a);for(c=0;c<C.length;c++)if(C[c].id===a)return C[c]}return null}
|
||||||
|
function G(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("({"+a+"})")}catch(c){t(c.message+" ("+a+")")}return b}window&&!window.document.ELEMENT_NODE&&(window.document.ELEMENT_NODE=1);
|
||||||
|
function H(a,b){for(var c=I(b.parentNode,"c1pjs-control"),d=0;d<c.length;d++)for(var f=c[d].childNodes,g=0;g<f.length;g++){var k=f[g];if(k.nodeType===window.document.ELEMENT_NODE){var h=k.getAttribute("class");if(h)for(var l=h.split(" "),m=0;m<l.length;m++)switch(h=l[m],h){case "c1pjs-binding":(h=G(k))&&h.binding&&a.J(h.type,h.binding,k),m=l.length}}}}
|
||||||
|
function I(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var f=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)f.test(a[b].className)&&c.push(a[b]);return c}
|
||||||
|
B.prototype={constructor:B,parent:null,toString:function(){return this.name?this.name:this.id||this.type},J:function(a,b,c){switch(b){case "clear":return this.A[b]||(this.A[b]=c,c.onclick=function(a){return function(){a.A.print&&(a.A.print.value="")}}(this)),!0;case "print":return this.A[b]||(this.ya=this.A[b]=c,c.value="",this.F=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c),
|
||||||
|
this.wa=function(a,b,c){this.F(a,"notice",c)}),!0;default:return!1}},log:function(){},F:function(){},status:function(a){this.F(this.Ca+": "+a)},wa:function(a,b){b||t(a)},N:function(a){this.u.qa||(this.u.va=!1!==a,this.u.va&&(a=this.xa,this.xa=null,a&&a()))}};function ja(a,b){if(a.u.Aa)return a.u.pa&&(a.u.pa=!1),a.u.Aa=!1;if(a.u.qa)return a.F(a.toString()+" error"),!1;a.u.pa=b;return a.u.pa}function J(a,b){b&&(a.u.va?b():a.xa=b);return a.u.va}function ka(a,b){a.u.qa=!0;a.wa(b)}
|
||||||
|
function K(a){B.call(this,"C1PPanel",a);this.u.H=!1}E(K);K.prototype.J=function(a,b,c){return this.I&&this.I.J(a,b,c)||this.f&&this.f.J(a,b,c)||this.b&&this.b.J(a,b,c)?!0:B.prototype.J.call(this,a,b,c)};K.prototype.$=function(a,b){a&&!this.u.H&&(this.u.H=!0,this.I=b,this.f=L(b,"cpu"),this.b=L(b,"keyboard"),la())};function la(){for(var a=!1,b=I(window.document,"c1pjs","panel"),c=0;c<b.length;c++){var d=b[c],f=G(d),g=F(f.id);g||(a=!0,g=new K(f));H(g,d);a&&g.N()}}y(la);
|
||||||
|
function ma(a){B.call(this,"C1PCPU",a);na(this);this.u.H=!1;this.u.Z=!1;this.sa=a.autoStart;this.ia=0;this.Ba=2;this.speed=this.ia;this.oa=30;this.na=5;this.ea=8;this.ta=["Slow","Fast","Max"];this.eb=["(1Mhz)","(up to "+this.ea+"Mhz)","(unlimited)"];this.O=[];this.K=[];this.ja=65536;this.ka=0;this.Y=65536;this.ca=0;this.v=[this.Lb,this.dd,this.Wd,this.l,this.l,this.fd,this.Bb,this.l,this.jd,this.cd,this.Ab,this.l,this.l,this.$c,this.yb,this.l,this.Kb,this.ed,this.l,this.l,this.l,this.gd,this.Cb,this.l,
|
||||||
|
this.Ob,this.bd,this.l,this.l,this.l,this.ad,this.zb,this.l,this.Bc,this.ub,this.l,this.l,this.Hb,this.wb,this.pd,this.l,this.ld,this.tb,this.od,this.l,this.Gb,this.qb,this.md,this.l,this.Ib,this.vb,this.l,this.l,this.l,this.xb,this.qd,this.l,this.Gd,this.sb,this.l,this.l,this.l,this.rb,this.nd,this.l,this.wd,this.pc,this.l,this.l,this.l,this.rc,this.Xc,this.l,this.hd,this.oc,this.Wc,this.l,this.Ac,this.lc,this.Uc,this.l,this.Mb,this.qc,this.l,this.l,this.l,this.sc,this.Yc,this.l,this.Qb,this.nc,
|
||||||
|
this.l,this.l,this.l,this.mc,this.Vc,this.l,this.xd,this.Oa,this.l,this.l,this.l,this.Qa,this.ud,this.l,this.kd,this.Na,this.td,this.l,this.zc,this.Ka,this.rd,this.l,this.Nb,this.Pa,this.l,this.l,this.l,this.Ra,this.vd,this.l,this.Id,this.Ma,this.l,this.l,this.l,this.La,this.sd,this.l,this.l,this.Md,this.l,this.l,this.Ud,this.Od,this.Rd,this.l,this.kc,this.l,this.$d,this.l,this.Td,this.Jd,this.Qd,this.l,this.Db,this.Nd,this.l,this.l,this.Vd,this.Pd,this.Sd,this.l,this.be,this.Ld,this.ae,this.l,this.l,
|
||||||
|
this.Kd,this.l,this.l,this.Rc,this.Gc,this.Mc,this.l,this.Sc,this.Ic,this.Nc,this.l,this.Yd,this.Fc,this.Xd,this.l,this.Pc,this.Cc,this.Kc,this.l,this.Eb,this.Hc,this.l,this.l,this.Tc,this.Jc,this.Oc,this.l,this.Rb,this.Ec,this.Zd,this.l,this.Qc,this.Dc,this.Lc,this.l,this.dc,this.Wb,this.l,this.l,this.ec,this.Yb,this.hc,this.l,this.yc,this.Vb,this.jc,this.l,this.cc,this.Sb,this.fc,this.l,this.Jb,this.Xb,this.l,this.l,this.l,this.Zb,this.ic,this.l,this.Pb,this.Ub,this.l,this.l,this.l,this.Tb,this.gc,
|
||||||
|
this.l,this.ac,this.Wa,this.l,this.l,this.bc,this.Ya,this.vc,this.l,this.xc,this.Va,this.Zc,this.l,this.$b,this.Sa,this.tc,this.l,this.Fb,this.Xa,this.l,this.l,this.l,this.Za,this.wc,this.l,this.Hd,this.Ua,this.l,this.l,this.l,this.Ta,this.uc,this.l];this.cb=[7,6,0,0,0,3,5,0,3,2,2,0,0,4,6,0,2,5,0,0,0,4,6,0,2,4,0,0,0,4,7,0,3,6,0,0,3,3,5,0,4,2,2,0,4,4,6,0,2,5,0,0,0,4,6,0,2,4,0,0,0,4,7,0,6,6,0,0,0,3,5,0,3,2,2,0,3,4,6,0,2,5,0,0,0,4,6,0,2,4,0,0,0,4,7,0,6,6,0,0,0,3,5,0,4,2,2,0,5,4,6,0,2,5,0,0,0,4,6,0,2,
|
||||||
|
4,0,0,0,4,7,0,0,6,0,0,3,3,3,0,2,0,2,0,4,4,4,0,2,5,0,0,4,4,4,0,2,4,2,0,0,4,0,0,2,6,2,0,3,3,3,0,2,2,2,0,4,4,4,0,2,5,0,0,4,4,4,0,2,4,2,0,4,4,4,0,2,6,0,0,3,3,5,0,2,2,2,0,4,4,6,0,2,5,0,0,0,4,6,0,2,4,0,0,0,4,7,0,2,6,0,0,3,3,5,0,2,2,2,0,4,4,6,0,2,5,0,0,0,4,6,0,2,4,0,0,0,4,7,0]}E(ma);e=ma.prototype;e.reset=function(a){this.u.Z&&M(this);na(this);this.c=this.a[65532]|this.a[65533]<<8;this.u.qa=!1;a&&(!0===this.sa||null===this.sa&&void 0===this.A.run)&&N(this)};
|
||||||
|
e.J=function(a,b,c){a=!1;switch(b){case "run":this.A[b]=c;c.onclick=function(a){return function(){a.u.Z?M(a):N(a)}}(this);a=!0;break;case "A":case "X":case "Y":case "S":case "PC":case "C":case "Z":case "I":case "D":case "B":case "V":case "N":case "speed":this.A[b]=c;a=!0;break;case "setSpeed":this.A[b]=c,c.onclick=function(a){return function(){oa(a,2<=a.speed?a.ia:a.speed+1,!0)}}(this),a=!0}return a};e.X=function(a,b){this.a=a;(this.Ha=b)?t("unsupported CPU address buffer offset ("+this.Ha+")"):this.N()};
|
||||||
|
e.$=function(a,b){if(a&&!this.u.H){this.I=b;var c=L(b,"video");c&&(this.za=function(a){return function(){pa(a)}}(c),this.da=function(a){return function(){a.da()}}(c));this.u.H=!0;this.reset(!0);this.update()}};function qa(a,b,c,d,f){0>ra(a.O,b,c,d,f)&&(a.ja>b&&(a.ja=b),a.ka<c&&(a.ka=c),a.O.push([b,c,d,f]))}function O(a,b,c,d,f){0>ra(a.K,b,c,d,f)&&(a.Y>b&&(a.Y=b),a.ca<c&&(a.ca=c),a.K.push([b,c,d,f]))}
|
||||||
|
function ra(a,b,c,d,f){for(var g=0;g<a.length;g++)if(a[g][0]==b&&a[g][1]==c&&a[g][2]==d&&a[g][3]==f)return g;return-1}function oa(a,b,c){void 0!==b&&(a.speed=b,a.A.setSpeed&&(a.A.setSpeed.innerHTML=a.ta[2<=b?0:b+1]),a.F("running at "+a.ta[b].toLowerCase()+" speed "+a.eb[b]),c&&a.da());a.S=0;a.Ea=q();sa(a)}e.za=function(){};e.da=function(){};function P(a,b,c,d){void 0!==a.A[b]&&(void 0===d&&(d=1),c="0000"+c.toString(16),a.A[b].innerHTML=c.slice(c.length-d).toUpperCase())}
|
||||||
|
function ta(a){P(a,"A",a.g,2);P(a,"X",a.m,2);P(a,"Y",a.s,2);var b=ua(a);P(a,"C",b&1?1:0);P(a,"Z",b&2?1:0);P(a,"I",b&4?1:0);P(a,"D",b&8?1:0);P(a,"B",b&16?1:0);P(a,"V",b&64?1:0);P(a,"N",b&128?1:0);P(a,"S",a.o,4);P(a,"PC",a.c,4);a.A.speed&&a.ba&&(a.A.speed.innerHTML=a.ba.toFixed(1)+"Mhz")}
|
||||||
|
function sa(a,b){var c=30;c<a.oa&&(c=a.oa);c<a.na&&(c=a.na);var d=1;b&&a.speed>a.ia&&a.ba&&(d=a.ba);d>a.ea&&2>a.speed&&(d=a.ea);a.fb=Math.round(1E3/30);a.fa=Math.floor(1E6/c*d);a.la=Math.floor(1E6/30*d);a.Ga=Math.floor(1E6/a.oa*d);a.Fa=Math.floor(1E6/a.na*d);b||(a.R=a.la,a.U=a.Ga,a.T=a.Fa);a.ma=0}function va(a){1E6<=a.ma&&sa(a,!0);a.V=0;a.gb=q()}
|
||||||
|
function wa(a){var b=q(),c=a.fb;a.V&&(c=Math.round(c*a.V/a.la));c=c-(b-a.gb);if(b=b-a.Ea)a.ba=Math.round(a.S/(100*b))/10,864E5<=b&&oa(a);0>c?c=0:1==a.speed?a.ba<=a.ea&&(c=0):2==a.speed&&(c=0);a.ma+=a.V;return c}
|
||||||
|
function N(a){if(ja(a,!0)){a.u.Z||(oa(a),a.I&&a.I.start(),a.u.Z=!0,a.A.run&&(a.A.run.innerHTML="Halt"),a.da());va(a);try{do{a.step(a.fa);var b=a.L-a.G;a.S+=b;a.V+=b;a.L=a.G=0;a.U-=a.fa;0>=a.U&&(a.U+=a.Ga,a.za());a.T-=a.fa;0>=a.T&&(a.T+=a.Fa,ta(a));a.R-=a.fa;if(0>=a.R){a.R+=a.la;break}}while(a.u.Z)}catch(c){M(a);a.update();ja(a,!1);ka(a,c.stack||c.message);return}setTimeout(function(a){return function(){N(a)}}(a),wa(a))}else a.update(),a.I&&a.I.stop(a.Ea,a.S)}
|
||||||
|
e.step=function(a){this.b=this.j=-1;this.L=this.G=a;do{a=this.a[this.c];this.c++;this.v[a].call(this);if(0<=this.b){if(this.b>=this.ja&&this.b<=this.ka)for(var b=this.b,c=this.c,d=0;d<this.O.length;d++)b>=this.O[d][0]&&b<=this.O[d][1]&&this.O[d][3].call(this.O[d][2],b,c);this.b=-1}else if(0<=this.j){if(this.j>=this.Y&&this.j<=this.ca)for(b=this.j,c=this.c,d=0;d<this.K.length;d++)b>=this.K[d][0]&&b<=this.K[d][1]&&this.K[d][3].call(this.K[d][2],b,c);this.j=-1}this.G-=this.cb[a]}while(0<this.G);return!0};
|
||||||
|
function M(a){a.u.pa&&(a.u.Aa=!0);a.L-=a.G;a.G=0;a.u.Z&&(a.u.Z=!1,a.A.run&&(a.A.run.innerHTML="Run"))}e.update=function(){this.za();ta(this)};function xa(a){return a.u.Z?a.S+a.L-a.G:0}e.W=function(a){return this.a[a]};e.P=function(a,b){this.a[a]=b};function ua(a){var b=a.f&256?1:0,b=b|(a.i&255?0:2),b=b|((a.w&255^a.C^a.w>>1)&128?64:0),b=b|(a.h&128?128:0);return a.B&60|b}
|
||||||
|
function Q(a,b,c){var d=a.f&256?1:0,f=(b&15)+(c&15)+d;10<=f&&(f=f+6&15|16);f+=(b&240)+(c&240);a.C=b^c;a.w=f;a.h=f&255;160<=f&&(f+=96);512<=f&&(f-=256);a.f=f;a.i=b+c+d&255;a.G--;return f&255}function R(a,b,c){var d=a.f&256?0:1,f=(b&15)-(c&15)-d;0>f&&(f=(f-6&15)-16);f+=(b&240)-(c&240);0>f&&(f-=96);a.h=a.i=(a.f=b-c-d)&255;a.C=b^c;a.w=a.f;a.f^=256;a.G--;return f&255}function na(a){a.g=0;a.m=0;a.s=0;a.o=256;a.B=0;a.h=0;a.i=0;a.C=0;a.w=0;a.f=0;a.c=0;a.b=-1;a.j=-1;a.ba=0;a.S=a.L=a.G=0}
|
||||||
|
e.Lb=function(){this.c++;this.a[this.o--]=this.c>>8;this.o|=256;this.a[this.o--]=this.c&255;this.o|=256;this.B|=16;this.B=ua(this);this.a[this.o--]=this.B;this.o|=256;this.B&=239;this.b=65534;this.c=this.a[this.b]|this.a[this.b+1]<<8};e.dd=function(){this.b=this.a[this.c++]+this.m&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.h=this.i=this.g|=this.a[this.b]};e.fd=function(){this.b=this.a[this.c++];this.h=this.i=this.g|=this.a[this.b]};
|
||||||
|
e.Bb=function(){this.j=this.a[this.c++];this.f=this.a[this.j]<<1;this.h=this.i=this.a[this.j]=this.f&255};e.jd=function(){this.B=ua(this);this.a[this.o--]=this.B;this.o|=256};e.cd=function(){this.b=this.c++;this.h=this.i=this.g|=this.a[this.b]};e.Ab=function(){this.f=this.g<<1;this.h=this.i=this.g=this.f&255};e.$c=function(){this.b=this.a[this.c++]|this.a[this.c++]<<8;this.h=this.i=this.g|=this.a[this.b]};
|
||||||
|
e.yb=function(){this.j=this.a[this.c++]|this.a[this.c++]<<8;this.f=this.a[this.j]<<1;this.h=this.i=this.a[this.j]=this.f&255};e.Kb=function(){this.c+=(this.h&128?0:(this.G--,this.a[this.c]<<24>>24))+1};e.ed=function(){this.b=this.a[this.c++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.s;this.h=this.i=this.g|=this.a[this.b]};e.gd=function(){this.b=this.a[this.c++]+this.m&255;this.h=this.i=this.g|=this.a[this.b]};
|
||||||
|
e.Cb=function(){this.j=this.a[this.c++]+this.m&255;this.f=this.a[this.j]<<1;this.h=this.i=this.a[this.j]=this.f&255};e.Ob=function(){this.f=0};e.bd=function(){this.b=(this.a[this.c++]|this.a[this.c++]<<8)+this.s;this.h=this.i=this.g|=this.a[this.b]};e.ad=function(){this.b=(this.a[this.c++]|this.a[this.c++]<<8)+this.m;this.h=this.i=this.g|=this.a[this.b]};e.zb=function(){this.j=(this.a[this.c++]|this.a[this.c++]<<8)+this.m;this.f=this.a[this.j]<<1;this.h=this.i=this.a[this.j]=this.f&255};
|
||||||
|
e.Bc=function(){this.b=this.c++;this.a[this.o--]=this.c>>8;this.o|=256;this.a[this.o--]=this.c&255;this.o|=256;this.c=this.a[this.b]|this.a[this.b+1]<<8};e.ub=function(){this.b=this.a[this.c++]+this.m&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.h=this.i=this.g&=this.a[this.b]};e.Hb=function(){this.b=this.a[this.c++];this.i=this.g&this.a[this.b];this.h=this.h&127|this.a[this.b]&128;this.w=0;this.C=this.a[this.b]&64?128:0};e.wb=function(){this.b=this.a[this.c++];this.h=this.i=this.g&=this.a[this.b]};
|
||||||
|
e.pd=function(){this.j=this.a[this.c++];this.f=this.f&65280|this.a[this.j];this.f<<=1;this.f=this.f&65534|(this.f&512?1:0);this.h=this.i=this.a[this.j]=this.f&255};e.ld=function(){this.o=this.o+1&255|256;this.B=this.a[this.o];this.f=this.B&1?256:0;this.i=this.B&2?0:1;this.h=this.B&128;this.w=0;this.C=this.B&64?128:0};e.tb=function(){this.b=this.c++;this.h=this.i=this.g&=this.a[this.b]};
|
||||||
|
e.od=function(){this.f=this.f&65280|this.g;this.f<<=1;this.f=this.f&65534|(this.f&512?1:0);this.h=this.i=this.g=this.f&255};e.Gb=function(){this.b=this.a[this.c++]|this.a[this.c++]<<8;this.i=this.g&this.a[this.b];this.h=this.h&127|this.a[this.b]&128;this.w=0;this.C=this.a[this.b]&64?128:0};e.qb=function(){this.b=this.a[this.c++]|this.a[this.c++]<<8;this.h=this.i=this.g&=this.a[this.b]};
|
||||||
|
e.md=function(){this.j=this.a[this.c++]|this.a[this.c++]<<8;this.f=this.f&65280|this.a[this.j];this.f<<=1;this.f=this.f&65534|(this.f&512?1:0);this.h=this.i=this.a[this.j]=this.f&255};e.Ib=function(){this.c+=(this.h&128?(this.G--,this.a[this.c]<<24>>24):0)+1};e.vb=function(){this.b=this.a[this.c++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.s;this.h=this.i=this.g&=this.a[this.b]};e.xb=function(){this.b=this.a[this.c++]+this.m&255;this.h=this.i=this.g&=this.a[this.b]};
|
||||||
|
e.qd=function(){this.j=this.a[this.c++]+this.m&255;this.f=this.f&65280|this.a[this.j];this.f<<=1;this.f=this.f&65534|(this.f&512?1:0);this.h=this.i=this.a[this.j]=this.f&255};e.Gd=function(){this.f=256};e.sb=function(){this.b=(this.a[this.c++]|this.a[this.c++]<<8)+this.s;this.h=this.i=this.g&=this.a[this.b]};e.rb=function(){this.b=(this.a[this.c++]|this.a[this.c++]<<8)+this.m;this.h=this.i=this.g&=this.a[this.b]};
|
||||||
|
e.nd=function(){this.j=(this.a[this.c++]|this.a[this.c++]<<8)+this.m;this.f=this.f&65280|this.a[this.j];this.f<<=1;this.f=this.f&65534|(this.f&512?1:0);this.h=this.i=this.a[this.j]=this.f&255};e.wd=function(){this.o=this.o+1&255|256;this.B=this.a[this.o];this.f=this.B&1?256:0;this.i=this.B&2?0:1;this.h=this.B&128;this.w=0;this.C=this.B&64?128:0;this.o=this.o+2&255|256;this.c=this.a[this.o-1|256]|this.a[this.o]<<8};
|
||||||
|
e.pc=function(){this.b=this.a[this.c++]+this.m&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.h=this.i=this.g^=this.a[this.b]};e.rc=function(){this.b=this.a[this.c++];this.h=this.i=this.g^=this.a[this.b]};e.Xc=function(){this.j=this.a[this.c++];this.f=this.f&65279|(this.a[this.j]&1?256:0);this.a[this.j]=(this.f=this.f&65280|this.a[this.j]>>1)&255;this.h=this.i=this.f&255};e.hd=function(){this.a[this.o--]=this.g;this.o|=256};e.oc=function(){this.b=this.c++;this.h=this.i=this.g^=this.a[this.b]};
|
||||||
|
e.Wc=function(){this.f=this.f&65279|(this.g&1?256:0);this.g=(this.f=this.f&65280|this.g>>1)&255;this.h=this.i=this.f&255};e.Ac=function(){this.b=this.c;this.c=this.a[this.b]|this.a[this.b+1]<<8};e.lc=function(){this.b=this.a[this.c++]|this.a[this.c++]<<8;this.h=this.i=this.g^=this.a[this.b]};e.Uc=function(){this.j=this.a[this.c++]|this.a[this.c++]<<8;this.f=this.f&65279|(this.a[this.j]&1?256:0);this.a[this.j]=(this.f=this.f&65280|this.a[this.j]>>1)&255;this.h=this.i=this.f&255};
|
||||||
|
e.Mb=function(){this.c+=((this.w&255^this.C^this.w>>1)&128?0:(this.G--,this.a[this.c]<<24>>24))+1};e.qc=function(){this.b=this.a[this.c++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.s;this.h=this.i=this.g^=this.a[this.b]};e.sc=function(){this.b=this.a[this.c++]+this.m&255;this.h=this.i=this.g^=this.a[this.b]};e.Yc=function(){this.j=this.a[this.c++]+this.m&255;this.f=this.f&65279|(this.a[this.j]&1?256:0);this.a[this.j]=(this.f=this.f&65280|this.a[this.j]>>1)&255;this.h=this.i=this.f&255};
|
||||||
|
e.Qb=function(){this.B&=251};e.nc=function(){this.b=(this.a[this.c++]|this.a[this.c++]<<8)+this.s;this.h=this.i=this.g^=this.a[this.b]};e.mc=function(){this.b=(this.a[this.c++]|this.a[this.c++]<<8)+this.m;this.h=this.i=this.g^=this.a[this.b]};e.Vc=function(){this.j=(this.a[this.c++]|this.a[this.c++]<<8)+this.m;this.f=this.f&65279|(this.a[this.j]&1?256:0);this.a[this.j]=(this.f=this.f&65280|this.a[this.j]>>1)&255;this.h=this.i=this.f&255};
|
||||||
|
e.xd=function(){this.o=this.o+2&255|256;this.c=(this.a[this.o-1|256]|this.a[this.o]<<8)+1};e.Oa=function(){this.b=this.a[this.c++]+this.m&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.f=this.g+this.a[this.b]+(this.f&256?1:0);this.C=this.g^this.a[this.b];this.w=this.f;this.h=this.i=this.g=this.f&255};e.mb=function(){this.b=this.a[this.c++]+this.m&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.g=Q(this,this.g,this.a[this.b])};
|
||||||
|
e.Qa=function(){this.b=this.a[this.c++];this.f=this.g+this.a[this.b]+(this.f&256?1:0);this.C=this.g^this.a[this.b];this.w=this.f;this.h=this.i=this.g=this.f&255};e.ob=function(){this.b=this.a[this.c++];this.g=Q(this,this.g,this.a[this.b])};e.ud=function(){this.j=this.a[this.c++];this.f=this.f&65280|this.a[this.j];this.f=this.f&65023|(this.f&1?512:0);this.f>>=1;this.h=this.i=this.a[this.j]=this.f&255};e.kd=function(){this.o=this.o+1&255|256;this.h=this.i=this.g=this.a[this.o]};
|
||||||
|
e.Na=function(){this.b=this.c++;this.f=this.g+this.a[this.b]+(this.f&256?1:0);this.C=this.g^this.a[this.b];this.w=this.f;this.h=this.i=this.g=this.f&255};e.lb=function(){this.b=this.c++;this.g=Q(this,this.g,this.a[this.b])};e.td=function(){this.f=this.f&65280|this.g;this.f=this.f&65023|(this.f&1?512:0);this.f>>=1;this.h=this.i=this.g=this.f&255};e.zc=function(){this.b=this.a[this.c++]|this.a[this.c++]<<8;this.c=this.a[this.b]|this.a[this.b+1]<<8};
|
||||||
|
e.Ka=function(){this.b=this.a[this.c++]|this.a[this.c++]<<8;this.f=this.g+this.a[this.b]+(this.f&256?1:0);this.C=this.g^this.a[this.b];this.w=this.f;this.h=this.i=this.g=this.f&255};e.ib=function(){this.b=this.a[this.c++]|this.a[this.c++]<<8;this.g=Q(this,this.g,this.a[this.b])};e.rd=function(){this.j=this.a[this.c++]|this.a[this.c++]<<8;this.f=this.f&65280|this.a[this.j];this.f=this.f&65023|(this.f&1?512:0);this.f>>=1;this.h=this.i=this.a[this.j]=this.f&255};
|
||||||
|
e.Nb=function(){this.c+=((this.w&255^this.C^this.w>>1)&128?(this.G--,this.a[this.c]<<24>>24):0)+1};e.Pa=function(){this.b=this.a[this.c++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.s;this.f=this.g+this.a[this.b]+(this.f&256?1:0);this.C=this.g^this.a[this.b];this.w=this.f;this.h=this.i=this.g=this.f&255};e.nb=function(){this.b=this.a[this.c++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.s;this.g=Q(this,this.g,this.a[this.b])};
|
||||||
|
e.Ra=function(){this.b=this.a[this.c++]+this.m&255;this.f=this.g+this.a[this.b]+(this.f&256?1:0);this.C=this.g^this.a[this.b];this.w=this.f;this.h=this.i=this.g=this.f&255};e.pb=function(){this.b=this.a[this.c++]+this.m&255;this.g=Q(this,this.g,this.a[this.b])};e.vd=function(){this.j=this.a[this.c++]+this.m&255;this.f=this.f&65280|this.a[this.j];this.f=this.f&65023|(this.f&1?512:0);this.f>>=1;this.h=this.i=this.a[this.j]=this.f&255};e.Id=function(){this.B|=4};
|
||||||
|
e.Ma=function(){this.b=(this.a[this.c++]|this.a[this.c++]<<8)+this.s;this.f=this.g+this.a[this.b]+(this.f&256?1:0);this.C=this.g^this.a[this.b];this.w=this.f;this.h=this.i=this.g=this.f&255};e.kb=function(){this.b=(this.a[this.c++]|this.a[this.c++]<<8)+this.s;this.g=Q(this,this.g,this.a[this.b])};e.La=function(){this.b=(this.a[this.c++]|this.a[this.c++]<<8)+this.m;this.f=this.g+this.a[this.b]+(this.f&256?1:0);this.C=this.g^this.a[this.b];this.w=this.f;this.h=this.i=this.g=this.f&255};
|
||||||
|
e.jb=function(){this.b=(this.a[this.c++]|this.a[this.c++]<<8)+this.m;this.g=Q(this,this.g,this.a[this.b])};e.sd=function(){this.j=(this.a[this.c++]|this.a[this.c++]<<8)+this.m;this.f=this.f&65280|this.a[this.j];this.f=this.f&65023|(this.f&1?512:0);this.f>>=1;this.h=this.i=this.a[this.j]=this.f&255};e.Md=function(){this.j=this.a[this.c++]+this.m&255;this.j=this.a[this.j]|this.a[this.j+1]<<8;this.a[this.j]=this.g};e.Ud=function(){this.j=this.a[this.c++];this.a[this.j]=this.s};
|
||||||
|
e.Od=function(){this.j=this.a[this.c++];this.a[this.j]=this.g};e.Rd=function(){this.j=this.a[this.c++];this.a[this.j]=this.m};e.kc=function(){this.h=this.i=this.s=this.s-1&255};e.$d=function(){this.h=this.i=this.g=this.m};e.Td=function(){this.j=this.a[this.c++]|this.a[this.c++]<<8;this.a[this.j]=this.s};e.Jd=function(){this.j=this.a[this.c++]|this.a[this.c++]<<8;this.a[this.j]=this.g};e.Qd=function(){this.j=this.a[this.c++]|this.a[this.c++]<<8;this.a[this.j]=this.m};
|
||||||
|
e.Db=function(){this.c+=(this.f&256?0:(this.G--,this.a[this.c]<<24>>24))+1};e.Nd=function(){this.j=this.a[this.c++];this.j=(this.a[this.j]|this.a[this.j+1]<<8)+this.s;this.a[this.j]=this.g};e.Vd=function(){this.j=this.a[this.c++]+this.m&255;this.a[this.j]=this.s};e.Pd=function(){this.j=this.a[this.c++]+this.m&255;this.a[this.j]=this.g};e.Sd=function(){this.j=this.a[this.c++]+this.s&255;this.a[this.j]=this.m};e.be=function(){this.h=this.i=this.g=this.s};
|
||||||
|
e.Ld=function(){this.j=(this.a[this.c++]|this.a[this.c++]<<8)+this.s;this.a[this.j]=this.g};e.ae=function(){this.o=this.m|256};e.Kd=function(){this.j=(this.a[this.c++]|this.a[this.c++]<<8)+this.m;this.a[this.j]=this.g};e.Rc=function(){this.b=this.c++;this.h=this.i=this.s=this.a[this.b]};e.Gc=function(){this.b=this.a[this.c++]+this.m&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.h=this.i=this.g=this.a[this.b]};e.Mc=function(){this.b=this.c++;this.h=this.i=this.m=this.a[this.b]};
|
||||||
|
e.Sc=function(){this.b=this.a[this.c++];this.h=this.i=this.s=this.a[this.b]};e.Ic=function(){this.b=this.a[this.c++];this.h=this.i=this.g=this.a[this.b]};e.Nc=function(){this.b=this.a[this.c++];this.h=this.i=this.m=this.a[this.b]};e.Yd=function(){this.h=this.i=this.s=this.g};e.Fc=function(){this.b=this.c++;this.h=this.i=this.g=this.a[this.b]};e.Xd=function(){this.h=this.i=this.m=this.g};e.Pc=function(){this.b=this.a[this.c++]|this.a[this.c++]<<8;this.h=this.i=this.s=this.a[this.b]};
|
||||||
|
e.Cc=function(){this.b=this.a[this.c++]|this.a[this.c++]<<8;this.h=this.i=this.g=this.a[this.b]};e.Kc=function(){this.b=this.a[this.c++]|this.a[this.c++]<<8;this.h=this.i=this.m=this.a[this.b]};e.Eb=function(){this.c+=(this.f&256?(this.G--,this.a[this.c]<<24>>24):0)+1};e.Hc=function(){this.b=this.a[this.c++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.s;this.h=this.i=this.g=this.a[this.b]};e.Tc=function(){this.b=this.a[this.c++]+this.m&255;this.h=this.i=this.s=this.a[this.b]};
|
||||||
|
e.Jc=function(){this.b=this.a[this.c++]+this.m&255;this.h=this.i=this.g=this.a[this.b]};e.Oc=function(){this.b=this.a[this.c++]+this.s&255;this.h=this.i=this.m=this.a[this.b]};e.Rb=function(){this.C=this.w=0};e.Ec=function(){this.b=(this.a[this.c++]|this.a[this.c++]<<8)+this.s;this.h=this.i=this.g=this.a[this.b]};e.Zd=function(){this.h=this.i=this.m=this.o&255};e.Qc=function(){this.b=(this.a[this.c++]|this.a[this.c++]<<8)+this.m;this.h=this.i=this.s=this.a[this.b]};
|
||||||
|
e.Dc=function(){this.b=(this.a[this.c++]|this.a[this.c++]<<8)+this.m;this.h=this.i=this.g=this.a[this.b]};e.Lc=function(){this.b=(this.a[this.c++]|this.a[this.c++]<<8)+this.s;this.h=this.i=this.m=this.a[this.b]};e.dc=function(){this.b=this.c++;this.h=this.i=this.f=this.s-this.a[this.b];this.f^=256};e.Wb=function(){this.b=this.a[this.c++]+this.m&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.h=this.i=this.f=this.g-this.a[this.b];this.f^=256};
|
||||||
|
e.ec=function(){this.b=this.a[this.c++];this.h=this.i=this.f=this.s-this.a[this.b];this.f^=256};e.Yb=function(){this.b=this.a[this.c++];this.h=this.i=this.f=this.g-this.a[this.b];this.f^=256};e.hc=function(){this.j=this.a[this.c++];this.h=this.i=this.a[this.j]=this.a[this.j]-1&255};e.yc=function(){this.h=this.i=this.s=this.s+1&255};e.Vb=function(){this.b=this.c++;this.h=this.i=this.f=this.g-this.a[this.b];this.f^=256};e.jc=function(){this.h=this.i=this.m=this.m-1&255};
|
||||||
|
e.cc=function(){this.b=this.a[this.c++]|this.a[this.c++]<<8;this.h=this.i=this.f=this.s-this.a[this.b];this.f^=256};e.Sb=function(){this.b=this.a[this.c++]|this.a[this.c++]<<8;this.h=this.i=this.f=this.g-this.a[this.b];this.f^=256};e.fc=function(){this.j=this.a[this.c++]|this.a[this.c++]<<8;this.h=this.i=this.a[this.j]=this.a[this.j]-1&255};e.Jb=function(){this.c+=(this.i&255?(this.G--,this.a[this.c]<<24>>24):0)+1};
|
||||||
|
e.Xb=function(){this.b=this.a[this.c++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.s;this.h=this.i=this.f=this.g-this.a[this.b];this.f^=256};e.Zb=function(){this.b=this.a[this.c++]+this.m&255;this.h=this.i=this.f=this.g-this.a[this.b];this.f^=256};e.ic=function(){this.j=this.a[this.c++]+this.m&255;this.h=this.i=this.a[this.j]=this.a[this.j]-1&255};
|
||||||
|
e.Pb=function(){this.B&=-9;this.v[97]=this.Oa;this.v[101]=this.Qa;this.v[105]=this.Na;this.v[109]=this.Ka;this.v[113]=this.Pa;this.v[117]=this.Ra;this.v[121]=this.Ma;this.v[125]=this.La;this.v[225]=this.Wa;this.v[229]=this.Ya;this.v[233]=this.Va;this.v[237]=this.Sa;this.v[241]=this.Xa;this.v[245]=this.Za;this.v[249]=this.Ua;this.v[253]=this.Ta};e.Ub=function(){this.b=(this.a[this.c++]|this.a[this.c++]<<8)+this.s;this.h=this.i=this.f=this.g-this.a[this.b];this.f^=256};
|
||||||
|
e.Tb=function(){this.b=(this.a[this.c++]|this.a[this.c++]<<8)+this.m;this.h=this.i=this.f=this.g-this.a[this.b];this.f^=256};e.gc=function(){this.j=(this.a[this.c++]|this.a[this.c++]<<8)+this.m;this.h=this.i=this.a[this.j]=this.a[this.j]-1&255};e.ac=function(){this.b=this.c++;this.h=this.i=this.f=this.m-this.a[this.b];this.f^=256};
|
||||||
|
e.Wa=function(){this.b=this.a[this.c++]+this.m&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.f=this.g-this.a[this.b]-(this.f&256?0:1);this.C=this.g^this.a[this.b];this.w=this.f;this.h=this.i=this.g=this.f&255;this.f^=256};e.Cd=function(){this.b=this.a[this.c++]+this.m&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.g=R(this,this.g,this.a[this.b])};e.bc=function(){this.b=this.a[this.c++];this.h=this.i=this.f=this.m-this.a[this.b];this.f^=256};
|
||||||
|
e.Ya=function(){this.b=this.a[this.c++];this.f=this.g-this.a[this.b]-(this.f&256?0:1);this.C=this.g^this.a[this.b];this.w=this.f;this.h=this.i=this.g=this.f&255;this.f^=256};e.Ed=function(){this.b=this.a[this.c++];this.g=R(this,this.g,this.a[this.b])};e.vc=function(){this.j=this.a[this.c++];this.h=this.i=this.a[this.j]=this.a[this.j]+1&255};e.xc=function(){this.h=this.i=this.m=this.m+1&255};
|
||||||
|
e.Va=function(){this.b=this.c++;this.f=this.g-this.a[this.b]-(this.f&256?0:1);this.C=this.g^this.a[this.b];this.w=this.f;this.h=this.i=this.g=this.f&255;this.f^=256};e.Bd=function(){this.b=this.c++;this.g=R(this,this.g,this.a[this.b])};e.Zc=function(){};e.$b=function(){this.b=this.a[this.c++]|this.a[this.c++]<<8;this.h=this.i=this.f=this.m-this.a[this.b];this.f^=256};
|
||||||
|
e.Sa=function(){this.b=this.a[this.c++]|this.a[this.c++]<<8;this.f=this.g-this.a[this.b]-(this.f&256?0:1);this.C=this.g^this.a[this.b];this.w=this.f;this.h=this.i=this.g=this.f&255;this.f^=256};e.yd=function(){this.b=this.a[this.c++]|this.a[this.c++]<<8;this.g=R(this,this.g,this.a[this.b])};e.tc=function(){this.j=this.a[this.c++]|this.a[this.c++]<<8;this.h=this.i=this.a[this.j]=this.a[this.j]+1&255};e.Fb=function(){this.c+=(this.i&255?0:(this.G--,this.a[this.c]<<24>>24))+1};
|
||||||
|
e.Xa=function(){this.b=this.a[this.c++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.s;this.f=this.g-this.a[this.b]-(this.f&256?0:1);this.C=this.g^this.a[this.b];this.w=this.f;this.h=this.i=this.g=this.f&255;this.f^=256};e.Dd=function(){this.b=this.a[this.c++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.s;this.g=R(this,this.g,this.a[this.b])};
|
||||||
|
e.Za=function(){this.b=this.a[this.c++]+this.m&255;this.f=this.g-this.a[this.b]-(this.f&256?0:1);this.C=this.g^this.a[this.b];this.w=this.f;this.h=this.i=this.g=this.f&255;this.f^=256};e.Fd=function(){this.b=this.a[this.c++]+this.m&255;this.g=R(this,this.g,this.a[this.b])};e.wc=function(){this.j=this.a[this.c++]+this.m&255;this.h=this.i=this.a[this.j]=this.a[this.j]+1&255};
|
||||||
|
e.Hd=function(){this.B|=8;this.v[97]=this.mb;this.v[101]=this.ob;this.v[105]=this.lb;this.v[109]=this.ib;this.v[113]=this.nb;this.v[117]=this.pb;this.v[121]=this.kb;this.v[125]=this.jb;this.v[225]=this.Cd;this.v[229]=this.Ed;this.v[233]=this.Bd;this.v[237]=this.yd;this.v[241]=this.Dd;this.v[245]=this.Fd;this.v[249]=this.Ad;this.v[253]=this.zd};
|
||||||
|
e.Ua=function(){this.b=(this.a[this.c++]|this.a[this.c++]<<8)+this.s;this.f=this.g-this.a[this.b]-(this.f&256?0:1);this.C=this.g^this.a[this.b];this.w=this.f;this.h=this.i=this.g=this.f&255;this.f^=256};e.Ad=function(){this.b=(this.a[this.c++]|this.a[this.c++]<<8)+this.s;this.g=R(this,this.g,this.a[this.b])};
|
||||||
|
e.Ta=function(){this.b=(this.a[this.c++]|this.a[this.c++]<<8)+this.m;this.f=this.g-this.a[this.b]-(this.f&256?0:1);this.C=this.g^this.a[this.b];this.w=this.f;this.h=this.i=this.g=this.f&255;this.f^=256};e.zd=function(){this.b=(this.a[this.c++]|this.a[this.c++]<<8)+this.m;this.g=R(this,this.g,this.a[this.b])};e.uc=function(){this.j=(this.a[this.c++]|this.a[this.c++]<<8)+this.m;this.h=this.i=this.a[this.j]=this.a[this.j]+1&255};
|
||||||
|
e.Wd=function(){var a;a=this.a[this.c++];switch(a){case 0:this.F("HALT");M(this);break;case 1:a=this.c;for(var b="";a<this.a.length;){var c=this.a[a++];if(!c)break;b+=String.fromCharCode(c)}this.c=a;b=b.replace(/%A/g,n(this.g,2)).replace(/%X/g,n(this.m,2)).replace(/%Y/g,n(this.s,2));this.F(b);this.R=0;this.L-=this.G;this.G=0;break;default:this.c-=2,this.F("undefined opSim: 0x"+n(a,2)+" at "+("0x"+n(this.c,4))),M(this)}};
|
||||||
|
e.l=function(){var a=this.a[--this.c];this.F("undefined opcode: 0x"+n(a,2)+" at "+("0x"+n(this.c,4)));M(this)};y(function(){for(var a=I(window.document,"c1pjs","cpu"),b=0;b<a.length;b++){var c=a[b],d=G(c),d=new ma(d);H(d,c)}});
|
||||||
|
function S(a){B.call(this,"C1PROM",a);this.b=this.a=null;this.c=a.size;if(this.g=a.image){a=this.g;var b;b=this.g;var c="",d=b.lastIndexOf(".");0<=d&&(c=b.substr(d+1).toLowerCase());b=c;"json"!=b&&"hex"!=b&&(a="http://"+(window?window.location.host:"www.pcjs.org")+"/api/v1/dump?file="+this.g+"&format=bytes");r(a,this,this.i)}}E(S);
|
||||||
|
S.prototype.X=function(a,b,c,d){this.a=a;this.h=b;a=c-b+1;this.c||(this.c=a);a!=this.c?ka(this,"computer-specified ROM size (0x"+n(a,4)+") does not match component-specified size ("+("0x"+n(this.c,4))+")"):(d&&(this.f=d,O(d,b,c,this,this.P)),ya(this))};S.prototype.$=function(a){a&&!this.u.H&&(this.u.H=!0)};S.prototype.P=function(a,b){if(void 0!==b){var c=a-this.h;this.a[this.h+c]=this.b?this.b[c]:0}};
|
||||||
|
S.prototype.i=function(a,b,c){if(c)this.F('Error loading ROM "'+a+'" ('+c+")");else{if("["==b.charAt(0)||"{"==b.charAt(0))try{var d=eval("("+b+")"),f=d.bytes;f?this.b=f:this.b=d}catch(g){this.F('Error processing ROM "'+a+'": '+g.message);return}else for(a=b.replace(/\n/gm," ").replace(/ +$/,"").split(" "),this.b=Array(a.length),b=0;b<a.length;b++)this.b[b]=parseInt(a[b],16);ya(this)}};
|
||||||
|
function ya(a){if(!J(a))if(!a.g)a.N();else if(a.b&&a.a){var b=a.b.length;if(b!=a.c)ka(a,"ROM image size (0x"+n(b,4)+") does not match component-specified size ("+("0x"+n(a.c,4))+")");else{for(var c=0;c<b;c++)a.a[a.h+c]=a.b[c];a.N()}}}y(function(){for(var a=I(window.document,"c1pjs","rom"),b=0;b<a.length;b++){var c=a[b],d=G(c),d=new S(d);H(d,c)}});function za(a){B.call(this,"C1PRAM",a)}E(za);za.prototype.X=function(a){this.a=a;this.N()};
|
||||||
|
y(function(){for(var a=I(window.document,"c1pjs","ram"),b=0;b<a.length;b++){var c=a[b],d=G(c),d=new za(d);H(d,c)}});
|
||||||
|
function Aa(a){B.call(this,"C1PKeyboard",a);this.u.H=!1;this.ea=a.model;this.L=8;this.na=10;this.ma=13;this.O=27;this.ka=this.L;this.la=this.na;this.fa=this.ma;this.K=this.O;this.v=241;this.G=224;this.ia=3;this.ja=15;this.o=1;this.m=[];this.m["break"]=this.G;this.m.esc=this.K;this.m["ctrl-c"]=this.ia;this.m["ctrl-o"]=this.ja;this.b=[];this.b[49]=30464;this.b[33]=30704;this.b[50]=30208;this.b[34]=30448;this.b[51]=29952;this.b[35]=30192;this.b[52]=29696;this.b[36]=29936;this.b[53]=29440;this.b[37]=
|
||||||
|
29680;this.b[54]=29184;this.b[38]=29424;this.b[55]=28928;this.b[39]=29168;this.b[56]=26368;this.b[40]=26608;this.b[57]=26112;this.b[41]=26352;this.b[48]=25856;this.b[58]=25600;this.b[42]=25840;this.b[45]=25344;this.b[61]=25584;this.b[46]=22272;this.b[62]=22512;this.b[108]=22016;this.b[76]=22256;this.b[92]=22256;this.b[111]=21760;this.b[79]=22E3;this.b[this.ka]=22E3;this.b[this.la]=21504;this.b[this.fa]=21248;this.b[119]=18176;this.b[87]=18416;this.b[101]=17920;this.b[69]=18160;this.b[114]=17664;this.b[82]=
|
||||||
|
17904;this.b[116]=17408;this.b[84]=17648;this.b[121]=17152;this.b[89]=17392;this.b[117]=16896;this.b[85]=17136;this.b[105]=16640;this.b[73]=16880;this.b[115]=14080;this.b[83]=14320;this.b[100]=13824;this.b[68]=14064;this.b[102]=13568;this.b[70]=13808;this.b[103]=13312;this.b[71]=13552;this.b[104]=13056;this.b[72]=13296;this.b[106]=12800;this.b[74]=13040;this.b[107]=12544;this.b[75]=12784;this.b[91]=12784;this.b[120]=9984;this.b[88]=10224;this.b[99]=9728;this.b[67]=9968;this.b[118]=9472;this.b[86]=
|
||||||
|
9712;this.b[98]=9216;this.b[66]=9456;this.b[110]=8960;this.b[78]=9200;this.b[94]=9200;this.b[109]=8704;this.b[77]=8944;this.b[93]=8944;this.b[44]=8448;this.b[60]=8688;this.b[113]=5888;this.b[81]=6128;this.b[97]=5632;this.b[65]=5872;this.b[122]=5376;this.b[90]=5616;this.b[32]=5120;this.b[47]=4864;this.b[63]=5104;this.b[59]=4608;this.b[43]=4848;this.b[112]=4352;this.b[80]=4592;this.b[64]=4592;this.b[this.v]=1536;this.b[this.K]=1280;this.b[240]=512;this.b[242]=256;this.b[244]=0;this.reset()}E(Aa);
|
||||||
|
e=Aa.prototype;e.reset=function(){this.ra(this.ea);this.c=this.o;this.S=0;this.g=[this.o,0,0,0,0,0,0,0];this.w=[];if(this.h)for(var a in this.h)isNaN(a)||this.h[a]&&clearTimeout(this.h[a]);this.h=[];this.ca=this.i=0;this.T=-1;this.R=this.g;this.V=this.C=0;this.j=""};
|
||||||
|
e.J=function(a,b,c){if(void 0===this.A[b])switch(b){case "keyDown":return this.A[b]=c,c.onkeydown=function(a){return function(b){return Ba(a,b,!0)}}(this),!0;case "keyPress":return this.A[b]=c,c.onkeypress=function(a){return function(b){var c=!0;b=b||window.event;b=b.which||b.keyCode;a.j="";a.c&8?a.c&=-9:c=!T(a,b);return c}}(this),!0;case "keyUp":return this.A[b]=c,c.onkeyup=function(a){return function(b){return Ba(a,b,!1)}}(this),!0;case "break":return this.A[b]=c,c.onclick=function(a){return function(){a.I&&
|
||||||
|
a.I.reset(!0)}}(this),!0;default:if(void 0!==this.m[b])return this.A[b]=c,c.onclick=function(a,b,c){return function(){a.f&&a.f.da();return!T(a,c)}}(this,b,this.m[b]),!0}return!1};e.X=function(a,b,c,d){this.a=a;this.Y=b;this.oa=c-b+1;this.sa=this.Y+this.oa;d&&(this.f=d,O(d,b,c,this,this.P));this.N()};e.ra=function(a){this.s=a;this.B=255;600!=this.s&&(this.B=0,this.F("updated keyboard model: "+this.s))};e.$=function(a,b){a&&!this.u.H&&(this.u.H=!0,this.I=b)};
|
||||||
|
e.N=function(){this.U=(this.ta=u("iOS"))||u("Android");B.prototype.N.call(this)};function Ca(a,b){var c=b?100:250;a.f&&a.f.ba&&(c/=a.f.ba);return c}function Da(a,b){!a.i||void 0!==b&&b==a.i||(clearTimeout(a.h[a.i]),U(a,a.i,!1,4))}function V(a,b,c){a.j=b;Ea(a,c||300)}function Ea(a,b){if(0<a.j.length){var c=a.j.charCodeAt(0);10==c&&(c=13);65<=c&&90>=c&&(c+=32);a.j=a.j.substr(1);T(a,c)}0<a.j.length&&setTimeout(function(a){return function(){Ea(a,b)}}(a),b)}
|
||||||
|
function Ba(a,b,c){var d,f=!c;b=b.keyCode;c&&(a.ca=b);16==b?(a.c&=-5,c&&(a.c|=4),b+=224,f=!1):18==b?(a.c&=-3,c&&(a.c|=2),b+=224,f=!1):b==a.v-224?(a.c&=-65,c&&(a.c|=64),b+=224,f=!1):20==b?(c=!c,a.c&=~a.o,c&&(a.c|=a.o),b+=224,f=!1):91==b?(a.c&=-9,c&&(a.c|=8),f=!1,d=!0):d=9==b?f=!1:b==a.O||b==a.L?c?!T(a,b):!1:!0;f&&(a.c&=-9,a.U||b!=a.ca||Da(a));void 0===d&&(d=!U(a,b,c,2));return d}
|
||||||
|
function T(a,b){var c=!1;b==a.G?a.I&&(a.I.reset(!0),c=!0):(a.U&&65<=b&&90>=b&&(b+=32),Da(a,b),U(a,b,!0,0)&&(a.f.speed==a.f.Ba?U(a,b,!1,1):(c=!1,a.h[b]&&(clearTimeout(a.h[b]),c=!0),c=Ca(a,c),a.h[a.i=b]=setTimeout(function(a){return function(){U(a,b,!1,3)}}(a),c)),c=!0));return c}
|
||||||
|
function U(a,b,c,d){var f=!1;c||(a.h[b]=null,a.i==b&&(a.i=0));var g=0,k=a.b[b];void 0===k&&(1<=b&&26>=b&&(b+=64,g=a.v),k=a.b[b]);void 0!==k&&(b=k>>12,f=k>>8&15,g||(g=k&255),c?(a.g[b]|=1<<f,a.g[0]=g==a.v?a.g[0]|64:240==g?a.g[0]|4:242==g?a.g[0]|2:a.g[0]&-71):(a.g[b]&=~(1<<f),a.g[0]&=-71,a.g[0]|=a.c&70),c=0==d&&!a.w.length,a.w.push(a.g.slice()),Fa(a,c),f=!0);return f}e.W=function(){};e.P=function(a){this.S=this.f.W(a)^this.B;this.C++;Fa(this,!1,a)};
|
||||||
|
function Fa(a,b,c){var d=xa(a.f);b||(a.f.speed==a.f.Ba?b=void 0!==c&&32<=a.C:(b=d-a.V,b=0>b||8192<=b));b&&(b=a.w.shift(),void 0!==b&&(a.R=b),a.C=0,a.V=d);for(b=d=0;8>b;b++)a.S&1<<b&&(d|=a.R[b]);d^=a.B;if(void 0!==c)a.a[c]=d;else if(c=a.Y,d!=a.T)for(;c<a.sa;c++)a.a[c]=d;a.T=d}y(function(){for(var a=I(window.document,"c1pjs","keyboard"),b=0;b<a.length;b++){var c=a[b],d=G(c),d=new Aa(d);H(d,c)}});
|
||||||
|
function Ga(a,b,c,d){B.call(this,"C1PVideo",a);this.S=a.model;this.K=a.charCols;this.L=a.charRows;this.U=a.screenWidth;this.V=a.screenHeight;this.i=a.charWidth;this.j=a.charHeight;Ha(this);this.m=b;this.R=c;this.g=d}E(Ga);e=Ga.prototype;e.reset=function(a){this.ra(this.S);if(this.a)for(var b=this.v;b<this.B;b++)this.a[b]=a?Math.floor(256*Math.random()):32};e.J=function(a,b,c){switch(b){case "refresh":return this.A[b]=c,c.onclick=function(a){return function(){Ia(a);pa(a)}}(this),!0}return!1};
|
||||||
|
e.X=function(a,b,c,d){this.a=a;this.v=b;this.T=c-b+1;this.B=this.v+this.T;d&&(this.f=d,qa(d,56832,56832,this,this.W),O(d,56832,56832,this,this.P));this.reset(!0)};function Ha(a,b,c,d,f){a.o=void 0!==b?b:a.K;a.Y=void 0!==c?c:a.L;a.c=a.o*a.Y;a.B=a.v+a.c;a.I=void 0!==d?d:0;a.O=void 0!==f?f:c;a.C=Math.floor(a.U/a.o);a.G=Math.floor(a.V/a.O)}e.da=function(){this.m.focus()};
|
||||||
|
e.ra=function(a){this.s=a;600==this.s?(Ha(this,this.K,this.L,3,25),1024==this.c&&this.f&&(this.h=this.B+this.c-1,O(this.f,this.h,this.h,this,this.ab))):(this.F("updated video model: "+this.s),Ha(this,64,32));Ia(this);pa(this)};e.$=function(a,b){if(a&&!this.u.H&&J(this)){if(this.u.H=!0,this.b=L(b,"keyboard"))this.b.J("canvas","keyDown",this.m),this.b.J("canvas","keyPress",this.m),this.b.J("canvas","keyUp",this.m)}else!a&&this.u.H&&(this.u.H=!1)};
|
||||||
|
e.N=function(){this.i||(this.i=Math.floor(this.g.width/16));this.j||(this.j=Math.floor(this.g.height/16));B.prototype.N.call(this)};e.W=function(a){var b=this.f.W(a);this.f.P(a,b&127|(Math.floor(xa(this.f)/8333)&1?128:0))};e.P=function(){};
|
||||||
|
e.ab=function(a,b){if(void 0!==b){this.ra(540);this.b&&this.b.ra(542);var c=this.f,d=c.K,f=[],g=ra(d,this.h,this.h,this,this.ab);if(0<=g){f.push(d[g][0]);f.push(d[g][1]);d.splice(g,1);for(var k=65536,h=0,g=0;g<d.length;g++)k>d[g][0]&&(k=d[g][0]),h<d[g][1]&&(h=d[g][1]);f.push(k);f.push(h)}4==f.length&&(c.Y=f[2],c.ca=f[3])}};function Ia(a){a.w=Array(a.c);for(var b=0;b<=a.c;b++)a.w[b]=-1}
|
||||||
|
function pa(a){var b=0;if(a.u.H)for(;b<a.c;){var c=a.a[a.v+b];if(a.w[b]!=c){var d=Math.floor(b/a.o);if(d>=a.I&&(d-=a.I,d<a.O)){var f=c*a.i;a.R.drawImage(a.g,f%a.g.width,Math.floor(f/a.g.width)*a.j,a.i,a.j,b%a.o*a.C,d*a.G,a.C,a.G)}a.w[b]=c}b++}}
|
||||||
|
y(function(){for(var a=I(window.document,"c1pjs","video"),b=0;b<a.length;b++){var c=a[b],d=G(c),f=window.document.createElement("canvas");if(void 0===f||!f.getContext){c.innerHTML="<br/>Missing <canvas> support. Please try a newer web browser.";break}f.setAttribute("class","c1pjs-canvas");f.setAttribute("width",d.screenWidth);f.setAttribute("height",d.screenHeight);f.setAttribute("contenteditable","true");f.setAttribute("autocapitalize","off");f.setAttribute("autocorrect","off");f.style.backgroundColor=
|
||||||
|
d.screenColor;f.style.height="auto";0<=(window?window.navigator.userAgent:"").indexOf("MSIE")&&(f.style.height=(c.clientWidth*d.screenHeight/d.screenWidth|0)+"px",c.onresize=function(a,b,c,d){return function(){b.style.height=(a.clientWidth*d/c|0)+"px"}}(c,f,d.screenWidth,d.screenHeight));c.appendChild(f);var g=new Image,k=f.getContext("2d"),f=new Ga(d,f,k,g);g.onload=function(a){return function(){a.N()}}(f,d.charSet);g.src=d.charSet;H(f,c)}});
|
||||||
|
function Ja(a){B.call(this,"C1PSerialPort",a);this.u.H=!1;this.s=a.demo;this.reset()}E(Ja);e=Ja.prototype;e.reset=function(){if(2!=this.c){this.h=this.j=0;var a=1;if(this.Da){var b=this.Da.match(/\d+/);null!==b&&(a=parseInt(b[0],10))}this.g='10 PRINT "HELLO OSI #'+a+'"\n';this.c=this.i=0}};e.start=function(){this.b&&this.s&&(V(this.b," C\n\n",3E3),setTimeout(function(a){return function(){a.c=1;V(a.b,"LOAD\n")}}(this),12E3));this.s=!1};
|
||||||
|
e.J=function(a,b,c){var d=this;switch(b){case "listSerial":return this.A[b]=c,!0;case "loadSerial":return this.A[b]=c,c.onclick=function(){d.A.listSerial&&r(d.A.listSerial.value,d,d.Ia)},!0;case "mountSerial":return!u("Mobi")&&window&&"FileReader"in window?(this.A[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length}),c.onsubmit=function(a){var b=a.currentTarget[1].files[0],c=new FileReader;c.onload=function(){d.Ia(b.name,c.result.toString(),
|
||||||
|
0)};c.readAsText(b);return!1}):c.parentNode.removeChild(c),!0}return!1};e.X=function(a,b,c,d){this.a=a;this.m=b;this.v=c-b+1;this.o=this.m+this.v;if(this.f=d)qa(d,b,c,this,this.W),O(d,b,c,this,this.P);this.N()};e.$=function(a,b){a&&!this.u.H&&(this.u.H=!0,this.I=b,this.b=L(b,"keyboard"))};
|
||||||
|
e.Ia=function(a,b,c){b?(this.g=b,this.c=this.i=0,this.I&&this.b&&this.f.u.Z?(this.F("auto-loading "+a),this.f.da(),"."!=this.g.charAt(0)?(this.c=1,V(this.b,"NEW\nLOAD\n")):(this.c=2,this.I.reset(!0),V(this.b,"ML"))):this.F(a+" ready to load")):this.F(a+" load error ("+c+")")};e.W=function(a,b){void 0!==b&&(a&1?Ka(this):this.g&&!this.i&&Ka(this))};e.P=function(){};
|
||||||
|
function Ka(a){if(void 0!==a.g){a.j=0;a.h=0;if(a.i<a.g.length){var b=a.g.charCodeAt(a.i++);10==b&&(b=13);a.j=b;a.h=1}else 1==a.c&&a.b&&V(a.b," \nRUN\n"),a.c=0;for(b=a.m+0;b<a.o;b+=2)a.a[b]=a.h?1:0;for(b=a.m+1;b<a.o;b+=2)a.a[b]=a.h?a.j:0}}y(function(){for(var a=I(window.document,"c1pjs","serial"),b=0;b<a.length;b++){var c=a[b],d=G(c),d=new Ja(d);H(d,c)}});function La(a){B.call(this,"C1PDiskController",a);this.u.H=!1;this.reset(!0)}E(La);e=La.prototype;
|
||||||
|
e.reset=function(a){Ma(this);this.b=-1;a&&(this.c=[],this.c[0]={ce:0,Ja:40,bb:!0,ha:20,aa:0,ga:-1,ua:[]})};
|
||||||
|
function Ma(a){a.v={D:64,read:function(){},update:function(a){return function(c){void 0!==c&&(this.D=c);a.j.D&4||W(a,0,this)}}(a)};a.g={D:255,read:function(){this.update()},update:function(a){return function(c){void 0===c?c=a.g.D:Na(a,c,a.i.D);c=(c|190)&-2;if(0<=a.b&&a.c[a.b].ua.length){var d=a.c[a.b];d.bb&&(c&=-33);d.aa||(c&=-3);10>=--d.ha&&(0<d.ha?(c&=-129,Oa(a)):(d.ha=100,0<=a.b&&(a.c[a.b].ga=0,Pa(a))))}this.D=c;a.j.D&4&&W(a,0,this)}}(a)};a.j={D:0,read:function(){},update:function(a){return function(c){void 0!==
|
||||||
|
c&&(this.D=c&-193);W(a,1,this);a.g.update();a.v.update()}}(a)};a.w={D:255,read:function(){},update:function(a){return function(c){void 0!==c&&(this.D=c);a.m.D&4||W(a,2,this)}}(a)};a.i={D:255,read:function(){},update:function(a){return function(c){void 0===c?c=a.i.D:Na(a,a.g.D,c);if(0<=a.b&&a.b<a.c.length){var d=a.c[a.b];d.ua.length&&a.i.D&8&&!(c&8)&&(c&4?d.aa--:d.aa++,d.aa>=d.Ja&&(d.aa=d.Ja),0>d.aa&&(d.aa=0),d.ha=20,a.g.update(a.g.D|128),Oa(a))}this.D=c;a.m.D&4&&W(a,2,this)}}(a)};a.m={D:0,read:function(){},
|
||||||
|
update:function(a){return function(c){void 0!==c&&(this.D=c&-193);W(a,3,this);a.i.update();a.w.update()}}(a)};a.B={D:0,read:function(){},update:function(a){return function(c){void 0!==c&&(3==(c&3)&&(a.h.D=14),this.D=c);a.h.update()}}(a)};a.h={D:14,read:function(){},update:function(a){return function(c){void 0===c&&(c=a.h.D);c&=-2;0<=a.b&&0<=a.c[a.b].ga&&(c|=1);this.D=c;W(a,16,this)}}(a)};a.o={D:0,read:function(a){return function(){Pa(a)}}(a),update:function(a){return function(c){void 0!==c&&(this.D=
|
||||||
|
c);W(a,17,this)}}(a)};a.C={D:0,read:function(){},update:function(){return function(){}}(a)}}
|
||||||
|
e.J=function(a,b,c){switch(b){case "listDisk":return this.A[b]=c,!0;case "loadDisk":return this.A[b]=c,c.onclick=function(a){return function(){if(a.A.listDisk){var b=a.A.listDisk.value,c=b;".json"!=b.substr(b.length-5)&&(c="http://"+window.location.host+"/api/v1/dump?disk="+b);var k=b,h=b.lastIndexOf("/");0<=h&&(k=b.substr(h+1));h=k.indexOf("&");0<h&&(k=k.substr(0,h));a.F("loading "+k+"...");r(c,a,a.hb)}}}(this),!0}return!1};
|
||||||
|
e.X=function(a,b,c,d){this.a=a;this.s=b;if(this.f=d)qa(d,b,c,this,this.W),O(d,b,c,this,this.P);this.N()};e.$=function(a){a&&!this.u.H&&(this.u.H=!0)};
|
||||||
|
e.hb=function(a,b,c){if(c)this.F("disk load error ("+c+")");else{c=[];this.F("mounting "+a+"...");try{if(c=eval("("+b+")"),c.length)if(c[0].length){var d=c[0];if(void 0===d[0].trackNum)this.F("data error: "+d[0]);else if(this.c[0]){for(b=0;b<d.length;b++){var f,g=d[b],k=g.sectors;if(void 0===(f=g.trackNum)||void 0===k)throw Error("track "+b+" missing data");f!=b&&t("track "+f+" out of order (expected "+b+")");c=[];var h,l,m;if(f){Qa(c,g,"trackSig");Ra(c,g);X(c,g,"trackType");for(var p=0;p<k.length;p++){h=
|
||||||
|
k[p];l=h.sectorData;X(c,h,"sectorSig");X(c,h,"sectorNum");X(c,h,"sectorPages");for(m=0;m<l.length;m++)c.push(l[m]);Qa(c,h,"sectorEndSig")}}else for(h=k[0],l=h.sectorData,X(c,g,"trackLoad",2),X(c,h,"sectorPages"),m=0;m<l.length;m++)c.push(l[m]);d[f].$a=c}this.c[0].ua=d;this.F("mount of "+a+" complete")}else this.F("no available drives")}else this.F("no tracks: "+a);else this.F("no data: "+a)}catch(D){this.F("disk data error: "+D.message)}}};
|
||||||
|
function Ra(a,b){var c=b.trackNum;if(void 0===c)throw Error("missing bcd value: trackNum");a.push(Math.floor(c/10)<<4|c%10)}function X(a,b,c,d){b=b[c];if(void 0===b)throw Error("missing binary value: "+c);2==d&&a.push(b>>8&255);a.push(b&255)}function Qa(a,b,c){b=b[c];if(void 0===b)throw Error("missing signature: "+c);for(c=0;c<b.length;c++)a.push(b.charCodeAt(c))}
|
||||||
|
function Sa(a,b,c){b&=63;16>b?b&=3:32>b&&(b&=17);switch(b){case 0:a=a.j.D&4?a.g:a.v;break;case 1:a=a.j;break;case 2:a=a.m.D&4?a.i:a.w;break;case 3:a=a.m;break;case 16:a=c?a.B:a.h;break;case 17:a=a.o;break;default:a=a.C}return a}e.W=function(a,b){void 0!==b&&Sa(this,a-this.s,!1).read()};e.P=function(a,b){if(void 0!==b){var c=this.f.W(a);Sa(this,a-this.s,!0).update(c)}};function Na(a,b,c){var d=-1;void 0!==b&&void 0!==c&&(d=0,c&32||(d|=2),a.g.D&64||(d|=1));a.b!=d&&(a.b=d,a.h.update())}
|
||||||
|
function Oa(a){0<=a.b&&(a.c[a.b].ga=-1,a.o.update(255),a.h.update())}function Pa(a){var b=null;if(0<=a.b){var b=a.c[a.b],c=b.ua[b.aa];void 0!==c&&(0<=b.ga&&b.ga<c.$a.length?(b.ha=100,b=c.$a[b.ga++],a.o.update(b),a.h.update()):(b.ha=10,Oa(a)))}}function W(a,b,c){a.f.P(b+a.s,c.D)}y(function(){for(var a=I(window.document,"c1pjs","disk"),b=0;b<a.length;b++){var c=a[b],d=G(c),d=new La(d);H(d,c)}});function Y(a,b){B.call(this,"C1PComputer",a);this.M=b}E(Y);
|
||||||
|
Y.prototype.reset=function(a){var b=null,c;for(c in this.M)for(var d=0;d<this.M[c].length;d++){var f=this.M[c][d];f&&f.reset&&(f.reset(),"cpu"==c&&(b=f))}b&&(b.update(),a&&N(b))};Y.prototype.start=function(){for(var a in this.M)if("cpu"!=a)for(var b=0;b<this.M[a].length;b++){var c=this.M[a][b];c&&c.start&&c.start()}};Y.prototype.stop=function(a,b){for(var c in this.M)if("cpu"!=c)for(var d=0;d<this.M[c].length;d++){var f=this.M[c][d];f&&f.stop&&f.stop(a,b)}};
|
||||||
|
Y.prototype.J=function(a,b,c){switch(b){case "reset":return this.A[b]=c,c.onclick=function(a){return function(){a.reset()}}(this),!0}return!1};function L(a,b){return a.M[b]?a.M[b][0]:null}function Ta(a){var b=null,c;for(c in a.M)for(var d=0;d<a.M[c].length;d++){var f=a.M[c][d];if(f){if(!J(f)){J(f,function(a){return function(){Ta(a)}}(a));return}"cpu"==c?b=f:f.$&&f.$(!0,a)}}a.N();a.F("C1Pjs v1.20.4\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>");b&&b.$(!0,a)}
|
||||||
|
y(function(){for(var a=I(window.document,"c1pjs","computer"),b=0;b<a.length;b++){for(var c=a[b],d=G(c),f,g={},k,h=0,l=0,m=0;m<d.modules.length;m++){var p=d.modules[m];if(!m){if("cpu"!=p.type)break;h=p.start;l=p.end;k=Array(l+1-h);for(f=h;f<k.length;f++)k[f]=0}if(f=F(p.refID,d.id)){var D=p.type;void 0===g[D]&&(g[D]=[]);g[D].push(f);f.X&&void 0!==p.start&&f.X(k,p.start,p.end,g.cpu[0])}else{t('no component for <module refid="'+p.refID+'">');return}}if(void 0===k){t('<module type="cpu"> definition must appear first in the <computer> specification');
|
||||||
|
break}if(f=F("debugger",d.id))g["debugger"]=[f],f.X&&f.X(k,h,l,g.cpu[0]);h=new Y(d,g);if(l=F("panel",d.id))if(g.panel=[l],l.ya){f=d.id;d=void 0;g=[];f&&(f=0<(d=f.indexOf("."))?f.substr(0,d+1):"");for(d=0;d<C.length;d++)m=C[d],f&&m.id.indexOf(f)||g.push(m);d=g;for(g=0;g<d.length;g++)f=d[g],f!=l&&(f.wa=l.wa,f.F=l.F,f.ya=l.ya)}H(h,c);Ta(h)}});var Z=0;function Ua(a,b,c,d,f,g){f("Loading "+a+"...");r(a,null,function(k,h,l){l?(h||(h="unable to load "+a+" ("+l+")"),g(h,null)):Va(h,a,b,c,d,f,g)})}
|
||||||
|
function Va(a,b,c,d,f,g,k){function h(a,g){if(g)k(g,null);else{if(c){var h=b;h&&0>h.indexOf("/")&&(h=window.location.pathname+h);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" state=$2"+d+"$2":"")+(h?" url=$2"+h+"$2":""))}h=null;if("<"==a.charAt(0))try{f||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(h=new window.ActiveXObject("Microsoft.XMLDOM"),h.async=!1,h.loadXML(a)):h=(new window.DOMParser).parseFromString(a,"text/xml")}catch(D){h=
|
||||||
|
null,a=D.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);k(a,h)}}a?f?Wa(a,g,h):h(a,null):k("no data"+(b?" for file: "+b:""),null)}
|
||||||
|
function Wa(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var f=d[2];b("Loading "+f+"...");r(f,null,function(g,k,h){if(h||!k)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(g=d[3])if(h=k.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var l=h[0],m,p=/( [a-z]+=)(['"])(.*?)\2/g;m=p.exec(g);)l=0>l.indexOf(m[1])?l.replace(">",m[0]+">"):l.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);h[0]!=l&&(k=k.replace(h[0],l))}else{c(a,"missing <"+d[1]+"> in "+f);return}k=k.replace(/<\?xml[^>]*>[\r\n]*/,
|
||||||
|
"");a=a.replace(d[0],k);Wa(a,b,c)}})}else c(a,null)}
|
||||||
|
function Xa(a,b,c){function d(a){if(void 0===k){var b=g&&I(g,"machine-warning");k=b&&b[0]||g}k&&(k.innerHTML=ba(a))}function f(a){d("Error: "+a);h&&(--Z||A(!0));h=!1}var g,k,h=!0;Z++;try{if(g=window.document.getElementById(a)){c||(c="/versions/c1pjs/1.20.4/components.xsl");var l=function(h,k){if(k){var l=function(h,l){if(l)if(l)if(d("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var m=k.transformNode(l);m?(g.outerHTML=m,--Z||A(!0)):f("transformNodeToObject failed")}else window.document.implementation&&
|
||||||
|
window.document.implementation.createDocument?(m=new XSLTProcessor,m.importStylesheet(l),(m=m.transformToFragment(k,window.document))?g.parentNode?(g.parentNode.replaceChild(m,g),--Z||A(!0)):f("invalid machine element: "+a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser");else f("failed to load XSL file: "+c);else f(h)};k?Ua(c,null,null,!1,d,l):f("failed to load XML file: "+b)}else f(h)};"<"!=b.charAt(0)?Ua(b,a,void 0,!0,d,l):Va(b,null,a,void 0,!1,d,l)}else f("missing machine element: "+
|
||||||
|
a)}catch(m){f(m.message)}return h}window.embedC1P=function(a,b,c){A(!1);return Xa(a,b,c)};window.enableEvents=A;window.sendEvent=da;})();
|
||||||
262
versions/c1pjs/1.20.4/common.css
Normal file
262
versions/c1pjs/1.20.4/common.css
Normal file
|
|
@ -0,0 +1,262 @@
|
||||||
|
@CHARSET "UTF-8";
|
||||||
|
/**
|
||||||
|
@author Jeff Parsons (@jeffpar)
|
||||||
|
@website http://www.pcjs.org/
|
||||||
|
@created 2013-05-05
|
||||||
|
@modified 2014-02-23
|
||||||
|
@license http://www.gnu.org/licenses/gpl.html
|
||||||
|
*/
|
||||||
|
body {
|
||||||
|
margin: 0;
|
||||||
|
background: #202020;
|
||||||
|
}
|
||||||
|
h1, h2 {
|
||||||
|
margin-top: 0;
|
||||||
|
color: #cccccc;
|
||||||
|
}
|
||||||
|
h1, h2, h3, h4 {
|
||||||
|
word-wrap: break-word;
|
||||||
|
}
|
||||||
|
|
||||||
|
h4 a {
|
||||||
|
color: #cccccc !important;
|
||||||
|
}
|
||||||
|
p {
|
||||||
|
line-height: 1.5em;
|
||||||
|
}
|
||||||
|
img {
|
||||||
|
max-width: 100%;
|
||||||
|
}
|
||||||
|
a img {
|
||||||
|
vertical-align: bottom;
|
||||||
|
}
|
||||||
|
pre, code {
|
||||||
|
color: #000000;
|
||||||
|
background-color: #cccccc;
|
||||||
|
font-family: Monaco, Consolas, "Lucida Console", monospace;
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
pre {
|
||||||
|
margin: 1em 2em;
|
||||||
|
padding: 1em;
|
||||||
|
border-radius: 5px;
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
code {
|
||||||
|
padding: 1px;
|
||||||
|
}
|
||||||
|
pre a, code a {
|
||||||
|
color: #006400 !important;
|
||||||
|
}
|
||||||
|
.common {
|
||||||
|
width: 100%;
|
||||||
|
margin: 0 auto;
|
||||||
|
color: #cccccc;
|
||||||
|
}
|
||||||
|
.common a {
|
||||||
|
|
||||||
|
color: #7fc07f;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
.common hr {
|
||||||
|
border-color: #808080;
|
||||||
|
}
|
||||||
|
.common a:hover {
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
.common, .machine {
|
||||||
|
font-family: "Helvetica Neue", Helvetica, Arial, Geneva, sans-serif;
|
||||||
|
font-size: 15px;
|
||||||
|
}
|
||||||
|
.machine {
|
||||||
|
margin: 15px;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
.c1pjs {
|
||||||
|
overflow: visible;
|
||||||
|
}
|
||||||
|
.machine-placeholder {
|
||||||
|
text-align: center;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
.common-top {
|
||||||
|
background: #202020;
|
||||||
|
font-size: small;
|
||||||
|
}
|
||||||
|
.common-top-left {
|
||||||
|
float: left;
|
||||||
|
width: 60%;
|
||||||
|
}
|
||||||
|
.common-top-left ul {
|
||||||
|
line-height: 1.5em;
|
||||||
|
list-style-type: none;
|
||||||
|
margin: 0;
|
||||||
|
padding: 1em 1em 1em 9px;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
.common-top-left ul li {
|
||||||
|
display: block;
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
.common-top-left ul li a {
|
||||||
|
border-right: 1px solid #6f6f6f;
|
||||||
|
padding: 2px 6px 2px 6px;
|
||||||
|
}
|
||||||
|
.common-top-left ul li:last-child a {
|
||||||
|
border-right: none;
|
||||||
|
}
|
||||||
|
.common-top-right {
|
||||||
|
float: right;
|
||||||
|
width: 40%;
|
||||||
|
}
|
||||||
|
.common-top-right p {
|
||||||
|
float: right;
|
||||||
|
margin: 0;
|
||||||
|
padding: 1em;
|
||||||
|
}
|
||||||
|
.common-middle {
|
||||||
|
clear: both;
|
||||||
|
padding: 1px 1em 1px 1em;
|
||||||
|
background: #404040;
|
||||||
|
}
|
||||||
|
.common-sidebar {
|
||||||
|
float: left;
|
||||||
|
font-size: small;
|
||||||
|
width: 140px;
|
||||||
|
padding-bottom: 20px;
|
||||||
|
overflow: hidden;
|
||||||
|
white-space: nowrap;
|
||||||
|
word-wrap: break-word;
|
||||||
|
}
|
||||||
|
.common-list {
|
||||||
|
list-style-type: none;
|
||||||
|
margin-top: 0;
|
||||||
|
margin-bottom: 0;
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
.common-list li {
|
||||||
|
|
||||||
|
padding-bottom: 7px;
|
||||||
|
}
|
||||||
|
.common-list-data {
|
||||||
|
list-style-type: none;
|
||||||
|
margin-top: 0;
|
||||||
|
margin-bottom: 0;
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
.common-list-data li {
|
||||||
|
line-height: 1.5em;
|
||||||
|
}
|
||||||
|
.common-list-data-items, .common-list-data-subitems {
|
||||||
|
font-size: x-small;
|
||||||
|
list-style-type: none;
|
||||||
|
margin-top: 0;
|
||||||
|
margin-bottom: 0;
|
||||||
|
padding-left: 2em;
|
||||||
|
}
|
||||||
|
.common-list-data-items li, .common-list-data-subitems li {
|
||||||
|
padding-bottom: 0;
|
||||||
|
}
|
||||||
|
.common-main {
|
||||||
|
margin-left: 150px;
|
||||||
|
|
||||||
|
}
|
||||||
|
.common-image-gallery {
|
||||||
|
margin: 0 auto;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
.common-image-gallery:after {
|
||||||
|
content: '';
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
.common-image-frame {
|
||||||
|
display: inline-block;
|
||||||
|
margin: 8px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
.common-image-link {
|
||||||
|
padding: 5px;
|
||||||
|
border: 1px solid black;
|
||||||
|
border-radius: 5px;
|
||||||
|
background-color: #FAEBD7;
|
||||||
|
}
|
||||||
|
.common-image-label {
|
||||||
|
font-size: x-small;
|
||||||
|
}
|
||||||
|
.common-bottom {
|
||||||
|
clear: both;
|
||||||
|
padding-top: 1em;
|
||||||
|
}
|
||||||
|
.common-bottom:after {
|
||||||
|
content: '';
|
||||||
|
display: block;
|
||||||
|
clear: both;
|
||||||
|
}
|
||||||
|
.common-reference {
|
||||||
|
float: left;
|
||||||
|
font-size: x-small;
|
||||||
|
}
|
||||||
|
.common-reference a {
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
.common-copyright {
|
||||||
|
float: right;
|
||||||
|
font-size: x-small;
|
||||||
|
}
|
||||||
|
.common-copyright a {
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
.md-list {
|
||||||
|
}
|
||||||
|
.md-list li {
|
||||||
|
line-height: 1.5em;
|
||||||
|
margin-bottom: 1em;
|
||||||
|
}
|
||||||
|
.md-list li p {
|
||||||
|
padding-left: 2em;
|
||||||
|
}
|
||||||
|
.md-list-compact {
|
||||||
|
}
|
||||||
|
.md-list-compact li {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
.md-list-none {
|
||||||
|
list-style-type: none;
|
||||||
|
padding-left: 2em;
|
||||||
|
}
|
||||||
|
.md-list-none li {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
@media screen and (max-width: 900px) {
|
||||||
|
|
||||||
|
.common-sidebar {
|
||||||
|
width: 100%;
|
||||||
|
white-space: normal;
|
||||||
|
}
|
||||||
|
.common-list {
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
.common-list-data {
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
.common-sidebar h4, .common-list li, .common-list-data li, .common-list-data-items li {
|
||||||
|
width: 130px;
|
||||||
|
float: left;
|
||||||
|
overflow: hidden;
|
||||||
|
vertical-align: top;
|
||||||
|
padding-right: 1em;
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
|
.common-list-data-subitems {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.common-main {
|
||||||
|
clear: both;
|
||||||
|
margin-left: 0;
|
||||||
|
padding-left: 0;
|
||||||
|
padding-right: 0;
|
||||||
|
}
|
||||||
|
.md-list-none {
|
||||||
|
padding-left: 1em;
|
||||||
|
}
|
||||||
|
}
|
||||||
48
versions/c1pjs/1.20.4/common.xsl
Normal file
48
versions/c1pjs/1.20.4/common.xsl
Normal file
|
|
@ -0,0 +1,48 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!-- author="Jeff Parsons (@jeffpar)" website="http://www.pcjs.org/" created="2012-05-05" modified="2014-02-23" license="http://www.gnu.org/licenses/gpl.html" -->
|
||||||
|
<!DOCTYPE xsl:stylesheet [
|
||||||
|
<!ENTITY nbsp " "> <!ENTITY ne "≠"> <!ENTITY le "≤"> <!ENTITY ge "≥">
|
||||||
|
<!ENTITY times "×"> <!ENTITY sdot "⋅"> <!ENTITY divide "÷">
|
||||||
|
<!ENTITY copy "©"> <!ENTITY Sigma "Σ"> <!ENTITY sigma "σ"> <!ENTITY sum "∑"> <!ENTITY lbrace "{">
|
||||||
|
]>
|
||||||
|
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
||||||
|
|
||||||
|
<xsl:output method="html"/>
|
||||||
|
|
||||||
|
<xsl:template name="commonStyles">
|
||||||
|
<meta charset="utf-8"/>
|
||||||
|
<link rel="shortcut icon" href="/versions/images/current/favicon.ico" type="image/x-icon"/>
|
||||||
|
<link rel="stylesheet" type="text/css" href="/versions/c1pjs/1.20.4/common.css"/>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template name="commonTop">
|
||||||
|
<div class="common-top">
|
||||||
|
<div class="common-top-left">
|
||||||
|
<ul>
|
||||||
|
<li><a href="/">Home</a></li>
|
||||||
|
<li><a href="/apps/pc/">Apps</a></li>
|
||||||
|
<li><a href="/disks/pc/">Disks</a></li>
|
||||||
|
<li><a href="/devices/pc/machine/">Machines</a></li>
|
||||||
|
<li><a href="/docs/">Docs</a></li>
|
||||||
|
<li><a href="/pubs/">Pubs</a></li>
|
||||||
|
<li><a href="/blog/">Blog</a></li>
|
||||||
|
<li><a href="/docs/about/">About</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="common-top-right">
|
||||||
|
<p>Powered by <a href="http://nodejs.org" target="_blank">Node.js</a> and <a href="http://aws.amazon.com/elasticbeanstalk/" target="_blank">AWS</a> | <a href="http://github.com/jeffpar/pcjs" target="_blank">GitHub</a></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template name="commonBottom">
|
||||||
|
<div class="common-bottom">
|
||||||
|
<p class="common-reference"></p>
|
||||||
|
<p class="common-copyright">
|
||||||
|
<span class="common-copyright"><a href="http://www.pcjs.org/">pcjs.org</a> website © 2012-2016 by <a href="http://twitter.com/jeffpar">@jeffpar</a></span><br/>
|
||||||
|
<span class="common-copyright">PCjs and C1Pjs released under <a href="http://gnu.org/licenses/gpl.html">GPL version 3 or later</a></span>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
</xsl:stylesheet>
|
||||||
108
versions/c1pjs/1.20.4/components.css
Normal file
108
versions/c1pjs/1.20.4/components.css
Normal file
|
|
@ -0,0 +1,108 @@
|
||||||
|
@CHARSET "UTF-8";
|
||||||
|
|
||||||
|
|
||||||
|
*:not(input,textarea) {
|
||||||
|
-webkit-user-select: none;
|
||||||
|
}
|
||||||
|
.c1pjs-embed {
|
||||||
|
}
|
||||||
|
.c1pjs-embed:after {
|
||||||
|
clear:both;
|
||||||
|
}
|
||||||
|
.c1pjs-machine {
|
||||||
|
}
|
||||||
|
.c1pjs-name {
|
||||||
|
clear: both;
|
||||||
|
font-weight: bold;
|
||||||
|
padding-bottom: 4px;
|
||||||
|
}
|
||||||
|
.c1pjs-canvas {
|
||||||
|
width: 100%;
|
||||||
|
height: auto;
|
||||||
|
}
|
||||||
|
.c1pjs-container {
|
||||||
|
color: #000000;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
.c1pjs-label {
|
||||||
|
font-size: small;
|
||||||
|
line-height: 19px;
|
||||||
|
vertical-align: middle;
|
||||||
|
float: left;
|
||||||
|
font-family: "Lucida Console", monospace;
|
||||||
|
}
|
||||||
|
.c1pjs-control textarea {
|
||||||
|
font-family: Monaco, monospace;
|
||||||
|
font-size: x-small;
|
||||||
|
}
|
||||||
|
.c1pjs-fieldset {
|
||||||
|
border: none;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
.c1pjs-flag {
|
||||||
|
font-family: "Lucida Console", monospace;
|
||||||
|
font-size: small;
|
||||||
|
text-align: center;
|
||||||
|
line-height: 19px;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
.c1pjs-register {
|
||||||
|
font-family: "Lucida Console", monospace;
|
||||||
|
font-size: small;
|
||||||
|
text-align: center;
|
||||||
|
line-height: 19px;
|
||||||
|
vertical-align: middle;
|
||||||
|
border: 1px solid black;
|
||||||
|
}
|
||||||
|
.c1pjs-switches {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
.c1pjs-bitBucket {
|
||||||
|
float: left;
|
||||||
|
width: 19px;
|
||||||
|
height: 38px;
|
||||||
|
}
|
||||||
|
.c1pjs-bitCell {
|
||||||
|
float: left;
|
||||||
|
width: 19px;
|
||||||
|
height: 19px;
|
||||||
|
margin-right: -1px;
|
||||||
|
margin-bottom: -1px;
|
||||||
|
border: 1px solid black;
|
||||||
|
text-align: center;
|
||||||
|
line-height: 19px;
|
||||||
|
}
|
||||||
|
.c1pjs-bitCellLeft {
|
||||||
|
border-left: 1px solid black;
|
||||||
|
}
|
||||||
|
.c1pjs-bitLabel {
|
||||||
|
font-size: xx-small;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
.c1pjs-description, .c1pjs-status {
|
||||||
|
font-size: small;
|
||||||
|
line-height: 2em;
|
||||||
|
}
|
||||||
|
.c1pjs-key {
|
||||||
|
border: 1px solid black;
|
||||||
|
font-size: x-small;
|
||||||
|
text-align: center;
|
||||||
|
position: absolute;
|
||||||
|
height: 34px;
|
||||||
|
line-height: 34px;
|
||||||
|
}
|
||||||
|
.c1pjs-reference {
|
||||||
|
float: left;
|
||||||
|
font-size: x-small;
|
||||||
|
}
|
||||||
|
.c1pjs-reference a {
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
.c1pjs-copyright {
|
||||||
|
float: right;
|
||||||
|
font-size: x-small;
|
||||||
|
}
|
||||||
|
.c1pjs-copyright a {
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
575
versions/c1pjs/1.20.4/components.xsl
Normal file
575
versions/c1pjs/1.20.4/components.xsl
Normal file
|
|
@ -0,0 +1,575 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!-- author="Jeff Parsons (@jeffpar)" website="http://www.pcjs.org/" created="2012-05-05" modified="2013-01-29" license="http://www.gnu.org/licenses/gpl.html" -->
|
||||||
|
<!DOCTYPE xsl:stylesheet [
|
||||||
|
]>
|
||||||
|
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
||||||
|
|
||||||
|
<xsl:output method="html"/>
|
||||||
|
|
||||||
|
<xsl:param name="rootDir" select="''"/>
|
||||||
|
<xsl:param name="generator" select="'client'"/>
|
||||||
|
|
||||||
|
<xsl:variable name="MACHINECLASS">c1p</xsl:variable>
|
||||||
|
<xsl:variable name="APPCLASS">c1pjs</xsl:variable>
|
||||||
|
<xsl:variable name="APPVERSION">1.20.4</xsl:variable>
|
||||||
|
<xsl:variable name="SITEHOST">www.pcjs.org</xsl:variable>
|
||||||
|
|
||||||
|
<xsl:template name="componentStyles">
|
||||||
|
<link rel="stylesheet" type="text/css" href="/versions/{$APPCLASS}/{$APPVERSION}/components.css"/>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template name="componentScripts">
|
||||||
|
<xsl:param name="component"/>
|
||||||
|
<script type="text/javascript" src="/versions/{$APPCLASS}/{$APPVERSION}/{$component}.js"></script>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template name="componentIncludes">
|
||||||
|
<xsl:param name="component"/>
|
||||||
|
<xsl:call-template name="componentScripts"><xsl:with-param name="component" select="$component"/></xsl:call-template>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="machine[@ref]">
|
||||||
|
<xsl:variable name="componentFile"><xsl:value-of select="$rootDir"/><xsl:value-of select="@ref"/></xsl:variable>
|
||||||
|
<xsl:apply-templates select="document($componentFile)/machine"><xsl:with-param name="machine" select="@id"/></xsl:apply-templates>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="machine[not(@ref)]">
|
||||||
|
<xsl:param name="machine"><xsl:value-of select="@id"/></xsl:param>
|
||||||
|
<div id="{$machine}" class="machine {@class}js">
|
||||||
|
<xsl:call-template name="component">
|
||||||
|
<xsl:with-param name="machine" select="$machine"/>
|
||||||
|
<xsl:with-param name="component" select="'machine'"/>
|
||||||
|
<xsl:with-param name="class"><xsl:value-of select="@class"/>js</xsl:with-param>
|
||||||
|
<xsl:with-param name="parms"><xsl:if test="@parms">,<xsl:value-of select="@parms"/></xsl:if></xsl:with-param>
|
||||||
|
<xsl:with-param name="url"><xsl:value-of select="@url"/></xsl:with-param>
|
||||||
|
</xsl:call-template>
|
||||||
|
</div>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="component[@ref]">
|
||||||
|
<xsl:param name="machine"/>
|
||||||
|
<xsl:variable name="componentFile"><xsl:value-of select="$rootDir"/><xsl:value-of select="@ref"/></xsl:variable>
|
||||||
|
<xsl:apply-templates select="document($componentFile)/component"><xsl:with-param name="machine" select="$machine"/></xsl:apply-templates>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="component[not(@ref)]">
|
||||||
|
<xsl:param name="machine"/>
|
||||||
|
<xsl:call-template name="component">
|
||||||
|
<xsl:with-param name="machine" select="$machine"/>
|
||||||
|
<xsl:with-param name="class" select="@class"/>
|
||||||
|
<xsl:with-param name="parms"><xsl:if test="@parms">,<xsl:value-of select="@parms"/></xsl:if></xsl:with-param>
|
||||||
|
</xsl:call-template>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template name="component">
|
||||||
|
<xsl:param name="machine" select="''"/>
|
||||||
|
<xsl:param name="component" select="name(.)"/>
|
||||||
|
<xsl:param name="class" select="''"/>
|
||||||
|
<xsl:param name="parms" select="''"/>
|
||||||
|
<xsl:param name="url" select="''"/>
|
||||||
|
<xsl:variable name="id">
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="$component = 'machine'"><xsl:value-of select="$machine"/>.machine</xsl:when>
|
||||||
|
<xsl:when test="$machine != ''"><xsl:value-of select="$machine"/><xsl:if test="@id">.<xsl:value-of select="@id"/></xsl:if></xsl:when>
|
||||||
|
<xsl:when test="@id"><xsl:value-of select="@id"/></xsl:when>
|
||||||
|
<xsl:otherwise/>
|
||||||
|
</xsl:choose>
|
||||||
|
</xsl:variable>
|
||||||
|
<xsl:variable name="name">
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="name"><xsl:value-of select="name"/></xsl:when>
|
||||||
|
<xsl:when test="@name"><xsl:value-of select="@name"/></xsl:when>
|
||||||
|
<xsl:otherwise/>
|
||||||
|
</xsl:choose>
|
||||||
|
</xsl:variable>
|
||||||
|
<xsl:variable name="border">
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="@border = '1'">border:1px solid black;border-radius:10px;</xsl:when>
|
||||||
|
<xsl:when test="@border">border:<xsl:value-of select="@border"/>;</xsl:when>
|
||||||
|
<xsl:otherwise/>
|
||||||
|
</xsl:choose>
|
||||||
|
</xsl:variable>
|
||||||
|
<xsl:variable name="left">
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="@left">left:<xsl:value-of select="@left"/>;</xsl:when>
|
||||||
|
<xsl:otherwise/>
|
||||||
|
</xsl:choose>
|
||||||
|
</xsl:variable>
|
||||||
|
<xsl:variable name="top">
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="@top">top:<xsl:value-of select="@top"/>;</xsl:when>
|
||||||
|
<xsl:otherwise/>
|
||||||
|
</xsl:choose>
|
||||||
|
</xsl:variable>
|
||||||
|
<xsl:variable name="width">
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="@width">
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="$left != '' or $top != ''">width:<xsl:value-of select="@width"/>;</xsl:when>
|
||||||
|
<xsl:otherwise>width:auto;max-width:<xsl:value-of select="@width"/>;</xsl:otherwise>
|
||||||
|
</xsl:choose>
|
||||||
|
</xsl:when>
|
||||||
|
<xsl:otherwise/>
|
||||||
|
</xsl:choose>
|
||||||
|
</xsl:variable>
|
||||||
|
<xsl:variable name="height">
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="@height">height:<xsl:value-of select="@height"/>;</xsl:when>
|
||||||
|
<xsl:otherwise/>
|
||||||
|
</xsl:choose>
|
||||||
|
</xsl:variable>
|
||||||
|
<xsl:variable name="padding">
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="@padding">padding:<xsl:value-of select="@padding"/>;</xsl:when>
|
||||||
|
<xsl:otherwise>
|
||||||
|
<xsl:if test="@padtop">padding-top:<xsl:value-of select="@padtop"/>;</xsl:if>
|
||||||
|
<xsl:if test="@padright">padding-right:<xsl:value-of select="@padright"/>;</xsl:if>
|
||||||
|
<xsl:if test="@padbottom">padding-bottom:<xsl:value-of select="@padbottom"/>;</xsl:if>
|
||||||
|
<xsl:if test="@padleft">padding-left:<xsl:value-of select="@padleft"/>;</xsl:if>
|
||||||
|
</xsl:otherwise>
|
||||||
|
</xsl:choose>
|
||||||
|
</xsl:variable>
|
||||||
|
<xsl:variable name="pos">
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="@pos = 'left'">float:left;</xsl:when>
|
||||||
|
<xsl:when test="@pos = 'right'">float:right;</xsl:when>
|
||||||
|
<xsl:when test="@pos = 'center'">margin:0 auto;</xsl:when>
|
||||||
|
<xsl:when test="@pos">position:<xsl:value-of select="@pos"/>;</xsl:when>
|
||||||
|
<xsl:when test="$left != '' or $top != ''">position:absolute;</xsl:when>
|
||||||
|
<xsl:otherwise/>
|
||||||
|
</xsl:choose>
|
||||||
|
</xsl:variable>
|
||||||
|
<xsl:variable name="style">
|
||||||
|
<xsl:if test="$component = 'machine'">overflow:auto;width:100%;</xsl:if>
|
||||||
|
<xsl:if test="@background">background-color:<xsl:value-of select="@background"/>;</xsl:if>
|
||||||
|
<xsl:if test="@style"><xsl:value-of select="@style"/></xsl:if>
|
||||||
|
</xsl:variable>
|
||||||
|
<xsl:variable name="componentClass">
|
||||||
|
<xsl:value-of select="$APPCLASS"/><xsl:text>-</xsl:text><xsl:value-of select="$component"/><xsl:text> </xsl:text><xsl:value-of select="$APPCLASS"/><xsl:text>-component</xsl:text>
|
||||||
|
</xsl:variable>
|
||||||
|
<div id="{$id}" class="{$componentClass}" style="{$width}{$height}{$pos}{$left}{$top}{$padding}">
|
||||||
|
<xsl:if test="$component = 'machine'">
|
||||||
|
<xsl:apply-templates select="name" mode="machine"/>
|
||||||
|
</xsl:if>
|
||||||
|
<xsl:if test="$component != 'machine'">
|
||||||
|
<xsl:apply-templates select="name" mode="component"/>
|
||||||
|
</xsl:if>
|
||||||
|
<div class="{$APPCLASS}-container" style="{$border}{$style}">
|
||||||
|
<xsl:if test="$class != '' and $component != 'machine'">
|
||||||
|
<div class="{$APPCLASS}-{$class}-object" data-value="id:'{$id}',name:'{$name}'{$parms}"></div>
|
||||||
|
</xsl:if>
|
||||||
|
<xsl:if test="control">
|
||||||
|
<div class="{$APPCLASS}-controls">
|
||||||
|
<xsl:apply-templates select="control" mode="component"/>
|
||||||
|
</div>
|
||||||
|
</xsl:if>
|
||||||
|
<xsl:apply-templates><xsl:with-param name="machine" select="$machine"/></xsl:apply-templates>
|
||||||
|
</div>
|
||||||
|
<xsl:if test="$component = 'machine'">
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="$url != ''"><div class="{$APPCLASS}-reference">[<a href="{$url}">XML</a>]</div></xsl:when>
|
||||||
|
<xsl:otherwise/>
|
||||||
|
</xsl:choose>
|
||||||
|
<div class="{$APPCLASS}-copyright">
|
||||||
|
<a href="http://{$SITEHOST}/{$APPCLASS}" target="_blank">C1Pjs</a> v<xsl:value-of select="$APPVERSION"/> © 2012-2016 by <a href="http://twitter.com/jeffpar" target="_blank">@jeffpar</a>
|
||||||
|
</div>
|
||||||
|
<div style="clear:both"></div>
|
||||||
|
</xsl:if>
|
||||||
|
</div>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="name" mode="machine">
|
||||||
|
<xsl:variable name="pos">
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="@pos = 'center'">text-align:center;</xsl:when>
|
||||||
|
<xsl:otherwise/>
|
||||||
|
</xsl:choose>
|
||||||
|
</xsl:variable>
|
||||||
|
<h3 style="{$pos}"><xsl:apply-templates/></h3>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="name" mode="component">
|
||||||
|
<div class="{$APPCLASS}-name"><xsl:apply-templates/></div>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="control" mode="component">
|
||||||
|
<xsl:variable name="type">
|
||||||
|
type:'<xsl:value-of select="@type"/>'
|
||||||
|
</xsl:variable>
|
||||||
|
<xsl:variable name="binding">
|
||||||
|
binding:'<xsl:value-of select="@binding"/>'
|
||||||
|
</xsl:variable>
|
||||||
|
<xsl:variable name="border">
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="@border = '1'">border:1px solid black;</xsl:when>
|
||||||
|
<xsl:when test="@border">border:<xsl:value-of select="@border"/>;</xsl:when>
|
||||||
|
<xsl:otherwise/>
|
||||||
|
</xsl:choose>
|
||||||
|
</xsl:variable>
|
||||||
|
<xsl:variable name="width">
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="@width">width:<xsl:value-of select="@width"/>;</xsl:when>
|
||||||
|
<xsl:otherwise/>
|
||||||
|
</xsl:choose>
|
||||||
|
</xsl:variable>
|
||||||
|
<xsl:variable name="height">
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="@height">height:<xsl:value-of select="@height"/>;</xsl:when>
|
||||||
|
<xsl:otherwise/>
|
||||||
|
</xsl:choose>
|
||||||
|
</xsl:variable>
|
||||||
|
<xsl:variable name="left">
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="@left">left:<xsl:value-of select="@left"/>;</xsl:when>
|
||||||
|
<xsl:otherwise/>
|
||||||
|
</xsl:choose>
|
||||||
|
</xsl:variable>
|
||||||
|
<xsl:variable name="top">
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="@top">top:<xsl:value-of select="@top"/>;</xsl:when>
|
||||||
|
<xsl:otherwise/>
|
||||||
|
</xsl:choose>
|
||||||
|
</xsl:variable>
|
||||||
|
<xsl:variable name="pos">
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="$left != '' or $top != ''">position:absolute;</xsl:when>
|
||||||
|
<xsl:when test="@pos = 'left'">float:left;</xsl:when>
|
||||||
|
<xsl:when test="@pos = 'right'">float:right;</xsl:when>
|
||||||
|
<xsl:when test="@pos = 'center'">margin:0 auto;</xsl:when>
|
||||||
|
<xsl:when test="@pos"><xsl:value-of select="@pos"/>;</xsl:when>
|
||||||
|
<xsl:otherwise><xsl:if test="$left = ''">float:left;</xsl:if></xsl:otherwise>
|
||||||
|
</xsl:choose>
|
||||||
|
</xsl:variable>
|
||||||
|
<xsl:variable name="style">
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="@style"><xsl:value-of select="@style"/></xsl:when>
|
||||||
|
<xsl:otherwise/>
|
||||||
|
</xsl:choose>
|
||||||
|
</xsl:variable>
|
||||||
|
<div class="{$APPCLASS}-control" style="{$pos}{$left}{$top}">
|
||||||
|
<xsl:variable name="fontsize">
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="@size = 'large'">font-size:<xsl:value-of select="@size"/>;</xsl:when>
|
||||||
|
<xsl:otherwise/>
|
||||||
|
</xsl:choose>
|
||||||
|
</xsl:variable>
|
||||||
|
<xsl:variable name="subclass">
|
||||||
|
<xsl:if test="@label"><xsl:text> </xsl:text><xsl:value-of select="$APPCLASS"/><xsl:text>-label</xsl:text></xsl:if>
|
||||||
|
</xsl:variable>
|
||||||
|
<xsl:variable name="labelwidth">
|
||||||
|
<xsl:if test="@labelwidth">width:<xsl:value-of select="@labelwidth"/>;</xsl:if>
|
||||||
|
</xsl:variable>
|
||||||
|
<xsl:variable name="labelstyle">
|
||||||
|
<xsl:if test="@labelstyle"><xsl:value-of select="@labelstyle"/></xsl:if>
|
||||||
|
</xsl:variable>
|
||||||
|
<xsl:if test="@label">
|
||||||
|
<xsl:if test="not(@labelpos) or @labelpos = 'left'">
|
||||||
|
<div class="{$APPCLASS}-label" style="{$labelwidth}{$labelstyle}"><xsl:value-of select="@label"/></div>
|
||||||
|
</xsl:if>
|
||||||
|
</xsl:if>
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="@type = 'button'">
|
||||||
|
<button class="{$APPCLASS}-binding" style="{$border}{$width}{$height}{$fontsize}{$style}" data-value="{$type},{$binding}"><xsl:apply-templates/></button>
|
||||||
|
</xsl:when>
|
||||||
|
<xsl:when test="@type = 'list'">
|
||||||
|
<select class="{$APPCLASS}-binding" style="{$border}{$width}{$height}{$fontsize}{$style}" data-value="{$type},{$binding}">
|
||||||
|
<xsl:apply-templates select="item" mode="component"/>
|
||||||
|
</select>
|
||||||
|
</xsl:when>
|
||||||
|
<xsl:when test="@type = 'text'">
|
||||||
|
<input class="{$APPCLASS}-binding" type="text" style="{$border}{$width}{$height}{$style}" data-value="{$type},{$binding}" value="" autocapitalize="off" autocorrect="off"/>
|
||||||
|
</xsl:when>
|
||||||
|
<xsl:when test="@type = 'submit'">
|
||||||
|
<input class="{$APPCLASS}-binding" type="submit" style="{$border}{$fontsize}{$style}" data-value="{$type},{$binding}" value="{.}"/>
|
||||||
|
</xsl:when>
|
||||||
|
<xsl:when test="@type = 'textarea'">
|
||||||
|
<textarea class="{$APPCLASS}-binding" style="{$border}{$width}{$height}{$style}" data-value="{$type},{$binding}" readonly="readonly"></textarea>
|
||||||
|
</xsl:when>
|
||||||
|
<xsl:when test="@type = 'heading'">
|
||||||
|
<div><xsl:value-of select="."/></div>
|
||||||
|
</xsl:when>
|
||||||
|
<xsl:when test="@type = 'file'">
|
||||||
|
<form class="{$APPCLASS}-binding" style="{$border}{$width}{$height}{$style}" data-value="{$type},{$binding}">
|
||||||
|
<fieldset class="{$APPCLASS}-fieldset">
|
||||||
|
<input type="file"/>
|
||||||
|
<input type="submit" value="Mount" disabled="true"/>
|
||||||
|
</fieldset>
|
||||||
|
</form>
|
||||||
|
</xsl:when>
|
||||||
|
<xsl:when test="@type = 'separator'">
|
||||||
|
<hr/>
|
||||||
|
</xsl:when>
|
||||||
|
<xsl:when test="not(@type)">
|
||||||
|
<div style="clear:both"></div><br/>
|
||||||
|
</xsl:when>
|
||||||
|
<xsl:otherwise>
|
||||||
|
<div class="{$APPCLASS}-binding{$subclass}" style="{$border}{$width}{$height}{$style}" data-value="{$type},{$binding}"><xsl:apply-templates/></div>
|
||||||
|
</xsl:otherwise>
|
||||||
|
</xsl:choose>
|
||||||
|
<xsl:if test="@label">
|
||||||
|
<xsl:if test="@labelpos = 'right'">
|
||||||
|
<div class="{$APPCLASS}-label" style="{$labelwidth}{$labelstyle}"><xsl:value-of select="@label"/></div>
|
||||||
|
</xsl:if>
|
||||||
|
<div style="clear:both"></div>
|
||||||
|
</xsl:if>
|
||||||
|
</div>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="item" mode="component">
|
||||||
|
<option value="{@ref}"><xsl:value-of select="."/></option>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="name">
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="control">
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="cpu[@ref]">
|
||||||
|
<xsl:param name="machine" select="''"/>
|
||||||
|
<xsl:variable name="componentFile"><xsl:value-of select="$rootDir"/><xsl:value-of select="@ref"/></xsl:variable>
|
||||||
|
<xsl:apply-templates select="document($componentFile)/cpu"><xsl:with-param name="machine" select="$machine"/></xsl:apply-templates>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="cpu[not(@ref)]">
|
||||||
|
<xsl:param name="machine" select="''"/>
|
||||||
|
<xsl:variable name="autoStart">
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="@autostart"><xsl:value-of select="@autostart"/></xsl:when>
|
||||||
|
<xsl:otherwise>null</xsl:otherwise>
|
||||||
|
</xsl:choose>
|
||||||
|
</xsl:variable>
|
||||||
|
<xsl:call-template name="component">
|
||||||
|
<xsl:with-param name="machine" select="$machine"/>
|
||||||
|
<xsl:with-param name="class" select="'cpu'"/>
|
||||||
|
<xsl:with-param name="parms">,autoStart:<xsl:value-of select="$autoStart"/></xsl:with-param>
|
||||||
|
</xsl:call-template>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="keyboard[@ref]">
|
||||||
|
<xsl:param name="machine" select="''"/>
|
||||||
|
<xsl:variable name="componentFile"><xsl:value-of select="$rootDir"/><xsl:value-of select="@ref"/></xsl:variable>
|
||||||
|
<xsl:apply-templates select="document($componentFile)/keyboard"><xsl:with-param name="machine" select="$machine"/></xsl:apply-templates>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="keyboard[not(@ref)]">
|
||||||
|
<xsl:param name="machine" select="''"/>
|
||||||
|
<xsl:variable name="model">
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="@model"><xsl:value-of select="@model"/></xsl:when>
|
||||||
|
<xsl:otherwise>600</xsl:otherwise>
|
||||||
|
</xsl:choose>
|
||||||
|
</xsl:variable>
|
||||||
|
<xsl:call-template name="component">
|
||||||
|
<xsl:with-param name="machine" select="$machine"/>
|
||||||
|
<xsl:with-param name="class">keyboard</xsl:with-param>
|
||||||
|
<xsl:with-param name="parms">,model:<xsl:value-of select="$model"/></xsl:with-param>
|
||||||
|
</xsl:call-template>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="serial[@ref]">
|
||||||
|
<xsl:param name="machine" select="''"/>
|
||||||
|
<xsl:variable name="componentFile"><xsl:value-of select="$rootDir"/><xsl:value-of select="@ref"/></xsl:variable>
|
||||||
|
<xsl:apply-templates select="document($componentFile)/serial"><xsl:with-param name="machine" select="$machine"/></xsl:apply-templates>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="serial[not(@ref)]">
|
||||||
|
<xsl:param name="machine" select="''"/>
|
||||||
|
<xsl:variable name="demo">
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="@demo"><xsl:value-of select="@demo"/></xsl:when>
|
||||||
|
<xsl:otherwise>false</xsl:otherwise>
|
||||||
|
</xsl:choose>
|
||||||
|
</xsl:variable>
|
||||||
|
<xsl:call-template name="component">
|
||||||
|
<xsl:with-param name="machine" select="$machine"/>
|
||||||
|
<xsl:with-param name="class">serial</xsl:with-param>
|
||||||
|
<xsl:with-param name="parms">,demo:<xsl:value-of select="$demo"/></xsl:with-param>
|
||||||
|
</xsl:call-template>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="disk[@ref]">
|
||||||
|
<xsl:param name="machine" select="''"/>
|
||||||
|
<xsl:variable name="componentFile"><xsl:value-of select="$rootDir"/><xsl:value-of select="@ref"/></xsl:variable>
|
||||||
|
<xsl:apply-templates select="document($componentFile)/disk"><xsl:with-param name="machine" select="$machine"/></xsl:apply-templates>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="disk[not(@ref)]">
|
||||||
|
<xsl:param name="machine" select="''"/>
|
||||||
|
<xsl:call-template name="component">
|
||||||
|
<xsl:with-param name="machine" select="$machine"/>
|
||||||
|
<xsl:with-param name="class">disk</xsl:with-param>
|
||||||
|
</xsl:call-template>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="rom[@ref]">
|
||||||
|
<xsl:param name="machine" select="''"/>
|
||||||
|
<xsl:variable name="componentFile"><xsl:value-of select="$rootDir"/><xsl:value-of select="@ref"/></xsl:variable>
|
||||||
|
<xsl:apply-templates select="document($componentFile)/rom"><xsl:with-param name="machine" select="$machine"/></xsl:apply-templates>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="rom[not(@ref)]">
|
||||||
|
<xsl:param name="machine" select="''"/>
|
||||||
|
<xsl:variable name="size">
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="@size"><xsl:value-of select="@size"/></xsl:when>
|
||||||
|
<xsl:otherwise>0</xsl:otherwise>
|
||||||
|
</xsl:choose>
|
||||||
|
</xsl:variable>
|
||||||
|
<xsl:variable name="image">
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="@image"><xsl:value-of select="@image"/></xsl:when>
|
||||||
|
<xsl:otherwise/>
|
||||||
|
</xsl:choose>
|
||||||
|
</xsl:variable>
|
||||||
|
<xsl:call-template name="component">
|
||||||
|
<xsl:with-param name="machine" select="$machine"/>
|
||||||
|
<xsl:with-param name="class">rom</xsl:with-param>
|
||||||
|
<xsl:with-param name="parms">,size:<xsl:value-of select="$size"/>,image:'<xsl:value-of select="$image"/>'</xsl:with-param>
|
||||||
|
</xsl:call-template>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="ram[@ref]">
|
||||||
|
<xsl:param name="machine" select="''"/>
|
||||||
|
<xsl:variable name="componentFile"><xsl:value-of select="$rootDir"/><xsl:value-of select="@ref"/></xsl:variable>
|
||||||
|
<xsl:apply-templates select="document($componentFile)/ram"><xsl:with-param name="machine" select="$machine"/></xsl:apply-templates>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="ram[not(@ref)]">
|
||||||
|
<xsl:param name="machine" select="''"/>
|
||||||
|
<xsl:variable name="size">
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="@size"><xsl:value-of select="@size"/></xsl:when>
|
||||||
|
<xsl:otherwise>0</xsl:otherwise>
|
||||||
|
</xsl:choose>
|
||||||
|
</xsl:variable>
|
||||||
|
<xsl:call-template name="component">
|
||||||
|
<xsl:with-param name="machine" select="$machine"/>
|
||||||
|
<xsl:with-param name="class">ram</xsl:with-param>
|
||||||
|
<xsl:with-param name="parms">,size:<xsl:value-of select="$size"/></xsl:with-param>
|
||||||
|
</xsl:call-template>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="video[@ref]">
|
||||||
|
<xsl:param name="machine" select="''"/>
|
||||||
|
<xsl:variable name="componentFile"><xsl:value-of select="$rootDir"/><xsl:value-of select="@ref"/></xsl:variable>
|
||||||
|
<xsl:apply-templates select="document($componentFile)/video"><xsl:with-param name="machine" select="$machine"/></xsl:apply-templates>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="video[not(@ref)]">
|
||||||
|
<xsl:param name="machine" select="''"/>
|
||||||
|
<xsl:variable name="model">
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="@model"><xsl:value-of select="@model"/></xsl:when>
|
||||||
|
<xsl:otherwise>600</xsl:otherwise>
|
||||||
|
</xsl:choose>
|
||||||
|
</xsl:variable>
|
||||||
|
<xsl:variable name="screenWidth">
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="@screenwidth"><xsl:value-of select="@screenwidth"/></xsl:when>
|
||||||
|
<xsl:otherwise>256</xsl:otherwise>
|
||||||
|
</xsl:choose>
|
||||||
|
</xsl:variable>
|
||||||
|
<xsl:variable name="screenHeight">
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="@screenheight"><xsl:value-of select="@screenheight"/></xsl:when>
|
||||||
|
<xsl:otherwise>224</xsl:otherwise>
|
||||||
|
</xsl:choose>
|
||||||
|
</xsl:variable>
|
||||||
|
<xsl:variable name="charCols">
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="@cols"><xsl:value-of select="@cols"/></xsl:when>
|
||||||
|
<xsl:otherwise>32</xsl:otherwise>
|
||||||
|
</xsl:choose>
|
||||||
|
</xsl:variable>
|
||||||
|
<xsl:variable name="charRows">
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="@rows"><xsl:value-of select="@rows"/></xsl:when>
|
||||||
|
<xsl:otherwise>32</xsl:otherwise>
|
||||||
|
</xsl:choose>
|
||||||
|
</xsl:variable>
|
||||||
|
<xsl:variable name="charWidth">
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="@charwidth"><xsl:value-of select="@charwidth"/></xsl:when>
|
||||||
|
<xsl:otherwise>0</xsl:otherwise>
|
||||||
|
</xsl:choose>
|
||||||
|
</xsl:variable>
|
||||||
|
<xsl:variable name="charHeight">
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="@charheight"><xsl:value-of select="@charheight"/></xsl:when>
|
||||||
|
<xsl:otherwise>0</xsl:otherwise>
|
||||||
|
</xsl:choose>
|
||||||
|
</xsl:variable>
|
||||||
|
<xsl:variable name="charSet">
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="@charset"><xsl:value-of select="@charset"/></xsl:when>
|
||||||
|
<xsl:otherwise/>
|
||||||
|
</xsl:choose>
|
||||||
|
</xsl:variable>
|
||||||
|
<xsl:variable name="screenColor">
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="@screencolor"><xsl:value-of select="@screencolor"/></xsl:when>
|
||||||
|
<xsl:otherwise>black</xsl:otherwise>
|
||||||
|
</xsl:choose>
|
||||||
|
</xsl:variable>
|
||||||
|
<xsl:call-template name="component">
|
||||||
|
<xsl:with-param name="machine" select="$machine"/>
|
||||||
|
<xsl:with-param name="class">video</xsl:with-param>
|
||||||
|
<xsl:with-param name="parms">,model:<xsl:value-of select="$model"/>,screenWidth:<xsl:value-of select="$screenWidth"/>,screenHeight:<xsl:value-of select="$screenHeight"/>,charCols:<xsl:value-of select="$charCols"/>,charRows:<xsl:value-of select="$charRows"/>,charWidth:<xsl:value-of select="$charWidth"/>,charHeight:<xsl:value-of select="$charHeight"/>,charSet:'<xsl:value-of select="$charSet"/>',screenColor:'<xsl:value-of select="$screenColor"/>'</xsl:with-param>
|
||||||
|
</xsl:call-template>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="debugger[@ref]">
|
||||||
|
<xsl:param name="machine" select="''"/>
|
||||||
|
<xsl:variable name="componentFile"><xsl:value-of select="$rootDir"/><xsl:value-of select="@ref"/></xsl:variable>
|
||||||
|
<xsl:apply-templates select="document($componentFile)/debugger"><xsl:with-param name="machine" select="$machine"/></xsl:apply-templates>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="debugger[not(@ref)]">
|
||||||
|
<xsl:param name="machine" select="''"/>
|
||||||
|
<xsl:call-template name="component">
|
||||||
|
<xsl:with-param name="machine" select="$machine"/>
|
||||||
|
<xsl:with-param name="class">debugger</xsl:with-param>
|
||||||
|
</xsl:call-template>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="panel[@ref]">
|
||||||
|
<xsl:param name="machine" select="''"/>
|
||||||
|
<xsl:variable name="componentFile"><xsl:value-of select="$rootDir"/><xsl:value-of select="@ref"/></xsl:variable>
|
||||||
|
<xsl:apply-templates select="document($componentFile)/panel"><xsl:with-param name="machine" select="$machine"/></xsl:apply-templates>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="panel[not(@ref)]">
|
||||||
|
<xsl:param name="machine" select="''"/>
|
||||||
|
<xsl:call-template name="component">
|
||||||
|
<xsl:with-param name="machine" select="$machine"/>
|
||||||
|
<xsl:with-param name="class">panel</xsl:with-param>
|
||||||
|
</xsl:call-template>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="computer[@ref]">
|
||||||
|
<xsl:param name="machine" select="''"/>
|
||||||
|
<xsl:variable name="componentFile"><xsl:value-of select="$rootDir"/><xsl:value-of select="@ref"/></xsl:variable>
|
||||||
|
<xsl:apply-templates select="document($componentFile)/computer"><xsl:with-param name="machine" select="$machine"/></xsl:apply-templates>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="computer[not(@ref)]">
|
||||||
|
<xsl:param name="machine" select="''"/>
|
||||||
|
<xsl:variable name="modules">
|
||||||
|
[<xsl:for-each select="module">
|
||||||
|
{<xsl:call-template name="module"/>}
|
||||||
|
<xsl:if test="position() != last()">,</xsl:if>
|
||||||
|
</xsl:for-each>]
|
||||||
|
</xsl:variable>
|
||||||
|
<xsl:call-template name="component">
|
||||||
|
<xsl:with-param name="machine" select="$machine"/>
|
||||||
|
<xsl:with-param name="class">computer</xsl:with-param>
|
||||||
|
<xsl:with-param name="parms">,modules:<xsl:value-of select="$modules"/></xsl:with-param>
|
||||||
|
</xsl:call-template>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template name="module">
|
||||||
|
type:'<xsl:value-of select="@type"/>',refID:'<xsl:value-of select="@refid"/>'<xsl:if test="@start">,start:<xsl:value-of select="@start"/>,end:<xsl:value-of select="@end"/></xsl:if>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
</xsl:stylesheet>
|
||||||
162
versions/c1pjs/1.20.4/document.css
Normal file
162
versions/c1pjs/1.20.4/document.css
Normal file
|
|
@ -0,0 +1,162 @@
|
||||||
|
@CHARSET "UTF-8";
|
||||||
|
|
||||||
|
.page {
|
||||||
|
margin: 2% 2%;
|
||||||
|
padding: 2% 2%;
|
||||||
|
min-width: 30em;
|
||||||
|
overflow: auto;
|
||||||
|
font-size: large;
|
||||||
|
font-family: Helvetica, Arial, sans-serif;
|
||||||
|
background: #303030;
|
||||||
|
color: #ccc;
|
||||||
|
|
||||||
|
}
|
||||||
|
.page-header {
|
||||||
|
}
|
||||||
|
.page-header-title {
|
||||||
|
text-align: center;
|
||||||
|
|
||||||
|
}
|
||||||
|
.page a {
|
||||||
|
color: #7fc07f;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
a.footlink, a.paralink {
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
a.footlink:link, a.paralink:link {
|
||||||
|
color: blue;
|
||||||
|
}
|
||||||
|
a.footlink:visited, a.paralink:visited {
|
||||||
|
color: blue;
|
||||||
|
}
|
||||||
|
.galleryitem {
|
||||||
|
float: left;
|
||||||
|
width: 200px;
|
||||||
|
}
|
||||||
|
.item {
|
||||||
|
float: left;
|
||||||
|
width: 2em;
|
||||||
|
text-indent: 1em;
|
||||||
|
}
|
||||||
|
.list {
|
||||||
|
margin-left: 3em;
|
||||||
|
text-indent: 0;
|
||||||
|
text-align: justify;
|
||||||
|
}
|
||||||
|
ul {
|
||||||
|
list-style: none;
|
||||||
|
}
|
||||||
|
div.pnumber {
|
||||||
|
float: left;
|
||||||
|
width: 2em;
|
||||||
|
text-indent: 1em;
|
||||||
|
}
|
||||||
|
div.pitem {
|
||||||
|
margin-left: 10em;
|
||||||
|
}
|
||||||
|
p.indent, .justified p {
|
||||||
|
text-indent: 2em;
|
||||||
|
text-align: justify;
|
||||||
|
line-height: 1.5em;
|
||||||
|
}
|
||||||
|
p.noindent {
|
||||||
|
text-indent: 0;
|
||||||
|
text-align: justify;
|
||||||
|
}
|
||||||
|
p.center, .center {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
li.para {
|
||||||
|
margin-top: 1em;
|
||||||
|
margin-bottom: 1em;
|
||||||
|
}
|
||||||
|
.left {
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
.right {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
blockquote.tag {
|
||||||
|
font-size: small;
|
||||||
|
font-family: Monaco, Fixed, monospace;
|
||||||
|
margin-top: 0;
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
.blockquote {
|
||||||
|
padding-left: 1em;
|
||||||
|
text-indent: 0;
|
||||||
|
text-align: justify;
|
||||||
|
}
|
||||||
|
.italics {
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
.medium {
|
||||||
|
font-size: medium;
|
||||||
|
}
|
||||||
|
.small {
|
||||||
|
font-size: x-small;
|
||||||
|
}
|
||||||
|
.smallcaps {
|
||||||
|
font-variant: small-caps;
|
||||||
|
}
|
||||||
|
.strike {
|
||||||
|
text-decoration: line-through;
|
||||||
|
}
|
||||||
|
.summation, .bracelist {
|
||||||
|
display: inline-block;
|
||||||
|
position: relative;
|
||||||
|
vertical-align: middle;
|
||||||
|
text-align: center;
|
||||||
|
margin-bottom: 0.5ex;
|
||||||
|
text-indent: 0;
|
||||||
|
}
|
||||||
|
.bracelist-symbol {
|
||||||
|
font-size: 3em;
|
||||||
|
vertical-align: -40%;
|
||||||
|
}
|
||||||
|
.summation .summation-lower, .summation .summation-upper, .bracelist-item {
|
||||||
|
display: block;
|
||||||
|
font-size: 75%;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
.summation .summation-upper {
|
||||||
|
margin-bottom: 0;
|
||||||
|
margin-left: 0.8ex;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
.summation .summation-lower{
|
||||||
|
margin-bottom: -0.6ex;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
.summation .summation-symbol {
|
||||||
|
font-size: 2em;
|
||||||
|
}
|
||||||
|
p sup {
|
||||||
|
vertical-align: baseline;
|
||||||
|
position: relative;
|
||||||
|
bottom: .5em;
|
||||||
|
font-size: small;
|
||||||
|
}
|
||||||
|
p sub {
|
||||||
|
vertical-align: baseline;
|
||||||
|
position: relative;
|
||||||
|
bottom: -.5em;
|
||||||
|
font-size: small;
|
||||||
|
}
|
||||||
|
.footnote {
|
||||||
|
font-size: medium;
|
||||||
|
text-indent: 1em;
|
||||||
|
text-align: justify;
|
||||||
|
margin-top: .5em;
|
||||||
|
}
|
||||||
|
.image-right {
|
||||||
|
float: right;
|
||||||
|
margin-left: 1em;
|
||||||
|
margin-top: 1em;
|
||||||
|
margin-bottom: 1em;
|
||||||
|
}
|
||||||
|
.image-caption {
|
||||||
|
font-size: small;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
452
versions/c1pjs/1.20.4/document.xsl
Normal file
452
versions/c1pjs/1.20.4/document.xsl
Normal file
|
|
@ -0,0 +1,452 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!-- author="Jeff Parsons (@jeffpar)" website="http://www.pcjs.org/" created="2012-05-05" modified="2014-02-23" license="http://www.gnu.org/licenses/gpl.html" -->
|
||||||
|
<!DOCTYPE xsl:stylesheet [
|
||||||
|
<!ENTITY nbsp " "> <!ENTITY ne "≠"> <!ENTITY le "≤"> <!ENTITY ge "≥">
|
||||||
|
<!ENTITY times "×"> <!ENTITY sdot "⋅"> <!ENTITY divide "÷">
|
||||||
|
<!ENTITY copy "©"> <!ENTITY Sigma "Σ"> <!ENTITY sigma "σ"> <!ENTITY sum "∑"> <!ENTITY lbrace "{">
|
||||||
|
]>
|
||||||
|
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
||||||
|
|
||||||
|
<xsl:output method="html"/>
|
||||||
|
|
||||||
|
<xsl:template name="documentStyles">
|
||||||
|
<link rel="stylesheet" type="text/css" href="/versions/c1pjs/1.20.4/document.css"/>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="title">
|
||||||
|
<h1><xsl:apply-templates/></h1>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template name="p">
|
||||||
|
<xsl:if test="@id">
|
||||||
|
<a name="{@id}"></a>
|
||||||
|
</xsl:if>
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="not(@class)">
|
||||||
|
<p><xsl:apply-templates/></p>
|
||||||
|
</xsl:when>
|
||||||
|
<xsl:otherwise>
|
||||||
|
<p class="{@class}"><xsl:apply-templates/></p>
|
||||||
|
</xsl:otherwise>
|
||||||
|
</xsl:choose>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="p">
|
||||||
|
<xsl:call-template name="p"/>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="br">
|
||||||
|
<br/>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="p[@number]">
|
||||||
|
<div class="pnumber">
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="not(@number) or @number = ''"> </xsl:when>
|
||||||
|
<xsl:otherwise><xsl:value-of select="@number"/></xsl:otherwise>
|
||||||
|
</xsl:choose>
|
||||||
|
</div>
|
||||||
|
<div class="pitem">
|
||||||
|
<xsl:call-template name="p"/>
|
||||||
|
</div>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="span">
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="not(@class)">
|
||||||
|
<span><xsl:apply-templates/></span>
|
||||||
|
</xsl:when>
|
||||||
|
<xsl:when test="@class = 'italics'">
|
||||||
|
<em><xsl:apply-templates/></em>
|
||||||
|
</xsl:when>
|
||||||
|
<xsl:otherwise>
|
||||||
|
<span class="{@class}"><xsl:apply-templates/></span>
|
||||||
|
</xsl:otherwise>
|
||||||
|
</xsl:choose>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="h2">
|
||||||
|
<h2><xsl:apply-templates/></h2>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="h3">
|
||||||
|
<h3><xsl:apply-templates/></h3>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="h4">
|
||||||
|
<h4><xsl:apply-templates/></h4>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="h5">
|
||||||
|
<h5><xsl:apply-templates/></h5>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="h6">
|
||||||
|
<h6><xsl:apply-templates/></h6>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="em">
|
||||||
|
<em><xsl:apply-templates/></em>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="strong">
|
||||||
|
<strong><xsl:apply-templates/></strong>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="a">
|
||||||
|
<a href="{@href}" target="{@target}"><xsl:apply-templates/></a>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="ol">
|
||||||
|
<blockquote><ol><xsl:apply-templates/></ol></blockquote>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="ul">
|
||||||
|
<blockquote><ul><xsl:apply-templates/></ul></blockquote>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="li">
|
||||||
|
<li><xsl:apply-templates/></li>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="img">
|
||||||
|
<div><img src="{@src}" alt="image"/></div>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="pre">
|
||||||
|
<pre><xsl:apply-templates/></pre>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="figure">
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="@pos">
|
||||||
|
<div class="{@pos}"><img src="{@ref}" alt="{.}"/><br/><xsl:value-of select="."/></div>
|
||||||
|
</xsl:when>
|
||||||
|
<xsl:otherwise>
|
||||||
|
<div><img src="{@ref}" alt="{.}"/><br/><xsl:value-of select="."/></div>
|
||||||
|
</xsl:otherwise>
|
||||||
|
</xsl:choose>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="sub">
|
||||||
|
<sub><xsl:apply-templates/></sub>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="sup">
|
||||||
|
<sup><xsl:apply-templates/></sup>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="lt"><</xsl:template>
|
||||||
|
<xsl:template match="gt">></xsl:template>
|
||||||
|
<xsl:template match="ne">≠</xsl:template>
|
||||||
|
<xsl:template match="le">≤</xsl:template>
|
||||||
|
<xsl:template match="ge">≥</xsl:template>
|
||||||
|
<xsl:template match="times">×</xsl:template>
|
||||||
|
<xsl:template match="dot">⋅</xsl:template>
|
||||||
|
<xsl:template match="divide">÷</xsl:template>
|
||||||
|
<xsl:template match="sigma">σ</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="summation">
|
||||||
|
<span class="summation">
|
||||||
|
<span class="summation-upper"><xsl:value-of select="@upper"/></span>
|
||||||
|
<span class="summation-symbol">∑</span>
|
||||||
|
<span class="summation-lower"><xsl:value-of select="@lower"/></span>
|
||||||
|
</span>
|
||||||
|
<xsl:apply-templates/>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="bracelist">
|
||||||
|
<span class="bracelist-symbol">{</span>
|
||||||
|
<span class="bracelist">
|
||||||
|
<xsl:for-each select="item">
|
||||||
|
<span class="bracelist-item"><xsl:apply-templates/></span>
|
||||||
|
</xsl:for-each>
|
||||||
|
</span>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="footlink">
|
||||||
|
<xsl:variable name="docID" select="/document/@id"/>
|
||||||
|
<a class="footlink" id="fn{$docID}_ref{@n}" href="#fn{$docID}_{@n}"><sup><xsl:if test="@quoted"><xsl:text>[</xsl:text></xsl:if><xsl:value-of select="@n"/><xsl:if test="@quoted"><xsl:text>]</xsl:text></xsl:if></sup></a>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="footnote">
|
||||||
|
<xsl:variable name="docID" select="/document/@id"/>
|
||||||
|
<div class="footnote"><a id="fn{$docID}_{@n}" href="#fn{$docID}_ref{@n}"><sup><xsl:value-of select="@n"/></sup></a><xsl:text> </xsl:text>
|
||||||
|
<xsl:apply-templates/>
|
||||||
|
</div>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template name="authors">
|
||||||
|
<xsl:for-each select="author"><xsl:if test="position() != 1"><xsl:text>, </xsl:text></xsl:if><xsl:if test="position() != 1 and position() = last()"><xsl:text>and </xsl:text></xsl:if><xsl:value-of select="."/></xsl:for-each>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template name="formatDate">
|
||||||
|
<xsl:param name="date"/>
|
||||||
|
<xsl:param name="format">MDY</xsl:param>
|
||||||
|
<xsl:variable name="year">
|
||||||
|
<xsl:value-of select="substring-before($date,'-')"/>
|
||||||
|
</xsl:variable>
|
||||||
|
<xsl:variable name="mon-day">
|
||||||
|
<xsl:value-of select="substring-after($date,'-')"/>
|
||||||
|
</xsl:variable>
|
||||||
|
<xsl:variable name="mon">
|
||||||
|
<xsl:value-of select="substring-before($mon-day,'-')"/>
|
||||||
|
</xsl:variable>
|
||||||
|
<xsl:variable name="full-day">
|
||||||
|
<xsl:value-of select="substring-after($mon-day,'-')"/>
|
||||||
|
</xsl:variable>
|
||||||
|
<xsl:variable name="day">
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="substring($full-day,1,1) = '0'"><xsl:value-of select="substring($full-day,2)"/></xsl:when>
|
||||||
|
<xsl:otherwise><xsl:value-of select="$full-day"/></xsl:otherwise>
|
||||||
|
</xsl:choose>
|
||||||
|
</xsl:variable>
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="$mon = '01'">January </xsl:when>
|
||||||
|
<xsl:when test="$mon = '02'">February </xsl:when>
|
||||||
|
<xsl:when test="$mon = '03'">March </xsl:when>
|
||||||
|
<xsl:when test="$mon = '04'">April </xsl:when>
|
||||||
|
<xsl:when test="$mon = '05'">May </xsl:when>
|
||||||
|
<xsl:when test="$mon = '06'">June </xsl:when>
|
||||||
|
<xsl:when test="$mon = '07'">July </xsl:when>
|
||||||
|
<xsl:when test="$mon = '08'">August </xsl:when>
|
||||||
|
<xsl:when test="$mon = '09'">September </xsl:when>
|
||||||
|
<xsl:when test="$mon = '10'">October </xsl:when>
|
||||||
|
<xsl:when test="$mon = '11'">November </xsl:when>
|
||||||
|
<xsl:when test="$mon = '12'">December </xsl:when>
|
||||||
|
<xsl:when test="$mon = '00'"/> </xsl:choose>
|
||||||
|
<xsl:if test="$day != '0' and $format = 'MDY'">
|
||||||
|
<xsl:value-of select="$day"/><xsl:text>, </xsl:text>
|
||||||
|
</xsl:if>
|
||||||
|
<xsl:value-of select="$year"/>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="gallery">
|
||||||
|
<h2><xsl:value-of select="description"/></h2>
|
||||||
|
<div class="gallery">
|
||||||
|
<xsl:apply-templates select="item" mode="gallery"/>
|
||||||
|
</div>
|
||||||
|
<div style="clear:both;"></div>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="item" mode="gallery">
|
||||||
|
<div class="galleryitem">
|
||||||
|
<a href="{@ref}"><img src="/versions/images/current/pdf-192.jpg" alt="{.}"/></a><br/>
|
||||||
|
<div style="font-size:small; text-align:center;"><xsl:value-of select="."/></div>
|
||||||
|
</div>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="list[@type = 'timeline']">
|
||||||
|
<xsl:if test="not(description)">
|
||||||
|
<h2>Timeline</h2>
|
||||||
|
</xsl:if>
|
||||||
|
<xsl:if test="description">
|
||||||
|
<h2><xsl:value-of select="description"/></h2>
|
||||||
|
</xsl:if>
|
||||||
|
<blockquote>
|
||||||
|
<xsl:apply-templates select="item" mode="timeline"/>
|
||||||
|
</blockquote>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="item" mode="timeline">
|
||||||
|
<xsl:if test="@ref">
|
||||||
|
<xsl:variable name="documentFile"><xsl:value-of select="$rootDir"/><xsl:value-of select="@ref"/></xsl:variable>
|
||||||
|
<xsl:apply-templates select="document($documentFile)/document" mode="withDate">
|
||||||
|
<xsl:with-param name="itemRef" select="@ref"/>
|
||||||
|
</xsl:apply-templates>
|
||||||
|
</xsl:if>
|
||||||
|
<xsl:if test="not(@ref)">
|
||||||
|
<h3><xsl:call-template name="formatDate"><xsl:with-param name="date" select="@date"/></xsl:call-template></h3>
|
||||||
|
<blockquote>
|
||||||
|
<xsl:value-of select="."/>
|
||||||
|
</blockquote>
|
||||||
|
</xsl:if>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="list[@type = 'people']">
|
||||||
|
<xsl:if test="not(description)">
|
||||||
|
<h2>People</h2>
|
||||||
|
</xsl:if>
|
||||||
|
<xsl:if test="description">
|
||||||
|
<h2><xsl:value-of select="description"/></h2>
|
||||||
|
</xsl:if>
|
||||||
|
<blockquote>
|
||||||
|
<xsl:apply-templates select="item" mode="people"/>
|
||||||
|
</blockquote>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="item" mode="people">
|
||||||
|
<h3><xsl:value-of select="name"/></h3>
|
||||||
|
<xsl:apply-templates select="list"/>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="list[@type = 'documents']">
|
||||||
|
<xsl:if test="description"><h2><xsl:value-of select="description"/></h2></xsl:if>
|
||||||
|
<ul>
|
||||||
|
<xsl:apply-templates select="item" mode="document"/>
|
||||||
|
</ul>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="item" mode="document">
|
||||||
|
<xsl:variable name="documentFile"><xsl:value-of select="$rootDir"/><xsl:value-of select="@ref"/></xsl:variable>
|
||||||
|
<xsl:apply-templates select="document($documentFile)/document">
|
||||||
|
<xsl:with-param name="itemRef" select="@ref"/>
|
||||||
|
</xsl:apply-templates>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="document">
|
||||||
|
<xsl:param name="itemRef"/>
|
||||||
|
<li>
|
||||||
|
<xsl:call-template name="documentSummary"><xsl:with-param name="itemRef" select="$itemRef"/></xsl:call-template>
|
||||||
|
</li>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="document" mode="withDate">
|
||||||
|
<xsl:param name="itemRef"/>
|
||||||
|
<h3><xsl:call-template name="formatDate"><xsl:with-param name="date" select="date"/><xsl:with-param name="format" select="MY"/></xsl:call-template></h3>
|
||||||
|
<blockquote>
|
||||||
|
<p>
|
||||||
|
<xsl:call-template name="documentSummary"><xsl:with-param name="itemRef" select="$itemRef"/><xsl:with-param name="multiLine" select="'true'"/></xsl:call-template>
|
||||||
|
</p>
|
||||||
|
</blockquote>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template name="documentSummary">
|
||||||
|
<xsl:param name="itemRef"/>
|
||||||
|
<xsl:param name="multiLine">false</xsl:param>
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="content|include">
|
||||||
|
<a href="{$itemRef}"><xsl:value-of select="title"/></a>
|
||||||
|
<xsl:if test="@ref">
|
||||||
|
<span class="small">
|
||||||
|
<xsl:text> [</xsl:text><a href="{@ref}">Original</a><xsl:text>]</xsl:text>
|
||||||
|
</span>
|
||||||
|
</xsl:if>
|
||||||
|
</xsl:when>
|
||||||
|
<xsl:otherwise>
|
||||||
|
<a href="{$itemRef}"><xsl:value-of select="title"/></a>
|
||||||
|
</xsl:otherwise>
|
||||||
|
</xsl:choose>
|
||||||
|
<xsl:if test="copy">
|
||||||
|
<span class="small">
|
||||||
|
<xsl:text> [</xsl:text><a href="{copy/@ref}"><xsl:value-of select="copy"/></a><xsl:text>]</xsl:text>
|
||||||
|
</span>
|
||||||
|
</xsl:if>
|
||||||
|
<xsl:if test="author"><xsl:if test="$multiLine = 'true'"><br/></xsl:if><span class="medium"><xsl:text> by </xsl:text><xsl:call-template name="authors"/></span></xsl:if>
|
||||||
|
<xsl:if test="source">
|
||||||
|
<span class="small">
|
||||||
|
<br/>
|
||||||
|
<xsl:text>[Source: </xsl:text>
|
||||||
|
<xsl:if test="site">
|
||||||
|
<a href="{site/@url}"><xsl:value-of select="site"/></a>
|
||||||
|
</xsl:if>
|
||||||
|
<xsl:if test="not(site)">
|
||||||
|
<a href="{source/@url}"><xsl:value-of select="source"/></a>
|
||||||
|
</xsl:if>
|
||||||
|
<xsl:text>]</xsl:text>
|
||||||
|
</span>
|
||||||
|
</xsl:if>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="list[@type = 'resources']">
|
||||||
|
<xsl:if test="not(description)">
|
||||||
|
<h2>Resources</h2>
|
||||||
|
</xsl:if>
|
||||||
|
<xsl:if test="description">
|
||||||
|
<h2><xsl:value-of select="description"/></h2>
|
||||||
|
</xsl:if>
|
||||||
|
<blockquote>
|
||||||
|
<xsl:apply-templates select="item" mode="resources"/>
|
||||||
|
</blockquote>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="item" mode="resources">
|
||||||
|
<h3><xsl:value-of select="description"/></h3>
|
||||||
|
<xsl:apply-templates select="list"/>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="list[@type = 'links']">
|
||||||
|
<xsl:if test="description">
|
||||||
|
<h4><xsl:value-of select="description"/></h4>
|
||||||
|
</xsl:if>
|
||||||
|
<ul>
|
||||||
|
<xsl:apply-templates select="item" mode="links"/>
|
||||||
|
</ul>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="item" mode="links">
|
||||||
|
<li><a href="{@ref}"><xsl:value-of select="."/></a></li>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="list[not(@type)]">
|
||||||
|
<xsl:if test="description">
|
||||||
|
<h2><xsl:value-of select="description"/></h2>
|
||||||
|
</xsl:if>
|
||||||
|
<blockquote>
|
||||||
|
<xsl:apply-templates select="item|tag" mode="outer"/>
|
||||||
|
</blockquote>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="item" mode="outer">
|
||||||
|
<xsl:if test="description">
|
||||||
|
<h3><xsl:value-of select="description"/></h3>
|
||||||
|
</xsl:if>
|
||||||
|
<xsl:apply-templates select="list|item|tag" mode="inner"/>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="list" mode="inner">
|
||||||
|
<xsl:if test="description">
|
||||||
|
<h4><xsl:value-of select="description"/></h4>
|
||||||
|
</xsl:if>
|
||||||
|
<ul>
|
||||||
|
<xsl:apply-templates select="list|item|para|tag" mode="inner"/>
|
||||||
|
</ul>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template name="innerlist">
|
||||||
|
<xsl:if test="description">
|
||||||
|
<xsl:value-of select="description"/>
|
||||||
|
</xsl:if>
|
||||||
|
<ul>
|
||||||
|
<xsl:apply-templates select="list|item|para|tag" mode="inner"/>
|
||||||
|
</ul>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="item" mode="inner">
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="@ref">
|
||||||
|
<li><a href="{@ref}"><xsl:apply-templates/></a></li>
|
||||||
|
</xsl:when>
|
||||||
|
<xsl:when test="description">
|
||||||
|
<li><xsl:call-template name="innerlist"/></li>
|
||||||
|
</xsl:when>
|
||||||
|
<xsl:otherwise>
|
||||||
|
<li><xsl:apply-templates/></li>
|
||||||
|
</xsl:otherwise>
|
||||||
|
</xsl:choose>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="para" mode="inner">
|
||||||
|
<li class="para"><xsl:apply-templates/></li>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="tag" mode="outer">
|
||||||
|
<xsl:call-template name="tag"/>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="tag" mode="inner">
|
||||||
|
<xsl:call-template name="tag"/>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template name="tag">
|
||||||
|
<blockquote class="tag">
|
||||||
|
<xsl:text><</xsl:text><xsl:if test="@href"><a href="{@href}"><xsl:value-of select="@name"/></a></xsl:if><xsl:if test="not(@href)"><xsl:value-of select="@name"/></xsl:if><xsl:for-each select="attr"><xsl:text> </xsl:text><xsl:value-of select="@name"/><xsl:text>="</xsl:text><xsl:value-of select="@value"/><xsl:text>"</xsl:text></xsl:for-each>
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="tag"><xsl:text>></xsl:text><xsl:apply-templates mode="inner"/><xsl:text></</xsl:text><xsl:value-of select="@name"/><xsl:text>></xsl:text></xsl:when>
|
||||||
|
<xsl:when test="normalize-space(.) != ''"><xsl:text>></xsl:text><xsl:value-of select="."/><xsl:text></</xsl:text><xsl:value-of select="@name"/><xsl:text>></xsl:text></xsl:when>
|
||||||
|
<xsl:otherwise><xsl:text>/></xsl:text></xsl:otherwise>
|
||||||
|
</xsl:choose>
|
||||||
|
</blockquote>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
</xsl:stylesheet>
|
||||||
49
versions/c1pjs/1.20.4/machine.xsl
Normal file
49
versions/c1pjs/1.20.4/machine.xsl
Normal file
|
|
@ -0,0 +1,49 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!-- author="Jeff Parsons (@jeffpar)" website="http://www.pcjs.org/" created="2012-05-05" modified="2014-02-23" license="http://www.gnu.org/licenses/gpl.html" -->
|
||||||
|
<!DOCTYPE xsl:stylesheet [
|
||||||
|
<!ENTITY nbsp " "> <!ENTITY sect "§"> <!ENTITY copy "©"> <!ENTITY para "¶"> <!ENTITY ndash "–"> <!ENTITY mdash "—">
|
||||||
|
<!ENTITY lsquo "‘"> <!ENTITY rsquo "’"> <!ENTITY ldquo "“"> <!ENTITY rdquo "”"> <!ENTITY dagger "†"> <!ENTITY Dagger "‡">
|
||||||
|
]>
|
||||||
|
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
||||||
|
|
||||||
|
<xsl:output doctype-system="about:legacy-compat" method="html"/>
|
||||||
|
|
||||||
|
<xsl:include href="/versions/c1pjs/1.20.4/common.xsl"/>
|
||||||
|
<xsl:include href="/versions/c1pjs/1.20.4/components.xsl"/>
|
||||||
|
|
||||||
|
<xsl:template match="/machine">
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<title><xsl:value-of select="$SITEHOST"/></title>
|
||||||
|
<xsl:call-template name="commonStyles"/>
|
||||||
|
<xsl:call-template name="componentStyles"/>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="common">
|
||||||
|
<xsl:call-template name="commonTop"/>
|
||||||
|
<div class="common-middle">
|
||||||
|
<p></p>
|
||||||
|
<div id="{@id}" class="machine {@class}js">
|
||||||
|
<xsl:call-template name="component">
|
||||||
|
<xsl:with-param name="machine" select="@id"/>
|
||||||
|
<xsl:with-param name="component" select="'machine'"/>
|
||||||
|
<xsl:with-param name="class"><xsl:value-of select="@class"/>js</xsl:with-param>
|
||||||
|
<xsl:with-param name="parms"><xsl:if test="@parms">,<xsl:value-of select="@parms"/></xsl:if></xsl:with-param>
|
||||||
|
</xsl:call-template>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<xsl:call-template name="commonBottom"/>
|
||||||
|
</div>
|
||||||
|
<xsl:call-template name="componentScripts">
|
||||||
|
<xsl:with-param name="component">
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="debugger"><xsl:value-of select="@class"/>-dbg</xsl:when>
|
||||||
|
<xsl:otherwise><xsl:value-of select="@class"/></xsl:otherwise>
|
||||||
|
</xsl:choose>
|
||||||
|
</xsl:with-param>
|
||||||
|
</xsl:call-template>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
</xsl:stylesheet>
|
||||||
247
versions/c1pjs/1.20.4/manifest.xsl
Normal file
247
versions/c1pjs/1.20.4/manifest.xsl
Normal file
|
|
@ -0,0 +1,247 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!-- author="Jeff Parsons (@jeffpar)" website="http://www.pcjs.org/" created="2014-04-10" modified="2014-04-10" license="http://www.gnu.org/licenses/gpl.html" -->
|
||||||
|
<!DOCTYPE xsl:stylesheet [
|
||||||
|
<!ENTITY nbsp " "> <!ENTITY sect "§"> <!ENTITY copy "©"> <!ENTITY para "¶"> <!ENTITY ndash "–"> <!ENTITY mdash "—">
|
||||||
|
<!ENTITY lsquo "‘"> <!ENTITY rsquo "’"> <!ENTITY ldquo "“"> <!ENTITY rdquo "”"> <!ENTITY dagger "†"> <!ENTITY Dagger "‡">
|
||||||
|
]>
|
||||||
|
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
||||||
|
|
||||||
|
<xsl:output doctype-system="about:legacy-compat" method="html"/>
|
||||||
|
|
||||||
|
<xsl:include href="/versions/c1pjs/1.20.4/common.xsl"/>
|
||||||
|
<xsl:include href="/versions/c1pjs/1.20.4/components.xsl"/>
|
||||||
|
|
||||||
|
<xsl:template match="/manifest[@type = 'document']">
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<title><xsl:value-of select="$SITEHOST"/></title>
|
||||||
|
<xsl:call-template name="commonStyles"/>
|
||||||
|
<xsl:call-template name="componentStyles"/>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="common">
|
||||||
|
<xsl:call-template name="commonTop"/>
|
||||||
|
<div class="common-middle">
|
||||||
|
<h4>Document Manifest</h4>
|
||||||
|
<div class="common-sidebar">
|
||||||
|
<ul class="common-list-data">
|
||||||
|
<xsl:call-template name="listItem">
|
||||||
|
<xsl:with-param name="label" select="'Title'"/>
|
||||||
|
<xsl:with-param name="node" select="title"/>
|
||||||
|
<xsl:with-param name="default">None</xsl:with-param>
|
||||||
|
</xsl:call-template>
|
||||||
|
<xsl:call-template name="listItem">
|
||||||
|
<xsl:with-param name="label" select="'Version'"/>
|
||||||
|
<xsl:with-param name="node" select="version"/>
|
||||||
|
<xsl:with-param name="default" select="''"/>
|
||||||
|
</xsl:call-template>
|
||||||
|
<xsl:call-template name="listItem">
|
||||||
|
<xsl:with-param name="label" select="'Source'"/>
|
||||||
|
<xsl:with-param name="node" select="source"/>
|
||||||
|
<xsl:with-param name="default" select="''"/>
|
||||||
|
</xsl:call-template>
|
||||||
|
<xsl:call-template name="listItem">
|
||||||
|
<xsl:with-param name="label" select="'Documents'"/>
|
||||||
|
<xsl:with-param name="node" select="document"/>
|
||||||
|
<xsl:with-param name="default"><xsl:value-of select="title"/> <xsl:if test="version != ''"><xsl:text> </xsl:text><xsl:value-of select="version"/></xsl:if></xsl:with-param>
|
||||||
|
</xsl:call-template>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="common-main">
|
||||||
|
<p><xsl:value-of select="desc"/></p>
|
||||||
|
<xsl:call-template name="commonBottom"/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="/manifest[@type = 'software' or not(@type)]">
|
||||||
|
<xsl:variable name="machineClass">
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="machine/@class"><xsl:value-of select="machine/@class"/></xsl:when>
|
||||||
|
<xsl:otherwise><xsl:value-of select="$MACHINECLASS"/></xsl:otherwise>
|
||||||
|
</xsl:choose>
|
||||||
|
</xsl:variable>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<title><xsl:value-of select="$SITEHOST"/></title>
|
||||||
|
<xsl:call-template name="commonStyles"/>
|
||||||
|
<xsl:call-template name="componentStyles"/>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="common">
|
||||||
|
<xsl:call-template name="commonTop"/>
|
||||||
|
<div class="common-middle">
|
||||||
|
<h4>Software Manifest</h4>
|
||||||
|
<div class="common-sidebar">
|
||||||
|
<ul class="common-list-data">
|
||||||
|
<xsl:call-template name="listItem">
|
||||||
|
<xsl:with-param name="label" select="'Title'"/>
|
||||||
|
<xsl:with-param name="node" select="title"/>
|
||||||
|
<xsl:with-param name="default">None</xsl:with-param>
|
||||||
|
</xsl:call-template>
|
||||||
|
<xsl:call-template name="listItem">
|
||||||
|
<xsl:with-param name="label" select="'Version'"/>
|
||||||
|
<xsl:with-param name="node" select="version"/>
|
||||||
|
<xsl:with-param name="default">Unknown</xsl:with-param>
|
||||||
|
</xsl:call-template>
|
||||||
|
<xsl:call-template name="listItem">
|
||||||
|
<xsl:with-param name="label" select="'Type'"/>
|
||||||
|
<xsl:with-param name="node" select="type"/>
|
||||||
|
<xsl:with-param name="default">None</xsl:with-param>
|
||||||
|
</xsl:call-template>
|
||||||
|
<xsl:call-template name="listItem">
|
||||||
|
<xsl:with-param name="label" select="'Category'"/>
|
||||||
|
<xsl:with-param name="node" select="category"/>
|
||||||
|
<xsl:with-param name="default">None</xsl:with-param>
|
||||||
|
</xsl:call-template>
|
||||||
|
<xsl:call-template name="listItem">
|
||||||
|
<xsl:with-param name="label" select="'Created'"/>
|
||||||
|
<xsl:with-param name="node" select="creationDate"/>
|
||||||
|
<xsl:with-param name="default" select="''"/>
|
||||||
|
</xsl:call-template>
|
||||||
|
<xsl:call-template name="listItem">
|
||||||
|
<xsl:with-param name="label" select="'Creators'"/>
|
||||||
|
<xsl:with-param name="node" select="creator"/>
|
||||||
|
<xsl:with-param name="default" select="''"/>
|
||||||
|
</xsl:call-template>
|
||||||
|
<xsl:call-template name="listItem">
|
||||||
|
<xsl:with-param name="label"><xsl:if test="creationDate">Updated</xsl:if><xsl:if test="not(creationDate)">Released</xsl:if></xsl:with-param>
|
||||||
|
<xsl:with-param name="node" select="releaseDate"/>
|
||||||
|
<xsl:with-param name="default">Unknown</xsl:with-param>
|
||||||
|
</xsl:call-template>
|
||||||
|
<xsl:call-template name="listItem">
|
||||||
|
<xsl:with-param name="label" select="'Company'"/>
|
||||||
|
<xsl:with-param name="node" select="company"/>
|
||||||
|
<xsl:with-param name="default" select="''"/>
|
||||||
|
</xsl:call-template>
|
||||||
|
<xsl:call-template name="listItem">
|
||||||
|
<xsl:with-param name="label" select="'Authors'"/>
|
||||||
|
<xsl:with-param name="node" select="author"/>
|
||||||
|
<xsl:with-param name="default" select="''"/>
|
||||||
|
</xsl:call-template>
|
||||||
|
<xsl:call-template name="listItem">
|
||||||
|
<xsl:with-param name="label" select="'Contributors'"/>
|
||||||
|
<xsl:with-param name="node" select="contributor"/>
|
||||||
|
<xsl:with-param name="default" select="''"/>
|
||||||
|
</xsl:call-template>
|
||||||
|
<xsl:call-template name="listItem">
|
||||||
|
<xsl:with-param name="label" select="'Publisher'"/>
|
||||||
|
<xsl:with-param name="node" select="publisher"/>
|
||||||
|
<xsl:with-param name="default" select="''"/>
|
||||||
|
</xsl:call-template>
|
||||||
|
<xsl:call-template name="listItem">
|
||||||
|
<xsl:with-param name="label" select="'License'"/>
|
||||||
|
<xsl:with-param name="node" select="license"/>
|
||||||
|
<xsl:with-param name="default" select="''"/>
|
||||||
|
</xsl:call-template>
|
||||||
|
<xsl:call-template name="listItem">
|
||||||
|
<xsl:with-param name="label" select="'Source'"/>
|
||||||
|
<xsl:with-param name="node" select="source"/>
|
||||||
|
<xsl:with-param name="default" select="''"/>
|
||||||
|
</xsl:call-template>
|
||||||
|
<xsl:call-template name="listItem">
|
||||||
|
<xsl:with-param name="label" select="'Disks'"/>
|
||||||
|
<xsl:with-param name="node" select="disk"/>
|
||||||
|
<xsl:with-param name="default"><xsl:value-of select="title"/> <xsl:if test="version != ''"><xsl:text> </xsl:text><xsl:value-of select="version"/></xsl:if></xsl:with-param>
|
||||||
|
</xsl:call-template>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="common-main">
|
||||||
|
<xsl:for-each select="machine[not(@type) or @type = 'default']">
|
||||||
|
<xsl:call-template name="machine">
|
||||||
|
<xsl:with-param name="href" select="@href"/>
|
||||||
|
<xsl:with-param name="state" select="@state"/>
|
||||||
|
</xsl:call-template>
|
||||||
|
</xsl:for-each>
|
||||||
|
<xsl:if test="not(machine[not(@type) or @type = 'default'])">
|
||||||
|
<p>No default machine specified for '<xsl:value-of select="title"/>' in manifest.xml</p>
|
||||||
|
</xsl:if>
|
||||||
|
<xsl:call-template name="commonBottom"/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<xsl:call-template name="componentScripts">
|
||||||
|
<xsl:with-param name="component">
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="machine/@debugger"><xsl:value-of select="$machineClass"/>-dbg</xsl:when>
|
||||||
|
<xsl:otherwise><xsl:value-of select="$machineClass"/></xsl:otherwise>
|
||||||
|
</xsl:choose>
|
||||||
|
</xsl:with-param>
|
||||||
|
</xsl:call-template>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template name="listItem">
|
||||||
|
<xsl:param name="label"/>
|
||||||
|
<xsl:param name="node"/>
|
||||||
|
<xsl:param name="default">Unknown</xsl:param>
|
||||||
|
<xsl:if test="$node != '' or $default != ''">
|
||||||
|
<li><xsl:value-of select="$label"/>
|
||||||
|
<ul class="common-list-data-items">
|
||||||
|
<xsl:for-each select="$node">
|
||||||
|
<xsl:variable name="desc">
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="desc"><xsl:value-of select="desc"/></xsl:when>
|
||||||
|
<xsl:when test="org"><xsl:value-of select="org"/></xsl:when>
|
||||||
|
<xsl:otherwise/>
|
||||||
|
</xsl:choose>
|
||||||
|
</xsl:variable>
|
||||||
|
<li title="{$desc}">
|
||||||
|
<xsl:variable name="value">
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="name">
|
||||||
|
<xsl:value-of select="name"/>
|
||||||
|
</xsl:when>
|
||||||
|
<xsl:when test="normalize-space(./text()) != ''">
|
||||||
|
<xsl:value-of select="normalize-space(./text())"/>
|
||||||
|
</xsl:when>
|
||||||
|
<xsl:otherwise>
|
||||||
|
<xsl:value-of select="$default"/>
|
||||||
|
</xsl:otherwise>
|
||||||
|
</xsl:choose>
|
||||||
|
</xsl:variable>
|
||||||
|
<xsl:variable name="href">
|
||||||
|
<xsl:if test="@href"><xsl:value-of select="@href"/></xsl:if>
|
||||||
|
</xsl:variable>
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="$href != ''">
|
||||||
|
<a href="{$href}"><xsl:value-of select="$value"/></a>
|
||||||
|
</xsl:when>
|
||||||
|
<xsl:otherwise>
|
||||||
|
<xsl:value-of select="$value"/>
|
||||||
|
</xsl:otherwise>
|
||||||
|
</xsl:choose>
|
||||||
|
<xsl:if test="page">
|
||||||
|
<ul class="common-list-data-subitems">
|
||||||
|
<xsl:for-each select="page">
|
||||||
|
<li>
|
||||||
|
<xsl:if test="@href">
|
||||||
|
<a href="{$href}{@href}"><xsl:value-of select="."/></a>
|
||||||
|
</xsl:if>
|
||||||
|
<xsl:if test="not(@href)">
|
||||||
|
<xsl:value-of select="."/>
|
||||||
|
</xsl:if>
|
||||||
|
</li>
|
||||||
|
</xsl:for-each>
|
||||||
|
</ul>
|
||||||
|
</xsl:if>
|
||||||
|
</li>
|
||||||
|
</xsl:for-each>
|
||||||
|
<xsl:if test="not($node)">
|
||||||
|
<xsl:if test="@href">
|
||||||
|
<a href="{@href}"><xsl:value-of select="$default"/></a>
|
||||||
|
</xsl:if>
|
||||||
|
<xsl:if test="not(@href)">
|
||||||
|
<xsl:value-of select="$default"/>
|
||||||
|
</xsl:if>
|
||||||
|
</xsl:if>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
</xsl:if>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
</xsl:stylesheet>
|
||||||
47
versions/c1pjs/1.20.4/outline.xsl
Normal file
47
versions/c1pjs/1.20.4/outline.xsl
Normal file
|
|
@ -0,0 +1,47 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!-- author="Jeff Parsons (@jeffpar)" website="http://www.pcjs.org/" created="2012-05-05" modified="2014-02-23" license="http://www.gnu.org/licenses/gpl.html" -->
|
||||||
|
<!DOCTYPE xsl:stylesheet [
|
||||||
|
<!ENTITY nbsp " "> <!ENTITY sect "§"> <!ENTITY copy "©"> <!ENTITY para "¶"> <!ENTITY ndash "–"> <!ENTITY mdash "—">
|
||||||
|
<!ENTITY lsquo "‘"> <!ENTITY rsquo "’"> <!ENTITY ldquo "“"> <!ENTITY rdquo "”"> <!ENTITY dagger "†"> <!ENTITY Dagger "‡">
|
||||||
|
]>
|
||||||
|
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
||||||
|
|
||||||
|
<xsl:output doctype-system="about:legacy-compat" method="html"/>
|
||||||
|
|
||||||
|
<xsl:include href="/versions/c1pjs/1.20.4/common.xsl"/>
|
||||||
|
<xsl:include href="/versions/c1pjs/1.20.4/document.xsl"/>
|
||||||
|
<xsl:include href="/versions/c1pjs/1.20.4/components.xsl"/>
|
||||||
|
|
||||||
|
<xsl:template match="/outline">
|
||||||
|
<xsl:variable name="machineClass">
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="machine/@class"><xsl:value-of select="machine/@class"/></xsl:when>
|
||||||
|
<xsl:otherwise><xsl:value-of select="$MACHINECLASS"/></xsl:otherwise>
|
||||||
|
</xsl:choose>
|
||||||
|
</xsl:variable>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<title><xsl:value-of select="title"/><xsl:text> | </xsl:text><xsl:value-of select="$SITEHOST"/></title>
|
||||||
|
<xsl:call-template name="commonStyles"/>
|
||||||
|
<xsl:call-template name="documentStyles"/>
|
||||||
|
<xsl:call-template name="componentStyles"/>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="common">
|
||||||
|
<div class="page justified">
|
||||||
|
<xsl:apply-templates/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<xsl:call-template name="componentScripts">
|
||||||
|
<xsl:with-param name="component">
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="debugger"><xsl:value-of select="$machineClass"/>-dbg</xsl:when>
|
||||||
|
<xsl:otherwise><xsl:value-of select="$machineClass"/></xsl:otherwise>
|
||||||
|
</xsl:choose>
|
||||||
|
</xsl:with-param>
|
||||||
|
</xsl:call-template>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
</xsl:stylesheet>
|
||||||
262
versions/pcjs/1.20.4/common.css
Normal file
262
versions/pcjs/1.20.4/common.css
Normal file
|
|
@ -0,0 +1,262 @@
|
||||||
|
@CHARSET "UTF-8";
|
||||||
|
/**
|
||||||
|
@author Jeff Parsons (@jeffpar)
|
||||||
|
@website http://www.pcjs.org/
|
||||||
|
@created 2013-05-05
|
||||||
|
@modified 2014-02-23
|
||||||
|
@license http://www.gnu.org/licenses/gpl.html
|
||||||
|
*/
|
||||||
|
body {
|
||||||
|
margin: 0;
|
||||||
|
background: #202020;
|
||||||
|
}
|
||||||
|
h1, h2 {
|
||||||
|
margin-top: 0;
|
||||||
|
color: #cccccc;
|
||||||
|
}
|
||||||
|
h1, h2, h3, h4 {
|
||||||
|
word-wrap: break-word;
|
||||||
|
}
|
||||||
|
|
||||||
|
h4 a {
|
||||||
|
color: #cccccc !important;
|
||||||
|
}
|
||||||
|
p {
|
||||||
|
line-height: 1.5em;
|
||||||
|
}
|
||||||
|
img {
|
||||||
|
max-width: 100%;
|
||||||
|
}
|
||||||
|
a img {
|
||||||
|
vertical-align: bottom;
|
||||||
|
}
|
||||||
|
pre, code {
|
||||||
|
color: #000000;
|
||||||
|
background-color: #cccccc;
|
||||||
|
font-family: Monaco, Consolas, "Lucida Console", monospace;
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
pre {
|
||||||
|
margin: 1em 2em;
|
||||||
|
padding: 1em;
|
||||||
|
border-radius: 5px;
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
code {
|
||||||
|
padding: 1px;
|
||||||
|
}
|
||||||
|
pre a, code a {
|
||||||
|
color: #006400 !important;
|
||||||
|
}
|
||||||
|
.common {
|
||||||
|
width: 100%;
|
||||||
|
margin: 0 auto;
|
||||||
|
color: #cccccc;
|
||||||
|
}
|
||||||
|
.common a {
|
||||||
|
|
||||||
|
color: #7fc07f;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
.common hr {
|
||||||
|
border-color: #808080;
|
||||||
|
}
|
||||||
|
.common a:hover {
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
.common, .machine {
|
||||||
|
font-family: "Helvetica Neue", Helvetica, Arial, Geneva, sans-serif;
|
||||||
|
font-size: 15px;
|
||||||
|
}
|
||||||
|
.machine {
|
||||||
|
margin: 15px;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
.c1pjs {
|
||||||
|
overflow: visible;
|
||||||
|
}
|
||||||
|
.machine-placeholder {
|
||||||
|
text-align: center;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
.common-top {
|
||||||
|
background: #202020;
|
||||||
|
font-size: small;
|
||||||
|
}
|
||||||
|
.common-top-left {
|
||||||
|
float: left;
|
||||||
|
width: 60%;
|
||||||
|
}
|
||||||
|
.common-top-left ul {
|
||||||
|
line-height: 1.5em;
|
||||||
|
list-style-type: none;
|
||||||
|
margin: 0;
|
||||||
|
padding: 1em 1em 1em 9px;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
.common-top-left ul li {
|
||||||
|
display: block;
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
.common-top-left ul li a {
|
||||||
|
border-right: 1px solid #6f6f6f;
|
||||||
|
padding: 2px 6px 2px 6px;
|
||||||
|
}
|
||||||
|
.common-top-left ul li:last-child a {
|
||||||
|
border-right: none;
|
||||||
|
}
|
||||||
|
.common-top-right {
|
||||||
|
float: right;
|
||||||
|
width: 40%;
|
||||||
|
}
|
||||||
|
.common-top-right p {
|
||||||
|
float: right;
|
||||||
|
margin: 0;
|
||||||
|
padding: 1em;
|
||||||
|
}
|
||||||
|
.common-middle {
|
||||||
|
clear: both;
|
||||||
|
padding: 1px 1em 1px 1em;
|
||||||
|
background: #404040;
|
||||||
|
}
|
||||||
|
.common-sidebar {
|
||||||
|
float: left;
|
||||||
|
font-size: small;
|
||||||
|
width: 140px;
|
||||||
|
padding-bottom: 20px;
|
||||||
|
overflow: hidden;
|
||||||
|
white-space: nowrap;
|
||||||
|
word-wrap: break-word;
|
||||||
|
}
|
||||||
|
.common-list {
|
||||||
|
list-style-type: none;
|
||||||
|
margin-top: 0;
|
||||||
|
margin-bottom: 0;
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
.common-list li {
|
||||||
|
|
||||||
|
padding-bottom: 7px;
|
||||||
|
}
|
||||||
|
.common-list-data {
|
||||||
|
list-style-type: none;
|
||||||
|
margin-top: 0;
|
||||||
|
margin-bottom: 0;
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
.common-list-data li {
|
||||||
|
line-height: 1.5em;
|
||||||
|
}
|
||||||
|
.common-list-data-items, .common-list-data-subitems {
|
||||||
|
font-size: x-small;
|
||||||
|
list-style-type: none;
|
||||||
|
margin-top: 0;
|
||||||
|
margin-bottom: 0;
|
||||||
|
padding-left: 2em;
|
||||||
|
}
|
||||||
|
.common-list-data-items li, .common-list-data-subitems li {
|
||||||
|
padding-bottom: 0;
|
||||||
|
}
|
||||||
|
.common-main {
|
||||||
|
margin-left: 150px;
|
||||||
|
|
||||||
|
}
|
||||||
|
.common-image-gallery {
|
||||||
|
margin: 0 auto;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
.common-image-gallery:after {
|
||||||
|
content: '';
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
.common-image-frame {
|
||||||
|
display: inline-block;
|
||||||
|
margin: 8px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
.common-image-link {
|
||||||
|
padding: 5px;
|
||||||
|
border: 1px solid black;
|
||||||
|
border-radius: 5px;
|
||||||
|
background-color: #FAEBD7;
|
||||||
|
}
|
||||||
|
.common-image-label {
|
||||||
|
font-size: x-small;
|
||||||
|
}
|
||||||
|
.common-bottom {
|
||||||
|
clear: both;
|
||||||
|
padding-top: 1em;
|
||||||
|
}
|
||||||
|
.common-bottom:after {
|
||||||
|
content: '';
|
||||||
|
display: block;
|
||||||
|
clear: both;
|
||||||
|
}
|
||||||
|
.common-reference {
|
||||||
|
float: left;
|
||||||
|
font-size: x-small;
|
||||||
|
}
|
||||||
|
.common-reference a {
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
.common-copyright {
|
||||||
|
float: right;
|
||||||
|
font-size: x-small;
|
||||||
|
}
|
||||||
|
.common-copyright a {
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
.md-list {
|
||||||
|
}
|
||||||
|
.md-list li {
|
||||||
|
line-height: 1.5em;
|
||||||
|
margin-bottom: 1em;
|
||||||
|
}
|
||||||
|
.md-list li p {
|
||||||
|
padding-left: 2em;
|
||||||
|
}
|
||||||
|
.md-list-compact {
|
||||||
|
}
|
||||||
|
.md-list-compact li {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
.md-list-none {
|
||||||
|
list-style-type: none;
|
||||||
|
padding-left: 2em;
|
||||||
|
}
|
||||||
|
.md-list-none li {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
@media screen and (max-width: 900px) {
|
||||||
|
|
||||||
|
.common-sidebar {
|
||||||
|
width: 100%;
|
||||||
|
white-space: normal;
|
||||||
|
}
|
||||||
|
.common-list {
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
.common-list-data {
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
.common-sidebar h4, .common-list li, .common-list-data li, .common-list-data-items li {
|
||||||
|
width: 130px;
|
||||||
|
float: left;
|
||||||
|
overflow: hidden;
|
||||||
|
vertical-align: top;
|
||||||
|
padding-right: 1em;
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
|
.common-list-data-subitems {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.common-main {
|
||||||
|
clear: both;
|
||||||
|
margin-left: 0;
|
||||||
|
padding-left: 0;
|
||||||
|
padding-right: 0;
|
||||||
|
}
|
||||||
|
.md-list-none {
|
||||||
|
padding-left: 1em;
|
||||||
|
}
|
||||||
|
}
|
||||||
48
versions/pcjs/1.20.4/common.xsl
Normal file
48
versions/pcjs/1.20.4/common.xsl
Normal file
|
|
@ -0,0 +1,48 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!-- author="Jeff Parsons (@jeffpar)" website="http://www.pcjs.org/" created="2012-05-05" modified="2014-02-23" license="http://www.gnu.org/licenses/gpl.html" -->
|
||||||
|
<!DOCTYPE xsl:stylesheet [
|
||||||
|
<!ENTITY nbsp " "> <!ENTITY ne "≠"> <!ENTITY le "≤"> <!ENTITY ge "≥">
|
||||||
|
<!ENTITY times "×"> <!ENTITY sdot "⋅"> <!ENTITY divide "÷">
|
||||||
|
<!ENTITY copy "©"> <!ENTITY Sigma "Σ"> <!ENTITY sigma "σ"> <!ENTITY sum "∑"> <!ENTITY lbrace "{">
|
||||||
|
]>
|
||||||
|
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
||||||
|
|
||||||
|
<xsl:output method="html"/>
|
||||||
|
|
||||||
|
<xsl:template name="commonStyles">
|
||||||
|
<meta charset="utf-8"/>
|
||||||
|
<link rel="shortcut icon" href="/versions/images/current/favicon.ico" type="image/x-icon"/>
|
||||||
|
<link rel="stylesheet" type="text/css" href="/versions/pcjs/1.20.4/common.css"/>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template name="commonTop">
|
||||||
|
<div class="common-top">
|
||||||
|
<div class="common-top-left">
|
||||||
|
<ul>
|
||||||
|
<li><a href="/">Home</a></li>
|
||||||
|
<li><a href="/apps/pc/">Apps</a></li>
|
||||||
|
<li><a href="/disks/pc/">Disks</a></li>
|
||||||
|
<li><a href="/devices/pc/machine/">Machines</a></li>
|
||||||
|
<li><a href="/docs/">Docs</a></li>
|
||||||
|
<li><a href="/pubs/">Pubs</a></li>
|
||||||
|
<li><a href="/blog/">Blog</a></li>
|
||||||
|
<li><a href="/docs/about/">About</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="common-top-right">
|
||||||
|
<p>Powered by <a href="http://nodejs.org" target="_blank">Node.js</a> and <a href="http://aws.amazon.com/elasticbeanstalk/" target="_blank">AWS</a> | <a href="http://github.com/jeffpar/pcjs" target="_blank">GitHub</a></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template name="commonBottom">
|
||||||
|
<div class="common-bottom">
|
||||||
|
<p class="common-reference"></p>
|
||||||
|
<p class="common-copyright">
|
||||||
|
<span class="common-copyright"><a href="http://www.pcjs.org/">pcjs.org</a> website © 2012-2016 by <a href="http://twitter.com/jeffpar">@jeffpar</a></span><br/>
|
||||||
|
<span class="common-copyright">PCjs and C1Pjs released under <a href="http://gnu.org/licenses/gpl.html">GPL version 3 or later</a></span>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
</xsl:stylesheet>
|
||||||
148
versions/pcjs/1.20.4/components.css
Normal file
148
versions/pcjs/1.20.4/components.css
Normal file
|
|
@ -0,0 +1,148 @@
|
||||||
|
@CHARSET "UTF-8";
|
||||||
|
|
||||||
|
|
||||||
|
*:not(input,textarea) {
|
||||||
|
-webkit-user-select: none;
|
||||||
|
}
|
||||||
|
.pcjs-embed {
|
||||||
|
}
|
||||||
|
.pcjs-embed:after {
|
||||||
|
clear:both;
|
||||||
|
}
|
||||||
|
.pcjs-machine {
|
||||||
|
}
|
||||||
|
.pcjs-name, .pcjs-menu {
|
||||||
|
clear: both;
|
||||||
|
font-weight: bold;
|
||||||
|
padding-bottom: 4px;
|
||||||
|
}
|
||||||
|
.pcjs-menu {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
.pcjs-canvas {
|
||||||
|
width: 100%;
|
||||||
|
height: auto;
|
||||||
|
}
|
||||||
|
.pcjs-container {
|
||||||
|
color: #000000;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
.pcjs-label {
|
||||||
|
font-size: small;
|
||||||
|
line-height: 19px;
|
||||||
|
vertical-align: middle;
|
||||||
|
float: left;
|
||||||
|
font-family: "Lucida Console", monospace;
|
||||||
|
}
|
||||||
|
.pcjs-control textarea {
|
||||||
|
font-family: Monaco, monospace;
|
||||||
|
font-size: x-small;
|
||||||
|
}
|
||||||
|
.pcjs-fieldset {
|
||||||
|
border: none;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
.pcjs-flag {
|
||||||
|
font-family: "Lucida Console", monospace;
|
||||||
|
font-size: small;
|
||||||
|
text-align: center;
|
||||||
|
line-height: 19px;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
.pcjs-register {
|
||||||
|
font-family: "Lucida Console", monospace;
|
||||||
|
font-size: small;
|
||||||
|
text-align: center;
|
||||||
|
line-height: 19px;
|
||||||
|
vertical-align: middle;
|
||||||
|
border: 1px solid black;
|
||||||
|
}
|
||||||
|
.pcjs-switches {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
.pcjs-bitBucket {
|
||||||
|
float: left;
|
||||||
|
width: 19px;
|
||||||
|
height: 38px;
|
||||||
|
}
|
||||||
|
.pcjs-bitCell {
|
||||||
|
float: left;
|
||||||
|
width: 19px;
|
||||||
|
height: 19px;
|
||||||
|
margin-right: -1px;
|
||||||
|
margin-bottom: -1px;
|
||||||
|
border: 1px solid black;
|
||||||
|
text-align: center;
|
||||||
|
line-height: 19px;
|
||||||
|
}
|
||||||
|
.pcjs-bitCellLeft {
|
||||||
|
border-left: 1px solid black;
|
||||||
|
}
|
||||||
|
.pcjs-bitLabel {
|
||||||
|
font-size: xx-small;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
.pcjs-description, .pcjs-status {
|
||||||
|
font-size: x-small;
|
||||||
|
line-height: 2em;
|
||||||
|
}
|
||||||
|
.pcjs-key {
|
||||||
|
border: 1px solid black;
|
||||||
|
font-size: x-small;
|
||||||
|
text-align: center;
|
||||||
|
position: absolute;
|
||||||
|
height: 34px;
|
||||||
|
line-height: 34px;
|
||||||
|
background-color: #ffffff;
|
||||||
|
}
|
||||||
|
.pcjs-led {
|
||||||
|
float: left;
|
||||||
|
width: 8px;
|
||||||
|
height: 8px;
|
||||||
|
margin: 4px;
|
||||||
|
border: 1px solid black;
|
||||||
|
text-align: center;
|
||||||
|
line-height: 19px;
|
||||||
|
background-color: #000000;
|
||||||
|
}
|
||||||
|
.pcjs-video-object {
|
||||||
|
clear: both;
|
||||||
|
height: auto;
|
||||||
|
position: relative;
|
||||||
|
line-height: 0;
|
||||||
|
}
|
||||||
|
.pcjs-video-object textarea {
|
||||||
|
position: absolute;
|
||||||
|
left: 0;
|
||||||
|
top: 0;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
opacity: 0;
|
||||||
|
border: 0;
|
||||||
|
padding: 0;
|
||||||
|
line-height: 0;
|
||||||
|
}
|
||||||
|
.pcjs-reference {
|
||||||
|
float: left;
|
||||||
|
font-size: x-small;
|
||||||
|
}
|
||||||
|
.pcjs-reference a {
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
.pcjs-copyright {
|
||||||
|
float: right;
|
||||||
|
font-size: x-small;
|
||||||
|
}
|
||||||
|
.pcjs-copyright a {
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (max-width: 900px) {
|
||||||
|
.pcjs-textarea {
|
||||||
|
width: 100% !important;
|
||||||
|
}
|
||||||
|
.pcjs-registers {
|
||||||
|
width: 100% !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
1042
versions/pcjs/1.20.4/components.xsl
Normal file
1042
versions/pcjs/1.20.4/components.xsl
Normal file
File diff suppressed because it is too large
Load diff
162
versions/pcjs/1.20.4/document.css
Normal file
162
versions/pcjs/1.20.4/document.css
Normal file
|
|
@ -0,0 +1,162 @@
|
||||||
|
@CHARSET "UTF-8";
|
||||||
|
|
||||||
|
.page {
|
||||||
|
margin: 2% 2%;
|
||||||
|
padding: 2% 2%;
|
||||||
|
min-width: 30em;
|
||||||
|
overflow: auto;
|
||||||
|
font-size: large;
|
||||||
|
font-family: Helvetica, Arial, sans-serif;
|
||||||
|
background: #303030;
|
||||||
|
color: #ccc;
|
||||||
|
|
||||||
|
}
|
||||||
|
.page-header {
|
||||||
|
}
|
||||||
|
.page-header-title {
|
||||||
|
text-align: center;
|
||||||
|
|
||||||
|
}
|
||||||
|
.page a {
|
||||||
|
color: #7fc07f;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
a.footlink, a.paralink {
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
a.footlink:link, a.paralink:link {
|
||||||
|
color: blue;
|
||||||
|
}
|
||||||
|
a.footlink:visited, a.paralink:visited {
|
||||||
|
color: blue;
|
||||||
|
}
|
||||||
|
.galleryitem {
|
||||||
|
float: left;
|
||||||
|
width: 200px;
|
||||||
|
}
|
||||||
|
.item {
|
||||||
|
float: left;
|
||||||
|
width: 2em;
|
||||||
|
text-indent: 1em;
|
||||||
|
}
|
||||||
|
.list {
|
||||||
|
margin-left: 3em;
|
||||||
|
text-indent: 0;
|
||||||
|
text-align: justify;
|
||||||
|
}
|
||||||
|
ul {
|
||||||
|
list-style: none;
|
||||||
|
}
|
||||||
|
div.pnumber {
|
||||||
|
float: left;
|
||||||
|
width: 2em;
|
||||||
|
text-indent: 1em;
|
||||||
|
}
|
||||||
|
div.pitem {
|
||||||
|
margin-left: 10em;
|
||||||
|
}
|
||||||
|
p.indent, .justified p {
|
||||||
|
text-indent: 2em;
|
||||||
|
text-align: justify;
|
||||||
|
line-height: 1.5em;
|
||||||
|
}
|
||||||
|
p.noindent {
|
||||||
|
text-indent: 0;
|
||||||
|
text-align: justify;
|
||||||
|
}
|
||||||
|
p.center, .center {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
li.para {
|
||||||
|
margin-top: 1em;
|
||||||
|
margin-bottom: 1em;
|
||||||
|
}
|
||||||
|
.left {
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
.right {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
blockquote.tag {
|
||||||
|
font-size: small;
|
||||||
|
font-family: Monaco, Fixed, monospace;
|
||||||
|
margin-top: 0;
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
.blockquote {
|
||||||
|
padding-left: 1em;
|
||||||
|
text-indent: 0;
|
||||||
|
text-align: justify;
|
||||||
|
}
|
||||||
|
.italics {
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
.medium {
|
||||||
|
font-size: medium;
|
||||||
|
}
|
||||||
|
.small {
|
||||||
|
font-size: x-small;
|
||||||
|
}
|
||||||
|
.smallcaps {
|
||||||
|
font-variant: small-caps;
|
||||||
|
}
|
||||||
|
.strike {
|
||||||
|
text-decoration: line-through;
|
||||||
|
}
|
||||||
|
.summation, .bracelist {
|
||||||
|
display: inline-block;
|
||||||
|
position: relative;
|
||||||
|
vertical-align: middle;
|
||||||
|
text-align: center;
|
||||||
|
margin-bottom: 0.5ex;
|
||||||
|
text-indent: 0;
|
||||||
|
}
|
||||||
|
.bracelist-symbol {
|
||||||
|
font-size: 3em;
|
||||||
|
vertical-align: -40%;
|
||||||
|
}
|
||||||
|
.summation .summation-lower, .summation .summation-upper, .bracelist-item {
|
||||||
|
display: block;
|
||||||
|
font-size: 75%;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
.summation .summation-upper {
|
||||||
|
margin-bottom: 0;
|
||||||
|
margin-left: 0.8ex;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
.summation .summation-lower{
|
||||||
|
margin-bottom: -0.6ex;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
.summation .summation-symbol {
|
||||||
|
font-size: 2em;
|
||||||
|
}
|
||||||
|
p sup {
|
||||||
|
vertical-align: baseline;
|
||||||
|
position: relative;
|
||||||
|
bottom: .5em;
|
||||||
|
font-size: small;
|
||||||
|
}
|
||||||
|
p sub {
|
||||||
|
vertical-align: baseline;
|
||||||
|
position: relative;
|
||||||
|
bottom: -.5em;
|
||||||
|
font-size: small;
|
||||||
|
}
|
||||||
|
.footnote {
|
||||||
|
font-size: medium;
|
||||||
|
text-indent: 1em;
|
||||||
|
text-align: justify;
|
||||||
|
margin-top: .5em;
|
||||||
|
}
|
||||||
|
.image-right {
|
||||||
|
float: right;
|
||||||
|
margin-left: 1em;
|
||||||
|
margin-top: 1em;
|
||||||
|
margin-bottom: 1em;
|
||||||
|
}
|
||||||
|
.image-caption {
|
||||||
|
font-size: small;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
452
versions/pcjs/1.20.4/document.xsl
Normal file
452
versions/pcjs/1.20.4/document.xsl
Normal file
|
|
@ -0,0 +1,452 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!-- author="Jeff Parsons (@jeffpar)" website="http://www.pcjs.org/" created="2012-05-05" modified="2014-02-23" license="http://www.gnu.org/licenses/gpl.html" -->
|
||||||
|
<!DOCTYPE xsl:stylesheet [
|
||||||
|
<!ENTITY nbsp " "> <!ENTITY ne "≠"> <!ENTITY le "≤"> <!ENTITY ge "≥">
|
||||||
|
<!ENTITY times "×"> <!ENTITY sdot "⋅"> <!ENTITY divide "÷">
|
||||||
|
<!ENTITY copy "©"> <!ENTITY Sigma "Σ"> <!ENTITY sigma "σ"> <!ENTITY sum "∑"> <!ENTITY lbrace "{">
|
||||||
|
]>
|
||||||
|
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
||||||
|
|
||||||
|
<xsl:output method="html"/>
|
||||||
|
|
||||||
|
<xsl:template name="documentStyles">
|
||||||
|
<link rel="stylesheet" type="text/css" href="/versions/pcjs/1.20.4/document.css"/>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="title">
|
||||||
|
<h1><xsl:apply-templates/></h1>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template name="p">
|
||||||
|
<xsl:if test="@id">
|
||||||
|
<a name="{@id}"></a>
|
||||||
|
</xsl:if>
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="not(@class)">
|
||||||
|
<p><xsl:apply-templates/></p>
|
||||||
|
</xsl:when>
|
||||||
|
<xsl:otherwise>
|
||||||
|
<p class="{@class}"><xsl:apply-templates/></p>
|
||||||
|
</xsl:otherwise>
|
||||||
|
</xsl:choose>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="p">
|
||||||
|
<xsl:call-template name="p"/>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="br">
|
||||||
|
<br/>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="p[@number]">
|
||||||
|
<div class="pnumber">
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="not(@number) or @number = ''"> </xsl:when>
|
||||||
|
<xsl:otherwise><xsl:value-of select="@number"/></xsl:otherwise>
|
||||||
|
</xsl:choose>
|
||||||
|
</div>
|
||||||
|
<div class="pitem">
|
||||||
|
<xsl:call-template name="p"/>
|
||||||
|
</div>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="span">
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="not(@class)">
|
||||||
|
<span><xsl:apply-templates/></span>
|
||||||
|
</xsl:when>
|
||||||
|
<xsl:when test="@class = 'italics'">
|
||||||
|
<em><xsl:apply-templates/></em>
|
||||||
|
</xsl:when>
|
||||||
|
<xsl:otherwise>
|
||||||
|
<span class="{@class}"><xsl:apply-templates/></span>
|
||||||
|
</xsl:otherwise>
|
||||||
|
</xsl:choose>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="h2">
|
||||||
|
<h2><xsl:apply-templates/></h2>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="h3">
|
||||||
|
<h3><xsl:apply-templates/></h3>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="h4">
|
||||||
|
<h4><xsl:apply-templates/></h4>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="h5">
|
||||||
|
<h5><xsl:apply-templates/></h5>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="h6">
|
||||||
|
<h6><xsl:apply-templates/></h6>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="em">
|
||||||
|
<em><xsl:apply-templates/></em>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="strong">
|
||||||
|
<strong><xsl:apply-templates/></strong>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="a">
|
||||||
|
<a href="{@href}" target="{@target}"><xsl:apply-templates/></a>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="ol">
|
||||||
|
<blockquote><ol><xsl:apply-templates/></ol></blockquote>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="ul">
|
||||||
|
<blockquote><ul><xsl:apply-templates/></ul></blockquote>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="li">
|
||||||
|
<li><xsl:apply-templates/></li>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="img">
|
||||||
|
<div><img src="{@src}" alt="image"/></div>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="pre">
|
||||||
|
<pre><xsl:apply-templates/></pre>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="figure">
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="@pos">
|
||||||
|
<div class="{@pos}"><img src="{@ref}" alt="{.}"/><br/><xsl:value-of select="."/></div>
|
||||||
|
</xsl:when>
|
||||||
|
<xsl:otherwise>
|
||||||
|
<div><img src="{@ref}" alt="{.}"/><br/><xsl:value-of select="."/></div>
|
||||||
|
</xsl:otherwise>
|
||||||
|
</xsl:choose>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="sub">
|
||||||
|
<sub><xsl:apply-templates/></sub>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="sup">
|
||||||
|
<sup><xsl:apply-templates/></sup>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="lt"><</xsl:template>
|
||||||
|
<xsl:template match="gt">></xsl:template>
|
||||||
|
<xsl:template match="ne">≠</xsl:template>
|
||||||
|
<xsl:template match="le">≤</xsl:template>
|
||||||
|
<xsl:template match="ge">≥</xsl:template>
|
||||||
|
<xsl:template match="times">×</xsl:template>
|
||||||
|
<xsl:template match="dot">⋅</xsl:template>
|
||||||
|
<xsl:template match="divide">÷</xsl:template>
|
||||||
|
<xsl:template match="sigma">σ</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="summation">
|
||||||
|
<span class="summation">
|
||||||
|
<span class="summation-upper"><xsl:value-of select="@upper"/></span>
|
||||||
|
<span class="summation-symbol">∑</span>
|
||||||
|
<span class="summation-lower"><xsl:value-of select="@lower"/></span>
|
||||||
|
</span>
|
||||||
|
<xsl:apply-templates/>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="bracelist">
|
||||||
|
<span class="bracelist-symbol">{</span>
|
||||||
|
<span class="bracelist">
|
||||||
|
<xsl:for-each select="item">
|
||||||
|
<span class="bracelist-item"><xsl:apply-templates/></span>
|
||||||
|
</xsl:for-each>
|
||||||
|
</span>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="footlink">
|
||||||
|
<xsl:variable name="docID" select="/document/@id"/>
|
||||||
|
<a class="footlink" id="fn{$docID}_ref{@n}" href="#fn{$docID}_{@n}"><sup><xsl:if test="@quoted"><xsl:text>[</xsl:text></xsl:if><xsl:value-of select="@n"/><xsl:if test="@quoted"><xsl:text>]</xsl:text></xsl:if></sup></a>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="footnote">
|
||||||
|
<xsl:variable name="docID" select="/document/@id"/>
|
||||||
|
<div class="footnote"><a id="fn{$docID}_{@n}" href="#fn{$docID}_ref{@n}"><sup><xsl:value-of select="@n"/></sup></a><xsl:text> </xsl:text>
|
||||||
|
<xsl:apply-templates/>
|
||||||
|
</div>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template name="authors">
|
||||||
|
<xsl:for-each select="author"><xsl:if test="position() != 1"><xsl:text>, </xsl:text></xsl:if><xsl:if test="position() != 1 and position() = last()"><xsl:text>and </xsl:text></xsl:if><xsl:value-of select="."/></xsl:for-each>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template name="formatDate">
|
||||||
|
<xsl:param name="date"/>
|
||||||
|
<xsl:param name="format">MDY</xsl:param>
|
||||||
|
<xsl:variable name="year">
|
||||||
|
<xsl:value-of select="substring-before($date,'-')"/>
|
||||||
|
</xsl:variable>
|
||||||
|
<xsl:variable name="mon-day">
|
||||||
|
<xsl:value-of select="substring-after($date,'-')"/>
|
||||||
|
</xsl:variable>
|
||||||
|
<xsl:variable name="mon">
|
||||||
|
<xsl:value-of select="substring-before($mon-day,'-')"/>
|
||||||
|
</xsl:variable>
|
||||||
|
<xsl:variable name="full-day">
|
||||||
|
<xsl:value-of select="substring-after($mon-day,'-')"/>
|
||||||
|
</xsl:variable>
|
||||||
|
<xsl:variable name="day">
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="substring($full-day,1,1) = '0'"><xsl:value-of select="substring($full-day,2)"/></xsl:when>
|
||||||
|
<xsl:otherwise><xsl:value-of select="$full-day"/></xsl:otherwise>
|
||||||
|
</xsl:choose>
|
||||||
|
</xsl:variable>
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="$mon = '01'">January </xsl:when>
|
||||||
|
<xsl:when test="$mon = '02'">February </xsl:when>
|
||||||
|
<xsl:when test="$mon = '03'">March </xsl:when>
|
||||||
|
<xsl:when test="$mon = '04'">April </xsl:when>
|
||||||
|
<xsl:when test="$mon = '05'">May </xsl:when>
|
||||||
|
<xsl:when test="$mon = '06'">June </xsl:when>
|
||||||
|
<xsl:when test="$mon = '07'">July </xsl:when>
|
||||||
|
<xsl:when test="$mon = '08'">August </xsl:when>
|
||||||
|
<xsl:when test="$mon = '09'">September </xsl:when>
|
||||||
|
<xsl:when test="$mon = '10'">October </xsl:when>
|
||||||
|
<xsl:when test="$mon = '11'">November </xsl:when>
|
||||||
|
<xsl:when test="$mon = '12'">December </xsl:when>
|
||||||
|
<xsl:when test="$mon = '00'"/> </xsl:choose>
|
||||||
|
<xsl:if test="$day != '0' and $format = 'MDY'">
|
||||||
|
<xsl:value-of select="$day"/><xsl:text>, </xsl:text>
|
||||||
|
</xsl:if>
|
||||||
|
<xsl:value-of select="$year"/>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="gallery">
|
||||||
|
<h2><xsl:value-of select="description"/></h2>
|
||||||
|
<div class="gallery">
|
||||||
|
<xsl:apply-templates select="item" mode="gallery"/>
|
||||||
|
</div>
|
||||||
|
<div style="clear:both;"></div>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="item" mode="gallery">
|
||||||
|
<div class="galleryitem">
|
||||||
|
<a href="{@ref}"><img src="/versions/images/current/pdf-192.jpg" alt="{.}"/></a><br/>
|
||||||
|
<div style="font-size:small; text-align:center;"><xsl:value-of select="."/></div>
|
||||||
|
</div>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="list[@type = 'timeline']">
|
||||||
|
<xsl:if test="not(description)">
|
||||||
|
<h2>Timeline</h2>
|
||||||
|
</xsl:if>
|
||||||
|
<xsl:if test="description">
|
||||||
|
<h2><xsl:value-of select="description"/></h2>
|
||||||
|
</xsl:if>
|
||||||
|
<blockquote>
|
||||||
|
<xsl:apply-templates select="item" mode="timeline"/>
|
||||||
|
</blockquote>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="item" mode="timeline">
|
||||||
|
<xsl:if test="@ref">
|
||||||
|
<xsl:variable name="documentFile"><xsl:value-of select="$rootDir"/><xsl:value-of select="@ref"/></xsl:variable>
|
||||||
|
<xsl:apply-templates select="document($documentFile)/document" mode="withDate">
|
||||||
|
<xsl:with-param name="itemRef" select="@ref"/>
|
||||||
|
</xsl:apply-templates>
|
||||||
|
</xsl:if>
|
||||||
|
<xsl:if test="not(@ref)">
|
||||||
|
<h3><xsl:call-template name="formatDate"><xsl:with-param name="date" select="@date"/></xsl:call-template></h3>
|
||||||
|
<blockquote>
|
||||||
|
<xsl:value-of select="."/>
|
||||||
|
</blockquote>
|
||||||
|
</xsl:if>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="list[@type = 'people']">
|
||||||
|
<xsl:if test="not(description)">
|
||||||
|
<h2>People</h2>
|
||||||
|
</xsl:if>
|
||||||
|
<xsl:if test="description">
|
||||||
|
<h2><xsl:value-of select="description"/></h2>
|
||||||
|
</xsl:if>
|
||||||
|
<blockquote>
|
||||||
|
<xsl:apply-templates select="item" mode="people"/>
|
||||||
|
</blockquote>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="item" mode="people">
|
||||||
|
<h3><xsl:value-of select="name"/></h3>
|
||||||
|
<xsl:apply-templates select="list"/>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="list[@type = 'documents']">
|
||||||
|
<xsl:if test="description"><h2><xsl:value-of select="description"/></h2></xsl:if>
|
||||||
|
<ul>
|
||||||
|
<xsl:apply-templates select="item" mode="document"/>
|
||||||
|
</ul>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="item" mode="document">
|
||||||
|
<xsl:variable name="documentFile"><xsl:value-of select="$rootDir"/><xsl:value-of select="@ref"/></xsl:variable>
|
||||||
|
<xsl:apply-templates select="document($documentFile)/document">
|
||||||
|
<xsl:with-param name="itemRef" select="@ref"/>
|
||||||
|
</xsl:apply-templates>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="document">
|
||||||
|
<xsl:param name="itemRef"/>
|
||||||
|
<li>
|
||||||
|
<xsl:call-template name="documentSummary"><xsl:with-param name="itemRef" select="$itemRef"/></xsl:call-template>
|
||||||
|
</li>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="document" mode="withDate">
|
||||||
|
<xsl:param name="itemRef"/>
|
||||||
|
<h3><xsl:call-template name="formatDate"><xsl:with-param name="date" select="date"/><xsl:with-param name="format" select="MY"/></xsl:call-template></h3>
|
||||||
|
<blockquote>
|
||||||
|
<p>
|
||||||
|
<xsl:call-template name="documentSummary"><xsl:with-param name="itemRef" select="$itemRef"/><xsl:with-param name="multiLine" select="'true'"/></xsl:call-template>
|
||||||
|
</p>
|
||||||
|
</blockquote>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template name="documentSummary">
|
||||||
|
<xsl:param name="itemRef"/>
|
||||||
|
<xsl:param name="multiLine">false</xsl:param>
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="content|include">
|
||||||
|
<a href="{$itemRef}"><xsl:value-of select="title"/></a>
|
||||||
|
<xsl:if test="@ref">
|
||||||
|
<span class="small">
|
||||||
|
<xsl:text> [</xsl:text><a href="{@ref}">Original</a><xsl:text>]</xsl:text>
|
||||||
|
</span>
|
||||||
|
</xsl:if>
|
||||||
|
</xsl:when>
|
||||||
|
<xsl:otherwise>
|
||||||
|
<a href="{$itemRef}"><xsl:value-of select="title"/></a>
|
||||||
|
</xsl:otherwise>
|
||||||
|
</xsl:choose>
|
||||||
|
<xsl:if test="copy">
|
||||||
|
<span class="small">
|
||||||
|
<xsl:text> [</xsl:text><a href="{copy/@ref}"><xsl:value-of select="copy"/></a><xsl:text>]</xsl:text>
|
||||||
|
</span>
|
||||||
|
</xsl:if>
|
||||||
|
<xsl:if test="author"><xsl:if test="$multiLine = 'true'"><br/></xsl:if><span class="medium"><xsl:text> by </xsl:text><xsl:call-template name="authors"/></span></xsl:if>
|
||||||
|
<xsl:if test="source">
|
||||||
|
<span class="small">
|
||||||
|
<br/>
|
||||||
|
<xsl:text>[Source: </xsl:text>
|
||||||
|
<xsl:if test="site">
|
||||||
|
<a href="{site/@url}"><xsl:value-of select="site"/></a>
|
||||||
|
</xsl:if>
|
||||||
|
<xsl:if test="not(site)">
|
||||||
|
<a href="{source/@url}"><xsl:value-of select="source"/></a>
|
||||||
|
</xsl:if>
|
||||||
|
<xsl:text>]</xsl:text>
|
||||||
|
</span>
|
||||||
|
</xsl:if>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="list[@type = 'resources']">
|
||||||
|
<xsl:if test="not(description)">
|
||||||
|
<h2>Resources</h2>
|
||||||
|
</xsl:if>
|
||||||
|
<xsl:if test="description">
|
||||||
|
<h2><xsl:value-of select="description"/></h2>
|
||||||
|
</xsl:if>
|
||||||
|
<blockquote>
|
||||||
|
<xsl:apply-templates select="item" mode="resources"/>
|
||||||
|
</blockquote>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="item" mode="resources">
|
||||||
|
<h3><xsl:value-of select="description"/></h3>
|
||||||
|
<xsl:apply-templates select="list"/>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="list[@type = 'links']">
|
||||||
|
<xsl:if test="description">
|
||||||
|
<h4><xsl:value-of select="description"/></h4>
|
||||||
|
</xsl:if>
|
||||||
|
<ul>
|
||||||
|
<xsl:apply-templates select="item" mode="links"/>
|
||||||
|
</ul>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="item" mode="links">
|
||||||
|
<li><a href="{@ref}"><xsl:value-of select="."/></a></li>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="list[not(@type)]">
|
||||||
|
<xsl:if test="description">
|
||||||
|
<h2><xsl:value-of select="description"/></h2>
|
||||||
|
</xsl:if>
|
||||||
|
<blockquote>
|
||||||
|
<xsl:apply-templates select="item|tag" mode="outer"/>
|
||||||
|
</blockquote>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="item" mode="outer">
|
||||||
|
<xsl:if test="description">
|
||||||
|
<h3><xsl:value-of select="description"/></h3>
|
||||||
|
</xsl:if>
|
||||||
|
<xsl:apply-templates select="list|item|tag" mode="inner"/>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="list" mode="inner">
|
||||||
|
<xsl:if test="description">
|
||||||
|
<h4><xsl:value-of select="description"/></h4>
|
||||||
|
</xsl:if>
|
||||||
|
<ul>
|
||||||
|
<xsl:apply-templates select="list|item|para|tag" mode="inner"/>
|
||||||
|
</ul>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template name="innerlist">
|
||||||
|
<xsl:if test="description">
|
||||||
|
<xsl:value-of select="description"/>
|
||||||
|
</xsl:if>
|
||||||
|
<ul>
|
||||||
|
<xsl:apply-templates select="list|item|para|tag" mode="inner"/>
|
||||||
|
</ul>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="item" mode="inner">
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="@ref">
|
||||||
|
<li><a href="{@ref}"><xsl:apply-templates/></a></li>
|
||||||
|
</xsl:when>
|
||||||
|
<xsl:when test="description">
|
||||||
|
<li><xsl:call-template name="innerlist"/></li>
|
||||||
|
</xsl:when>
|
||||||
|
<xsl:otherwise>
|
||||||
|
<li><xsl:apply-templates/></li>
|
||||||
|
</xsl:otherwise>
|
||||||
|
</xsl:choose>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="para" mode="inner">
|
||||||
|
<li class="para"><xsl:apply-templates/></li>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="tag" mode="outer">
|
||||||
|
<xsl:call-template name="tag"/>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="tag" mode="inner">
|
||||||
|
<xsl:call-template name="tag"/>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template name="tag">
|
||||||
|
<blockquote class="tag">
|
||||||
|
<xsl:text><</xsl:text><xsl:if test="@href"><a href="{@href}"><xsl:value-of select="@name"/></a></xsl:if><xsl:if test="not(@href)"><xsl:value-of select="@name"/></xsl:if><xsl:for-each select="attr"><xsl:text> </xsl:text><xsl:value-of select="@name"/><xsl:text>="</xsl:text><xsl:value-of select="@value"/><xsl:text>"</xsl:text></xsl:for-each>
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="tag"><xsl:text>></xsl:text><xsl:apply-templates mode="inner"/><xsl:text></</xsl:text><xsl:value-of select="@name"/><xsl:text>></xsl:text></xsl:when>
|
||||||
|
<xsl:when test="normalize-space(.) != ''"><xsl:text>></xsl:text><xsl:value-of select="."/><xsl:text></</xsl:text><xsl:value-of select="@name"/><xsl:text>></xsl:text></xsl:when>
|
||||||
|
<xsl:otherwise><xsl:text>/></xsl:text></xsl:otherwise>
|
||||||
|
</xsl:choose>
|
||||||
|
</blockquote>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
</xsl:stylesheet>
|
||||||
49
versions/pcjs/1.20.4/machine.xsl
Normal file
49
versions/pcjs/1.20.4/machine.xsl
Normal file
|
|
@ -0,0 +1,49 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!-- author="Jeff Parsons (@jeffpar)" website="http://www.pcjs.org/" created="2012-05-05" modified="2014-02-23" license="http://www.gnu.org/licenses/gpl.html" -->
|
||||||
|
<!DOCTYPE xsl:stylesheet [
|
||||||
|
<!ENTITY nbsp " "> <!ENTITY sect "§"> <!ENTITY copy "©"> <!ENTITY para "¶"> <!ENTITY ndash "–"> <!ENTITY mdash "—">
|
||||||
|
<!ENTITY lsquo "‘"> <!ENTITY rsquo "’"> <!ENTITY ldquo "“"> <!ENTITY rdquo "”"> <!ENTITY dagger "†"> <!ENTITY Dagger "‡">
|
||||||
|
]>
|
||||||
|
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
||||||
|
|
||||||
|
<xsl:output doctype-system="about:legacy-compat" method="html"/>
|
||||||
|
|
||||||
|
<xsl:include href="/versions/pcjs/1.20.4/common.xsl"/>
|
||||||
|
<xsl:include href="/versions/pcjs/1.20.4/components.xsl"/>
|
||||||
|
|
||||||
|
<xsl:template match="/machine">
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<title><xsl:value-of select="$SITEHOST"/></title>
|
||||||
|
<xsl:call-template name="commonStyles"/>
|
||||||
|
<xsl:call-template name="componentStyles"/>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="common">
|
||||||
|
<xsl:call-template name="commonTop"/>
|
||||||
|
<div class="common-middle">
|
||||||
|
<p></p>
|
||||||
|
<div id="{@id}" class="machine {@class}js">
|
||||||
|
<xsl:call-template name="component">
|
||||||
|
<xsl:with-param name="machine" select="@id"/>
|
||||||
|
<xsl:with-param name="component" select="'machine'"/>
|
||||||
|
<xsl:with-param name="class"><xsl:value-of select="@class"/>js</xsl:with-param>
|
||||||
|
<xsl:with-param name="parms"><xsl:if test="@parms">,<xsl:value-of select="@parms"/></xsl:if></xsl:with-param>
|
||||||
|
</xsl:call-template>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<xsl:call-template name="commonBottom"/>
|
||||||
|
</div>
|
||||||
|
<xsl:call-template name="componentScripts">
|
||||||
|
<xsl:with-param name="component">
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="debugger"><xsl:value-of select="@class"/>-dbg</xsl:when>
|
||||||
|
<xsl:otherwise><xsl:value-of select="@class"/></xsl:otherwise>
|
||||||
|
</xsl:choose>
|
||||||
|
</xsl:with-param>
|
||||||
|
</xsl:call-template>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
</xsl:stylesheet>
|
||||||
247
versions/pcjs/1.20.4/manifest.xsl
Normal file
247
versions/pcjs/1.20.4/manifest.xsl
Normal file
|
|
@ -0,0 +1,247 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!-- author="Jeff Parsons (@jeffpar)" website="http://www.pcjs.org/" created="2014-04-10" modified="2014-04-10" license="http://www.gnu.org/licenses/gpl.html" -->
|
||||||
|
<!DOCTYPE xsl:stylesheet [
|
||||||
|
<!ENTITY nbsp " "> <!ENTITY sect "§"> <!ENTITY copy "©"> <!ENTITY para "¶"> <!ENTITY ndash "–"> <!ENTITY mdash "—">
|
||||||
|
<!ENTITY lsquo "‘"> <!ENTITY rsquo "’"> <!ENTITY ldquo "“"> <!ENTITY rdquo "”"> <!ENTITY dagger "†"> <!ENTITY Dagger "‡">
|
||||||
|
]>
|
||||||
|
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
||||||
|
|
||||||
|
<xsl:output doctype-system="about:legacy-compat" method="html"/>
|
||||||
|
|
||||||
|
<xsl:include href="/versions/pcjs/1.20.4/common.xsl"/>
|
||||||
|
<xsl:include href="/versions/pcjs/1.20.4/components.xsl"/>
|
||||||
|
|
||||||
|
<xsl:template match="/manifest[@type = 'document']">
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<title><xsl:value-of select="$SITEHOST"/></title>
|
||||||
|
<xsl:call-template name="commonStyles"/>
|
||||||
|
<xsl:call-template name="componentStyles"/>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="common">
|
||||||
|
<xsl:call-template name="commonTop"/>
|
||||||
|
<div class="common-middle">
|
||||||
|
<h4>Document Manifest</h4>
|
||||||
|
<div class="common-sidebar">
|
||||||
|
<ul class="common-list-data">
|
||||||
|
<xsl:call-template name="listItem">
|
||||||
|
<xsl:with-param name="label" select="'Title'"/>
|
||||||
|
<xsl:with-param name="node" select="title"/>
|
||||||
|
<xsl:with-param name="default">None</xsl:with-param>
|
||||||
|
</xsl:call-template>
|
||||||
|
<xsl:call-template name="listItem">
|
||||||
|
<xsl:with-param name="label" select="'Version'"/>
|
||||||
|
<xsl:with-param name="node" select="version"/>
|
||||||
|
<xsl:with-param name="default" select="''"/>
|
||||||
|
</xsl:call-template>
|
||||||
|
<xsl:call-template name="listItem">
|
||||||
|
<xsl:with-param name="label" select="'Source'"/>
|
||||||
|
<xsl:with-param name="node" select="source"/>
|
||||||
|
<xsl:with-param name="default" select="''"/>
|
||||||
|
</xsl:call-template>
|
||||||
|
<xsl:call-template name="listItem">
|
||||||
|
<xsl:with-param name="label" select="'Documents'"/>
|
||||||
|
<xsl:with-param name="node" select="document"/>
|
||||||
|
<xsl:with-param name="default"><xsl:value-of select="title"/> <xsl:if test="version != ''"><xsl:text> </xsl:text><xsl:value-of select="version"/></xsl:if></xsl:with-param>
|
||||||
|
</xsl:call-template>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="common-main">
|
||||||
|
<p><xsl:value-of select="desc"/></p>
|
||||||
|
<xsl:call-template name="commonBottom"/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="/manifest[@type = 'software' or not(@type)]">
|
||||||
|
<xsl:variable name="machineClass">
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="machine/@class"><xsl:value-of select="machine/@class"/></xsl:when>
|
||||||
|
<xsl:otherwise><xsl:value-of select="$MACHINECLASS"/></xsl:otherwise>
|
||||||
|
</xsl:choose>
|
||||||
|
</xsl:variable>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<title><xsl:value-of select="$SITEHOST"/></title>
|
||||||
|
<xsl:call-template name="commonStyles"/>
|
||||||
|
<xsl:call-template name="componentStyles"/>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="common">
|
||||||
|
<xsl:call-template name="commonTop"/>
|
||||||
|
<div class="common-middle">
|
||||||
|
<h4>Software Manifest</h4>
|
||||||
|
<div class="common-sidebar">
|
||||||
|
<ul class="common-list-data">
|
||||||
|
<xsl:call-template name="listItem">
|
||||||
|
<xsl:with-param name="label" select="'Title'"/>
|
||||||
|
<xsl:with-param name="node" select="title"/>
|
||||||
|
<xsl:with-param name="default">None</xsl:with-param>
|
||||||
|
</xsl:call-template>
|
||||||
|
<xsl:call-template name="listItem">
|
||||||
|
<xsl:with-param name="label" select="'Version'"/>
|
||||||
|
<xsl:with-param name="node" select="version"/>
|
||||||
|
<xsl:with-param name="default">Unknown</xsl:with-param>
|
||||||
|
</xsl:call-template>
|
||||||
|
<xsl:call-template name="listItem">
|
||||||
|
<xsl:with-param name="label" select="'Type'"/>
|
||||||
|
<xsl:with-param name="node" select="type"/>
|
||||||
|
<xsl:with-param name="default">None</xsl:with-param>
|
||||||
|
</xsl:call-template>
|
||||||
|
<xsl:call-template name="listItem">
|
||||||
|
<xsl:with-param name="label" select="'Category'"/>
|
||||||
|
<xsl:with-param name="node" select="category"/>
|
||||||
|
<xsl:with-param name="default">None</xsl:with-param>
|
||||||
|
</xsl:call-template>
|
||||||
|
<xsl:call-template name="listItem">
|
||||||
|
<xsl:with-param name="label" select="'Created'"/>
|
||||||
|
<xsl:with-param name="node" select="creationDate"/>
|
||||||
|
<xsl:with-param name="default" select="''"/>
|
||||||
|
</xsl:call-template>
|
||||||
|
<xsl:call-template name="listItem">
|
||||||
|
<xsl:with-param name="label" select="'Creators'"/>
|
||||||
|
<xsl:with-param name="node" select="creator"/>
|
||||||
|
<xsl:with-param name="default" select="''"/>
|
||||||
|
</xsl:call-template>
|
||||||
|
<xsl:call-template name="listItem">
|
||||||
|
<xsl:with-param name="label"><xsl:if test="creationDate">Updated</xsl:if><xsl:if test="not(creationDate)">Released</xsl:if></xsl:with-param>
|
||||||
|
<xsl:with-param name="node" select="releaseDate"/>
|
||||||
|
<xsl:with-param name="default">Unknown</xsl:with-param>
|
||||||
|
</xsl:call-template>
|
||||||
|
<xsl:call-template name="listItem">
|
||||||
|
<xsl:with-param name="label" select="'Company'"/>
|
||||||
|
<xsl:with-param name="node" select="company"/>
|
||||||
|
<xsl:with-param name="default" select="''"/>
|
||||||
|
</xsl:call-template>
|
||||||
|
<xsl:call-template name="listItem">
|
||||||
|
<xsl:with-param name="label" select="'Authors'"/>
|
||||||
|
<xsl:with-param name="node" select="author"/>
|
||||||
|
<xsl:with-param name="default" select="''"/>
|
||||||
|
</xsl:call-template>
|
||||||
|
<xsl:call-template name="listItem">
|
||||||
|
<xsl:with-param name="label" select="'Contributors'"/>
|
||||||
|
<xsl:with-param name="node" select="contributor"/>
|
||||||
|
<xsl:with-param name="default" select="''"/>
|
||||||
|
</xsl:call-template>
|
||||||
|
<xsl:call-template name="listItem">
|
||||||
|
<xsl:with-param name="label" select="'Publisher'"/>
|
||||||
|
<xsl:with-param name="node" select="publisher"/>
|
||||||
|
<xsl:with-param name="default" select="''"/>
|
||||||
|
</xsl:call-template>
|
||||||
|
<xsl:call-template name="listItem">
|
||||||
|
<xsl:with-param name="label" select="'License'"/>
|
||||||
|
<xsl:with-param name="node" select="license"/>
|
||||||
|
<xsl:with-param name="default" select="''"/>
|
||||||
|
</xsl:call-template>
|
||||||
|
<xsl:call-template name="listItem">
|
||||||
|
<xsl:with-param name="label" select="'Source'"/>
|
||||||
|
<xsl:with-param name="node" select="source"/>
|
||||||
|
<xsl:with-param name="default" select="''"/>
|
||||||
|
</xsl:call-template>
|
||||||
|
<xsl:call-template name="listItem">
|
||||||
|
<xsl:with-param name="label" select="'Disks'"/>
|
||||||
|
<xsl:with-param name="node" select="disk"/>
|
||||||
|
<xsl:with-param name="default"><xsl:value-of select="title"/> <xsl:if test="version != ''"><xsl:text> </xsl:text><xsl:value-of select="version"/></xsl:if></xsl:with-param>
|
||||||
|
</xsl:call-template>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="common-main">
|
||||||
|
<xsl:for-each select="machine[not(@type) or @type = 'default']">
|
||||||
|
<xsl:call-template name="machine">
|
||||||
|
<xsl:with-param name="href" select="@href"/>
|
||||||
|
<xsl:with-param name="state" select="@state"/>
|
||||||
|
</xsl:call-template>
|
||||||
|
</xsl:for-each>
|
||||||
|
<xsl:if test="not(machine[not(@type) or @type = 'default'])">
|
||||||
|
<p>No default machine specified for '<xsl:value-of select="title"/>' in manifest.xml</p>
|
||||||
|
</xsl:if>
|
||||||
|
<xsl:call-template name="commonBottom"/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<xsl:call-template name="componentScripts">
|
||||||
|
<xsl:with-param name="component">
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="machine/@debugger"><xsl:value-of select="$machineClass"/>-dbg</xsl:when>
|
||||||
|
<xsl:otherwise><xsl:value-of select="$machineClass"/></xsl:otherwise>
|
||||||
|
</xsl:choose>
|
||||||
|
</xsl:with-param>
|
||||||
|
</xsl:call-template>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template name="listItem">
|
||||||
|
<xsl:param name="label"/>
|
||||||
|
<xsl:param name="node"/>
|
||||||
|
<xsl:param name="default">Unknown</xsl:param>
|
||||||
|
<xsl:if test="$node != '' or $default != ''">
|
||||||
|
<li><xsl:value-of select="$label"/>
|
||||||
|
<ul class="common-list-data-items">
|
||||||
|
<xsl:for-each select="$node">
|
||||||
|
<xsl:variable name="desc">
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="desc"><xsl:value-of select="desc"/></xsl:when>
|
||||||
|
<xsl:when test="org"><xsl:value-of select="org"/></xsl:when>
|
||||||
|
<xsl:otherwise/>
|
||||||
|
</xsl:choose>
|
||||||
|
</xsl:variable>
|
||||||
|
<li title="{$desc}">
|
||||||
|
<xsl:variable name="value">
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="name">
|
||||||
|
<xsl:value-of select="name"/>
|
||||||
|
</xsl:when>
|
||||||
|
<xsl:when test="normalize-space(./text()) != ''">
|
||||||
|
<xsl:value-of select="normalize-space(./text())"/>
|
||||||
|
</xsl:when>
|
||||||
|
<xsl:otherwise>
|
||||||
|
<xsl:value-of select="$default"/>
|
||||||
|
</xsl:otherwise>
|
||||||
|
</xsl:choose>
|
||||||
|
</xsl:variable>
|
||||||
|
<xsl:variable name="href">
|
||||||
|
<xsl:if test="@href"><xsl:value-of select="@href"/></xsl:if>
|
||||||
|
</xsl:variable>
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="$href != ''">
|
||||||
|
<a href="{$href}"><xsl:value-of select="$value"/></a>
|
||||||
|
</xsl:when>
|
||||||
|
<xsl:otherwise>
|
||||||
|
<xsl:value-of select="$value"/>
|
||||||
|
</xsl:otherwise>
|
||||||
|
</xsl:choose>
|
||||||
|
<xsl:if test="page">
|
||||||
|
<ul class="common-list-data-subitems">
|
||||||
|
<xsl:for-each select="page">
|
||||||
|
<li>
|
||||||
|
<xsl:if test="@href">
|
||||||
|
<a href="{$href}{@href}"><xsl:value-of select="."/></a>
|
||||||
|
</xsl:if>
|
||||||
|
<xsl:if test="not(@href)">
|
||||||
|
<xsl:value-of select="."/>
|
||||||
|
</xsl:if>
|
||||||
|
</li>
|
||||||
|
</xsl:for-each>
|
||||||
|
</ul>
|
||||||
|
</xsl:if>
|
||||||
|
</li>
|
||||||
|
</xsl:for-each>
|
||||||
|
<xsl:if test="not($node)">
|
||||||
|
<xsl:if test="@href">
|
||||||
|
<a href="{@href}"><xsl:value-of select="$default"/></a>
|
||||||
|
</xsl:if>
|
||||||
|
<xsl:if test="not(@href)">
|
||||||
|
<xsl:value-of select="$default"/>
|
||||||
|
</xsl:if>
|
||||||
|
</xsl:if>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
</xsl:if>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
</xsl:stylesheet>
|
||||||
47
versions/pcjs/1.20.4/outline.xsl
Normal file
47
versions/pcjs/1.20.4/outline.xsl
Normal file
|
|
@ -0,0 +1,47 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!-- author="Jeff Parsons (@jeffpar)" website="http://www.pcjs.org/" created="2012-05-05" modified="2014-02-23" license="http://www.gnu.org/licenses/gpl.html" -->
|
||||||
|
<!DOCTYPE xsl:stylesheet [
|
||||||
|
<!ENTITY nbsp " "> <!ENTITY sect "§"> <!ENTITY copy "©"> <!ENTITY para "¶"> <!ENTITY ndash "–"> <!ENTITY mdash "—">
|
||||||
|
<!ENTITY lsquo "‘"> <!ENTITY rsquo "’"> <!ENTITY ldquo "“"> <!ENTITY rdquo "”"> <!ENTITY dagger "†"> <!ENTITY Dagger "‡">
|
||||||
|
]>
|
||||||
|
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
||||||
|
|
||||||
|
<xsl:output doctype-system="about:legacy-compat" method="html"/>
|
||||||
|
|
||||||
|
<xsl:include href="/versions/pcjs/1.20.4/common.xsl"/>
|
||||||
|
<xsl:include href="/versions/pcjs/1.20.4/document.xsl"/>
|
||||||
|
<xsl:include href="/versions/pcjs/1.20.4/components.xsl"/>
|
||||||
|
|
||||||
|
<xsl:template match="/outline">
|
||||||
|
<xsl:variable name="machineClass">
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="machine/@class"><xsl:value-of select="machine/@class"/></xsl:when>
|
||||||
|
<xsl:otherwise><xsl:value-of select="$MACHINECLASS"/></xsl:otherwise>
|
||||||
|
</xsl:choose>
|
||||||
|
</xsl:variable>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<title><xsl:value-of select="title"/><xsl:text> | </xsl:text><xsl:value-of select="$SITEHOST"/></title>
|
||||||
|
<xsl:call-template name="commonStyles"/>
|
||||||
|
<xsl:call-template name="documentStyles"/>
|
||||||
|
<xsl:call-template name="componentStyles"/>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="common">
|
||||||
|
<div class="page justified">
|
||||||
|
<xsl:apply-templates/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<xsl:call-template name="componentScripts">
|
||||||
|
<xsl:with-param name="component">
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="debugger"><xsl:value-of select="$machineClass"/>-dbg</xsl:when>
|
||||||
|
<xsl:otherwise><xsl:value-of select="$machineClass"/></xsl:otherwise>
|
||||||
|
</xsl:choose>
|
||||||
|
</xsl:with-param>
|
||||||
|
</xsl:call-template>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
</xsl:stylesheet>
|
||||||
1220
versions/pcjs/1.20.4/pc-dbg.js
Normal file
1220
versions/pcjs/1.20.4/pc-dbg.js
Normal file
File diff suppressed because it is too large
Load diff
1043
versions/pcjs/1.20.4/pc.js
Normal file
1043
versions/pcjs/1.20.4/pc.js
Normal file
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue