Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e1621eaeed | ||
|
|
6428b1b41f | ||
|
|
bfb6683081 | ||
|
|
59aa24d6ad | ||
|
|
078358070a | ||
|
|
c40c02f651 | ||
|
|
a7e092b716 | ||
|
|
65da4c1d45 | ||
|
|
1027785204 | ||
|
|
7722cb8f53 | ||
|
|
1939c354ed | ||
|
|
622a3738dc | ||
|
|
64b9223a51 | ||
|
|
c4696cfd15 | ||
|
|
8661a1811b | ||
|
|
41588c2918 | ||
|
|
6818927e59 | ||
|
|
6286f562aa | ||
|
|
b24681829d | ||
|
|
d752e928f6 | ||
|
|
a289b103b4 | ||
|
|
43758441e0 | ||
|
|
520aedde81 | ||
|
|
d0a12137ca | ||
|
|
91bfe59522 | ||
|
|
ab1126b6c8 | ||
|
|
d6ff64e41b | ||
|
|
fd96e84634 | ||
|
|
79205a2ce2 | ||
|
|
9927e4c101 | ||
|
|
b79c3324bd | ||
|
|
04983b163f | ||
|
|
2b932681b3 | ||
|
|
9cfdaf063b | ||
|
|
5abeef802a | ||
|
|
6000edfdfd | ||
|
|
078d128769 | ||
|
|
b1b3c4beff | ||
|
|
1adf91889e | ||
|
|
85a63ca1fd | ||
|
|
b14a21e0c2 | ||
|
|
f832113ffc | ||
|
|
eb5a0f559c | ||
|
|
73eec2bd60 | ||
|
|
d47c28887b | ||
|
|
eb2530f11a | ||
|
|
e07e6e55e3 | ||
|
|
5f3f21f3b9 | ||
|
|
ec22af0da0 | ||
|
|
ae11044163 | ||
|
|
331326944a | ||
|
|
0a291952fd | ||
|
|
a873b87691 | ||
|
|
4a7e7c4f64 | ||
|
|
1ec6ab6c3b | ||
|
|
9c0a4f4fe1 | ||
|
|
1687a4b07b | ||
|
|
af4218fc21 | ||
|
|
17deb1f22f | ||
|
|
7b527399d8 | ||
|
|
fab2184bac | ||
|
|
51afab83cd | ||
|
|
d6c4e8c827 | ||
|
|
3398a9fdd1 | ||
|
|
c29ae04ebf | ||
|
|
bedc3b90a4 | ||
|
|
87799c75b9 | ||
|
|
f8e19d52d3 | ||
|
|
6891e7ee69 | ||
|
|
6d6ebd5c45 | ||
|
|
8a130fb5ac | ||
|
|
4a3e11406d | ||
|
|
948d80eec4 | ||
|
|
84f66dc3b7 | ||
|
|
8d51fa14e0 | ||
|
|
e2baaa6812 | ||
|
|
b23578eb29 | ||
|
|
360d0d459c | ||
|
|
848dec871a | ||
|
|
b5826f30c9 | ||
|
|
6d8ac7de5e | ||
|
|
784ce20bed | ||
|
|
5431688ba6 | ||
|
|
ee58b35f4a | ||
|
|
1e3def3af8 | ||
|
|
caef84dd08 | ||
|
|
c022d6c198 | ||
|
|
97d325ebb9 | ||
|
|
a466d34a09 | ||
|
|
0c835d0e8d | ||
|
|
e3901980e9 | ||
|
|
fd1836f9d1 | ||
|
|
49b73c10d4 | ||
|
|
0a3c1cafd4 | ||
|
|
f455898c22 | ||
|
|
7e959729bc | ||
|
|
17f02552b2 | ||
|
|
1f828eef38 | ||
|
|
f3acdbc2bd | ||
|
|
aca983e065 | ||
|
|
0d6a45f458 | ||
|
|
33a24c9d15 | ||
|
|
e4b4e69a37 | ||
|
|
f79ee139c4 | ||
|
|
68909bf2bf | ||
|
|
942200d6e0 | ||
|
|
4e67e48e84 | ||
|
|
ee7bbb3b0d | ||
|
|
a24e5d46e3 | ||
|
|
b692cfbd66 | ||
|
|
c9c49c095f | ||
|
|
e0c273e9b3 | ||
|
|
9c2e2db05a | ||
|
|
9be50202b3 | ||
|
|
ae348425f4 | ||
|
|
332cb084c6 | ||
|
|
beedb0a550 | ||
|
|
a52ee92cc2 | ||
|
|
0dcdd2c419 | ||
|
|
7a2fd2ac14 | ||
|
|
3159c1aaf2 | ||
|
|
6d3e9cfd43 | ||
|
|
1d437253df | ||
|
|
112d8497dd | ||
|
|
1480e7ab6c | ||
|
|
b36ca6ebd4 | ||
|
|
c5f7677fb7 | ||
|
|
e1ea5ac104 | ||
|
|
e87663bd2f | ||
|
|
fe1d52620b | ||
|
|
b8c15b443d | ||
|
|
060ea0eaca | ||
|
|
9681038ed8 | ||
|
|
fa12b28ace | ||
|
|
183cd0fc9d | ||
|
|
626c29c51b | ||
|
|
ad759b717c | ||
|
|
da91cbcb88 | ||
|
|
b3865738d1 | ||
|
|
851d4de1fb | ||
|
|
df3d2a7339 | ||
|
|
20e5773dd9 | ||
|
|
c0fa2979b3 | ||
|
|
cf8b9ba6dd | ||
|
|
f2c9398a87 | ||
|
|
d5ddde3e41 | ||
|
|
a7ac4b5b1a | ||
|
|
dc6c40a78e | ||
|
|
4add2dc408 | ||
|
|
0fff0624e1 | ||
|
|
f993017c97 | ||
|
|
0b6dd6059c | ||
|
|
93ed399b81 | ||
|
|
0e70629657 | ||
|
|
9c28299ef5 | ||
|
|
96fa64d77f | ||
|
|
73c735401a | ||
|
|
e77e496e00 | ||
|
|
5355532a5d | ||
|
|
7271046b1b | ||
|
|
41e198f378 | ||
|
|
1fe9cb68b2 | ||
|
|
3d27599635 | ||
|
|
785702eac3 | ||
|
|
95212cff3f | ||
|
|
e26f3b80e0 | ||
|
|
898888ee05 | ||
|
|
84c97a909e | ||
|
|
cde7c57843 | ||
|
|
29a612eaf9 | ||
|
|
87a77c0481 | ||
|
|
260fc3ec6d | ||
|
|
7af3017387 | ||
|
|
875398edf4 | ||
|
|
98d13f2f0e | ||
|
|
4cd0c76270 | ||
|
|
0e177eb0fd | ||
|
|
d669caf1e9 | ||
|
|
dee6ceafc3 | ||
|
|
ed340c2838 | ||
|
|
f2582de7b6 | ||
|
|
7aa7d218c8 | ||
|
|
43a2c812f5 | ||
|
|
8a55d934f8 | ||
|
|
7d9b911934 | ||
|
|
f23d741883 | ||
|
|
231bc1b563 | ||
|
|
28676361ce | ||
|
|
8affd35e0e | ||
|
|
29884d1ca5 | ||
|
|
a5ca6ff001 | ||
|
|
91ed20000c | ||
|
|
cca8c9f090 | ||
|
|
68c41bf5d5 | ||
|
|
11a28e8000 | ||
|
|
241e54b4c0 | ||
|
|
e3c11d0bb8 | ||
|
|
fbdc73026c | ||
|
|
aa0d48aa40 | ||
|
|
2b5ab4d1a2 | ||
|
|
11246faa71 | ||
|
|
762411ec41 | ||
|
|
4a5b7ea6b5 | ||
|
|
c5d5916778 | ||
|
|
5093befe4f | ||
|
|
50803c843e | ||
|
|
b3e46c1fd7 | ||
|
|
c0ffed42a4 | ||
|
|
29a3f8e136 | ||
|
|
d6ad19e2df | ||
|
|
0d7cd19442 | ||
|
|
73a0fa200e | ||
|
|
ea61907f02 | ||
|
|
76132e32c7 | ||
|
|
788d92b96f | ||
|
|
e433d38263 | ||
|
|
57fddf4aeb | ||
|
|
eef33e1f52 | ||
|
|
978fdcfe77 | ||
|
|
1f1ab6db85 | ||
|
|
7ed4864893 | ||
|
|
90fdd70fab | ||
|
|
4490aebe0d | ||
|
|
92d64c89a3 | ||
|
|
1370563e97 | ||
|
|
31122ce6d5 | ||
|
|
15dfbd3ddd | ||
|
|
3ae59d3573 | ||
|
|
48120dc08f | ||
|
|
9ec4478d58 | ||
|
|
a275d2fd39 | ||
|
|
7e8f1286e3 | ||
|
|
fabbb7e4fe | ||
|
|
70fbb7bb3e | ||
|
|
f3d980b72d | ||
|
|
7d9070ef94 | ||
|
|
a0112065aa | ||
|
|
f32e976f8c | ||
|
|
73afb79e90 | ||
|
|
fc058a4e0b | ||
|
|
d8186721f3 | ||
|
|
ee3cc07778 | ||
|
|
b8a0b6ec81 | ||
|
|
0ab6cd111b | ||
|
|
d30c282bb1 | ||
|
|
f7cf455fae | ||
|
|
bd78b83dcb | ||
|
|
16faca7766 | ||
|
|
154ab852a3 | ||
|
|
d8daa5e6e3 | ||
|
|
615b5f20ff | ||
|
|
52a8a506fe | ||
|
|
ea96b736f3 | ||
|
|
b71577adae | ||
|
|
00510f91fd | ||
|
|
86fb66d2fc | ||
|
|
a9d30afec8 | ||
|
|
22ef2b8f6f | ||
|
|
06d9f0e6de | ||
|
|
8a1994797b | ||
|
|
1081277c92 | ||
|
|
f1db5a19f3 | ||
|
|
665ceba546 | ||
|
|
536196d236 | ||
|
|
dd9d139c80 | ||
|
|
5f1344673f | ||
|
|
0caa27023c | ||
|
|
409ca78a4f | ||
|
|
01910d8578 | ||
|
|
7c352d3a16 | ||
|
|
b79d1c9827 | ||
|
|
991a4ac1f0 | ||
|
|
f39608efde | ||
|
|
636b990277 | ||
|
|
2577e83360 | ||
|
|
b8d3f5a170 | ||
|
|
22b8455439 | ||
|
|
de2fb171ad | ||
|
|
6902e139e6 | ||
|
|
635772ed84 | ||
|
|
2ec8ebd11d | ||
|
|
c1ebc89eff | ||
|
|
1046fd8eec | ||
|
|
800f7eb0ed | ||
|
|
2954da24fd | ||
|
|
d95ce336de | ||
|
|
52b0f975c7 | ||
|
|
191ddc371f | ||
|
|
82a8b81b3e | ||
|
|
926b8e5e0f | ||
|
|
0c08b72d99 | ||
|
|
63f331131d | ||
|
|
16fd3961de | ||
|
|
c37cb26800 | ||
|
|
7d58e02def | ||
|
|
60ed3b8826 | ||
|
|
d44ff5b467 | ||
|
|
0c3c96d6fb | ||
|
|
81deb28f56 | ||
|
|
b426c5893b | ||
|
|
f89e2142bc | ||
|
|
9c093ae4a8 | ||
|
|
80779fbab2 | ||
|
|
35eb925f62 | ||
|
|
32f7c6b162 | ||
|
|
90f8716a39 | ||
|
|
ae4d3196ef | ||
|
|
6c21a2722c | ||
|
|
a7f9667b55 | ||
|
|
61e44fbf1f | ||
|
|
a927d9ca4f | ||
|
|
df0624bf93 | ||
|
|
7ba1112eb9 | ||
|
|
af27951aeb | ||
|
|
8899ae9041 | ||
|
|
94d513d625 | ||
|
|
432959de50 | ||
|
|
1261356a90 | ||
|
|
2f8c70c914 | ||
|
|
f8052b627d | ||
|
|
2f071a6c01 | ||
|
|
6770edaf4c | ||
|
|
664be8672b | ||
|
|
46454674e7 | ||
|
|
23bbbbeccc | ||
|
|
e61e07e04c | ||
|
|
728ceaa3b7 | ||
|
|
14ce0e99f8 | ||
|
|
30811a1651 | ||
|
|
319826c7e3 | ||
|
|
a5e8c06efa | ||
|
|
161a8e9bd7 | ||
|
|
d4fbf5c7e2 | ||
|
|
1144493167 | ||
|
|
9520f79bd5 | ||
|
|
8854b8ce9f | ||
|
|
2c7bb29b45 | ||
|
|
9ed580066c | ||
|
|
bd28930a19 | ||
|
|
0d1f0884dc | ||
|
|
1171d17bea | ||
|
|
3b6b0a4849 | ||
|
|
9f817f79d2 | ||
|
|
3778b0c09d | ||
|
|
5d78ada088 | ||
|
|
3d7fc96f92 | ||
|
|
c4f763fe15 | ||
|
|
38a701d082 | ||
|
|
afee8df369 | ||
|
|
decfe09ffc | ||
|
|
ae9ef6dc5c | ||
|
|
65fcfebcc2 | ||
|
|
dadd68afd6 | ||
|
|
6fa44176b9 | ||
|
|
9f68bb1759 | ||
|
|
d991d46ef6 | ||
|
|
ae73c9040c | ||
|
|
d18de2dc99 | ||
|
|
cf42214591 | ||
|
|
449fdb1942 | ||
|
|
1707b7887b | ||
|
|
7c7a0231e9 | ||
|
|
e1118b7006 | ||
|
|
5c43702a71 | ||
|
|
00cbf3d17c | ||
|
|
05a3ae8be9 | ||
|
|
caf62a9b80 | ||
|
|
69172d6a5d | ||
|
|
351b800aa7 | ||
|
|
dfe25a1b45 | ||
|
|
2add7a8f82 | ||
|
|
3c00841a6b | ||
|
|
9e8ce73359 | ||
|
|
26e1c2c6aa | ||
|
|
e225954d44 | ||
|
|
15375dd138 | ||
|
|
b247f27ec4 | ||
|
|
569b00f66e | ||
|
|
e83b8758a3 | ||
|
|
1f75a50e02 | ||
|
|
57315d6882 | ||
|
|
9c6bbeec85 | ||
|
|
6c82b66291 | ||
|
|
2494f9266f | ||
|
|
55d98f016f | ||
|
|
6384a68547 | ||
|
|
f89e4df8c2 | ||
|
|
c53fea773e | ||
|
|
a3e0e19e95 | ||
|
|
c4df7ba9c2 | ||
|
|
e62971d2cb | ||
|
|
52f6030c32 | ||
|
|
6b7408a459 | ||
|
|
e153013a7c | ||
|
|
763db3e511 | ||
|
|
b4355ffa4b | ||
|
|
aaa5753c61 | ||
|
|
f88a2a2ae8 | ||
|
|
74aa27b1da | ||
|
|
97dd1b92a8 | ||
|
|
c5fd554a45 | ||
|
|
27c7d97ec0 | ||
|
|
3251975a14 | ||
|
|
07957044e3 | ||
|
|
87c64c035e | ||
|
|
b750bcca69 | ||
|
|
eaf99e04e6 | ||
|
|
b4b84b1c75 | ||
|
|
79eb483403 | ||
|
|
6ac2dc3102 | ||
|
|
cfbbd11b96 | ||
|
|
28f6439b71 | ||
|
|
4680f9aa0b | ||
|
|
983651610c | ||
|
|
8dcc9df293 | ||
|
|
cf7ac8c9c0 | ||
|
|
0559fd86e4 | ||
|
|
6df4a2b0d6 | ||
|
|
96bcb94ea9 | ||
|
|
baf3d69837 | ||
|
|
9324d8dabe | ||
|
|
7d298b17f4 | ||
|
|
e4106f9840 | ||
|
|
517c9215c7 | ||
|
|
b0260c4525 | ||
|
|
00ba070356 | ||
|
|
377abbc4bf | ||
|
|
b0af4a004d | ||
|
|
38d4d4afb2 | ||
|
|
38802ae0fd | ||
|
|
b68ce575f1 | ||
|
|
8869bb3dcd | ||
|
|
c00a96c830 | ||
|
|
e1c8e6db28 | ||
|
|
c290c501c3 | ||
|
|
7c54c514b2 | ||
|
|
b8286c9356 | ||
|
|
547df53eac | ||
|
|
f86f131e66 | ||
|
|
0f2c494c5f | ||
|
|
025fdbddc6 | ||
|
|
28418ab9c7 | ||
|
|
8939f4cbf8 | ||
|
|
e52af7f758 | ||
|
|
b3038c4676 | ||
|
|
21df52917f | ||
|
|
4c47a0d91f | ||
|
|
b9425afd6e | ||
|
|
84249d3557 | ||
|
|
0ddf95b326 | ||
|
|
b7cd56bc57 | ||
|
|
1781fe9f64 | ||
|
|
bb730485e6 | ||
|
|
a2e9ebb92a | ||
|
|
4967a35c5b | ||
|
|
a5e1dd455e | ||
|
|
342abdb0b9 | ||
|
|
aada4a2fc1 | ||
|
|
6d2071480d | ||
|
|
6fc57f2a38 | ||
|
|
4da57dca32 | ||
|
|
59dbc2bf21 | ||
|
|
3052a2c04a | ||
|
|
c5d8b60909 | ||
|
|
21aab1e656 | ||
|
|
b3790ad5f2 | ||
|
|
9184c0c471 | ||
|
|
936cb32ed5 | ||
|
|
450bc19aaa | ||
|
|
9e40361b0b | ||
|
|
852f6fd3ef | ||
|
|
c2a9d45fcd | ||
|
|
33ea71a901 | ||
|
|
71f0bba478 | ||
|
|
f4a284f48e | ||
|
|
69973fc8b6 | ||
|
|
267c87339b | ||
|
|
b260ff2091 | ||
|
|
602bdafb92 | ||
|
|
496168ad8e | ||
|
|
aee5242bde | ||
|
|
31e90e5347 | ||
|
|
853d2433c1 | ||
|
|
bfa86351c4 | ||
|
|
0dc5a77900 | ||
|
|
a696b6d618 | ||
|
|
e09d913abd | ||
|
|
7ded7e6bd1 | ||
|
|
d5cc68aa4b | ||
|
|
83ffd9d16c | ||
|
|
b5fc0650c6 | ||
|
|
eaf503fdb4 | ||
|
|
8041e50938 | ||
|
|
6df401ef95 | ||
|
|
16380132b8 | ||
|
|
2a3e99c496 | ||
|
|
c6ff20cd3b | ||
|
|
0c4af5ba7d | ||
|
|
cf0115434a | ||
|
|
349cbf236f | ||
|
|
7ef548ecfc | ||
|
|
f35de812b0 | ||
|
|
b1ed36bcf4 | ||
|
|
469da2b7cb | ||
|
|
6948273f9e | ||
|
|
190e0ae980 |
38 changed files with 1813 additions and 5 deletions
7
404.md
Normal file
7
404.md
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
---
|
||||||
|
layout: page
|
||||||
|
title: Page Not Found
|
||||||
|
permalink: /404.html
|
||||||
|
---
|
||||||
|
|
||||||
|
{% include random-publication.html text="This is not the page you are looking for. You found a piece of paper instead." %}
|
||||||
4
Gemfile
Normal file
4
Gemfile
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
source 'https://rubygems.org'
|
||||||
|
gem 'github-pages'
|
||||||
|
gem 'jekyll-sitemap'
|
||||||
|
gem 'jekyll-redirect-from'
|
||||||
203
Gemfile.lock
Normal file
203
Gemfile.lock
Normal file
|
|
@ -0,0 +1,203 @@
|
||||||
|
GEM
|
||||||
|
remote: https://rubygems.org/
|
||||||
|
specs:
|
||||||
|
activesupport (4.2.7)
|
||||||
|
i18n (~> 0.7)
|
||||||
|
json (~> 1.7, >= 1.7.7)
|
||||||
|
minitest (~> 5.1)
|
||||||
|
thread_safe (~> 0.3, >= 0.3.4)
|
||||||
|
tzinfo (~> 1.1)
|
||||||
|
addressable (2.5.0)
|
||||||
|
public_suffix (~> 2.0, >= 2.0.2)
|
||||||
|
coffee-script (2.4.1)
|
||||||
|
coffee-script-source
|
||||||
|
execjs
|
||||||
|
coffee-script-source (1.12.2)
|
||||||
|
colorator (1.1.0)
|
||||||
|
ethon (0.10.1)
|
||||||
|
ffi (>= 1.3.0)
|
||||||
|
execjs (2.7.0)
|
||||||
|
faraday (0.11.0)
|
||||||
|
multipart-post (>= 1.2, < 3)
|
||||||
|
ffi (1.9.17)
|
||||||
|
forwardable-extended (2.6.0)
|
||||||
|
gemoji (3.0.0)
|
||||||
|
github-pages (119)
|
||||||
|
activesupport (= 4.2.7)
|
||||||
|
github-pages-health-check (= 1.3.0)
|
||||||
|
jekyll (= 3.3.1)
|
||||||
|
jekyll-avatar (= 0.4.2)
|
||||||
|
jekyll-coffeescript (= 1.0.1)
|
||||||
|
jekyll-default-layout (= 0.1.4)
|
||||||
|
jekyll-feed (= 0.8.0)
|
||||||
|
jekyll-gist (= 1.4.0)
|
||||||
|
jekyll-github-metadata (= 2.3.1)
|
||||||
|
jekyll-mentions (= 1.2.0)
|
||||||
|
jekyll-optional-front-matter (= 0.1.2)
|
||||||
|
jekyll-paginate (= 1.1.0)
|
||||||
|
jekyll-readme-index (= 0.0.4)
|
||||||
|
jekyll-redirect-from (= 0.12.1)
|
||||||
|
jekyll-relative-links (= 0.2.1)
|
||||||
|
jekyll-sass-converter (= 1.5.0)
|
||||||
|
jekyll-seo-tag (= 2.1.0)
|
||||||
|
jekyll-sitemap (= 0.12.0)
|
||||||
|
jekyll-swiss (= 0.4.0)
|
||||||
|
jekyll-theme-architect (= 0.0.3)
|
||||||
|
jekyll-theme-cayman (= 0.0.3)
|
||||||
|
jekyll-theme-dinky (= 0.0.3)
|
||||||
|
jekyll-theme-hacker (= 0.0.3)
|
||||||
|
jekyll-theme-leap-day (= 0.0.3)
|
||||||
|
jekyll-theme-merlot (= 0.0.3)
|
||||||
|
jekyll-theme-midnight (= 0.0.3)
|
||||||
|
jekyll-theme-minimal (= 0.0.3)
|
||||||
|
jekyll-theme-modernist (= 0.0.3)
|
||||||
|
jekyll-theme-primer (= 0.1.7)
|
||||||
|
jekyll-theme-slate (= 0.0.3)
|
||||||
|
jekyll-theme-tactile (= 0.0.3)
|
||||||
|
jekyll-theme-time-machine (= 0.0.3)
|
||||||
|
jekyll-titles-from-headings (= 0.1.4)
|
||||||
|
jemoji (= 0.8.0)
|
||||||
|
kramdown (= 1.11.1)
|
||||||
|
liquid (= 3.0.6)
|
||||||
|
listen (= 3.0.6)
|
||||||
|
mercenary (~> 0.3)
|
||||||
|
minima (= 2.0.0)
|
||||||
|
nokogiri (= 1.6.8.1)
|
||||||
|
rouge (= 1.11.1)
|
||||||
|
terminal-table (~> 1.4)
|
||||||
|
github-pages-health-check (1.3.0)
|
||||||
|
addressable (~> 2.3)
|
||||||
|
net-dns (~> 0.8)
|
||||||
|
octokit (~> 4.0)
|
||||||
|
public_suffix (~> 2.0)
|
||||||
|
typhoeus (~> 0.7)
|
||||||
|
html-pipeline (2.5.0)
|
||||||
|
activesupport (>= 2)
|
||||||
|
nokogiri (>= 1.4)
|
||||||
|
i18n (0.8.0)
|
||||||
|
jekyll (3.3.1)
|
||||||
|
addressable (~> 2.4)
|
||||||
|
colorator (~> 1.0)
|
||||||
|
jekyll-sass-converter (~> 1.0)
|
||||||
|
jekyll-watch (~> 1.1)
|
||||||
|
kramdown (~> 1.3)
|
||||||
|
liquid (~> 3.0)
|
||||||
|
mercenary (~> 0.3.3)
|
||||||
|
pathutil (~> 0.9)
|
||||||
|
rouge (~> 1.7)
|
||||||
|
safe_yaml (~> 1.0)
|
||||||
|
jekyll-avatar (0.4.2)
|
||||||
|
jekyll (~> 3.0)
|
||||||
|
jekyll-coffeescript (1.0.1)
|
||||||
|
coffee-script (~> 2.2)
|
||||||
|
jekyll-default-layout (0.1.4)
|
||||||
|
jekyll (~> 3.0)
|
||||||
|
jekyll-feed (0.8.0)
|
||||||
|
jekyll (~> 3.3)
|
||||||
|
jekyll-gist (1.4.0)
|
||||||
|
octokit (~> 4.2)
|
||||||
|
jekyll-github-metadata (2.3.1)
|
||||||
|
jekyll (~> 3.1)
|
||||||
|
octokit (~> 4.0, != 4.4.0)
|
||||||
|
jekyll-mentions (1.2.0)
|
||||||
|
activesupport (~> 4.0)
|
||||||
|
html-pipeline (~> 2.3)
|
||||||
|
jekyll (~> 3.0)
|
||||||
|
jekyll-optional-front-matter (0.1.2)
|
||||||
|
jekyll (~> 3.0)
|
||||||
|
jekyll-paginate (1.1.0)
|
||||||
|
jekyll-readme-index (0.0.4)
|
||||||
|
jekyll (~> 3.0)
|
||||||
|
jekyll-redirect-from (0.12.1)
|
||||||
|
jekyll (~> 3.3)
|
||||||
|
jekyll-relative-links (0.2.1)
|
||||||
|
jekyll (~> 3.3)
|
||||||
|
jekyll-sass-converter (1.5.0)
|
||||||
|
sass (~> 3.4)
|
||||||
|
jekyll-seo-tag (2.1.0)
|
||||||
|
jekyll (~> 3.3)
|
||||||
|
jekyll-sitemap (0.12.0)
|
||||||
|
jekyll (~> 3.3)
|
||||||
|
jekyll-swiss (0.4.0)
|
||||||
|
jekyll-theme-architect (0.0.3)
|
||||||
|
jekyll (~> 3.3)
|
||||||
|
jekyll-theme-cayman (0.0.3)
|
||||||
|
jekyll (~> 3.3)
|
||||||
|
jekyll-theme-dinky (0.0.3)
|
||||||
|
jekyll (~> 3.3)
|
||||||
|
jekyll-theme-hacker (0.0.3)
|
||||||
|
jekyll (~> 3.3)
|
||||||
|
jekyll-theme-leap-day (0.0.3)
|
||||||
|
jekyll (~> 3.3)
|
||||||
|
jekyll-theme-merlot (0.0.3)
|
||||||
|
jekyll (~> 3.3)
|
||||||
|
jekyll-theme-midnight (0.0.3)
|
||||||
|
jekyll (~> 3.3)
|
||||||
|
jekyll-theme-minimal (0.0.3)
|
||||||
|
jekyll (~> 3.3)
|
||||||
|
jekyll-theme-modernist (0.0.3)
|
||||||
|
jekyll (~> 3.3)
|
||||||
|
jekyll-theme-primer (0.1.7)
|
||||||
|
jekyll (~> 3.3)
|
||||||
|
jekyll-theme-slate (0.0.3)
|
||||||
|
jekyll (~> 3.3)
|
||||||
|
jekyll-theme-tactile (0.0.3)
|
||||||
|
jekyll (~> 3.3)
|
||||||
|
jekyll-theme-time-machine (0.0.3)
|
||||||
|
jekyll (~> 3.3)
|
||||||
|
jekyll-titles-from-headings (0.1.4)
|
||||||
|
jekyll (~> 3.3)
|
||||||
|
jekyll-watch (1.5.0)
|
||||||
|
listen (~> 3.0, < 3.1)
|
||||||
|
jemoji (0.8.0)
|
||||||
|
activesupport (~> 4.0)
|
||||||
|
gemoji (~> 3.0)
|
||||||
|
html-pipeline (~> 2.2)
|
||||||
|
jekyll (>= 3.0)
|
||||||
|
json (1.8.6)
|
||||||
|
kramdown (1.11.1)
|
||||||
|
liquid (3.0.6)
|
||||||
|
listen (3.0.6)
|
||||||
|
rb-fsevent (>= 0.9.3)
|
||||||
|
rb-inotify (>= 0.9.7)
|
||||||
|
mercenary (0.3.6)
|
||||||
|
mini_portile2 (2.1.0)
|
||||||
|
minima (2.0.0)
|
||||||
|
minitest (5.10.1)
|
||||||
|
multipart-post (2.0.0)
|
||||||
|
net-dns (0.8.0)
|
||||||
|
nokogiri (1.6.8.1)
|
||||||
|
mini_portile2 (~> 2.1.0)
|
||||||
|
octokit (4.6.2)
|
||||||
|
sawyer (~> 0.8.0, >= 0.5.3)
|
||||||
|
pathutil (0.14.0)
|
||||||
|
forwardable-extended (~> 2.6)
|
||||||
|
public_suffix (2.0.5)
|
||||||
|
rb-fsevent (0.9.8)
|
||||||
|
rb-inotify (0.9.8)
|
||||||
|
ffi (>= 0.5.0)
|
||||||
|
rouge (1.11.1)
|
||||||
|
safe_yaml (1.0.4)
|
||||||
|
sass (3.4.23)
|
||||||
|
sawyer (0.8.1)
|
||||||
|
addressable (>= 2.3.5, < 2.6)
|
||||||
|
faraday (~> 0.8, < 1.0)
|
||||||
|
terminal-table (1.7.3)
|
||||||
|
unicode-display_width (~> 1.1.1)
|
||||||
|
thread_safe (0.3.5)
|
||||||
|
typhoeus (0.8.0)
|
||||||
|
ethon (>= 0.8.0)
|
||||||
|
tzinfo (1.2.2)
|
||||||
|
thread_safe (~> 0.1)
|
||||||
|
unicode-display_width (1.1.3)
|
||||||
|
|
||||||
|
PLATFORMS
|
||||||
|
ruby
|
||||||
|
|
||||||
|
DEPENDENCIES
|
||||||
|
github-pages
|
||||||
|
jekyll-redirect-from
|
||||||
|
jekyll-sitemap
|
||||||
|
|
||||||
|
BUNDLED WITH
|
||||||
|
1.11.2
|
||||||
200
_config.yml
Normal file
200
_config.yml
Normal file
|
|
@ -0,0 +1,200 @@
|
||||||
|
# Site settings
|
||||||
|
|
||||||
|
source: .
|
||||||
|
destination: ./docs
|
||||||
|
title: "PCjs Machines"
|
||||||
|
email: Jeff@pcjs.org
|
||||||
|
description: >
|
||||||
|
Welcome to PCjs, home of the original IBM PC in a web browser.
|
||||||
|
PCjs provides a variety of computer emulators written in JavaScript, including PCx86 for x86-based machines
|
||||||
|
(up through the 80386), C1Pjs for the 6502-based Ohio Scientific Challenger 1P, PC8080 for 8080-based machines
|
||||||
|
such as Space Invaders and the DEC VT100 Terminal, and PDPjs with support for PDP-10 and PDP-11 machines.
|
||||||
|
PCjs also provides an archive of selected historical PC software, publications, and reference materials.
|
||||||
|
baseurl: ""
|
||||||
|
url: "http://www.pcjs.org"
|
||||||
|
twitter_username: jeffpar
|
||||||
|
github_username: jeffpar
|
||||||
|
|
||||||
|
left_brace: "{"
|
||||||
|
right_brace: "}"
|
||||||
|
encoding: UTF-8
|
||||||
|
|
||||||
|
# Build settings
|
||||||
|
|
||||||
|
exclude: ["index.html", "**/index.html", "bin", "logs", "node_modules", "projects", "src", "tmp", "videos", "web", "**/archive", "**/ecp", "**/c64", "**/private", "**/restricted", "**/src", "**/tmp", "**/unlisted", ".git", ".idea", "/Gemfile", "/Gemfile.lock", "/Gruntfile.js", "/gulpfile.js", "/notes.md", "/server.js", "/*.sh"]
|
||||||
|
markdown: kramdown
|
||||||
|
kramdown:
|
||||||
|
input: GFM
|
||||||
|
hard_wrap: false
|
||||||
|
|
||||||
|
gems:
|
||||||
|
- jekyll-sitemap
|
||||||
|
- jekyll-redirect-from
|
||||||
|
|
||||||
|
# Custom site settings
|
||||||
|
|
||||||
|
pcjs:
|
||||||
|
domain: pcjs.org # whereas site.url is used for linking purposes, site.pcjs.domain is used for display purposes
|
||||||
|
version: 1.37.1 # IMPORTANT: keep pcjs.version in sync with package.json:version
|
||||||
|
compiled: true # by default, the compiled pcjs.version scripts will be used (eg, pcx86.js or pcx86-dbg.js)
|
||||||
|
c1p_scripts: # if pcjs.compiled is false, the following scripts will be included instead, in the order listed
|
||||||
|
- /modules/shared/lib/defines.js
|
||||||
|
- /modules/shared/lib/nodebug.js
|
||||||
|
- /modules/shared/lib/dumpapi.js
|
||||||
|
- /modules/shared/lib/reportapi.js
|
||||||
|
- /modules/shared/lib/strlib.js
|
||||||
|
- /modules/shared/lib/usrlib.js
|
||||||
|
- /modules/shared/lib/weblib.js
|
||||||
|
- /modules/shared/lib/component.js
|
||||||
|
- /modules/c1pjs/lib/defines.js
|
||||||
|
- /modules/c1pjs/lib/panel.js
|
||||||
|
- /modules/c1pjs/lib/cpu.js
|
||||||
|
- /modules/c1pjs/lib/rom.js
|
||||||
|
- /modules/c1pjs/lib/ram.js
|
||||||
|
- /modules/c1pjs/lib/keyboard.js
|
||||||
|
- /modules/c1pjs/lib/video.js
|
||||||
|
- /modules/c1pjs/lib/serial.js
|
||||||
|
- /modules/c1pjs/lib/disk.js
|
||||||
|
- /modules/c1pjs/lib/debugger.js
|
||||||
|
- /modules/c1pjs/lib/computer.js
|
||||||
|
- /modules/shared/lib/embed.js
|
||||||
|
pcx86_scripts:
|
||||||
|
- /modules/shared/lib/defines.js
|
||||||
|
- /modules/shared/lib/nodebug.js
|
||||||
|
- /modules/shared/lib/diskapi.js
|
||||||
|
- /modules/shared/lib/dumpapi.js
|
||||||
|
- /modules/shared/lib/reportapi.js
|
||||||
|
- /modules/shared/lib/userapi.js
|
||||||
|
- /modules/shared/lib/keys.js
|
||||||
|
- /modules/shared/lib/strlib.js
|
||||||
|
- /modules/shared/lib/usrlib.js
|
||||||
|
- /modules/shared/lib/weblib.js
|
||||||
|
- /modules/shared/lib/component.js
|
||||||
|
- /modules/pcx86/lib/defines.js
|
||||||
|
- /modules/pcx86/lib/x86.js
|
||||||
|
- /modules/pcx86/lib/interrupts.js
|
||||||
|
- /modules/pcx86/lib/messages.js
|
||||||
|
- /modules/pcx86/lib/panel.js
|
||||||
|
- /modules/pcx86/lib/bus.js
|
||||||
|
- /modules/pcx86/lib/memory.js
|
||||||
|
- /modules/pcx86/lib/cpu.js
|
||||||
|
- /modules/pcx86/lib/x86seg.js
|
||||||
|
- /modules/pcx86/lib/x86cpu.js
|
||||||
|
- /modules/pcx86/lib/x86fpu.js
|
||||||
|
- /modules/pcx86/lib/x86func.js
|
||||||
|
- /modules/pcx86/lib/x86help.js
|
||||||
|
- /modules/pcx86/lib/x86mods.js
|
||||||
|
- /modules/pcx86/lib/x86ops.js
|
||||||
|
- /modules/pcx86/lib/x86op0f.js
|
||||||
|
- /modules/pcx86/lib/chipset.js
|
||||||
|
- /modules/pcx86/lib/rom.js
|
||||||
|
- /modules/pcx86/lib/ram.js
|
||||||
|
- /modules/pcx86/lib/keyboard.js
|
||||||
|
- /modules/pcx86/lib/video.js
|
||||||
|
- /modules/pcx86/lib/parallel.js
|
||||||
|
- /modules/pcx86/lib/serial.js
|
||||||
|
- /modules/pcx86/lib/mouse.js
|
||||||
|
- /modules/pcx86/lib/disk.js
|
||||||
|
- /modules/pcx86/lib/fdc.js
|
||||||
|
- /modules/pcx86/lib/hdc.js
|
||||||
|
- /modules/shared/lib/debugger.js
|
||||||
|
- /modules/pcx86/lib/debugger.js
|
||||||
|
- /modules/pcx86/lib/computer.js
|
||||||
|
- /modules/shared/lib/state.js
|
||||||
|
- /modules/shared/lib/embed.js
|
||||||
|
- /modules/shared/lib/save.js
|
||||||
|
pc8080_scripts:
|
||||||
|
- /modules/shared/lib/defines.js
|
||||||
|
- /modules/shared/lib/nodebug.js
|
||||||
|
- /modules/shared/lib/dumpapi.js
|
||||||
|
- /modules/shared/lib/reportapi.js
|
||||||
|
- /modules/shared/lib/userapi.js
|
||||||
|
- /modules/shared/lib/keys.js
|
||||||
|
- /modules/shared/lib/strlib.js
|
||||||
|
- /modules/shared/lib/usrlib.js
|
||||||
|
- /modules/shared/lib/weblib.js
|
||||||
|
- /modules/shared/lib/component.js
|
||||||
|
- /modules/pc8080/lib/defines.js
|
||||||
|
- /modules/pc8080/lib/cpudef.js
|
||||||
|
- /modules/pc8080/lib/messages.js
|
||||||
|
- /modules/pc8080/lib/panel.js
|
||||||
|
- /modules/pc8080/lib/bus.js
|
||||||
|
- /modules/pc8080/lib/memory.js
|
||||||
|
- /modules/pc8080/lib/cpu.js
|
||||||
|
- /modules/pc8080/lib/cpustate.js
|
||||||
|
- /modules/pc8080/lib/cpuops.js
|
||||||
|
- /modules/pc8080/lib/chipset.js
|
||||||
|
- /modules/pc8080/lib/rom.js
|
||||||
|
- /modules/pc8080/lib/ram.js
|
||||||
|
- /modules/pc8080/lib/keyboard.js
|
||||||
|
- /modules/pc8080/lib/video.js
|
||||||
|
- /modules/pc8080/lib/serial.js
|
||||||
|
- /modules/shared/lib/debugger.js
|
||||||
|
- /modules/pc8080/lib/debugger.js
|
||||||
|
- /modules/pc8080/lib/computer.js
|
||||||
|
- /modules/shared/lib/state.js
|
||||||
|
- /modules/shared/lib/embed.js
|
||||||
|
pdp10_scripts:
|
||||||
|
- /modules/shared/lib/defines.js
|
||||||
|
- /modules/shared/lib/nodebug.js
|
||||||
|
- /modules/shared/lib/dumpapi.js
|
||||||
|
- /modules/shared/lib/reportapi.js
|
||||||
|
- /modules/shared/lib/userapi.js
|
||||||
|
- /modules/shared/lib/keys.js
|
||||||
|
- /modules/shared/lib/strlib.js
|
||||||
|
- /modules/shared/lib/usrlib.js
|
||||||
|
- /modules/shared/lib/weblib.js
|
||||||
|
- /modules/shared/lib/component.js
|
||||||
|
- /modules/pdp10/lib/defines.js
|
||||||
|
- /modules/pdp10/lib/messages.js
|
||||||
|
- /modules/pdp10/lib/panel.js
|
||||||
|
- /modules/pdp10/lib/bus.js
|
||||||
|
- /modules/pdp10/lib/device.js
|
||||||
|
- /modules/pdp10/lib/memory.js
|
||||||
|
- /modules/pdp10/lib/cpu.js
|
||||||
|
- /modules/pdp10/lib/cpustate.js
|
||||||
|
- /modules/pdp10/lib/cpuops.js
|
||||||
|
- /modules/pdp10/lib/rom.js
|
||||||
|
- /modules/pdp10/lib/ram.js
|
||||||
|
- /modules/pdp10/lib/serial.js
|
||||||
|
- /modules/shared/lib/debugger.js
|
||||||
|
- /modules/pdp10/lib/debugger.js
|
||||||
|
- /modules/pdp10/lib/macro10.js
|
||||||
|
- /modules/pdp10/lib/computer.js
|
||||||
|
- /modules/shared/lib/state.js
|
||||||
|
- /modules/shared/lib/embed.js
|
||||||
|
pdp11_scripts:
|
||||||
|
- /modules/shared/lib/defines.js
|
||||||
|
- /modules/shared/lib/nodebug.js
|
||||||
|
- /modules/shared/lib/dumpapi.js
|
||||||
|
- /modules/shared/lib/reportapi.js
|
||||||
|
- /modules/shared/lib/userapi.js
|
||||||
|
- /modules/shared/lib/keys.js
|
||||||
|
- /modules/shared/lib/strlib.js
|
||||||
|
- /modules/shared/lib/usrlib.js
|
||||||
|
- /modules/shared/lib/weblib.js
|
||||||
|
- /modules/shared/lib/component.js
|
||||||
|
- /modules/pdp11/lib/defines.js
|
||||||
|
- /modules/pdp11/lib/messages.js
|
||||||
|
- /modules/pdp11/lib/panel.js
|
||||||
|
- /modules/pdp11/lib/bus.js
|
||||||
|
- /modules/pdp11/lib/device.js
|
||||||
|
- /modules/pdp11/lib/memory.js
|
||||||
|
- /modules/pdp11/lib/cpu.js
|
||||||
|
- /modules/pdp11/lib/cpustate.js
|
||||||
|
- /modules/pdp11/lib/cpuops.js
|
||||||
|
- /modules/pdp11/lib/rom.js
|
||||||
|
- /modules/pdp11/lib/ram.js
|
||||||
|
- /modules/pdp11/lib/keyboard.js
|
||||||
|
- /modules/pdp11/lib/serial.js
|
||||||
|
- /modules/pdp11/lib/pc11.js
|
||||||
|
- /modules/pdp11/lib/disk.js
|
||||||
|
- /modules/pdp11/lib/drive.js
|
||||||
|
- /modules/pdp11/lib/rk11.js
|
||||||
|
- /modules/pdp11/lib/rl11.js
|
||||||
|
- /modules/pdp11/lib/rx11.js
|
||||||
|
- /modules/shared/lib/debugger.js
|
||||||
|
- /modules/pdp11/lib/debugger.js
|
||||||
|
- /modules/pdp11/lib/computer.js
|
||||||
|
- /modules/shared/lib/state.js
|
||||||
|
- /modules/shared/lib/embed.js
|
||||||
12
_developer.yml
Normal file
12
_developer.yml
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
developer: true
|
||||||
|
baseurl: ""
|
||||||
|
url: "http://localhost:4000"
|
||||||
|
#
|
||||||
|
# In the following pcjs section, setting "compiled: false" works only for pages with a single machine,
|
||||||
|
# because the uncompiled scripts use shared classes that can only be instantiated once on a page (unless
|
||||||
|
# they're compiled and/or wrapped inside a function).
|
||||||
|
#
|
||||||
|
pcjs:
|
||||||
|
compiled: true
|
||||||
|
debug: false
|
||||||
|
private: true
|
||||||
11
_includes/breadcrumbs.html
Normal file
11
_includes/breadcrumbs.html
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
{% capture page_url_without_index_html %}{{ page.url | remove: "/index.html" | remove: "/404.html" }}{% endcapture %}
|
||||||
|
{% assign splitted_url_parts = page_url_without_index_html | split: '/' %}
|
||||||
|
{% capture forLoopMaxInt %}{{ splitted_url_parts.size | minus:1 }}{% endcapture %}
|
||||||
|
{% for i in (1..forLoopMaxInt) %}
|
||||||
|
{% capture url %}{{ url }}{{ splitted_url_parts[i] }}/{% endcapture %}
|
||||||
|
{% capture path %}{{ path }}\<a href="/{{ url }}">{{ splitted_url_parts[i] | upcase }}</a>{% endcapture %}
|
||||||
|
{% if splitted_url_parts[i] == "blog" %}
|
||||||
|
{% break %}
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
<h4>Directory of C:\<a href="{{ site.baseurl }}/">PCJS.ORG</a>{{ path }}</h4>
|
||||||
61
_includes/footer.html
Normal file
61
_includes/footer.html
Normal file
|
|
@ -0,0 +1,61 @@
|
||||||
|
<footer class="site-footer">
|
||||||
|
|
||||||
|
<div class="wrapper">
|
||||||
|
|
||||||
|
<div class="footer-col-wrapper">
|
||||||
|
|
||||||
|
{% comment %}
|
||||||
|
|
||||||
|
<div class="footer-col footer-col-1">
|
||||||
|
<ul class="contact-list">
|
||||||
|
<li>{{ site.title }}</li>
|
||||||
|
<li><a href="mailto:{{ site.email }}">{{ site.email }}</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="footer-col footer-col-2">
|
||||||
|
<ul class="social-media-list">
|
||||||
|
{% if site.github_username %}
|
||||||
|
<li>
|
||||||
|
<a href="https://github.com/{{ site.github_username }}">
|
||||||
|
<span class="icon icon--github">
|
||||||
|
<svg viewBox="0 0 16 16">
|
||||||
|
<path fill="#828282" d="M7.999,0.431c-4.285,0-7.76,3.474-7.76,7.761 c0,3.428,2.223,6.337,5.307,7.363c0.388,0.071,0.53-0.168,0.53-0.374c0-0.184-0.007-0.672-0.01-1.32 c-2.159,0.469-2.614-1.04-2.614-1.04c-0.353-0.896-0.862-1.135-0.862-1.135c-0.705-0.481,0.053-0.472,0.053-0.472 c0.779,0.055,1.189,0.8,1.189,0.8c0.692,1.186,1.816,0.843,2.258,0.645c0.071-0.502,0.271-0.843,0.493-1.037 C4.86,11.425,3.049,10.76,3.049,7.786c0-0.847,0.302-1.54,0.799-2.082C3.768,5.507,3.501,4.718,3.924,3.65 c0,0,0.652-0.209,2.134,0.796C6.677,4.273,7.34,4.187,8,4.184c0.659,0.003,1.323,0.089,1.943,0.261 c1.482-1.004,2.132-0.796,2.132-0.796c0.423,1.068,0.157,1.857,0.077,2.054c0.497,0.542,0.798,1.235,0.798,2.082 c0,2.981-1.814,3.637-3.543,3.829c0.279,0.24,0.527,0.713,0.527,1.437c0,1.037-0.01,1.874-0.01,2.129 c0,0.208,0.14,0.449,0.534,0.373c3.081-1.028,5.302-3.935,5.302-7.362C15.76,3.906,12.285,0.431,7.999,0.431z"/>
|
||||||
|
</svg>
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<span class="username">{{ site.github_username }}</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if site.twitter_username %}
|
||||||
|
<li>
|
||||||
|
<a href="https://twitter.com/{{ site.twitter_username }}">
|
||||||
|
<span class="icon icon--twitter">
|
||||||
|
<svg viewBox="0 0 16 16">
|
||||||
|
<path fill="#828282" d="M15.969,3.058c-0.586,0.26-1.217,0.436-1.878,0.515c0.675-0.405,1.194-1.045,1.438-1.809
|
||||||
|
c-0.632,0.375-1.332,0.647-2.076,0.793c-0.596-0.636-1.446-1.033-2.387-1.033c-1.806,0-3.27,1.464-3.27,3.27 c0,0.256,0.029,0.506,0.085,0.745C5.163,5.404,2.753,4.102,1.14,2.124C0.859,2.607,0.698,3.168,0.698,3.767 c0,1.134,0.577,2.135,1.455,2.722C1.616,6.472,1.112,6.325,0.671,6.08c0,0.014,0,0.027,0,0.041c0,1.584,1.127,2.906,2.623,3.206 C3.02,9.402,2.731,9.442,2.433,9.442c-0.211,0-0.416-0.021-0.615-0.059c0.416,1.299,1.624,2.245,3.055,2.271 c-1.119,0.877-2.529,1.4-4.061,1.4c-0.264,0-0.524-0.015-0.78-0.046c1.447,0.928,3.166,1.469,5.013,1.469 c6.015,0,9.304-4.983,9.304-9.304c0-0.142-0.003-0.283-0.009-0.423C14.976,4.29,15.531,3.714,15.969,3.058z"/>
|
||||||
|
</svg>
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<span class="username">{{ site.twitter_username }}</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
{% endif %}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{% endcomment %}
|
||||||
|
|
||||||
|
<div class="footer-col footer-col-3">
|
||||||
|
<p class="text">
|
||||||
|
<span style="float:right"><a href="{{ site.url }}">{{ site.pcjs.domain }}</a> © 2012-2017 by <a href="https://twitter.com/{{ site.twitter_username }}">@{{ site.twitter_username }}</a></span><br/>
|
||||||
|
<span style="float:right"><a href="http://github.com/jeffpar/pcjs">PCjs Project</a> released under <a href="http://gnu.org/licenses/gpl.html">GPLv3</a></span>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</footer>
|
||||||
10
_includes/google-analytics.html
Normal file
10
_includes/google-analytics.html
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
{% unless site.developer %}
|
||||||
|
<script>
|
||||||
|
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
||||||
|
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
|
||||||
|
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
|
||||||
|
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
|
||||||
|
ga('create', 'UA-49658648-1', 'pcjs.org');
|
||||||
|
ga('send', 'pageview');
|
||||||
|
</script>
|
||||||
|
{% endunless %}
|
||||||
23
_includes/head.html
Normal file
23
_includes/head.html
Normal file
|
|
@ -0,0 +1,23 @@
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta name="viewport" content="width=device-width initial-scale=1">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
|
<title>{% if page.title %}PCjs: {{ page.title }}{% else %}{{ site.title }}{% endif %}</title>
|
||||||
|
<meta name="description" content="{{ site.description }}">
|
||||||
|
<link href="https://fonts.googleapis.com/css?family=Open+Sans" rel="stylesheet" type="text/css">
|
||||||
|
<link rel="stylesheet" href="{{ "/css/main.css" | prepend: site.baseurl }}">
|
||||||
|
<link rel="canonical" href="{{ page.url | replace:'index.html','' | prepend: site.baseurl | prepend: site.url }}">
|
||||||
|
<link rel="apple-touch-icon" sizes="57x57" href="{{ site.baseurl }}/versions/icons/current/pc-icon-57.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="72x72" href="{{ site.baseurl }}/versions/icons/current/pc-icon-72.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="76x76" href="{{ site.baseurl }}/versions/icons/current/pc-icon-76.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="114x114" href="{{ site.baseurl }}/versions/icons/current/pc-icon-114.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="120x120" href="{{ site.baseurl }}/versions/icons/current/pc-icon-120.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="144x144" href="{{ site.baseurl }}/versions/icons/current/pc-icon-144.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="152x152" href="{{ site.baseurl }}/versions/icons/current/pc-icon-152.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="180x180" href="{{ site.baseurl }}/versions/icons/current/pc-icon-180.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="192x192" href="{{ site.baseurl }}/versions/icons/current/pc-icon-192.png">
|
||||||
|
<link rel="apple-touch-icon" href="{{ site.baseurl }}/versions/icons/current/apple-touch-icon.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="192x192" href="{{ site.baseurl }}/versions/icons/current/pc-icon-192.png">
|
||||||
|
<link rel="shortcut icon" type="image/x-icon" href="{{ site.baseurl }}/versions/icons/current/favicon.ico">
|
||||||
|
{% include machine-styles.html %}
|
||||||
|
</head>
|
||||||
32
_includes/header.html
Normal file
32
_includes/header.html
Normal file
|
|
@ -0,0 +1,32 @@
|
||||||
|
<header class="site-header">
|
||||||
|
|
||||||
|
<div class="wrapper">
|
||||||
|
|
||||||
|
<a class="site-title" href="{{ site.baseurl }}/">{{ site.title }}</a>
|
||||||
|
|
||||||
|
<nav class="site-nav">
|
||||||
|
<a href="#" class="menu-icon">
|
||||||
|
<svg viewBox="0 0 18 15">
|
||||||
|
<path fill="#424242" d="M18,1.484c0,0.82-0.665,1.484-1.484,1.484H1.484C0.665,2.969,0,2.304,0,1.484l0,0C0,0.665,0.665,0,1.484,0 h15.031C17.335,0,18,0.665,18,1.484L18,1.484z"/>
|
||||||
|
<path fill="#424242" d="M18,7.516C18,8.335,17.335,9,16.516,9H1.484C0.665,9,0,8.335,0,7.516l0,0c0-0.82,0.665-1.484,1.484-1.484 h15.031C17.335,6.031,18,6.696,18,7.516L18,7.516z"/>
|
||||||
|
<path fill="#424242" d="M18,13.516C18,14.335,17.335,15,16.516,15H1.484C0.665,15,0,14.335,0,13.516l0,0 c0-0.82,0.665-1.484,1.484-1.484h15.031C17.335,12.031,18,12.696,18,13.516L18,13.516z"/>
|
||||||
|
</svg>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<div class="trigger">
|
||||||
|
{% assign sorted_pages = site.pages | sort:"menu_order" %}
|
||||||
|
{% for page in sorted_pages %}
|
||||||
|
{% if page.menu_title %}
|
||||||
|
<a class="page-link" href="{{ page.url | prepend: site.baseurl }}">{{ page.menu_title }}</a>
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="wrapper">
|
||||||
|
{% include breadcrumbs.html %}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</header>
|
||||||
1
_includes/image.html
Normal file
1
_includes/image.html
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
[<img src="{{ site.baseurl }}{{ include.src }}" width="{{ include.width }}" height="{{ include.height }}"/>]({{ include.link }} "{{ include.alt }}")
|
||||||
1
_includes/machine-build.html
Normal file
1
_includes/machine-build.html
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
<div class="buildpc" id="{{ include.id }}"></div>
|
||||||
22
_includes/machine-command.html
Normal file
22
_includes/machine-command.html
Normal file
|
|
@ -0,0 +1,22 @@
|
||||||
|
{% comment %}
|
||||||
|
|
||||||
|
As discussed in /_posts/2017-01-03-pdp-11-tutorials.md, when a page (usually part of a tutorial)
|
||||||
|
wants to create a control that tests some feature of a machine, the page will define a machine command
|
||||||
|
using a Liquid-style include that looks like this:
|
||||||
|
|
||||||
|
{% include machine-command.html type='button' label='Try It!' machine='vt100' component='Keyboard' command='sendString' value='Hello World' %}
|
||||||
|
|
||||||
|
and which should generate something like this:
|
||||||
|
|
||||||
|
<button type="button" onclick="commandMachine(this, false, 'vt100','Keyboard','sendString','Hello World')">Try It!</button>
|
||||||
|
|
||||||
|
Alternatively, if the command parameter is the name of a machine script in the page's Front Matter, then this:
|
||||||
|
|
||||||
|
{% include machine-command.html type='button' label='Try It!' machine='vt100' component='Keyboard' command='scriptName' %}
|
||||||
|
|
||||||
|
should generate something like this:
|
||||||
|
|
||||||
|
<button type="button" onclick="commandMachine(this, false, 'vt100','Keyboard','script','...')">Try It!</button>
|
||||||
|
|
||||||
|
{% endcomment %}
|
||||||
|
{% if page.machineScripts[include.command] != nil %}{% assign machine_command = "script" %}{% capture command_value %}{{ page.machineScripts[include.command] | replace:'"','"' | strip }}{% endcapture %}{% else %}{% capture machine_command %}{{ include.command }}{% endcapture %}{% capture command_value %}{{ include.value | replace:'"','"' }}{% endcapture %}{% endif %}{% if include.type == "clickOnce" %}{% assign control_type = "button" %}{% assign control_single = "true" %}{% elsif include.type == "button" %}{% assign control_type = "button" %}{% assign control_single = "false" %}{% else %}{% assign control_type = "unknown" %}{% assign control_single = "false" %}{% endif %}{% if control_type == "button" %}<button type="button" onclick="commandMachine(this,{{ control_single }},'{{ include.machine }}','{{ include.component }}','{{ machine_command }}','{{ command_value }}')">{{ include.label }}</button>{% else %}<!-- Unrecognized machine control type: {{ include.type }} -->{% endif %}
|
||||||
178
_includes/machine-engines.html
Normal file
178
_includes/machine-engines.html
Normal file
|
|
@ -0,0 +1,178 @@
|
||||||
|
{% comment %}
|
||||||
|
|
||||||
|
As discussed in /modules/markout/lib/markout.js, our Node web server recognizes the following machine properties
|
||||||
|
in the Front Matter of our Markdown documents, for compatibility with the Jekyll web server:
|
||||||
|
|
||||||
|
'id' (eg: ibm5150)
|
||||||
|
'name' (eg: "IBM PC (Model 5150) with Monochrome Display")
|
||||||
|
'type' (eg: c1p, pcx86, pc8080, pdp10, pdp11)
|
||||||
|
'debugger' (default: false)
|
||||||
|
'config' (default: machine.xml)
|
||||||
|
'template' (default: machine.xsl)
|
||||||
|
'debug' (default: false; true enables asserts and is much slower)
|
||||||
|
'uncompiled' (default: false; true is useful for debugging but slower)
|
||||||
|
'parms' (stringified object that collects additional machine properties listed below)
|
||||||
|
|
||||||
|
Note that if you want BACKTRACK support enabled in a machine, both 'debugger' and 'uncompiled' must be true.
|
||||||
|
Also note that while multiple machines ARE supported on a single page, there are some limitations; for example,
|
||||||
|
loading two or more machines of the same 'type' but with different 'debug', 'uncompiled', or 'debugger' settings
|
||||||
|
may not work as desired.
|
||||||
|
|
||||||
|
The following optional machine properties will be added to the 'parms' property:
|
||||||
|
|
||||||
|
'autoMount' (eg: {"A":{"name":"OS/2 FOOTBALL (v7.68.17)","path":"/disks/pc/os2/misc/football/FOOTBALL-76817.json"}})
|
||||||
|
'autoPower' (eg: true)
|
||||||
|
'autoScript' (eg, type Keyboard "$date\r$time\r")
|
||||||
|
'autoStart' (eg: true)
|
||||||
|
'autoType' (eg: $date\r$time\r)
|
||||||
|
'drives' (eg: '[{name:"68Mb Hard Disk",type:4,path:"http://archive.pcjs.org/disks/pc/fixed/68mb/win95.json"}]')
|
||||||
|
'resume' (eg: 1)
|
||||||
|
'state' (eg: state.json)
|
||||||
|
'commands' (debugger commands, if any)
|
||||||
|
'messages' (eg: fault)
|
||||||
|
'connection' (eg: serialPort->vt100a.serialPort)
|
||||||
|
|
||||||
|
{% endcomment %}
|
||||||
|
{% for machine in page.machines %}
|
||||||
|
{% capture machine_type %}{{ machine.type | remove:"-dbg" }}{% endcapture %}
|
||||||
|
{% if machine_type == "c1p" %}
|
||||||
|
{% assign machine_app = "c1pjs" %}
|
||||||
|
{% elsif machine_type == "pdp10" or machine_type == "pdp11" %}
|
||||||
|
{% assign machine_app = "pdpjs" %}
|
||||||
|
{% else %}
|
||||||
|
{% capture machine_app %}{{ machine_type }}{% endcapture %}
|
||||||
|
{% endif %}
|
||||||
|
{% unless machine.config %}
|
||||||
|
{% assign machine_config = "machine.xml" %}
|
||||||
|
{% else %}
|
||||||
|
{% assign machine_config = machine.config %}
|
||||||
|
{% endunless %}
|
||||||
|
{% if machine.debugger or machine_config contains "debugger" %}
|
||||||
|
{% capture machine_file %}{{ machine_type }}-dbg{% endcapture %}
|
||||||
|
{% assign machine_debugger = true %}
|
||||||
|
{% else %}
|
||||||
|
{% capture machine_file %}{{ machine.type }}{% endcapture %}
|
||||||
|
{% if machine.type != machine_type %}
|
||||||
|
{% assign machine_debugger = true %}
|
||||||
|
{% else %}
|
||||||
|
{% assign machine_debugger = false %}
|
||||||
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
|
{% capture machine_embed %}embed{{ machine_type | upcase | replace:"X86","x86" }}{% endcapture %}
|
||||||
|
{% if machine.autoMount == "" %}
|
||||||
|
{% assign machine_autoMount = "{}" %}
|
||||||
|
{% else %}
|
||||||
|
{% capture machine_autoMount %}{{ machine.autoMount|jsonify }}{% endcapture %}
|
||||||
|
{% endif %}
|
||||||
|
{% if machine.autoPower != nil %}
|
||||||
|
{% capture machine_autoPower %},autoPower:{{ machine.autoPower }}{% endcapture %}
|
||||||
|
{% else %}
|
||||||
|
{% assign machine_autoPower = "" %}
|
||||||
|
{% endif %}
|
||||||
|
{% if machine.autoScript != nil %}
|
||||||
|
{% capture machine_autoScript %},autoScript:"{{ page.machineScripts[machine.autoScript] | strip_newlines | replace:'"':"\\\\"" | replace:"\r":"\\\\r" | replace:"\n":"\\\\n" | replace:"\t":"\\\\t" | replace:"\x":"\\\\x" }}"{% endcapture %}
|
||||||
|
{% else %}
|
||||||
|
{% assign machine_autoScript = "" %}
|
||||||
|
{% endif %}
|
||||||
|
{% if machine.autoStart != nil %}
|
||||||
|
{% capture machine_autoStart %},autoStart:{{ machine.autoStart }}{% endcapture %}
|
||||||
|
{% else %}
|
||||||
|
{% assign machine_autoStart = "" %}
|
||||||
|
{% endif %}
|
||||||
|
{% if machine.autoType != nil %}
|
||||||
|
{% capture machine_autoType %},autoType:"{{ machine.autoType | replace:"\r":"\\\\r" | replace:"\n":"\\\\n" | replace:"\t":"\\\\t" | replace:"\x":"\\\\x" }}"{% endcapture %}
|
||||||
|
{% else %}
|
||||||
|
{% assign machine_autoType = "" %}
|
||||||
|
{% endif %}
|
||||||
|
{% if machine.drives != nil %}
|
||||||
|
{% if machine.drives == "" %}
|
||||||
|
{% assign machine_drives = ",drives:[]" %}
|
||||||
|
{% else %}
|
||||||
|
{% capture machine_drives %},drives:{{ machine.drives }}{% endcapture %}
|
||||||
|
{% endif %}
|
||||||
|
{% else %}
|
||||||
|
{% assign machine_drives = "" %}
|
||||||
|
{% endif %}
|
||||||
|
{% unless machine.template %}
|
||||||
|
{% assign machine_template = "" %}
|
||||||
|
{% else %}
|
||||||
|
{% assign machine_template = machine.template %}
|
||||||
|
{% endunless %}
|
||||||
|
{% capture machine_parms %}{{ site.left_brace }}autoMount:{{ machine_autoMount }}{{ machine_autoPower }}{{ machine_autoScript }}{{ machine_autoStart }}{{ machine_autoType }}{{ machine_drives }},resume:"{{ machine.resume }}",state:"{{ machine.state }}",commands:"{{ machine.commands }}",messages:"{{ machine.messages }}",connection:"{{ machine.connection }}"{{ site.right_brace }}{% endcapture %}
|
||||||
|
{% if site.pcjs.compiled == true and machine.uncompiled != true %}
|
||||||
|
{% capture page_script %}
|
||||||
|
<script type="text/javascript" src="{{ site.baseurl }}/versions/{{ machine_app }}/{{ site.pcjs.version }}/{{ machine_file }}.js"></script>{% endcapture %}
|
||||||
|
{% unless page_scripts contains page_script %}
|
||||||
|
{{ page_script }}
|
||||||
|
{% endunless %}
|
||||||
|
{% capture page_scripts %}{{ page_scripts }}{{ page_script }}{% endcapture %}
|
||||||
|
{% if machine_template == "" %}
|
||||||
|
{% capture machine_template %}{{ site.baseurl }}/versions/{{ machine_app }}/{{ site.pcjs.version }}/components.xsl{% endcapture %}
|
||||||
|
{% endif %}
|
||||||
|
{% else %}
|
||||||
|
{% capture machine_file_uncompiled %}{{ machine_file | remove:"-dbg" | append:"-uncompiled" }}{% endcapture %}
|
||||||
|
{% capture page_script %}
|
||||||
|
<script type="text/javascript" src="{{ site.baseurl }}/versions/{{ machine_app }}/{{ site.pcjs.version }}/{{ machine_file_uncompiled }}.js"></script>{% endcapture %}
|
||||||
|
{% unless page_scripts contains page_script %}
|
||||||
|
{{ page_script }}
|
||||||
|
{% endunless %}
|
||||||
|
{% capture page_scripts %}{{ page_scripts }}{{ page_script }}{% endcapture %}
|
||||||
|
{% if machine_template == "" %}
|
||||||
|
{% capture machine_template %}{{ site.baseurl }}/versions/{{ machine_app }}/{{ site.pcjs.version }}/components.xsl{% endcapture %}
|
||||||
|
{% endif %}
|
||||||
|
{% comment %}
|
||||||
|
|
||||||
|
The following approach worked well before we converted most of the code to ES6 classes. Unfortunately, ES6 classes
|
||||||
|
don't coexist well with the conditional Node require() statements inside the individual scripts. Since we were already
|
||||||
|
stripping all the Node-related code from the scripts to build monolithic scripts that we could feed into the Closure
|
||||||
|
Compiler, we have simply moved those monolithic scripts from the /tmp folder to the /versions folder, with "-uncompiled"
|
||||||
|
suffixes. And since they are now checked in alongside the compiled files, there's the added benefit that we can always
|
||||||
|
reference them from source maps.
|
||||||
|
|
||||||
|
So, the following template code is no longer of any use, but we'll leave it here for historical reference. Note that
|
||||||
|
our Node web server still serves up individual scripts, because it has the ability to strip all Node references from the
|
||||||
|
scripts before delivering them to the web browser. But that's not really feasible in the Jekyll environment.
|
||||||
|
|
||||||
|
{% if machine_type == "c1p" %}{% assign array_scripts = site.pcjs.c1p_scripts %}{% endif %}
|
||||||
|
{% if machine_type == "pcx86" %}{% assign array_scripts = site.pcjs.pcx86_scripts %}{% endif %}
|
||||||
|
{% if machine_type == "pc8080" %}{% assign array_scripts = site.pcjs.pc8080_scripts %}{% endif %}
|
||||||
|
{% if machine_type == "pdp10" %}{% assign array_scripts = site.pcjs.pdp10_scripts %}{% endif %}
|
||||||
|
{% if machine_type == "pdp11" %}{% assign array_scripts = site.pcjs.pdp11_scripts %}{% endif %}
|
||||||
|
{% for script in array_scripts %}
|
||||||
|
{% if script != "/modules/shared/lib/nodebug.js" or machine.debug != true and site.pcjs.debug != true %}
|
||||||
|
{% capture page_script %}<script type="text/javascript" src="{{ site.baseurl }}{{ script }}"></script>{% endcapture %}
|
||||||
|
{% unless page_scripts contains page_script %}
|
||||||
|
{{ page_script }}
|
||||||
|
{% if script contains "shared/lib/defines.js" %}
|
||||||
|
{% if site.pcjs.private %}
|
||||||
|
{{ page_script | replace:"defines.js","private.js" }}
|
||||||
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
|
{% if script contains "js/lib/defines.js" %}
|
||||||
|
{% if machine_debugger != true %}
|
||||||
|
{{ page_script | replace:"defines.js","nodebugger.js" }}
|
||||||
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
|
{% endunless %}
|
||||||
|
{% capture page_scripts %}{{ page_scripts }}{{ page_script }}{% endcapture %}
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
{% if machine_template == "" %}
|
||||||
|
{% if machine_app != "c1pjs" %}
|
||||||
|
{% capture machine_template %}{{ site.baseurl }}/modules/shared/templates/components.xsl{% endcapture %}
|
||||||
|
{% else %}
|
||||||
|
{% capture machine_template %}{{ site.baseurl }}/modules/{{ machine_app }}/templates/components.xsl{% endcapture %}
|
||||||
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
|
{% endcomment %}
|
||||||
|
{% endif %}
|
||||||
|
<script type="text/javascript">{{ machine_embed }}('{{ machine.id }}','{{ machine_config }}','{{ machine_template }}','{{ machine_parms }}');</script>
|
||||||
|
{% if machine.sticky == "top" %}
|
||||||
|
<script type="text/javascript" src="{{ site.baseurl }}/modules/shared/lib/sticky.js"></script>
|
||||||
|
<script type="text/javascript">addStickyMachine('{{ machine.id }}');</script>
|
||||||
|
{% endif %}
|
||||||
|
{% if page.build %}
|
||||||
|
<script type="text/javascript" src="{{ site.baseurl }}/modules/build/lib/build.js"></script>
|
||||||
|
<script type="text/javascript">buildPC("{{ page.build }}");</script>
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
23
_includes/machine-styles.html
Normal file
23
_includes/machine-styles.html
Normal file
|
|
@ -0,0 +1,23 @@
|
||||||
|
{% for machine in page.machines %}
|
||||||
|
{% capture machine_type %}{{ machine.type | remove:"-dbg" }}{% endcapture %}
|
||||||
|
{% if machine_type == "c1p" %}
|
||||||
|
{% assign machine_app = "c1pjs" %}
|
||||||
|
{% elsif machine_type == "pdp10" or machine_type == "pdp11" %}
|
||||||
|
{% assign machine_app = "pdpjs" %}
|
||||||
|
{% else %}
|
||||||
|
{% capture machine_app %}{{ machine_type }}{% endcapture %}
|
||||||
|
{% endif %}
|
||||||
|
{% unless site.pcjs.compiled == true and machine.uncompiled != true %}
|
||||||
|
{% if machine_type == "c1p" %}
|
||||||
|
{% capture machine_style %}{{ site.baseurl }}/modules/c1pjs/templates/components.css{% endcapture %}
|
||||||
|
{% else %}
|
||||||
|
{% capture machine_style %}{{ site.baseurl }}/modules/shared/templates/components.css{% endcapture %}
|
||||||
|
{% endif %}
|
||||||
|
{% else %}
|
||||||
|
{% capture machine_style %}{{ site.baseurl }}/versions/{{ machine_app }}/{{ site.pcjs.version }}/components.css{% endcapture %}
|
||||||
|
{% endunless %}
|
||||||
|
{% unless machine_styles contains machine_style %}
|
||||||
|
<link rel="stylesheet" type="text/css" href="{{ machine_style }}">
|
||||||
|
{% endunless %}
|
||||||
|
{% capture machine_styles %}{{ machine_styles }}{{ machine_style }}{% endcapture %}
|
||||||
|
{% endfor %}
|
||||||
17
_includes/machine.html
Normal file
17
_includes/machine.html
Normal file
|
|
@ -0,0 +1,17 @@
|
||||||
|
<div class="machine" id="{{ include.id }}">
|
||||||
|
{% assign machine_name = "PCjs Machine" %}
|
||||||
|
{% for machine in page.machines %}
|
||||||
|
{% if include.id == machine.id %}
|
||||||
|
{% if machine.name %}
|
||||||
|
{% assign machine_name = machine.name %}
|
||||||
|
{% break %}
|
||||||
|
{% endif %}
|
||||||
|
{% if machine.type %}
|
||||||
|
{% capture machine_name %}{{ machine.type | upcase | replace:"X86","x86" }} Machine{% endcapture %}
|
||||||
|
{% break %}
|
||||||
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
[{{ machine_name }}]
|
||||||
|
</div>
|
||||||
|
<p id="{{ include.id }}.footer"></p>
|
||||||
8
_includes/page-scripts.html
Normal file
8
_includes/page-scripts.html
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
{% comment %}
|
||||||
|
|
||||||
|
Used by pages like the one in /api/v1/dump/ to simulate a client-side API.
|
||||||
|
|
||||||
|
{% endcomment %}
|
||||||
|
{% for script in page.scripts %}
|
||||||
|
<script type="text/javascript" src="{{ site.baseurl }}{{ script }}"></script>
|
||||||
|
{% endfor %}
|
||||||
42
_includes/random-publication.html
Normal file
42
_includes/random-publication.html
Normal file
|
|
@ -0,0 +1,42 @@
|
||||||
|
{% assign random_id = "random" %}
|
||||||
|
<div id="{{ random_id }}"></div>
|
||||||
|
<script id="randomize" type="text/javascript">
|
||||||
|
(function() {
|
||||||
|
var p = document.getElementById('{{ random_id }}');
|
||||||
|
if (p) {
|
||||||
|
var mags = ['BYTE-1975-11:98',
|
||||||
|
'MSJ-1986-10:34', 'MSJ-1987-05:90',
|
||||||
|
'PCTJ-1983-07:210', 'PCTJ-1983-09:224', 'PCTJ-1983-11:238',
|
||||||
|
'PCTJ-1984-01:214', 'PCTJ-1984-02:206', 'PCTJ-1984-03:216', 'PCTJ-1984-04:232',
|
||||||
|
'PCTJ-1984-05:234', 'PCTJ-1984-06:230', 'PCTJ-1984-07:210', 'PCTJ-1984-08:214',
|
||||||
|
'PCTJ-1984-09:215', 'PCTJ-1984-10:226', 'PCTJ-1984-11:228', 'PCTJ-1984-12:240',
|
||||||
|
'PCTJ-1985-01:214', 'PCTJ-1985-02:194', 'PCTJ-1985-03:202', 'PCTJ-1985-04:204',
|
||||||
|
'PCTJ-1985-05:244', 'PCTJ-1985-06:216', 'PCTJ-1985-07:184', 'PCTJ-1985-08:200',
|
||||||
|
'PCTJ-1985-09:196', 'PCTJ-1985-10:204', 'PCTJ-1985-11:220', 'PCTJ-1985-12:218',
|
||||||
|
'PCTJ-1986-01:212', 'PCTJ-1986-02:214', 'PCTJ-1986-03:220', 'PCTJ-1986-04:220',
|
||||||
|
'PCTJ-1986-05:222', 'PCTJ-1986-06:222', 'PCTJ-1986-07:198', 'PCTJ-1986-08:212',
|
||||||
|
'PCTJ-1986-09:230', 'PCTJ-1986-10:228', 'PCTJ-1986-11:228', 'PCTJ-1986-12:232',
|
||||||
|
'PCTJ-1987-01:216', 'PCTJ-1987-02:222', 'PCTJ-1987-03:214', 'PCTJ-1987-04:218',
|
||||||
|
'PCTJ-1987-05:240', 'PCTJ-1987-06:236', 'PCTJ-1987-07:230', 'PCTJ-1987-08:250',
|
||||||
|
'PCTJ-1987-09:252', 'PCTJ-1987-10:231', 'PCTJ-1987-11:263', 'PCTJ-1987-12:242',
|
||||||
|
'PCTJ-1988-01:200', 'PCTJ-1988-02:200', 'PCTJ-1988-03:182',
|
||||||
|
'PCTJ-1988-05:196', 'PCTJ-1988-06:180', 'PCTJ-1988-07:164', 'PCTJ-1988-08:166',
|
||||||
|
'PCTJ-1988-09:174', 'PCTJ-1988-10:170', 'PCTJ-1988-11:176', 'PCTJ-1988-12:168',
|
||||||
|
'PCTJ-1989-04:148'
|
||||||
|
];
|
||||||
|
var p2 = document.createElement('p');
|
||||||
|
p2.appendChild(document.createTextNode('{{ include.text }}'));
|
||||||
|
var div1 = document.createElement('div'); div1.setAttribute('class', 'common-image-gallery');
|
||||||
|
var div2 = document.createElement('div'); div2.setAttribute('class', 'common-image-frame'); div1.appendChild(div2);
|
||||||
|
var div3 = document.createElement('div'); div3.setAttribute('class', 'common-image-link'); div2.appendChild(div3);
|
||||||
|
var mag = mags[Math.floor(Math.random() * mags.length)];
|
||||||
|
var parts = mag.split(':'), issue = parts[0], page = Math.floor(Math.random() * parseInt(parts[1])) + 1;
|
||||||
|
parts = mag.split('-');
|
||||||
|
var name = parts[0].toLowerCase();
|
||||||
|
var a = document.createElement('a'); a.setAttribute('href', '/pubs/pc/magazines/' + name + '/' + issue + '/#page-' + page); div3.appendChild(a);
|
||||||
|
var img = document.createElement('img'); img.setAttribute('src', 'http://archive.pcjs.org/pubs/pc/magazines/' + name + '/' + issue + '/thumbs/' + issue + ' ' + page + '.jpeg'); img.setAttribute('width', '200'); a.appendChild(img);
|
||||||
|
p.parentNode.insertBefore(p2, p.nextSibling);
|
||||||
|
p2.parentNode.insertBefore(div1, p2.nextSibling)
|
||||||
|
}
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
16
_includes/screenshot.html
Normal file
16
_includes/screenshot.html
Normal file
|
|
@ -0,0 +1,16 @@
|
||||||
|
{% assign include_width = "" %}
|
||||||
|
{% assign include_height = "" %}
|
||||||
|
{% if include.width %}
|
||||||
|
{% capture include_width %} width="{{ include.width }}"{% endcapture %}
|
||||||
|
{% endif %}
|
||||||
|
{% if include.height %}
|
||||||
|
{% capture include_height %} height="{{ include.height }}"{% endcapture %}
|
||||||
|
{% endif %}
|
||||||
|
<div class="screenshot-frame">
|
||||||
|
<div class="screenshot-image">
|
||||||
|
<a href="{{ site.baseurl }}{{ include.link }}">
|
||||||
|
<img src="{{ site.baseurl }}{{ include.src }}"{{ include_width }}{{ include_height }} alt="{{ include.title }}"/>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<span class="screenshot-label">{{ include.title }}</span>
|
||||||
|
</div>
|
||||||
26
_layouts/blog.html
Normal file
26
_layouts/blog.html
Normal file
|
|
@ -0,0 +1,26 @@
|
||||||
|
---
|
||||||
|
layout: default
|
||||||
|
---
|
||||||
|
|
||||||
|
<div class="home">
|
||||||
|
|
||||||
|
{{ content }}
|
||||||
|
|
||||||
|
<h1 class="page-heading">Posts</h1>
|
||||||
|
|
||||||
|
<ul class="post-list">
|
||||||
|
{% for post in site.posts %}
|
||||||
|
<li>
|
||||||
|
<span class="post-meta">{{ post.date | date: "%b %-d, %Y" }}</span>
|
||||||
|
|
||||||
|
<h2>
|
||||||
|
<a class="post-link" href="{{ post.url | prepend: site.baseurl }}">{{ post.title }}</a>
|
||||||
|
</h2>
|
||||||
|
{{ post.excerpt | replace:'</p>','...</p>'}}
|
||||||
|
</li>
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<p class="rss-subscribe">subscribe <a href="{{ "/feed.xml" | prepend: site.baseurl }}">via RSS</a></p>
|
||||||
|
|
||||||
|
</div>
|
||||||
26
_layouts/default.html
Normal file
26
_layouts/default.html
Normal file
|
|
@ -0,0 +1,26 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en-US">
|
||||||
|
|
||||||
|
{% include head.html %}
|
||||||
|
|
||||||
|
<body>
|
||||||
|
|
||||||
|
{% include header.html %}
|
||||||
|
|
||||||
|
<div class="page-content">
|
||||||
|
<div class="wrapper">
|
||||||
|
{{ content }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{% include footer.html %}
|
||||||
|
|
||||||
|
{% include machine-engines.html %}
|
||||||
|
|
||||||
|
{% include page-scripts.html %}
|
||||||
|
|
||||||
|
{% include google-analytics.html %}
|
||||||
|
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
||||||
16
_layouts/page.html
Normal file
16
_layouts/page.html
Normal file
|
|
@ -0,0 +1,16 @@
|
||||||
|
---
|
||||||
|
layout: default
|
||||||
|
---
|
||||||
|
<div class="post">
|
||||||
|
|
||||||
|
{% if page.display_title %}
|
||||||
|
<header class="post-header">
|
||||||
|
<h1 class="post-title">{{ page.title }}</h1>
|
||||||
|
</header>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
<article class="post-content">
|
||||||
|
{{ content }}
|
||||||
|
</article>
|
||||||
|
|
||||||
|
</div>
|
||||||
15
_layouts/post.html
Normal file
15
_layouts/post.html
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
---
|
||||||
|
layout: default
|
||||||
|
---
|
||||||
|
<div class="post">
|
||||||
|
|
||||||
|
<header class="post-header">
|
||||||
|
<h1 class="post-title">{{ page.title }}</h1>
|
||||||
|
<p class="post-meta">{{ page.date | date: "%b %-d, %Y" }}{% if page.author %} • {{ page.author }}{% endif %}{% if page.meta %} • {{ page.meta }}{% endif %}</p>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<article class="post-content">
|
||||||
|
{{ content }}
|
||||||
|
</article>
|
||||||
|
|
||||||
|
</div>
|
||||||
78
_layouts/viewer.html
Normal file
78
_layouts/viewer.html
Normal file
|
|
@ -0,0 +1,78 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
|
||||||
|
{% include head.html %}
|
||||||
|
|
||||||
|
<body>
|
||||||
|
|
||||||
|
{% include header.html %}
|
||||||
|
|
||||||
|
<div class="page-content">
|
||||||
|
<div class="wrapper">
|
||||||
|
{{ content }}
|
||||||
|
<div style="width:680px;margin-left:auto;margin-right:auto;">
|
||||||
|
<div style="float:left;margin-top:350px;margin-right:8px;">
|
||||||
|
<button id="prevPDF" style="font-size:large;"><</button>
|
||||||
|
</div>
|
||||||
|
<div style="float:left;">
|
||||||
|
<iframe id="framePDF" src="" width="550" height="800"></iframe>
|
||||||
|
</div>
|
||||||
|
<div style="float:left;margin-top:350px;margin-left:8px;">
|
||||||
|
<button id="nextPDF" style="font-size:large;">></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{% include footer.html %}
|
||||||
|
|
||||||
|
<script id="initFrame" type="text/javascript">
|
||||||
|
(function() {
|
||||||
|
var aParms = {};
|
||||||
|
var sParms = window.location.search.substr(1);
|
||||||
|
var match, pl = /\+/g, search = /([^&=]+)=?([^&]*)/g;
|
||||||
|
var decode = function(s) { return decodeURIComponent(s.replace(pl, " ")); };
|
||||||
|
while ((match = search.exec(sParms))) aParms[decode(match[1])] = decode(match[2]);
|
||||||
|
var pdf = aParms['url'];
|
||||||
|
var curPage = parseInt(aParms['page'], 10) || 1;
|
||||||
|
var totalPages = parseInt(aParms['total'], 10) || 999;
|
||||||
|
var frame = document.getElementById('framePDF');
|
||||||
|
if (pdf && frame) {
|
||||||
|
pdf = pdf.replace('/archive/', '/');
|
||||||
|
var i = pdf.indexOf("/pages/");
|
||||||
|
if (i > 0) {
|
||||||
|
var sReturnLink = pdf.substr(0, i+1);
|
||||||
|
var sReturnPath = sReturnLink.slice(0, -1).toUpperCase().replace(/\//g, '\\');
|
||||||
|
var e = document.getElementById('returnLink');
|
||||||
|
if (e) e.setAttribute('href', sReturnLink);
|
||||||
|
e = document.getElementById('returnPath');
|
||||||
|
if (e) e.textContent = sReturnPath;
|
||||||
|
}
|
||||||
|
i = pdf.indexOf('%20');
|
||||||
|
if (i < 0) i = pdf.indexOf(' ');
|
||||||
|
if (i > 0) pdf = pdf.substr(0, i);
|
||||||
|
var setPage = function(page) {
|
||||||
|
frame.setAttribute('src', 'https://s3-us-west-2.amazonaws.com/archive.pcjs.org' + pdf + ' ' + curPage + '.pdf');
|
||||||
|
};
|
||||||
|
setPage(curPage);
|
||||||
|
var buttonPrev = document.getElementById('prevPDF');
|
||||||
|
if (buttonPrev) {
|
||||||
|
buttonPrev.onclick = function() {
|
||||||
|
if (curPage > 1) setPage(--curPage);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
var buttonNext = document.getElementById('nextPDF');
|
||||||
|
if (buttonNext) {
|
||||||
|
buttonNext.onclick = function() {
|
||||||
|
if (curPage < totalPages) setPage(++curPage);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
|
|
||||||
|
{% include google-analytics.html %}
|
||||||
|
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
||||||
|
|
@ -47,7 +47,7 @@ want to send some serial data to a machine:
|
||||||
{% include machine-command.html type='button' label='Try It!' machine='test1170' component='SerialPort' command='receiveData' value='HELP\r' %}
|
{% include machine-command.html type='button' label='Try It!' machine='test1170' component='SerialPort' command='receiveData' value='HELP\r' %}
|
||||||
{% endraw %}
|
{% endraw %}
|
||||||
|
|
||||||
which should translate into a control that looks like:
|
which should translate into a control that looks like this:
|
||||||
|
|
||||||
<button type="button" onclick="commandMachine('test1170','SerialPort','receiveData','HELP\r')">Try It!</button>
|
<button type="button" onclick="commandMachine('test1170','SerialPort','receiveData','HELP\r')">Try It!</button>
|
||||||
|
|
||||||
|
|
|
||||||
185
_sass/_base.scss
Normal file
185
_sass/_base.scss
Normal file
|
|
@ -0,0 +1,185 @@
|
||||||
|
/**
|
||||||
|
* Reset some basic elements
|
||||||
|
*/
|
||||||
|
body, h1, h2, h3, h4, h5, h6,
|
||||||
|
p, blockquote, pre,
|
||||||
|
dl, dd, ol, ul, figure {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Basic styling
|
||||||
|
*/
|
||||||
|
body {
|
||||||
|
font-family: $base-font-family;
|
||||||
|
font-size: $base-font-size;
|
||||||
|
line-height: $base-line-height;
|
||||||
|
font-weight: 300;
|
||||||
|
color: $text-color;
|
||||||
|
background-color: $background-color;
|
||||||
|
-webkit-text-size-adjust: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set `margin-bottom` to maintain vertical rhythm
|
||||||
|
*/
|
||||||
|
h1, h2, h3, h4, h5, h6,
|
||||||
|
p, blockquote, pre,
|
||||||
|
ul, ol, dl, figure,
|
||||||
|
%vertical-rhythm {
|
||||||
|
margin-bottom: $spacing-unit / 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Images
|
||||||
|
*/
|
||||||
|
img {
|
||||||
|
max-width: 100%;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Figures
|
||||||
|
*/
|
||||||
|
figure > img {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
figcaption {
|
||||||
|
font-size: $small-font-size;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Lists
|
||||||
|
*/
|
||||||
|
ul, ol {
|
||||||
|
margin-left: $spacing-unit;
|
||||||
|
}
|
||||||
|
|
||||||
|
li {
|
||||||
|
> ul,
|
||||||
|
> ol {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Headings
|
||||||
|
*/
|
||||||
|
h1, h2, h3, h4, h5, h6 {
|
||||||
|
font-weight: 300;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Links
|
||||||
|
*/
|
||||||
|
a {
|
||||||
|
color: $brand-color;
|
||||||
|
text-decoration: none;
|
||||||
|
|
||||||
|
&:visited {
|
||||||
|
color: darken($brand-color, 15%);
|
||||||
|
}
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
color: $text-color;
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Blockquotes
|
||||||
|
*/
|
||||||
|
blockquote {
|
||||||
|
color: $grey-color;
|
||||||
|
border-left: 4px solid $grey-color-light;
|
||||||
|
padding-left: $spacing-unit / 2;
|
||||||
|
padding-right: $spacing-unit / 2;
|
||||||
|
padding-bottom: $spacing-unit / 2;
|
||||||
|
margin-bottom: 0;
|
||||||
|
text-align: justify;
|
||||||
|
/* font-size: 18px; */
|
||||||
|
/* letter-spacing: -1px; */
|
||||||
|
/* font-style: italic; */
|
||||||
|
|
||||||
|
> :last-child {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Code formatting
|
||||||
|
*/
|
||||||
|
pre,
|
||||||
|
code {
|
||||||
|
font-size: 15px;
|
||||||
|
border: 1px solid $grey-color-light;
|
||||||
|
border-radius: 3px;
|
||||||
|
background-color: #eef;
|
||||||
|
}
|
||||||
|
|
||||||
|
code {
|
||||||
|
padding: 1px 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre {
|
||||||
|
padding: 8px 12px;
|
||||||
|
overflow-x: scroll;
|
||||||
|
white-space: pre-wrap;
|
||||||
|
|
||||||
|
> code {
|
||||||
|
border: 0;
|
||||||
|
padding-right: 0;
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Wrapper
|
||||||
|
*/
|
||||||
|
.wrapper {
|
||||||
|
/* max-width: -webkit-calc(800px - (#{$spacing-unit} * 2)); */
|
||||||
|
/* max-width: calc(800px - (#{$spacing-unit} * 2)); */
|
||||||
|
margin-right: auto;
|
||||||
|
margin-left: auto;
|
||||||
|
padding-right: $spacing-unit;
|
||||||
|
padding-left: $spacing-unit;
|
||||||
|
@extend %clearfix;
|
||||||
|
|
||||||
|
@include media-query($on-laptop) {
|
||||||
|
/* max-width: -webkit-calc(800px - (#{$spacing-unit})); */
|
||||||
|
/* max-width: calc(800px - (#{$spacing-unit})); */
|
||||||
|
padding-right: $spacing-unit / 2;
|
||||||
|
padding-left: $spacing-unit / 2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Clearfix
|
||||||
|
*/
|
||||||
|
%clearfix {
|
||||||
|
|
||||||
|
&:after {
|
||||||
|
content: "";
|
||||||
|
display: table;
|
||||||
|
clear: both;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Icons
|
||||||
|
*/
|
||||||
|
.icon {
|
||||||
|
|
||||||
|
> svg {
|
||||||
|
display: inline-block;
|
||||||
|
width: 16px;
|
||||||
|
height: 16px;
|
||||||
|
vertical-align: middle;
|
||||||
|
|
||||||
|
path {
|
||||||
|
fill: $grey-color;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
270
_sass/_layout.scss
Normal file
270
_sass/_layout.scss
Normal file
|
|
@ -0,0 +1,270 @@
|
||||||
|
/**
|
||||||
|
* Site header
|
||||||
|
*/
|
||||||
|
.site-header {
|
||||||
|
border-top: 5px solid $grey-color-dark;
|
||||||
|
border-bottom: 1px solid $grey-color-light;
|
||||||
|
min-height: 56px;
|
||||||
|
|
||||||
|
// Positioning context for the mobile navigation icon
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.site-title {
|
||||||
|
font-size: 26px;
|
||||||
|
line-height: 56px;
|
||||||
|
letter-spacing: -1px;
|
||||||
|
margin-bottom: 0;
|
||||||
|
float: left;
|
||||||
|
|
||||||
|
&,
|
||||||
|
&:visited {
|
||||||
|
color: $grey-color-dark;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.site-nav {
|
||||||
|
float: right;
|
||||||
|
line-height: 56px;
|
||||||
|
|
||||||
|
.menu-icon {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.page-link {
|
||||||
|
color: $text-color;
|
||||||
|
line-height: $base-line-height;
|
||||||
|
|
||||||
|
// Gaps between nav items, but not on the first one
|
||||||
|
&:not(:first-child) {
|
||||||
|
margin-left: 20px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@include media-query($on-palm) {
|
||||||
|
position: absolute;
|
||||||
|
top: 9px;
|
||||||
|
right: 30px;
|
||||||
|
background-color: $background-color;
|
||||||
|
border: 1px solid $grey-color-light;
|
||||||
|
border-radius: 5px;
|
||||||
|
text-align: right;
|
||||||
|
|
||||||
|
.menu-icon {
|
||||||
|
display: block;
|
||||||
|
float: right;
|
||||||
|
width: 36px;
|
||||||
|
height: 26px;
|
||||||
|
line-height: 0;
|
||||||
|
padding-top: 10px;
|
||||||
|
text-align: center;
|
||||||
|
|
||||||
|
> svg {
|
||||||
|
width: 18px;
|
||||||
|
height: 15px;
|
||||||
|
|
||||||
|
path {
|
||||||
|
fill: $grey-color-dark;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.trigger {
|
||||||
|
clear: both;
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:hover .trigger {
|
||||||
|
display: block;
|
||||||
|
padding-bottom: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.page-link {
|
||||||
|
display: block;
|
||||||
|
padding: 5px 10px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Site footer
|
||||||
|
*/
|
||||||
|
.site-footer {
|
||||||
|
border-top: 1px solid $grey-color-light;
|
||||||
|
padding: $spacing-unit 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer-heading {
|
||||||
|
font-size: 18px;
|
||||||
|
margin-bottom: $spacing-unit / 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
.contact-list,
|
||||||
|
.social-media-list {
|
||||||
|
list-style: none;
|
||||||
|
margin-left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer-col-wrapper {
|
||||||
|
font-size: 15px;
|
||||||
|
color: $grey-color;
|
||||||
|
margin-left: -$spacing-unit / 2;
|
||||||
|
@extend %clearfix;
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer-col {
|
||||||
|
float: left;
|
||||||
|
margin-bottom: $spacing-unit / 2;
|
||||||
|
padding-left: $spacing-unit / 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer-col-1 {
|
||||||
|
width: -webkit-calc(40% - (#{$spacing-unit} / 2));
|
||||||
|
width: calc(40% - (#{$spacing-unit} / 2));
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer-col-2 {
|
||||||
|
width: -webkit-calc(20% - (#{$spacing-unit} / 2));
|
||||||
|
width: calc(20% - (#{$spacing-unit} / 2));
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer-col-3 {
|
||||||
|
width: -webkit-calc(100% - (#{$spacing-unit} / 2));
|
||||||
|
width: calc(100% - (#{$spacing-unit} / 2));
|
||||||
|
}
|
||||||
|
|
||||||
|
@include media-query($on-laptop) {
|
||||||
|
.footer-col-1,
|
||||||
|
.footer-col-2 {
|
||||||
|
width: -webkit-calc(50% - (#{$spacing-unit} / 2));
|
||||||
|
width: calc(50% - (#{$spacing-unit} / 2));
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer-col-3 {
|
||||||
|
width: -webkit-calc(100% - (#{$spacing-unit} / 2));
|
||||||
|
width: calc(100% - (#{$spacing-unit} / 2));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@include media-query($on-palm) {
|
||||||
|
.footer-col {
|
||||||
|
float: none;
|
||||||
|
width: -webkit-calc(100% - (#{$spacing-unit} / 2));
|
||||||
|
width: calc(100% - (#{$spacing-unit} / 2));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Page content
|
||||||
|
*/
|
||||||
|
.page-content {
|
||||||
|
padding: $spacing-unit 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.page-heading {
|
||||||
|
font-size: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.post-list {
|
||||||
|
margin-left: 0;
|
||||||
|
list-style: none;
|
||||||
|
|
||||||
|
> li {
|
||||||
|
margin-bottom: $spacing-unit;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.post-meta {
|
||||||
|
font-size: $small-font-size;
|
||||||
|
color: $grey-color;
|
||||||
|
}
|
||||||
|
|
||||||
|
.post-link {
|
||||||
|
display: block;
|
||||||
|
font-size: 24px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Posts
|
||||||
|
*/
|
||||||
|
.post-header {
|
||||||
|
margin-bottom: $spacing-unit;
|
||||||
|
}
|
||||||
|
|
||||||
|
.post-title {
|
||||||
|
font-size: 42px;
|
||||||
|
letter-spacing: -1px;
|
||||||
|
line-height: 1;
|
||||||
|
|
||||||
|
@include media-query($on-laptop) {
|
||||||
|
font-size: 36px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.post-content {
|
||||||
|
margin-bottom: $spacing-unit;
|
||||||
|
|
||||||
|
h2 {
|
||||||
|
font-size: 32px;
|
||||||
|
|
||||||
|
@include media-query($on-laptop) {
|
||||||
|
font-size: 28px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
h3 {
|
||||||
|
font-size: 26px;
|
||||||
|
|
||||||
|
@include media-query($on-laptop) {
|
||||||
|
font-size: 22px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
h4 {
|
||||||
|
font-size: 20px;
|
||||||
|
|
||||||
|
@include media-query($on-laptop) {
|
||||||
|
font-size: 18px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* PCjs-specific styles
|
||||||
|
*/
|
||||||
|
.machine {
|
||||||
|
margin-bottom: 16px;
|
||||||
|
}
|
||||||
|
.machine-floating {
|
||||||
|
position: relative;
|
||||||
|
z-index: auto;
|
||||||
|
background-color: transparent;
|
||||||
|
padding-right: 0;
|
||||||
|
}
|
||||||
|
.machine-sticky {
|
||||||
|
position: fixed !important;
|
||||||
|
z-index: 1 !important;
|
||||||
|
background-color: #ffffff !important;
|
||||||
|
padding-right: $spacing-unit !important;
|
||||||
|
top: 0 !important;
|
||||||
|
@include media-query($on-laptop) {
|
||||||
|
padding-right: $spacing-unit / 2 !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.screenshot-frame {
|
||||||
|
display: inline-block;
|
||||||
|
margin: 8px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
.screenshot-image {
|
||||||
|
padding: 5px;
|
||||||
|
border: 1px solid black;
|
||||||
|
border-radius: 5px;
|
||||||
|
background-color: #FAEBD7;
|
||||||
|
}
|
||||||
|
.screenshot-label {
|
||||||
|
font-size: x-small;
|
||||||
|
}
|
||||||
|
.pcjs-description, .pcjs-status {
|
||||||
|
line-height: 2.8em !important;
|
||||||
|
}
|
||||||
68
_sass/_syntax-highlighting.scss
Normal file
68
_sass/_syntax-highlighting.scss
Normal file
|
|
@ -0,0 +1,68 @@
|
||||||
|
/**
|
||||||
|
* Syntax highlighting styles
|
||||||
|
*/
|
||||||
|
.highlight {
|
||||||
|
// background: #fff;
|
||||||
|
@extend %vertical-rhythm;
|
||||||
|
|
||||||
|
.c { color: #998; font-style: italic } // Comment
|
||||||
|
.err { color: #a61717; background-color: #e3d2d2 } // Error
|
||||||
|
.k { font-weight: bold } // Keyword
|
||||||
|
.o { font-weight: bold } // Operator
|
||||||
|
.cm { color: #998; font-style: italic } // Comment.Multiline
|
||||||
|
.cp { color: #999; font-weight: bold } // Comment.Preproc
|
||||||
|
.c1 { color: #998; font-style: italic } // Comment.Single
|
||||||
|
.cs { color: #999; font-weight: bold; font-style: italic } // Comment.Special
|
||||||
|
.gd { color: #000; background-color: #fdd } // Generic.Deleted
|
||||||
|
.gd .x { color: #000; background-color: #faa } // Generic.Deleted.Specific
|
||||||
|
.ge { font-style: italic } // Generic.Emph
|
||||||
|
.gr { color: #a00 } // Generic.Error
|
||||||
|
.gh { color: #999 } // Generic.Heading
|
||||||
|
.gi { color: #000; background-color: #dfd } // Generic.Inserted
|
||||||
|
.gi .x { color: #000; background-color: #afa } // Generic.Inserted.Specific
|
||||||
|
.go { color: #888 } // Generic.Output
|
||||||
|
.gp { color: #555 } // Generic.Prompt
|
||||||
|
.gs { font-weight: bold } // Generic.Strong
|
||||||
|
.gu { color: #aaa } // Generic.Subheading
|
||||||
|
.gt { color: #a00 } // Generic.Traceback
|
||||||
|
.kc { font-weight: bold } // Keyword.Constant
|
||||||
|
.kd { font-weight: bold } // Keyword.Declaration
|
||||||
|
.kp { font-weight: bold } // Keyword.Pseudo
|
||||||
|
.kr { font-weight: bold } // Keyword.Reserved
|
||||||
|
.kt { color: #458; font-weight: bold } // Keyword.Type
|
||||||
|
.m { color: #099 } // Literal.Number
|
||||||
|
.s { color: #d14 } // Literal.String
|
||||||
|
.na { color: #008080 } // Name.Attribute
|
||||||
|
.nb { color: #0086B3 } // Name.Builtin
|
||||||
|
.nc { color: #458; font-weight: bold } // Name.Class
|
||||||
|
.no { color: #008080 } // Name.Constant
|
||||||
|
.ni { color: #800080 } // Name.Entity
|
||||||
|
.ne { color: #900; font-weight: bold } // Name.Exception
|
||||||
|
.nf { color: #900; font-weight: bold } // Name.Function
|
||||||
|
.nn { color: #555 } // Name.Namespace
|
||||||
|
.nt { color: #000080 } // Name.Tag
|
||||||
|
.nv { color: #008080 } // Name.Variable
|
||||||
|
.ow { font-weight: bold } // Operator.Word
|
||||||
|
.w { color: #bbb } // Text.Whitespace
|
||||||
|
.mf { color: #099 } // Literal.Number.Float
|
||||||
|
.mh { color: #099 } // Literal.Number.Hex
|
||||||
|
.mi { color: #099 } // Literal.Number.Integer
|
||||||
|
.mo { color: #099 } // Literal.Number.Oct
|
||||||
|
.sb { color: #d14 } // Literal.String.Backtick
|
||||||
|
.sc { color: #d14 } // Literal.String.Char
|
||||||
|
.sd { color: #d14 } // Literal.String.Doc
|
||||||
|
.s2 { color: #d14 } // Literal.String.Double
|
||||||
|
.se { color: #d14 } // Literal.String.Escape
|
||||||
|
.sh { color: #d14 } // Literal.String.Heredoc
|
||||||
|
.si { color: #d14 } // Literal.String.Interpol
|
||||||
|
.sx { color: #d14 } // Literal.String.Other
|
||||||
|
.sr { color: #009926 } // Literal.String.Regex
|
||||||
|
.s1 { color: #d14 } // Literal.String.Single
|
||||||
|
.ss { color: #990073 } // Literal.String.Symbol
|
||||||
|
.bp { color: #999 } // Name.Builtin.Pseudo
|
||||||
|
.vc { color: #008080 } // Name.Variable.Class
|
||||||
|
.vg { color: #008080 } // Name.Variable.Global
|
||||||
|
.vi { color: #008080 } // Name.Variable.Instance
|
||||||
|
.il { color: #099 } // Literal.Number.Integer.Long
|
||||||
|
.lineno { color: #ccc; display:inline-block; padding: 0 5px; border-right:1px solid #ccc; }
|
||||||
|
}
|
||||||
1
archive/.gitignore
vendored
Normal file
1
archive/.gitignore
vendored
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
!*.html
|
||||||
72
archive/index.html
Normal file
72
archive/index.html
Normal file
|
|
@ -0,0 +1,72 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta name="viewport" content="width=device-width initial-scale=1" />
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
|
<title>PCjs Machines</title>
|
||||||
|
<meta name="description" content="Welcome to PCjs, home of the original IBM PC in a web browser. PCjs provides a variety of computer emulators written in JavaScript, including PCx86 for x86-based machines (up through the 80386), C1Pjs for the 6502-based Ohio Scientific Challenger 1P, PC8080 for 8080-based machines such as Space Invaders and the DEC VT100 Terminal, and PDPjs, a PDP-11 emulator for the PDP-11/20, PDP-11/45, and PDP-11/70. PCjs also provides an archive of selected historical PC software, publications, and reference materials.">
|
||||||
|
<link href="https://fonts.googleapis.com/css?family=Open+Sans" rel="stylesheet" type="text/css">
|
||||||
|
<link rel="stylesheet" href="http://www.pcjs.org/css/main.css">
|
||||||
|
<link rel="apple-touch-icon" sizes="57x57" href="http://www.pcjs.org/versions/icons/current/pc-icon-57.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="72x72" href="http://www.pcjs.org/versions/icons/current/pc-icon-72.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="76x76" href="http://www.pcjs.org/versions/icons/current/pc-icon-76.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="114x114" href="http://www.pcjs.org/versions/icons/current/pc-icon-114.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="120x120" href="http://www.pcjs.org/versions/icons/current/pc-icon-120.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="144x144" href="http://www.pcjs.org/versions/icons/current/pc-icon-144.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="152x152" href="http://www.pcjs.org/versions/icons/current/pc-icon-152.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="180x180" href="http://www.pcjs.org/versions/icons/current/pc-icon-180.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="192x192" href="http://www.pcjs.org/versions/icons/current/pc-icon-192.png">
|
||||||
|
<link rel="apple-touch-icon" href="http://www.pcjs.org/versions/icons/current/apple-touch-icon.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="192x192" href="http://www.pcjs.org/versions/icons/current/pc-icon-192.png">
|
||||||
|
<link rel="shortcut icon" type="image/x-icon" href="http://www.pcjs.org/versions/icons/current/favicon.ico">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<header class="site-header">
|
||||||
|
<div class="wrapper">
|
||||||
|
<a class="site-title" href="http://www.pcjs.org/">PCjs Machines</a>
|
||||||
|
<nav class="site-nav">
|
||||||
|
<a href="#" class="menu-icon">
|
||||||
|
<svg viewBox="0 0 18 15">
|
||||||
|
<path fill="#424242" d="M18,1.484c0,0.82-0.665,1.484-1.484,1.484H1.484C0.665,2.969,0,2.304,0,1.484l0,0C0,0.665,0.665,0,1.484,0 h15.031C17.335,0,18,0.665,18,1.484L18,1.484z"/>
|
||||||
|
<path fill="#424242" d="M18,7.516C18,8.335,17.335,9,16.516,9H1.484C0.665,9,0,8.335,0,7.516l0,0c0-0.82,0.665-1.484,1.484-1.484 h15.031C17.335,6.031,18,6.696,18,7.516L18,7.516z"/>
|
||||||
|
<path fill="#424242" d="M18,13.516C18,14.335,17.335,15,16.516,15H1.484C0.665,15,0,14.335,0,13.516l0,0 c0-0.82,0.665-1.484,1.484-1.484h15.031C17.335,12.031,18,12.696,18,13.516L18,13.516z"/>
|
||||||
|
</svg>
|
||||||
|
</a>
|
||||||
|
<div class="trigger">
|
||||||
|
<a class="page-link" href="http://www.pcjs.org/blog/">Blog</a>
|
||||||
|
<a class="page-link" href="http://www.pcjs.org/devices/">Devices</a>
|
||||||
|
<a class="page-link" href="http://www.pcjs.org/docs/">Docs</a>
|
||||||
|
<a class="page-link" href="http://www.pcjs.org/apps/">Software</a>
|
||||||
|
<a class="page-link" href="http://www.pcjs.org/docs/about/">About</a>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
</div>
|
||||||
|
<div class="wrapper">
|
||||||
|
<h4>Directory of C:\<a href="http://archive.pcjs.org/">ARCHIVE</a>.<a href="http://www.pcjs.org/">PCJS.ORG</a></h4>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
<div class="page-content">
|
||||||
|
<div class="wrapper">
|
||||||
|
<div class="post">
|
||||||
|
<article class="post-content">
|
||||||
|
<p>Welcome to the PCjs Archive Server.</p>
|
||||||
|
<p>There is nothing here to browse. You should return to <a href="http://www.pcjs.org/">pcjs.org</a></p>
|
||||||
|
</article>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<footer class="site-footer">
|
||||||
|
<div class="wrapper">
|
||||||
|
<div class="footer-col-wrapper">
|
||||||
|
<div class="footer-col footer-col-3">
|
||||||
|
<p class="text">
|
||||||
|
<span style="float:right"><a href="http://www.pcjs.org">pcjs.org</a> © 2012-2017 by <a href="https://twitter.com/jeffpar">@jeffpar</a></span><br/>
|
||||||
|
<span style="float:right"><a href="http://github.com/jeffpar/pcjs">PCjs Project</a> released under <a href="http://gnu.org/licenses/gpl.html">GPLv3</a></span>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
47
css/main.scss
Executable file
47
css/main.scss
Executable file
|
|
@ -0,0 +1,47 @@
|
||||||
|
---
|
||||||
|
# Only the main Sass file needs front matter (the dashes are enough)
|
||||||
|
---
|
||||||
|
@charset "utf-8";
|
||||||
|
|
||||||
|
// Our variables
|
||||||
|
$base-font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||||
|
$base-font-size: 16px;
|
||||||
|
$small-font-size: $base-font-size * 0.875;
|
||||||
|
$base-line-height: 1.5;
|
||||||
|
|
||||||
|
$spacing-unit: 30px;
|
||||||
|
|
||||||
|
$text-color: #111;
|
||||||
|
$background-color: #fdfdfd;
|
||||||
|
$brand-color: #2a7ae2;
|
||||||
|
|
||||||
|
$grey-color: #828282;
|
||||||
|
$grey-color-light: lighten($grey-color, 40%);
|
||||||
|
$grey-color-dark: darken($grey-color, 25%);
|
||||||
|
|
||||||
|
$on-palm: 600px;
|
||||||
|
$on-laptop: 800px;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Using media queries with like this:
|
||||||
|
// @include media-query($palm) {
|
||||||
|
// .wrapper {
|
||||||
|
// padding-right: $spacing-unit / 2;
|
||||||
|
// padding-left: $spacing-unit / 2;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
@mixin media-query($device) {
|
||||||
|
@media screen and (max-width: $device) {
|
||||||
|
@content;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Import partials from `sass_dir` (defaults to `_sass`)
|
||||||
|
@import
|
||||||
|
"base",
|
||||||
|
"layout",
|
||||||
|
"syntax-highlighting"
|
||||||
|
;
|
||||||
|
|
@ -59,7 +59,7 @@ Models 319 and 339 were introduced in April 1986:
|
||||||
- Enhanced 101-key keyboard
|
- Enhanced 101-key keyboard
|
||||||
|
|
||||||
IBM PC AT 5170 Configuration Options
|
IBM PC AT 5170 Configuration Options
|
||||||
---
|
------------------------------------
|
||||||
|
|
||||||
The IBM PC AT 5170 doesn't have DIP switches like previous models, but it still has a few switches and jumpers.
|
The IBM PC AT 5170 doesn't have DIP switches like previous models, but it still has a few switches and jumpers.
|
||||||
|
|
||||||
|
|
@ -103,7 +103,7 @@ it cannot be changed by the user.
|
||||||
---
|
---
|
||||||
|
|
||||||
IBM PC AT 5170 (Models 68 and 99) Announcement
|
IBM PC AT 5170 (Models 68 and 99) Announcement
|
||||||
---
|
----------------------------------------------
|
||||||
|
|
||||||
The following details come from a [copy](http://www.minuszerodegrees.net/misc/IBM%20PC%20AT%205170%20announcement%20letter.txt)
|
The following details come from a [copy](http://www.minuszerodegrees.net/misc/IBM%20PC%20AT%205170%20announcement%20letter.txt)
|
||||||
of IBM's PC AT Announcement Letter, dated August 14, 1984.
|
of IBM's PC AT Announcement Letter, dated August 14, 1984.
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ permalink: /devices/pcx86/rom/
|
||||||
---
|
---
|
||||||
|
|
||||||
IBM PC ROMs
|
IBM PC ROMs
|
||||||
---
|
-----------
|
||||||
|
|
||||||
ROMs are added to machines by including one *[ROM](/docs/pcx86/rom/)* component in the machine XML configuration file
|
ROMs are added to machines by including one *[ROM](/docs/pcx86/rom/)* component in the machine XML configuration file
|
||||||
for each ROM in the machine; eg:
|
for each ROM in the machine; eg:
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,6 @@ permalink: /devices/pcx86/video/cdp/
|
||||||
---
|
---
|
||||||
|
|
||||||
Columbia Data Products Video Adapters
|
Columbia Data Products Video Adapters
|
||||||
---
|
-------------------------------------
|
||||||
|
|
||||||
* [Columbia Data Products Color Graphics Adapter (CGA)](cga/)
|
* [Columbia Data Products Color Graphics Adapter (CGA)](cga/)
|
||||||
|
|
|
||||||
30
feed.xml
Normal file
30
feed.xml
Normal file
|
|
@ -0,0 +1,30 @@
|
||||||
|
---
|
||||||
|
layout: null
|
||||||
|
---
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
|
||||||
|
<channel>
|
||||||
|
<title>{{ site.title | xml_escape }}</title>
|
||||||
|
<description>{{ site.description | xml_escape }}</description>
|
||||||
|
<link>{{ site.url }}{{ site.baseurl }}/</link>
|
||||||
|
<atom:link href="{{ "/feed.xml" | prepend: site.baseurl | prepend: site.url }}" rel="self" type="application/rss+xml" />
|
||||||
|
<pubDate>{{ site.time | date_to_rfc822 }}</pubDate>
|
||||||
|
<lastBuildDate>{{ site.time | date_to_rfc822 }}</lastBuildDate>
|
||||||
|
<generator>Jekyll v{{ jekyll.version }}</generator>
|
||||||
|
{% for post in site.posts limit:10 %}
|
||||||
|
<item>
|
||||||
|
<title>{{ post.title | xml_escape }}</title>
|
||||||
|
<description>{{ post.content | xml_escape }}</description>
|
||||||
|
<pubDate>{{ post.date | date_to_rfc822 }}</pubDate>
|
||||||
|
<link>{{ post.url | prepend: site.baseurl | prepend: site.url }}</link>
|
||||||
|
<guid isPermaLink="true">{{ post.url | prepend: site.baseurl | prepend: site.url }}</guid>
|
||||||
|
{% for tag in post.tags %}
|
||||||
|
<category>{{ tag | xml_escape }}</category>
|
||||||
|
{% endfor %}
|
||||||
|
{% for cat in post.categories %}
|
||||||
|
<category>{{ cat | xml_escape }}</category>
|
||||||
|
{% endfor %}
|
||||||
|
</item>
|
||||||
|
{% endfor %}
|
||||||
|
</channel>
|
||||||
|
</rss>
|
||||||
100
index.md
Normal file
100
index.md
Normal file
|
|
@ -0,0 +1,100 @@
|
||||||
|
---
|
||||||
|
layout: page
|
||||||
|
permalink: /
|
||||||
|
machines:
|
||||||
|
- id: ibm5150
|
||||||
|
type: pcx86
|
||||||
|
resume: 1
|
||||||
|
name: "IBM PC (Model 5150) with Monochrome Display"
|
||||||
|
config: /devices/pcx86/machine/5150/mda/64kb/machine.xml
|
||||||
|
- id: demoC1P
|
||||||
|
type: c1p
|
||||||
|
config: /devices/c1p/machine/8kb/large/machine.xml
|
||||||
|
---
|
||||||
|
|
||||||
|
Welcome to PCjs, home of [PCx86](/docs/pcx86/), the original IBM PC simulation that runs in your web browser. It is
|
||||||
|
one of several JavaScript Machines in the [PCjs Project](https://github.com/jeffpar/pcjs), an open-source project that
|
||||||
|
includes:
|
||||||
|
|
||||||
|
* [PCx86](/docs/pcx86/), an x86-based emulator of the [IBM PC and PC-compatibles](/devices/pcx86/machine/)
|
||||||
|
* [PC8080](/modules/pc8080/), an 8080 machine emulator (see [Space Invaders](/devices/pc8080/machine/invaders/) and the [VT100 Terminal](/devices/pc8080/machine/vt100/))
|
||||||
|
* [C1Pjs](/docs/c1pjs/), an emulation of the 6502-based [Ohio Scientific Challenger 1P](/devices/c1p/)
|
||||||
|
* [PDPjs](/docs/pdpjs/), a set of machine emulation modules supporting the DEC [PDP-10](/devices/pdp10/machine/) and [PDP-11](/devices/pdp11/machine/)
|
||||||
|
|
||||||
|
All PCjs machine simulations are written entirely in [JavaScript](/modules/). No Flash, Java or other plugins are
|
||||||
|
required. Supported browsers include modern versions of Chrome, Safari, Firefox, Internet Explorer (v9.0 and up), Edge,
|
||||||
|
and assorted mobile browsers.
|
||||||
|
|
||||||
|
{% include machine.html id="ibm5150" %}
|
||||||
|
|
||||||
|
The [JavaScript Machine](/devices/pcx86/machine/5150/mda/64kb/) above uses [PCx86](/docs/pcx86/) configured with an Intel
|
||||||
|
8088 running at 4.77Mhz, with 64Kb of RAM and an IBM Monochrome Display Adapter. For more control, there are also
|
||||||
|
[Control Panel](/devices/pcx86/machine/5150/mda/64kb/debugger/) and [Soft Keyboard](/devices/pcx86/machine/5150/mda/64kb/softkbd/)
|
||||||
|
configurations, featuring the built-in PCx86 Debugger. For even greater control, build your own PC. The
|
||||||
|
[PCx86 Documentation](/docs/pcx86/) will help you get started.
|
||||||
|
|
||||||
|
PCx86 has steadily evolved to support more classic x86-based machines, including the IBM PC XT, the 80286-based IBM PC AT,
|
||||||
|
and the 80386-based COMPAQ DeskPro 386. PCx86 fully supports the original machine ROMs, video cards, etc, and all
|
||||||
|
machines run at their original speeds.
|
||||||
|
|
||||||
|
The goals of the [PCjs Project](/docs/about/) are to create fast, full-featured simulations of classic
|
||||||
|
computer hardware, help people understand how these early machines worked, make it easy to experiment with different
|
||||||
|
machine configurations, and provide a platform for running and analyzing old computer software.
|
||||||
|
|
||||||
|
Demos
|
||||||
|
-----
|
||||||
|
Some pre-configured machines are shown below, ready to run BASIC, DOS, Windows, OS/2, and other assorted software.
|
||||||
|
|
||||||
|
{% include screenshot.html src="/apps/pcx86/1981/visicalc/thumbnail.jpg" width="200" height="120" title="IBM PC running VisiCalc" link="/apps/pcx86/1981/visicalc/" %}
|
||||||
|
{% include screenshot.html src="/apps/pcx86/1981/donkey/thumbnail.jpg" width="200" height="120" title="IBM PC running DONKEY.BAS" link="/apps/pcx86/1981/donkey/" %}
|
||||||
|
{% include screenshot.html src="/disks/pcx86/windows/1.00/thumbnail.jpg" width="200" height="120" title="IBM PC XT w/EGA, Windows 1.0" link="/disks/pcx86/windows/1.00/" %}
|
||||||
|
{% include screenshot.html src="/disks/pcx86/windows/1.01/cga/thumbnail.jpg" width="200" height="120" title="IBM PC XT w/CGA, Windows 1.01" link="/disks/pcx86/windows/1.01/cga/" %}
|
||||||
|
{% include screenshot.html src="/disks/pcx86/windows/1.01/thumbnail.jpg" width="200" height="120" title="IBM PC XT w/EGA, Windows 1.01" link="/disks/pcx86/windows/1.01/" %}
|
||||||
|
{% include screenshot.html src="/disks/pcx86/os2/ibm/1.0/thumbnail.jpg" width="200" height="120" title="IBM PC AT w/EGA, OS/2 1.0" link="/disks/pcx86/os2/ibm/1.0/" %}
|
||||||
|
{% include screenshot.html src="/disks/pcx86/windows/2.0x/thumbnail.jpg" width="200" height="120" title="COMPAQ DeskPro 386, Windows/386 2.01" link="/disks/pcx86/windows/2.0x/" %}
|
||||||
|
{% include screenshot.html src="/disks/pcx86/windows/3.00/thumbnail.jpg" width="200" height="120" title="IBM PC AT w/EGA, Windows 3.00" link="/disks/pcx86/windows/3.00/" %}
|
||||||
|
{% include screenshot.html src="/disks/pcx86/windows/3.10/thumbnail.jpg" width="200" height="120" title="IBM PC AT w/VGA, Windows 3.10" link="/disks/pcx86/windows/3.10/" %}
|
||||||
|
{% include screenshot.html src="/disks/pcx86/windows/win95/4.00.950/thumbnail.jpg" width="200" height="120" title="COMPAQ DeskPro 386, Windows 95" link="/disks/pcx86/windows/win95/4.00.950/" %}
|
||||||
|
{% include screenshot.html src="/disks/pcx86/cpm/1.1b/thumbnail.jpg" width="200" height="120" title="IBM PC w/MDA, CP/M-86" link="/disks/pcx86/cpm/1.1b/" %}
|
||||||
|
{% include screenshot.html src="/disks/pcx86/games/microsoft/adventure/thumbnail.jpg" width="200" height="120" title="Microsoft Adventure (1981)" link="/disks/pcx86/games/microsoft/adventure/" %}
|
||||||
|
{% include screenshot.html src="/apps/pcx86/1982/esuite/thumbnail.jpg" width="200" height="120" title="Executive Suite (1982)" link="/apps/pcx86/1982/esuite/" %}
|
||||||
|
{% include screenshot.html src="/disks/pcx86/games/infocom/zork1/thumbnail.jpg" width="200" height="120" title="Zork I (1982)" link="/disks/pcx86/games/infocom/zork1/" %}
|
||||||
|
{% include screenshot.html src="/apps/pcx86/1983/adventmath/thumbnail.jpg" width="200" height="120" title="Adventures in Math (1983)" link="/apps/pcx86/1983/adventmath/" %}
|
||||||
|
{% include screenshot.html src="/apps/pcx86/1985/rogue/thumbnail.jpg" width="200" height="120" title="Rogue (1985)" link="/apps/pcx86/1985/rogue/" %}
|
||||||
|
|
||||||
|
There are many more [PCx86 Demos](/devices/pcx86/machine/#ready-to-run-app-demos), including an
|
||||||
|
[IBM PC with Dual Displays](/devices/pcx86/machine/5150/dual/64kb/) demonstrating early multi-monitor support,
|
||||||
|
and multiple IBM PC XT machines running side-by-side with [CGA Displays](/devices/pcx86/machine/5160/cga/256kb/array/)
|
||||||
|
and [EGA Displays](/devices/pcx86/machine/5160/ega/640kb/array/).
|
||||||
|
|
||||||
|
C1Pjs
|
||||||
|
-----
|
||||||
|
Below is the [OSI Challenger C1P](/docs/c1pjs/), another simulation in the PCjs Project.
|
||||||
|
It simulates Ohio Scientific's 6502-based microcomputer, released in 1978. More details about this simulation
|
||||||
|
and the original machine are available in the [C1Pjs Documentation](/docs/c1pjs/).
|
||||||
|
|
||||||
|
{% include machine.html id="demoC1P" %}
|
||||||
|
|
||||||
|
License
|
||||||
|
-------
|
||||||
|
The [PCjs Project](https://github.com/jeffpar/pcjs) is now an open-source project on [GitHub](http://github.com/).
|
||||||
|
All published portions are free for redistribution and/or modification under the terms of the
|
||||||
|
[GNU General Public License](/LICENSE) as published by the Free Software Foundation, either version 3 of the License,
|
||||||
|
or (at your option) any later version.
|
||||||
|
|
||||||
|
You are required to include the following copyright notice, with a link to [{{ site.pcjs.domain }}]({{ site.url }}/):
|
||||||
|
|
||||||
|
> [PCjs]({{ site.url }}/) © 2012-2017 by [Jeff Parsons](mailto:Jeff@pcjs.org) ([@jeffpar](http://twitter.com/jeffpar))
|
||||||
|
|
||||||
|
in every source code file of every copy or modified version of this work, and to display that notice on every web page
|
||||||
|
or computer that runs any version of this software.
|
||||||
|
|
||||||
|
See [LICENSE](/LICENSE) for details.
|
||||||
|
|
||||||
|
More Information
|
||||||
|
----------------
|
||||||
|
Learn more about the [PCjs Project](/docs/about/) and [PCx86](/docs/about/pcx86/). To
|
||||||
|
create your own PCx86 machines, see the [PCx86 Documentation](/docs/pcx86/) for details.
|
||||||
|
|
||||||
|
If you have questions or run into any problems, feel free to [tweet](http://twitter.com/jeffpar) or
|
||||||
|
[email](mailto:Jeff@pcjs.org).
|
||||||
|
|
@ -8,4 +8,5 @@ Challenger 1P Publications
|
||||||
--------------------------
|
--------------------------
|
||||||
|
|
||||||
* [Data Sheets](datasheets/)
|
* [Data Sheets](datasheets/)
|
||||||
|
* [Programming Guides/Samples](programming/)
|
||||||
* [Technical Reference Manuals](techref/)
|
* [Technical Reference Manuals](techref/)
|
||||||
|
|
|
||||||
2
robots.txt
Normal file
2
robots.txt
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
User-agent: *
|
||||||
|
Disallow: /web/
|
||||||
Loading…
Reference in a new issue