Merge branch 'master' into gh-pages

This commit is contained in:
Jeff Parsons 2016-04-30 11:43:55 -07:00
commit 69973fc8b6
12 changed files with 73 additions and 116 deletions

View file

@ -385,43 +385,6 @@ module.exports = function(grunt) {
} }
} }
}, },
"pcxsl": {
files: [
{
cwd: "modules/shared/templates/",
src: ["common.css", "common.xsl", "document.css", "document.xsl", "machine.xsl", "manifest.xsl", "outline.xsl"],
dest: "versions/pcjs/<%= pkg.version %>/",
expand: true
}
],
options: {
process: function(content, srcPath) {
var s = content.replace(/(<xsl:variable name="APPVERSION">)[^<]*(<\/xsl:variable>)/g, "$1" + pkg.version + "$2");
s = s.replace(/"[^"]*\/?(common.css|common.xsl|components.css|components.xsl|document.css|document.xsl)"/g, '"/versions/pcjs/' + pkg.version + '/$1"');
s = s.replace(/[ \t]*\/\*[^\*][\s\S]*?\*\//g, "").replace(/[ \t]*<!--[^@]*?-->[ \t]*\n?/g, "");
return s;
}
}
},
"pc8080xsl": {
files: [
{
cwd: "modules/shared/templates/",
src: ["common.css", "common.xsl", "document.css", "document.xsl", "machine.xsl", "manifest.xsl", "outline.xsl"],
dest: "versions/pc8080/<%= pkg.version %>/",
expand: true
}
],
options: {
process: function(content, srcPath) {
var s = content.replace(/(<xsl:variable name="APPCLASS">)[^<]*(<\/xsl:variable>)/g, "$1pc8080$2");
s = s.replace(/(<xsl:variable name="APPVERSION">)[^<]*(<\/xsl:variable>)/g, "$1" + pkg.version + "$2");
s = s.replace(/"[^"]*\/?(common.css|common.xsl|components.css|components.xsl|document.css|document.xsl)"/g, '"/versions/pc8080/' + pkg.version + '/$1"');
s = s.replace(/[ \t]*\/\*[^\*][\s\S]*?\*\//g, "").replace(/[ \t]*<!--[^@]*?-->[ \t]*\n?/g, "");
return s;
}
}
},
"c1pjs": { "c1pjs": {
files: [ files: [
{ {
@ -443,7 +406,7 @@ module.exports = function(grunt) {
files: [ files: [
{ {
cwd: "modules/shared/templates/", cwd: "modules/shared/templates/",
src: ["components.*"], src: ["common.css", "common.xsl", "components.*", "document.css", "document.xsl", "machine.xsl", "manifest.xsl", "outline.xsl"],
dest: "versions/pcjs/<%= pkg.version %>/", dest: "versions/pcjs/<%= pkg.version %>/",
expand: true expand: true
} }
@ -451,6 +414,7 @@ module.exports = function(grunt) {
options: { options: {
process: function(content, srcPath) { process: function(content, srcPath) {
var s = content.replace(/(<xsl:variable name="APPVERSION">)[^<]*(<\/xsl:variable>)/g, "$1" + pkg.version + "$2"); var s = content.replace(/(<xsl:variable name="APPVERSION">)[^<]*(<\/xsl:variable>)/g, "$1" + pkg.version + "$2");
s = s.replace(/"[^"]*\/?(common.css|common.xsl|components.css|components.xsl|document.css|document.xsl)"/g, '"/versions/pcjs/' + pkg.version + '/$1"');
s = s.replace(/[ \t]*\/\*[^\*][\s\S]*?\*\//g, "").replace(/[ \t]*<!--[^@]*?-->[ \t]*\n?/g, ""); s = s.replace(/[ \t]*\/\*[^\*][\s\S]*?\*\//g, "").replace(/[ \t]*<!--[^@]*?-->[ \t]*\n?/g, "");
return s; return s;
} }
@ -460,7 +424,7 @@ module.exports = function(grunt) {
files: [ files: [
{ {
cwd: "modules/shared/templates/", cwd: "modules/shared/templates/",
src: ["components.*"], src: ["common.css", "common.xsl", "components.*", "document.css", "document.xsl", "machine.xsl", "manifest.xsl", "outline.xsl"],
dest: "versions/pc8080/<%= pkg.version %>/", dest: "versions/pc8080/<%= pkg.version %>/",
expand: true expand: true
} }
@ -468,7 +432,9 @@ module.exports = function(grunt) {
options: { options: {
process: function(content, srcPath) { process: function(content, srcPath) {
var s = content.replace(/(<xsl:variable name="APPCLASS">)[^<]*(<\/xsl:variable>)/g, "$1pc8080$2"); var s = content.replace(/(<xsl:variable name="APPCLASS">)[^<]*(<\/xsl:variable>)/g, "$1pc8080$2");
s = s.replace(/(<xsl:variable name="APPNAME">)[^<]*(<\/xsl:variable>)/g, "$1PC8080$2");
s = s.replace(/(<xsl:variable name="APPVERSION">)[^<]*(<\/xsl:variable>)/g, "$1" + pkg.version + "$2"); s = s.replace(/(<xsl:variable name="APPVERSION">)[^<]*(<\/xsl:variable>)/g, "$1" + pkg.version + "$2");
s = s.replace(/"[^"]*\/?(common.css|common.xsl|components.css|components.xsl|document.css|document.xsl)"/g, '"/versions/pc8080/' + pkg.version + '/$1"');
s = s.replace(/[ \t]*\/\*[^\*][\s\S]*?\*\//g, "").replace(/[ \t]*<!--[^@]*?-->[ \t]*\n?/g, ""); s = s.replace(/[ \t]*\/\*[^\*][\s\S]*?\*\//g, "").replace(/[ \t]*<!--[^@]*?-->[ \t]*\n?/g, "");
return s; return s;
} }

View file

@ -1,11 +1,11 @@
--- ---
layout: post layout: post
title: The Intel 8080 CPU title: Introducing the Intel 8080 CPU
date: 2016-04-30 14:00:00 date: 2016-04-30 14:00:00
permalink: /blog/2016/04/30/ permalink: /blog/2016/04/30/
--- ---
We'd like to introduce [PC8080](/modules/pc8080/), a new 8080-based machine emulator recently added to the Or rather, introducing [PC8080](/modules/pc8080/), a new 8080-based machine emulator recently added to the
PCjs Project. PCjs Project.
Our first [8080 Test Machine](/devices/pc8080/machine/test/) loads a copy of the Our first [8080 Test Machine](/devices/pc8080/machine/test/) loads a copy of the
@ -15,16 +15,16 @@ calls so that you can see its progress in the Control Panel window. It's a "hea
(no keyboard or display), so that's all you get. (no keyboard or display), so that's all you get.
The good news: PC8080 passes all the 8080 Exerciser tests. And it doesn't do it by using all sorts of weird The good news: PC8080 passes all the 8080 Exerciser tests. And it doesn't do it by using all sorts of weird
"flags tables", which most other 8080 emulations seem to fall back on. "flags tables" that most other 8080 emulators seem to fall back on.
Like all the other CPU emulations in the PCjs Project, PC8080 never "calculates" the flags unless/until they are Like all the other CPU emulations in the PCjs Project, PC8080 never "calculates" the flags unless/until they are
actually required, which considerably speeds up arithmetic operations. actually required, which considerably speeds up arithmetic operations.
Of particular note are the 8080's subtract, Of particular note are the 8080's subtract, compare, and decrement operations, which actually perform addition,
compare, and decrement operations, which actually perform addition, not subtraction, by using two's complement not subtraction, by using two's complement arithmetic in "stages": the first stage (inverting the source operand)
arithmetic in "stages": the first stage (inverting the source operand) occurs *before* the addition, while the second occurs *before* the addition, and the second stage (incrementing the inverted operand) occurs *after* the addition.
stage (incrementing the inverted operand) occurs *after* the addition. And it appears to be the result of the *first* And it appears to be the result of the *first* stage, not the second, that determines the state of the Auxiliary
stage, not the second, that determines the state of the Auxiliary Carry flag (AF). Carry flag (AF).
The behavior of the Auxiliary Carry flag (AF) and the associated DAA instruction are probably the most significant The behavior of the Auxiliary Carry flag (AF) and the associated DAA instruction are probably the most significant
(and least understood) *arithmetic* differences between the 8080 and all later x86-based CPUs. Well, there's also (and least understood) *arithmetic* differences between the 8080 and all later x86-based CPUs. Well, there's also

View file

@ -21,16 +21,16 @@ calls so that you can see its progress in the Control Panel window. This is a "
(no keyboard or display), so that's all you get. (no keyboard or display), so that's all you get.
The good news: PC8080 passes all the 8080 Exerciser tests. And it doesn't do it by using all sorts of weird The good news: PC8080 passes all the 8080 Exerciser tests. And it doesn't do it by using all sorts of weird
"flags tables", which most other 8080 emulations seem to fall back on. "flags tables" that most other 8080 emulators seem to fall back on.
Like all the other CPU emulations in the PCjs Project, PC8080 never "calculates" the flags unless/until they are Like all the other CPU emulations in the PCjs Project, PC8080 never "calculates" the flags unless/until they are
actually required, which considerably speeds up all arithmetic operations. actually required, which considerably speeds up all arithmetic operations.
Of particular note are the 8080's subtract, Of particular note are the 8080's subtract, compare, and decrement operations, which actually perform addition,
compare, and decrement operations, which actually perform addition, not subtraction, by using two's complement not subtraction, by using two's complement arithmetic in "stages": the first stage (inverting the source operand)
arithmetic in "stages": the first stage (inverting the source operand) occurs *before* the addition, and the second occurs *before* the addition, and the second stage (incrementing the inverted operand) occurs *after* the addition.
stage (incrementing the inverted operand) occurs *after* the addition. And it appears to be the result of the *first* And it appears to be the result of the *first* stage, not the second, that determines the state of the Auxiliary
stage, not the second, that determines the state of the Auxiliary Carry flag (AF). Carry flag (AF).
At 2Mhz, the 8080 Exerciser tests take quite a while, but you can click the speed button while the machine is running At 2Mhz, the 8080 Exerciser tests take quite a while, but you can click the speed button while the machine is running
to increase the simulated speed; it will revert to 2Mhz when you exceed the maximum speed that your system supports. to increase the simulated speed; it will revert to 2Mhz when you exceed the maximum speed that your system supports.

View file

@ -294,21 +294,21 @@
<disk path="/disks/pc/unix/ibm/pcix/1.0/17SPECIA.json">PC/IX 1.0 (SPECIA)</disk> <disk path="/disks/pc/unix/ibm/pcix/1.0/17SPECIA.json">PC/IX 1.0 (SPECIA)</disk>
<disk path="/disks/pc/unix/ibm/pcix/1.0/18GAMES.json">PC/IX 1.0 (GAMES)</disk> <disk path="/disks/pc/unix/ibm/pcix/1.0/18GAMES.json">PC/IX 1.0 (GAMES)</disk>
<disk path="/disks/pc/unix/ibm/pcix/1.0/19ACCNT.json">PC/IX 1.0 (ACCNT)</disk> <disk path="/disks/pc/unix/ibm/pcix/1.0/19ACCNT.json">PC/IX 1.0 (ACCNT)</disk>
<disk path="/disks/pc/unix/microport/system-v/2.3/SYSTEMV23-DISK01.json">Boot Disk</disk> <disk path="/disks/pc/unix/microport/system-v/2.3/SYSTEMV23-DISK01.json">UNIX System V Boot Disk</disk>
<disk path="/disks/pc/unix/microport/system-v/2.3/SYSTEMV23-DISK02.json">Runtime Disk 1</disk> <disk path="/disks/pc/unix/microport/system-v/2.3/SYSTEMV23-DISK02.json">UNIX System V Runtime (Disk 1)</disk>
<disk path="/disks/pc/unix/microport/system-v/2.3/SYSTEMV23-DISK03.json">Runtime Disk 2</disk> <disk path="/disks/pc/unix/microport/system-v/2.3/SYSTEMV23-DISK03.json">UNIX System V Runtime (Disk 2)</disk>
<disk path="/disks/pc/unix/microport/system-v/2.3/SYSTEMV23-DISK04.json">Runtime Disk 3</disk> <disk path="/disks/pc/unix/microport/system-v/2.3/SYSTEMV23-DISK04.json">UNIX System V Runtime (Disk 3)</disk>
<disk path="/disks/pc/unix/microport/system-v/2.3/SYSTEMV23-DISK05.json">Runtime Utility Disk</disk> <disk path="/disks/pc/unix/microport/system-v/2.3/SYSTEMV23-DISK05.json">UNIX System V Runtime Utility Disk</disk>
<disk path="/disks/pc/unix/microport/system-v/2.3/SYSTEMV23-DISK06.json">Runtime System Vision</disk> <disk path="/disks/pc/unix/microport/system-v/2.3/SYSTEMV23-DISK06.json">UNIX System V Runtime System Vision</disk>
<disk path="/disks/pc/unix/microport/system-v/2.3/SYSTEMV23-DISK07.json">Runtime Link Kit Disk</disk> <disk path="/disks/pc/unix/microport/system-v/2.3/SYSTEMV23-DISK07.json">UNIX System V Runtime Link Kit</disk>
<disk path="/disks/pc/unix/microport/system-v/2.3/SYSTEMV23-DISK08.json">Software Dev Disk 1</disk> <disk path="/disks/pc/unix/microport/system-v/2.3/SYSTEMV23-DISK08.json">UNIX System V Software Dev (Disk 1)</disk>
<disk path="/disks/pc/unix/microport/system-v/2.3/SYSTEMV23-DISK09.json">Software Dev Disk 2</disk> <disk path="/disks/pc/unix/microport/system-v/2.3/SYSTEMV23-DISK09.json">UNIX System V Software Dev (Disk 2)</disk>
<disk path="/disks/pc/unix/microport/system-v/2.3/SYSTEMV23-DISK10.json">Software Dev Disk 3</disk> <disk path="/disks/pc/unix/microport/system-v/2.3/SYSTEMV23-DISK10.json">UNIX System V Software Dev (Disk 3)</disk>
<disk path="/disks/pc/unix/microport/system-v/2.3/SYSTEMV23-DISK11.json">Software Dev Disk 4</disk> <disk path="/disks/pc/unix/microport/system-v/2.3/SYSTEMV23-DISK11.json">UNIX System V Software Dev (Disk 4)</disk>
<disk path="/disks/pc/unix/microport/system-v/2.3/SYSTEMV23-DISK12.json">Software Dev Upgrade</disk> <disk path="/disks/pc/unix/microport/system-v/2.3/SYSTEMV23-DISK12.json">UNIX System V Software Dev Upgrade</disk>
<disk path="/disks/pc/unix/microport/system-v/2.3/SYSTEMV23-DISK13.json">Text Prep Disk 1</disk> <disk path="/disks/pc/unix/microport/system-v/2.3/SYSTEMV23-DISK13.json">UNIX System V Text Prep (Disk 1)</disk>
<disk path="/disks/pc/unix/microport/system-v/2.3/SYSTEMV23-DISK14.json">Text Prep Disk 2</disk> <disk path="/disks/pc/unix/microport/system-v/2.3/SYSTEMV23-DISK14.json">UNIX System V Text Prep (Disk 2)</disk>
<disk path="/disks/pc/unix/microport/system-v/2.3/SYSTEMV23-DISK15.json">Text Prep Disk 3</disk> <disk path="/disks/pc/unix/microport/system-v/2.3/SYSTEMV23-DISK15.json">UNIX System V Text Prep (Disk 3)</disk>
<disk path="/disks/pc/unix/sco/xenix/8086/2.1.3/N1.json">SCO Xenix 8086 (N1)</disk> <disk path="/disks/pc/unix/sco/xenix/8086/2.1.3/N1.json">SCO Xenix 8086 (N1)</disk>
<disk path="/disks/pc/unix/sco/xenix/8086/2.1.3/N2.json">SCO Xenix 8086 (N2)</disk> <disk path="/disks/pc/unix/sco/xenix/8086/2.1.3/N2.json">SCO Xenix 8086 (N2)</disk>
<disk path="/disks/pc/unix/sco/xenix/8086/2.1.3/N3.json">SCO Xenix 8086 (N3)</disk> <disk path="/disks/pc/unix/sco/xenix/8086/2.1.3/N3.json">SCO Xenix 8086 (N3)</disk>
@ -508,11 +508,11 @@
<disk path="/apps/pc/1985/rogue/disk.json">Demo: Rogue (1985)</disk> <disk path="/apps/pc/1985/rogue/disk.json">Demo: Rogue (1985)</disk>
<disk path="/apps/pc/1987/thinktank/disk.json">Demo: ThinkTank (1987)</disk> <disk path="/apps/pc/1987/thinktank/disk.json">Demo: ThinkTank (1987)</disk>
<disk path="/apps/pc/1992/moria/disk.json">Demo: Moria 5.5 (1992)</disk> <disk path="/apps/pc/1992/moria/disk.json">Demo: Moria 5.5 (1992)</disk>
<disk path="/pubs/pc/programming/DOS_Internals/DOS-INTERN.json">DOS Internals</disk> <disk path="/pubs/pc/programming/DOS_Internals/DOS-INTERN.json">Book: DOS Internals</disk>
<disk path="/pubs/pc/programming/The_Undocumented_PC/UNDOC.json">The Undocumented PC</disk> <disk path="/pubs/pc/programming/The_Undocumented_PC/UNDOC.json">Book: The Undocumented PC</disk>
<disk path="/pubs/pc/programming/Undocumented_DOS/UNDOC-DOS-DISK1.json">Undocumented DOS (Disk 1)</disk> <disk path="/pubs/pc/programming/Undocumented_DOS/UNDOC-DOS-DISK1.json">Book: Undocumented DOS (Disk 1)</disk>
<disk path="/pubs/pc/programming/Undocumented_DOS/UNDOC-DOS-DISK2.json">Undocumented DOS (Disk 2)</disk> <disk path="/pubs/pc/programming/Undocumented_DOS/UNDOC-DOS-DISK2.json">Book: Undocumented DOS (Disk 2)</disk>
<disk path="/pubs/pc/programming/Undocumented_Windows/UNDOC-WIN.json">Undocumented Windows</disk> <disk path="/pubs/pc/programming/Undocumented_Windows/UNDOC-WIN.json">Book: Undocumented Windows</disk>
<disk path="/tests/pc/vga/VGABIN.json">VGA Tests (Black Book)</disk> <disk path="/tests/pc/vga/VGABIN.json">VGA Tests (Black Book)</disk>
</control> </control>
<control type="button" binding="loadDrive">Load</control> <control type="button" binding="loadDrive">Load</control>

File diff suppressed because one or more lines are too long

View file

@ -3,25 +3,12 @@
<manifest type="software"> <manifest type="software">
<title>Enhanced DEBUG</title> <title>Enhanced DEBUG</title>
<source href="https://sites.google.com/site/pcdosretro/enhdebug">PC DOS Retro: Enhanced DEBUG for PC DOS and MS-DOS</source> <source href="https://sites.google.com/site/pcdosretro/enhdebug">PC DOS Retro: Enhanced DEBUG for PC DOS and MS-DOS</source>
<disk id="disk01" size="737280" chs="80:2:9" dir="enhdebug/archive" href="/disks/pc/tools/misc/enhdebug/ENHDEBUG.json" md5="20db782809660a284e917f7f06e556b5" md5json="5f851e282497996b403194c50c448999"> <disk id="disk01" size="368640" chs="40:2:9" href="/disks/pc/tools/misc/enhdebug/ENHDEBUG.json" md5="8dd4cecc3fa560a7fca7debf066b6e09" md5json="bacd02b2bdfe2656c4371a5201d45cd7">
<name>Enhanced DEBUG 1.32a</name> <name>Enhanced DEBUG 1.32a</name>
<file size="230198" time="2016-04-21 09:40:02" attr="0x20" md5="b7030251a5db56ea70445d5b618ed54b">DEBUG.ASM</file>
<file size="20816" time="2016-04-21 09:40:04" attr="0x20" md5="0b9614b461b8287e536bf77bf7e26329">DEBUG.COM</file> <file size="20816" time="2016-04-21 09:40:04" attr="0x20" md5="0b9614b461b8287e536bf77bf7e26329">DEBUG.COM</file>
<file size="27998" time="2016-04-12 11:44:02" attr="0x20" md5="42dca823821dc915dd94abedc5f19c65">DEBUG.TXT</file> <file size="27998" time="2016-04-12 11:44:02" attr="0x20" md5="42dca823821dc915dd94abedc5f19c65">DEBUG.TXT</file>
<file size="51176" time="2016-03-11 19:27:38" attr="0x20" md5="92522064c892fbce579f435c53858210">DEBUGTBL.INC</file>
<file size="26198" time="2016-04-21 09:40:04" attr="0x20" md5="98e9b7fec9e2b5c736fd558114c312db">DEBUGX.COM</file>
<file size="3130" time="2016-04-14 09:05:22" attr="0x20" md5="e83d1a16dfabe5ff5b5d1c287ba87362">DPMICL32.ASM</file>
<file size="863" time="2016-04-14 09:05:24" attr="0x20" md5="9e2a390bc4275e251dd85adfa05eb309">DPMICL32.EXE</file>
<file size="7908" time="2014-11-28 14:28:56" attr="0x20" md5="e082a5153ffa32bd99502bd72fa3d892">FPTOSTR.INC</file>
<file size="18800" time="2016-04-21 09:41:42" attr="0x20" md5="b487ba737d363a2d103698a215bfcbc1">HISTORY.TXT</file>
<file size="5740" time="2014-03-10 11:09:28" attr="0x20" md5="f72698d37aeb8d9d02e3f85f83b9eaa8">INSTR.KEY</file>
<file size="576" time="2014-01-25 10:59:50" attr="0x20" md5="f5d0dba9006b655d481f49f875a0bcf3">INSTR.ORD</file>
<file size="9309" time="2016-03-11 19:21:56" attr="0x20" md5="52286ecd1118ce06a9b745b09b8632a3">INSTR.SET</file>
<file size="35141" time="2016-04-03 13:52:33" attr="0x20" md5="84dcc94da3adb52b53ae4fa38fe49e5d">LICENSE</file>
<file size="1320" time="2014-02-04 19:26:56" attr="0x20" md5="4fbdcf8dac8140c70df90b440fa6fb1b">MAKE.BAT</file>
<file size="335" time="2014-01-20 14:34:58" attr="0x20" md5="cec3c20285c5adae18a601d6a339ec2a">MAKEC.BAT</file>
<file size="31542" time="2014-02-26 13:50:00" attr="0x20" md5="adbf4961a3e4ab7c8c4646e003cbb08b">MKTABLES.C</file>
<file size="7118" time="2016-04-15 21:44:30" attr="0x20" md5="1591e603c2b4587ff0f9e26e66448907">README.TXT</file> <file size="7118" time="2016-04-15 21:44:30" attr="0x20" md5="1591e603c2b4587ff0f9e26e66448907">README.TXT</file>
<file size="48" time="2016-04-03 13:52:33" attr="0x20" md5="3d312a3c98b11e32ec8293b2095fae02">README.MD</file> <file size="18800" time="2016-04-21 09:41:42" attr="0x20" md5="b487ba737d363a2d103698a215bfcbc1">HISTORY.TXT</file>
<file size="35141" time="2016-04-03 13:52:33" attr="0x20" md5="84dcc94da3adb52b53ae4fa38fe49e5d">LICENSE</file>
</disk> </disk>
</manifest> </manifest>

View file

@ -3,48 +3,48 @@
<manifest type="software"> <manifest type="software">
<title prefix="System V">Microport's AT&amp;T UNIX System V-AT 2.3 (5¨)</title> <title prefix="System V">Microport's AT&amp;T UNIX System V-AT 2.3 (5¨)</title>
<disk id="disk01" size="1228800" chs="80:2:15" img="archive/01 - System Diskette Boot Disk 1.img" href="/disks/pc/unix/microport/system-v/2.3/SYSTEMV23-DISK01.json" md5="08b5f4199ca06be2595ee9cf46f94857" md5json="87e19cb658085bd6d6173526ec0d3261"> <disk id="disk01" size="1228800" chs="80:2:15" img="archive/01 - System Diskette Boot Disk 1.img" href="/disks/pc/unix/microport/system-v/2.3/SYSTEMV23-DISK01.json" md5="08b5f4199ca06be2595ee9cf46f94857" md5json="87e19cb658085bd6d6173526ec0d3261">
<name>Boot Disk</name> <name>UNIX System V Boot Disk</name>
</disk> </disk>
<disk id="disk02" size="1228800" chs="80:2:15" img="archive/02 - Runtime Disk 1.img" href="/disks/pc/unix/microport/system-v/2.3/SYSTEMV23-DISK02.json" md5="a56898d71a33dd09d19690084a6a8dfb" md5json="c47f303ae3b6514ae49c517ecfe83d2d"> <disk id="disk02" size="1228800" chs="80:2:15" img="archive/02 - Runtime Disk 1.img" href="/disks/pc/unix/microport/system-v/2.3/SYSTEMV23-DISK02.json" md5="a56898d71a33dd09d19690084a6a8dfb" md5json="c47f303ae3b6514ae49c517ecfe83d2d">
<name>Runtime Disk 1</name> <name>UNIX System V Runtime (Disk 1)</name>
</disk> </disk>
<disk id="disk03" size="1228800" chs="80:2:15" img="archive/03 - Runtime Disk 2.img" href="/disks/pc/unix/microport/system-v/2.3/SYSTEMV23-DISK03.json" md5="b62fd5e68f4d4c3c2b43530240197270" md5json="dc524ffe15a4f598a3c2ef185f2fe2b3"> <disk id="disk03" size="1228800" chs="80:2:15" img="archive/03 - Runtime Disk 2.img" href="/disks/pc/unix/microport/system-v/2.3/SYSTEMV23-DISK03.json" md5="b62fd5e68f4d4c3c2b43530240197270" md5json="dc524ffe15a4f598a3c2ef185f2fe2b3">
<name>Runtime Disk 2</name> <name>UNIX System V Runtime (Disk 2)</name>
</disk> </disk>
<disk id="disk04" size="1228800" chs="80:2:15" img="archive/04 - Runtime Disk 3.img" href="/disks/pc/unix/microport/system-v/2.3/SYSTEMV23-DISK04.json" md5="70b6750aaf621d8cb5968e3465f11a47" md5json="c491f195cbaffd763cf1ad813ab70831"> <disk id="disk04" size="1228800" chs="80:2:15" img="archive/04 - Runtime Disk 3.img" href="/disks/pc/unix/microport/system-v/2.3/SYSTEMV23-DISK04.json" md5="70b6750aaf621d8cb5968e3465f11a47" md5json="c491f195cbaffd763cf1ad813ab70831">
<name>Runtime Disk 3</name> <name>UNIX System V Runtime (Disk 3)</name>
</disk> </disk>
<disk id="disk05" size="1228800" chs="80:2:15" img="archive/05 - Runtime Utility Disk.img" href="/disks/pc/unix/microport/system-v/2.3/SYSTEMV23-DISK05.json" md5="a1c2923f7116a29d1ab68a82ea2ac262" md5json="c19f5dcf0892da7f1372dc8d83d73f26"> <disk id="disk05" size="1228800" chs="80:2:15" img="archive/05 - Runtime Utility Disk.img" href="/disks/pc/unix/microport/system-v/2.3/SYSTEMV23-DISK05.json" md5="a1c2923f7116a29d1ab68a82ea2ac262" md5json="c19f5dcf0892da7f1372dc8d83d73f26">
<name>Runtime Utility Disk</name> <name>UNIX System V Runtime Utility Disk</name>
</disk> </disk>
<disk id="disk06" size="1228800" chs="80:2:15" img="archive/06 - Runtime System Vision.img" href="/disks/pc/unix/microport/system-v/2.3/SYSTEMV23-DISK06.json" md5="19ffd026dd55bb39645e859a7ba86b06" md5json="104f8e9ef40b13418141674d84cf908f"> <disk id="disk06" size="1228800" chs="80:2:15" img="archive/06 - Runtime System Vision.img" href="/disks/pc/unix/microport/system-v/2.3/SYSTEMV23-DISK06.json" md5="19ffd026dd55bb39645e859a7ba86b06" md5json="104f8e9ef40b13418141674d84cf908f">
<name>Runtime System Vision</name> <name>UNIX System V Runtime System Vision</name>
</disk> </disk>
<disk id="disk07" size="1228800" chs="80:2:15" img="archive/07 - Runtime Link Kit Disk.img" href="/disks/pc/unix/microport/system-v/2.3/SYSTEMV23-DISK07.json" md5="d010e85d690a23be6807694dfd99b7cd" md5json="9ca249bd570ad07c94c5c238ab9ca7ca"> <disk id="disk07" size="1228800" chs="80:2:15" img="archive/07 - Runtime Link Kit Disk.img" href="/disks/pc/unix/microport/system-v/2.3/SYSTEMV23-DISK07.json" md5="d010e85d690a23be6807694dfd99b7cd" md5json="9ca249bd570ad07c94c5c238ab9ca7ca">
<name>Runtime Link Kit Disk</name> <name>UNIX System V Runtime Link Kit</name>
</disk> </disk>
<disk id="disk08" size="1228800" chs="80:2:15" img="archive/08 - Software Development Disk 1 EXPROGDEV.1.img" href="/disks/pc/unix/microport/system-v/2.3/SYSTEMV23-DISK08.json" md5="f13ae1e2fb556423bd418b0f336203b9" md5json="74f7c32c7ab7a344fa0afee04a816fef"> <disk id="disk08" size="1228800" chs="80:2:15" img="archive/08 - Software Development Disk 1 EXPROGDEV.1.img" href="/disks/pc/unix/microport/system-v/2.3/SYSTEMV23-DISK08.json" md5="f13ae1e2fb556423bd418b0f336203b9" md5json="74f7c32c7ab7a344fa0afee04a816fef">
<name>Software Dev Disk 1</name> <name>UNIX System V Software Dev (Disk 1)</name>
</disk> </disk>
<disk id="disk09" size="1228800" chs="80:2:15" img="archive/09 - Software Development Disk 2 PROGDEV.1.img" href="/disks/pc/unix/microport/system-v/2.3/SYSTEMV23-DISK09.json" md5="684d16091cac18152c3259455bc51023" md5json="1a4a0f327831f524ab86d253091b0362"> <disk id="disk09" size="1228800" chs="80:2:15" img="archive/09 - Software Development Disk 2 PROGDEV.1.img" href="/disks/pc/unix/microport/system-v/2.3/SYSTEMV23-DISK09.json" md5="684d16091cac18152c3259455bc51023" md5json="1a4a0f327831f524ab86d253091b0362">
<name>Software Dev Disk 2</name> <name>UNIX System V Software Dev (Disk 2)</name>
</disk> </disk>
<disk id="disk10" size="1228800" chs="80:2:15" img="archive/10 - Software Development Disk 3 PROGDEV.2.img" href="/disks/pc/unix/microport/system-v/2.3/SYSTEMV23-DISK10.json" md5="5ae1c5f8ca25564374d74d91b0c08bfc" md5json="e685e80181a017857664c305435d928a"> <disk id="disk10" size="1228800" chs="80:2:15" img="archive/10 - Software Development Disk 3 PROGDEV.2.img" href="/disks/pc/unix/microport/system-v/2.3/SYSTEMV23-DISK10.json" md5="5ae1c5f8ca25564374d74d91b0c08bfc" md5json="e685e80181a017857664c305435d928a">
<name>Software Dev Disk 3</name> <name>UNIX System V Software Dev (Disk 3)</name>
</disk> </disk>
<disk id="disk11" size="1228800" chs="80:2:15" img="archive/11 - Software Development Disk 4 PROGDEV.3.img" href="/disks/pc/unix/microport/system-v/2.3/SYSTEMV23-DISK11.json" md5="62798053f89cdf8c4012a64e1092629b" md5json="f3e2062d106aeece5c32d3efdd80dcb6"> <disk id="disk11" size="1228800" chs="80:2:15" img="archive/11 - Software Development Disk 4 PROGDEV.3.img" href="/disks/pc/unix/microport/system-v/2.3/SYSTEMV23-DISK11.json" md5="62798053f89cdf8c4012a64e1092629b" md5json="f3e2062d106aeece5c32d3efdd80dcb6">
<name>Software Dev Disk 4</name> <name>UNIX System V Software Dev (Disk 4)</name>
</disk> </disk>
<disk id="disk12" size="1228800" chs="80:2:15" img="archive/12 - Software Development Upgrade Disk.img" href="/disks/pc/unix/microport/system-v/2.3/SYSTEMV23-DISK12.json" md5="0fd28b9b7110a2455fa32ce94fb24905" md5json="4a005f9c97cb5b39b2d49ab5f3f61c36"> <disk id="disk12" size="1228800" chs="80:2:15" img="archive/12 - Software Development Upgrade Disk.img" href="/disks/pc/unix/microport/system-v/2.3/SYSTEMV23-DISK12.json" md5="0fd28b9b7110a2455fa32ce94fb24905" md5json="4a005f9c97cb5b39b2d49ab5f3f61c36">
<name>Software Dev Upgrade</name> <name>UNIX System V Software Dev Upgrade</name>
</disk> </disk>
<disk id="disk13" size="1228800" chs="80:2:15" img="archive/13 - Text Preparation Disk 1 EXTEXT.1.img" href="/disks/pc/unix/microport/system-v/2.3/SYSTEMV23-DISK13.json" md5="c8ac3211e216dde23523714cb7ae8001" md5json="f378778e542e0c97518a0548ebcaa106"> <disk id="disk13" size="1228800" chs="80:2:15" img="archive/13 - Text Preparation Disk 1 EXTEXT.1.img" href="/disks/pc/unix/microport/system-v/2.3/SYSTEMV23-DISK13.json" md5="c8ac3211e216dde23523714cb7ae8001" md5json="f378778e542e0c97518a0548ebcaa106">
<name>Text Prep Disk 1</name> <name>UNIX System V Text Prep (Disk 1)</name>
</disk> </disk>
<disk id="disk14" size="1228800" chs="80:2:15" img="archive/14 - Text Preparation Disk 2 TEXT.1.img" href="/disks/pc/unix/microport/system-v/2.3/SYSTEMV23-DISK14.json" md5="1b7d785fb313cbc2d826993007723fe2" md5json="8616cb36945fe813b57407c2a70c8b8f"> <disk id="disk14" size="1228800" chs="80:2:15" img="archive/14 - Text Preparation Disk 2 TEXT.1.img" href="/disks/pc/unix/microport/system-v/2.3/SYSTEMV23-DISK14.json" md5="1b7d785fb313cbc2d826993007723fe2" md5json="8616cb36945fe813b57407c2a70c8b8f">
<name>Text Prep Disk 2</name> <name>UNIX System V Text Prep (Disk 2)</name>
</disk> </disk>
<disk id="disk15" size="1228800" chs="80:2:15" img="archive/15 - Text Preparation Disk 3 EXTEXT.2.img" href="/disks/pc/unix/microport/system-v/2.3/SYSTEMV23-DISK15.json" md5="b41fe3066f91102809e3ddc806942933" md5json="3ad9c286389927c75fe98b7f7578a2bf"> <disk id="disk15" size="1228800" chs="80:2:15" img="archive/15 - Text Preparation Disk 3 EXTEXT.2.img" href="/disks/pc/unix/microport/system-v/2.3/SYSTEMV23-DISK15.json" md5="b41fe3066f91102809e3ddc806942933" md5json="3ad9c286389927c75fe98b7f7578a2bf">
<name>Text Prep Disk 3</name> <name>UNIX System V Text Prep (Disk 3)</name>
</disk> </disk>
</manifest> </manifest>

View file

@ -12,11 +12,12 @@
<xsl:variable name="MACHINECLASS">pc</xsl:variable> <xsl:variable name="MACHINECLASS">pc</xsl:variable>
<xsl:variable name="CSSCLASS">pcjs</xsl:variable> <xsl:variable name="CSSCLASS">pcjs</xsl:variable>
<xsl:variable name="APPCLASS">pcjs</xsl:variable> <xsl:variable name="APPCLASS">pcjs</xsl:variable>
<xsl:variable name="APPNAME">PCjs</xsl:variable>
<xsl:variable name="APPVERSION">1.21.7</xsl:variable> <xsl:variable name="APPVERSION">1.21.7</xsl:variable>
<xsl:variable name="SITEHOST">www.pcjs.org</xsl:variable> <xsl:variable name="SITEHOST">www.pcjs.org</xsl:variable>
<xsl:template name="componentStyles"> <xsl:template name="componentStyles">
<link rel="stylesheet" type="text/css" href="components.css"/> <link rel="stylesheet" type="text/css" href="/versions/pcjs/1.21.7/components.css"/>
</xsl:template> </xsl:template>
<xsl:template name="componentScripts"> <xsl:template name="componentScripts">
@ -241,7 +242,7 @@
</xsl:choose> </xsl:choose>
<xsl:if test="$APPCLASS = 'pcjs'"><div class="{$CSSCLASS}-reference" style="padding-left:8px">[<a href="#" onclick="savePC('{$machine}'); return false;">Save Machine</a>]</div></xsl:if> <xsl:if test="$APPCLASS = 'pcjs'"><div class="{$CSSCLASS}-reference" style="padding-left:8px">[<a href="#" onclick="savePC('{$machine}'); return false;">Save Machine</a>]</div></xsl:if>
<div class="{$CSSCLASS}-copyright"> <div class="{$CSSCLASS}-copyright">
<a href="http://{$SITEHOST}" target="_blank">PCjs</a> v<xsl:value-of select="$APPVERSION"/> © 2012-2016 by <a href="http://twitter.com/jeffpar" target="_blank">@jeffpar</a> <a href="http://{$SITEHOST}" target="_blank"><xsl:value-of select="$APPNAME"/></a> v<xsl:value-of select="$APPVERSION"/> © 2012-2016 by <a href="http://twitter.com/jeffpar" target="_blank">@jeffpar</a>
</div> </div>
<div style="clear:both"> </div> <div style="clear:both"> </div>
</xsl:if> </xsl:if>

View file

@ -13,6 +13,7 @@
<xsl:variable name="MACHINECLASS">pc</xsl:variable> <xsl:variable name="MACHINECLASS">pc</xsl:variable>
<xsl:variable name="CSSCLASS">pcjs</xsl:variable> <xsl:variable name="CSSCLASS">pcjs</xsl:variable>
<xsl:variable name="APPCLASS">pcjs</xsl:variable> <xsl:variable name="APPCLASS">pcjs</xsl:variable>
<xsl:variable name="APPNAME">PCjs</xsl:variable>
<xsl:variable name="APPVERSION">1.x.x</xsl:variable> <xsl:variable name="APPVERSION">1.x.x</xsl:variable>
<xsl:variable name="SITEHOST">www.pcjs.org</xsl:variable> <xsl:variable name="SITEHOST">www.pcjs.org</xsl:variable>
@ -242,7 +243,7 @@
</xsl:choose> </xsl:choose>
<xsl:if test="$APPCLASS = 'pcjs'"><div class="{$CSSCLASS}-reference" style="padding-left:8px">[<a href="#" onclick="savePC('{$machine}'); return false;">Save Machine</a>]</div></xsl:if> <xsl:if test="$APPCLASS = 'pcjs'"><div class="{$CSSCLASS}-reference" style="padding-left:8px">[<a href="#" onclick="savePC('{$machine}'); return false;">Save Machine</a>]</div></xsl:if>
<div class="{$CSSCLASS}-copyright"> <div class="{$CSSCLASS}-copyright">
<a href="http://{$SITEHOST}" target="_blank">PCjs</a> v<xsl:value-of select="$APPVERSION"/> © 2012-2016 by <a href="http://twitter.com/jeffpar" target="_blank">@jeffpar</a> <a href="http://{$SITEHOST}" target="_blank"><xsl:value-of select="$APPNAME"/></a> v<xsl:value-of select="$APPVERSION"/> © 2012-2016 by <a href="http://twitter.com/jeffpar" target="_blank">@jeffpar</a>
</div> </div>
<div style="clear:both"> </div> <div style="clear:both"> </div>
</xsl:if> </xsl:if>

View file

@ -15,18 +15,18 @@
<cover href="archive/The_8086_Book.jpg"/> <cover href="archive/The_8086_Book.jpg"/>
</document> </document>
<disk id="disk01" size="1228800" chs="80:2:15" img="DOS_Internals/archive/DOS-INTERN.img" href="/pubs/pc/programming/DOS_Internals/DOS-INTERN.json" md5="bc8cdc0887473c7cd081107408c12579" md5json="3cf1390937ee6287d46076fac8655bc5"> <disk id="disk01" size="1228800" chs="80:2:15" img="DOS_Internals/archive/DOS-INTERN.img" href="/pubs/pc/programming/DOS_Internals/DOS-INTERN.json" md5="bc8cdc0887473c7cd081107408c12579" md5json="3cf1390937ee6287d46076fac8655bc5">
<name>DOS Internals</name> <name>Book: DOS Internals</name>
</disk> </disk>
<disk id="disk02" size="1228800" chs="80:2:15" img="The_Undocumented_PC/archive/UNDOC-PC.img" href="/pubs/pc/programming/The_Undocumented_PC/UNDOC.json" md5="beb02e4594f45a395d43c110759dc3ea" md5json="fdf2d24bb28196b751a58e749a6b0d1a"> <disk id="disk02" size="1228800" chs="80:2:15" img="The_Undocumented_PC/archive/UNDOC-PC.img" href="/pubs/pc/programming/The_Undocumented_PC/UNDOC.json" md5="beb02e4594f45a395d43c110759dc3ea" md5json="fdf2d24bb28196b751a58e749a6b0d1a">
<name>The Undocumented PC</name> <name>Book: The Undocumented PC</name>
</disk> </disk>
<disk id="disk03" size="1228800" chs="80:2:15" img="Undocumented_DOS/archive/UNDOC-DOS-DISK1.img" href="/pubs/pc/programming/Undocumented_DOS/UNDOC-DOS-DISK1.json" md5="dd9d85065ec27b54055f991ea6bb4968" md5json="67fc8754967ec2588655826a484422f0"> <disk id="disk03" size="1228800" chs="80:2:15" img="Undocumented_DOS/archive/UNDOC-DOS-DISK1.img" href="/pubs/pc/programming/Undocumented_DOS/UNDOC-DOS-DISK1.json" md5="dd9d85065ec27b54055f991ea6bb4968" md5json="67fc8754967ec2588655826a484422f0">
<name>Undocumented DOS (Disk 1)</name> <name>Book: Undocumented DOS (Disk 1)</name>
</disk> </disk>
<disk id="disk04" size="1228800" chs="80:2:15" img="Undocumented_DOS/archive/UNDOC-DOS-DISK2.img" href="/pubs/pc/programming/Undocumented_DOS/UNDOC-DOS-DISK2.json" md5="d35c9141a554b4854bb635173e72a999" md5json="ba92b1ec5bf2ac501736a4f025ce3caf"> <disk id="disk04" size="1228800" chs="80:2:15" img="Undocumented_DOS/archive/UNDOC-DOS-DISK2.img" href="/pubs/pc/programming/Undocumented_DOS/UNDOC-DOS-DISK2.json" md5="d35c9141a554b4854bb635173e72a999" md5json="ba92b1ec5bf2ac501736a4f025ce3caf">
<name>Undocumented DOS (Disk 2)</name> <name>Book: Undocumented DOS (Disk 2)</name>
</disk> </disk>
<disk id="disk05" size="1228800" chs="80:2:15" img="Undocumented_Windows/archive/UNDOC-WIN.img" href="/pubs/pc/programming/Undocumented_Windows/UNDOC-WIN.json" md5="d5b088e7bc68da3741844b3505822a4d" md5json="4199690986b5ac03885e403b66e29058"> <disk id="disk05" size="1228800" chs="80:2:15" img="Undocumented_Windows/archive/UNDOC-WIN.img" href="/pubs/pc/programming/Undocumented_Windows/UNDOC-WIN.json" md5="d5b088e7bc68da3741844b3505822a4d" md5json="4199690986b5ac03885e403b66e29058">
<name>Undocumented Windows</name> <name>Book: Undocumented Windows</name>
</disk> </disk>
</manifest> </manifest>

View file

@ -12,11 +12,12 @@
<xsl:variable name="MACHINECLASS">pc</xsl:variable> <xsl:variable name="MACHINECLASS">pc</xsl:variable>
<xsl:variable name="CSSCLASS">pcjs</xsl:variable> <xsl:variable name="CSSCLASS">pcjs</xsl:variable>
<xsl:variable name="APPCLASS">pc8080</xsl:variable> <xsl:variable name="APPCLASS">pc8080</xsl:variable>
<xsl:variable name="APPNAME">PC8080</xsl:variable>
<xsl:variable name="APPVERSION">1.21.7</xsl:variable> <xsl:variable name="APPVERSION">1.21.7</xsl:variable>
<xsl:variable name="SITEHOST">www.pcjs.org</xsl:variable> <xsl:variable name="SITEHOST">www.pcjs.org</xsl:variable>
<xsl:template name="componentStyles"> <xsl:template name="componentStyles">
<link rel="stylesheet" type="text/css" href="/versions/{$APPCLASS}/{$APPVERSION}/components.css"/> <link rel="stylesheet" type="text/css" href="/versions/pc8080/1.21.7/components.css"/>
</xsl:template> </xsl:template>
<xsl:template name="componentScripts"> <xsl:template name="componentScripts">
@ -241,7 +242,7 @@
</xsl:choose> </xsl:choose>
<xsl:if test="$APPCLASS = 'pcjs'"><div class="{$CSSCLASS}-reference" style="padding-left:8px">[<a href="#" onclick="savePC('{$machine}'); return false;">Save Machine</a>]</div></xsl:if> <xsl:if test="$APPCLASS = 'pcjs'"><div class="{$CSSCLASS}-reference" style="padding-left:8px">[<a href="#" onclick="savePC('{$machine}'); return false;">Save Machine</a>]</div></xsl:if>
<div class="{$CSSCLASS}-copyright"> <div class="{$CSSCLASS}-copyright">
<a href="http://{$SITEHOST}" target="_blank">PCjs</a> v<xsl:value-of select="$APPVERSION"/> © 2012-2016 by <a href="http://twitter.com/jeffpar" target="_blank">@jeffpar</a> <a href="http://{$SITEHOST}" target="_blank"><xsl:value-of select="$APPNAME"/></a> v<xsl:value-of select="$APPVERSION"/> © 2012-2016 by <a href="http://twitter.com/jeffpar" target="_blank">@jeffpar</a>
</div> </div>
<div style="clear:both"> </div> <div style="clear:both"> </div>
</xsl:if> </xsl:if>

View file

@ -12,11 +12,12 @@
<xsl:variable name="MACHINECLASS">pc</xsl:variable> <xsl:variable name="MACHINECLASS">pc</xsl:variable>
<xsl:variable name="CSSCLASS">pcjs</xsl:variable> <xsl:variable name="CSSCLASS">pcjs</xsl:variable>
<xsl:variable name="APPCLASS">pcjs</xsl:variable> <xsl:variable name="APPCLASS">pcjs</xsl:variable>
<xsl:variable name="APPNAME">PCjs</xsl:variable>
<xsl:variable name="APPVERSION">1.21.7</xsl:variable> <xsl:variable name="APPVERSION">1.21.7</xsl:variable>
<xsl:variable name="SITEHOST">www.pcjs.org</xsl:variable> <xsl:variable name="SITEHOST">www.pcjs.org</xsl:variable>
<xsl:template name="componentStyles"> <xsl:template name="componentStyles">
<link rel="stylesheet" type="text/css" href="/versions/{$APPCLASS}/{$APPVERSION}/components.css"/> <link rel="stylesheet" type="text/css" href="/versions/pcjs/1.21.7/components.css"/>
</xsl:template> </xsl:template>
<xsl:template name="componentScripts"> <xsl:template name="componentScripts">
@ -241,7 +242,7 @@
</xsl:choose> </xsl:choose>
<xsl:if test="$APPCLASS = 'pcjs'"><div class="{$CSSCLASS}-reference" style="padding-left:8px">[<a href="#" onclick="savePC('{$machine}'); return false;">Save Machine</a>]</div></xsl:if> <xsl:if test="$APPCLASS = 'pcjs'"><div class="{$CSSCLASS}-reference" style="padding-left:8px">[<a href="#" onclick="savePC('{$machine}'); return false;">Save Machine</a>]</div></xsl:if>
<div class="{$CSSCLASS}-copyright"> <div class="{$CSSCLASS}-copyright">
<a href="http://{$SITEHOST}" target="_blank">PCjs</a> v<xsl:value-of select="$APPVERSION"/> © 2012-2016 by <a href="http://twitter.com/jeffpar" target="_blank">@jeffpar</a> <a href="http://{$SITEHOST}" target="_blank"><xsl:value-of select="$APPNAME"/></a> v<xsl:value-of select="$APPVERSION"/> © 2012-2016 by <a href="http://twitter.com/jeffpar" target="_blank">@jeffpar</a>
</div> </div>
<div style="clear:both"> </div> <div style="clear:both"> </div>
</xsl:if> </xsl:if>