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": {
files: [
{
@ -443,7 +406,7 @@ module.exports = function(grunt) {
files: [
{
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 %>/",
expand: true
}
@ -451,6 +414,7 @@ module.exports = function(grunt) {
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;
}
@ -460,7 +424,7 @@ module.exports = function(grunt) {
files: [
{
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 %>/",
expand: true
}
@ -468,7 +432,9 @@ module.exports = function(grunt) {
options: {
process: function(content, srcPath) {
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(/"[^"]*\/?(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;
}

View file

@ -1,11 +1,11 @@
---
layout: post
title: The Intel 8080 CPU
title: Introducing the Intel 8080 CPU
date: 2016-04-30 14:00:00
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.
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.
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
actually required, which considerably speeds up arithmetic operations.
Of particular note are the 8080's subtract,
compare, and decrement operations, which actually perform addition, not subtraction, by using two's complement
arithmetic in "stages": the first stage (inverting the source operand) occurs *before* the addition, while the second
stage (incrementing the inverted operand) occurs *after* the addition. And it appears to be the result of the *first*
stage, not the second, that determines the state of the Auxiliary Carry flag (AF).
Of particular note are the 8080's subtract, compare, and decrement operations, which actually perform addition,
not subtraction, by using two's complement arithmetic in "stages": the first stage (inverting the source operand)
occurs *before* the addition, and the second stage (incrementing the inverted operand) occurs *after* the addition.
And it appears to be the result of the *first* stage, not the second, that determines the state of the Auxiliary
Carry flag (AF).
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

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.
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
actually required, which considerably speeds up all arithmetic operations.
Of particular note are the 8080's subtract,
compare, and decrement operations, which actually perform addition, not subtraction, by using two's complement
arithmetic in "stages": the first stage (inverting the source operand) occurs *before* the addition, and the second
stage (incrementing the inverted operand) occurs *after* the addition. And it appears to be the result of the *first*
stage, not the second, that determines the state of the Auxiliary Carry flag (AF).
Of particular note are the 8080's subtract, compare, and decrement operations, which actually perform addition,
not subtraction, by using two's complement arithmetic in "stages": the first stage (inverting the source operand)
occurs *before* the addition, and the second stage (incrementing the inverted operand) occurs *after* the addition.
And it appears to be the result of the *first* stage, not the second, that determines the state of the Auxiliary
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
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/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/microport/system-v/2.3/SYSTEMV23-DISK01.json">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-DISK03.json">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-DISK05.json">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-DISK07.json">Runtime Link Kit Disk</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-DISK09.json">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-DISK11.json">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-DISK13.json">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-DISK15.json">Text Prep Disk 3</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">UNIX System V Runtime (Disk 1)</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">UNIX System V Runtime (Disk 3)</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">UNIX System V Runtime System Vision</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">UNIX System V Software Dev (Disk 1)</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">UNIX System V Software Dev (Disk 3)</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">UNIX System V Software Dev Upgrade</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">UNIX System V Text Prep (Disk 2)</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/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>
@ -508,11 +508,11 @@
<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/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/The_Undocumented_PC/UNDOC.json">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-DISK2.json">Undocumented DOS (Disk 2)</disk>
<disk path="/pubs/pc/programming/Undocumented_Windows/UNDOC-WIN.json">Undocumented Windows</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">Book: The Undocumented PC</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">Book: Undocumented DOS (Disk 2)</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>
</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">
<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>
<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>
<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="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="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>
</manifest>

View file

@ -3,48 +3,48 @@
<manifest type="software">
<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">
<name>Boot Disk</name>
<name>UNIX System V Boot Disk</name>
</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">
<name>Runtime Disk 1</name>
<name>UNIX System V Runtime (Disk 1)</name>
</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">
<name>Runtime Disk 2</name>
<name>UNIX System V Runtime (Disk 2)</name>
</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">
<name>Runtime Disk 3</name>
<name>UNIX System V Runtime (Disk 3)</name>
</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">
<name>Runtime Utility Disk</name>
<name>UNIX System V Runtime Utility Disk</name>
</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">
<name>Runtime System Vision</name>
<name>UNIX System V Runtime System Vision</name>
</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">
<name>Runtime Link Kit Disk</name>
<name>UNIX System V Runtime Link Kit</name>
</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">
<name>Software Dev Disk 1</name>
<name>UNIX System V Software Dev (Disk 1)</name>
</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">
<name>Software Dev Disk 2</name>
<name>UNIX System V Software Dev (Disk 2)</name>
</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">
<name>Software Dev Disk 3</name>
<name>UNIX System V Software Dev (Disk 3)</name>
</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">
<name>Software Dev Disk 4</name>
<name>UNIX System V Software Dev (Disk 4)</name>
</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">
<name>Software Dev Upgrade</name>
<name>UNIX System V Software Dev Upgrade</name>
</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">
<name>Text Prep Disk 1</name>
<name>UNIX System V Text Prep (Disk 1)</name>
</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">
<name>Text Prep Disk 2</name>
<name>UNIX System V Text Prep (Disk 2)</name>
</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">
<name>Text Prep Disk 3</name>
<name>UNIX System V Text Prep (Disk 3)</name>
</disk>
</manifest>

View file

@ -12,11 +12,12 @@
<xsl:variable name="MACHINECLASS">pc</xsl:variable>
<xsl:variable name="CSSCLASS">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="SITEHOST">www.pcjs.org</xsl:variable>
<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 name="componentScripts">
@ -241,7 +242,7 @@
</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>
<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 style="clear:both"> </div>
</xsl:if>

View file

@ -13,6 +13,7 @@
<xsl:variable name="MACHINECLASS">pc</xsl:variable>
<xsl:variable name="CSSCLASS">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="SITEHOST">www.pcjs.org</xsl:variable>
@ -242,7 +243,7 @@
</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>
<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 style="clear:both"> </div>
</xsl:if>

View file

@ -15,18 +15,18 @@
<cover href="archive/The_8086_Book.jpg"/>
</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">
<name>DOS Internals</name>
<name>Book: DOS Internals</name>
</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">
<name>The Undocumented PC</name>
<name>Book: The Undocumented PC</name>
</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">
<name>Undocumented DOS (Disk 1)</name>
<name>Book: Undocumented DOS (Disk 1)</name>
</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">
<name>Undocumented DOS (Disk 2)</name>
<name>Book: Undocumented DOS (Disk 2)</name>
</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">
<name>Undocumented Windows</name>
<name>Book: Undocumented Windows</name>
</disk>
</manifest>

View file

@ -12,11 +12,12 @@
<xsl:variable name="MACHINECLASS">pc</xsl:variable>
<xsl:variable name="CSSCLASS">pcjs</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="SITEHOST">www.pcjs.org</xsl:variable>
<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 name="componentScripts">
@ -241,7 +242,7 @@
</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>
<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 style="clear:both"> </div>
</xsl:if>

View file

@ -12,11 +12,12 @@
<xsl:variable name="MACHINECLASS">pc</xsl:variable>
<xsl:variable name="CSSCLASS">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="SITEHOST">www.pcjs.org</xsl:variable>
<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 name="componentScripts">
@ -241,7 +242,7 @@
</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>
<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 style="clear:both"> </div>
</xsl:if>