Skip to content
This repository has been archived by the owner on Dec 24, 2020. It is now read-only.

Commit

Permalink
Merge branch 'next-release'
Browse files Browse the repository at this point in the history
  • Loading branch information
jeffpar committed Mar 26, 2018
2 parents bb8e021 + ba845c6 commit dc95b1d
Show file tree
Hide file tree
Showing 74 changed files with 3,444 additions and 3,426 deletions.
1 change: 0 additions & 1 deletion apps/pcx86/1981/donkey/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ machines:
name: PC-DOS 1.00
B:
name: None
autoType: $date\rbasica donkey\r
---

IBM PC Running DONKEY.BAS
Expand Down
1 change: 0 additions & 1 deletion apps/pcx86/1981/donkey/debugger/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ machines:
name: PC-DOS 1.00
B:
name: None
autoType: $date\rbasica donkey\r
---

IBM PC Running DONKEY.BAS (with Debugger)
Expand Down
1 change: 0 additions & 1 deletion apps/pcx86/1981/visicalc/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ machines:
name: PC-DOS 1.00
B:
name: VisiCalc (1981)
autoType: $date\rb:\rvc\r
---

VisiCalc (1981)
Expand Down
1 change: 1 addition & 0 deletions disks/pcx86/library.xml
Original file line number Diff line number Diff line change
Expand Up @@ -814,6 +814,7 @@
<disk path="/pcjs-disks/pcx86/tools/other/qemm386/4.23/QEMM386-423.json">QEMM-386 4.23</disk>
<disk path="/pcjs-disks/pcx86/tools/other/qemm386/5.13/QEMM386-513.json">QEMM-386 5.13</disk>
<disk path="/pcjs-disks/pcx86/tools/other/qemm386/6.02/QEMM386-602.json">QEMM-386 6.02</disk>
<disk path="/pcjs-disks/pcx86/tools/other/spacemaker/1.06/SM106.json">SPACEMAKER 1.06</disk>
<disk path="/pcjs-disks/pcx86/games/id/wolf3d/1WOLF14.json">Wolfenstein 3D 1.4</disk>
<disk path="/pcjs-disks/pcx86/games/microsoft/flightsim/1982/FLIGHTSIM-1982.json">MS Flight Simulator (1982)</disk>
<disk path="/pcjs-disks/pcx86/games/microsoft/flightsim/1984/FLIGHTSIM-1984.json">MS Flight Simulator (1984)</disk>
Expand Down
1 change: 1 addition & 0 deletions disks/pcx86/shareware/pcsig08/library.xml
Original file line number Diff line number Diff line change
Expand Up @@ -814,6 +814,7 @@
<disk path="/pcjs-disks/pcx86/tools/other/qemm386/4.23/QEMM386-423.json">QEMM-386 4.23</disk>
<disk path="/pcjs-disks/pcx86/tools/other/qemm386/5.13/QEMM386-513.json">QEMM-386 5.13</disk>
<disk path="/pcjs-disks/pcx86/tools/other/qemm386/6.02/QEMM386-602.json">QEMM-386 6.02</disk>
<disk path="/pcjs-disks/pcx86/tools/other/spacemaker/1.06/SM106.json">SPACEMAKER 1.06</disk>
<disk path="/pcjs-disks/pcx86/games/id/wolf3d/1WOLF14.json">Wolfenstein 3D 1.4</disk>
<disk path="/pcjs-disks/pcx86/games/microsoft/flightsim/1982/FLIGHTSIM-1982.json">MS Flight Simulator (1982)</disk>
<disk path="/pcjs-disks/pcx86/games/microsoft/flightsim/1984/FLIGHTSIM-1984.json">MS Flight Simulator (1984)</disk>
Expand Down
15 changes: 15 additions & 0 deletions disks/pcx86/tools/other/spacemaker/1.06/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
---
layout: page
title: SPACEMAKER 1.06
permalink: /disks/pcx86/tools/other/spacemaker/1.06/
---

SPACEMAKER 1.06
---------------

### Directory of SPACEMAKER 1.06

Volume in drive A has no label
Directory of A:\

SM COM 4680 6-08-88 6:55p
12 changes: 12 additions & 0 deletions disks/pcx86/tools/other/spacemaker/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
layout: page
title: SPACEMAKER
permalink: /disks/pcx86/tools/other/spacemaker/
---

SPACEMAKER
----------

SPACEMAKER was an EXE compression utility created by Realia Inc.

* [SPACEMAKER 1.06](1.06/)
2 changes: 1 addition & 1 deletion modules/c1pjs/lib/computer.js
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@ class C1PComputer extends Component {

/**
* @this {C1PComputer}
* @param {string|null} sHTMLType is the type of the HTML control (eg, "button", "list", "text", "submit", "textarea")
* @param {string} sHTMLType is the type of the HTML control (eg, "button", "list", "text", "submit", "textarea")
* @param {string} sBinding is the value of the 'binding' parameter stored in the HTML control's "data-value" attribute (eg, "reset")
* @param {HTMLElement} control is the HTML control DOM object (eg, HTMLButtonElement)
* @param {string} [sValue] optional data value
Expand Down
2 changes: 1 addition & 1 deletion modules/c1pjs/lib/cpu.js
Original file line number Diff line number Diff line change
Expand Up @@ -514,7 +514,7 @@ class C1PCPU extends Component {

/**
* @this {C1PCPU}
* @param {string|null} sHTMLType is the type of the HTML control (eg, "button", "list", "text", "submit", "textarea")
* @param {string} sHTMLType is the type of the HTML control (eg, "button", "list", "text", "submit", "textarea")
* @param {string} sBinding is the value of the 'binding' parameter stored in the HTML control's "data-value" attribute (eg, "run")
* @param {HTMLElement} control is the HTML control DOM object (eg, HTMLButtonElement)
* @param {string} [sValue] optional data value
Expand Down
2 changes: 1 addition & 1 deletion modules/c1pjs/lib/debugger.js
Original file line number Diff line number Diff line change
Expand Up @@ -492,7 +492,7 @@ class C1PDebugger extends Component {

/**
* @this {C1PDebugger}
* @param {string|null} sHTMLType is the type of the HTML control (eg, "button", "list", "text", "submit", "textarea", "canvas")
* @param {string} sHTMLType is the type of the HTML control (eg, "button", "list", "text", "submit", "textarea", "canvas")
* @param {string} sBinding is the value of the 'binding' parameter stored in the HTML control's "data-value" attribute (eg, "reset")
* @param {HTMLElement} control is the HTML control DOM object (eg, HTMLButtonElement)
* @param {string} [sValue] optional data value
Expand Down
2 changes: 1 addition & 1 deletion modules/c1pjs/lib/disk.js
Original file line number Diff line number Diff line change
Expand Up @@ -665,7 +665,7 @@ class C1PDiskController extends Component {

/**
* @this {C1PDiskController}
* @param {string|null} sHTMLType is the type of the HTML control (eg, "button", "list", "text", "submit", "textarea")
* @param {string} sHTMLType is the type of the HTML control (eg, "button", "list", "text", "submit", "textarea")
* @param {string} sBinding is the value of the 'binding' parameter stored in the HTML control's "data-value" attribute (eg, "listDisk")
* @param {HTMLElement} control is the HTML control DOM object (eg, HTMLButtonElement)
* @param {string} [sValue] optional data value
Expand Down
2 changes: 1 addition & 1 deletion modules/c1pjs/lib/keyboard.js
Original file line number Diff line number Diff line change
Expand Up @@ -396,7 +396,7 @@ class C1PKeyboard extends Component {

/**
* @this {C1PKeyboard}
* @param {string|null} sHTMLType is the type of the HTML control (eg, "button", "list", "text", "submit", "textarea")
* @param {string} sHTMLType is the type of the HTML control (eg, "button", "list", "text", "submit", "textarea")
* @param {string} sBinding is the value of the 'binding' parameter stored in the HTML control's "data-value" attribute (eg, "esc", "ctrl-c")
* @param {HTMLElement} control is the HTML control DOM object (eg, HTMLButtonElement)
* @param {string} [sValue] optional data value
Expand Down
2 changes: 1 addition & 1 deletion modules/c1pjs/lib/panel.js
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ class C1PPanel extends Component {
* component that doesn't recognize the specified binding should simply ignore it.
*
* @this {C1PPanel}
* @param {string|null} sHTMLType is the type of the HTML control (eg, "button", "list", "text", "submit", "textarea", "canvas")
* @param {string} sHTMLType is the type of the HTML control (eg, "button", "list", "text", "submit", "textarea", "canvas")
* @param {string} sBinding is the value of the 'binding' parameter stored in the HTML control's "data-value" attribute (eg, "reset")
* @param {HTMLElement} control is the HTML control DOM object (eg, HTMLButtonElement)
* @param {string} [sValue] optional data value
Expand Down
2 changes: 1 addition & 1 deletion modules/c1pjs/lib/serial.js
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ class C1PSerialPort extends Component {

/**
* @this {C1PSerialPort}
* @param {string|null} sHTMLType is the type of the HTML control (eg, "button", "list", "text", "submit", "textarea")
* @param {string} sHTMLType is the type of the HTML control (eg, "button", "list", "text", "submit", "textarea")
* @param {string} sBinding is the value of the 'binding' parameter stored in the HTML control's "data-value" attribute (eg, "listSerial")
* @param {HTMLElement} control is the HTML control DOM object (eg, HTMLButtonElement)
* @param {string} [sValue] optional data value
Expand Down
2 changes: 1 addition & 1 deletion modules/c1pjs/lib/video.js
Original file line number Diff line number Diff line change
Expand Up @@ -216,7 +216,7 @@ class C1PVideo extends Component {

/**
* @this {C1PVideo}
* @param {string|null} sHTMLType is the type of the HTML control (eg, "button", "list", "text", "submit", "textarea")
* @param {string} sHTMLType is the type of the HTML control (eg, "button", "list", "text", "submit", "textarea")
* @param {string} sBinding is the value of the 'binding' parameter stored in the HTML control's "data-value" attribute (eg, "refresh")
* @param {HTMLElement} control is the HTML control DOM object (eg, HTMLButtonElement)
* @param {string} [sValue] optional data value
Expand Down
62 changes: 37 additions & 25 deletions modules/diskdump/bin/disklist
Original file line number Diff line number Diff line change
Expand Up @@ -31,58 +31,62 @@
*/

var fs = require("fs");
var defines = require("../../shared/lib/defines");
var Str = require("../../../modules/shared/lib/strlib");
var Proc = require("../../shared/lib/proclib");
var args = Proc.getArgs();

/**
* println(s)
* printf(format, ...args)
*
* @param {*} s
* @param {string} format
* @param {...} args
*/
function println(s)
function printf(format, ...args)
{
console.log(s);
process.stdout.write(Str.sprintf(format, ...args));
}

function processManifest(sManifest)
{
try {
var sXML = fs.readFileSync(sManifest, 'utf-8');
} catch(err) {
println("error: unable to read manifest: " + sManifest);
printf("error: unable to read manifest: %s\n", sManifest);
return;
}
var aMatchDisks = sXML.match(/<disk[^>]*>[\S\s]*?<\/disk>/g);
if (!aMatchDisks) {
println("warning: no disks found in: " + sManifest);
printf("warning: no disks found in: %s\n", sManifest);
return;
}
var sDiskTitle;
var matchTitle = sXML.match(/<title>(.*?)<\/title>/);
var matchVersion = sXML.match(/<version>(.*?)<\/version>/);
if (matchTitle && matchVersion) sDiskTitle = matchTitle[1] + ' ' + matchVersion[1];
for (var iDisk = 0; iDisk < aMatchDisks.length; iDisk++) {
var sDisk = aMatchDisks[iDisk];
var matchDir = sDisk.match(/dir="(.*?)"/);
var matchLink = sDisk.match(/href="(.*?)"/);
var matchDiskName = sDisk.match(/<name>(.*?)<\/name>/);
var aMatchFiles = sDisk.match(/<file[^>]*>[\S\s]*?<\/file>/g);
var sDiskName = matchDiskName && matchDiskName[1];
var sDiskName = matchDiskName && matchDiskName[1] || sDiskTitle;
if (!aMatchFiles || !sDiskName) {
println("warning: no files in disk: " + sDiskName);
printf("warning: no files in disk: %s\n", sDiskName);
return;
}
println("### Directory of " + sDiskName + "\n");
println("\t Volume in drive A " + (matchDiskName? ("is " + matchDiskName[1]) : "has no label"));
println("\t Directory of A:\\\n\t");
printf("### Directory of %s\n\n", sDiskName);
printf(" Volume in drive A %s\n", (matchDiskName? ("is " + matchDiskName[1]) : "has no label"));
printf(" Directory of A:\\\n \n");
for (var iFile = 0; iFile < aMatchFiles.length; iFile++) {
var sFile = aMatchFiles[iFile];
var matchSize = sFile.match(/size="([0-9]*)"/);
var matchTime = sFile.match(/time="([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9]) ([0-9][0-9]):([0-9][0-9]):([0-9][0-9])"/);
var matchFileName = sFile.match(/>(.*?)</);
if (!matchSize || !matchTime || !matchFileName) {
println("warning: file entry #" + iFile + " incomplete");
printf("warning: file entry #%d incomplete\n", iFile);
return;
}
/*
* Here's our template, from PC-DOS 2.00:
*
* COMMAND COM 17664 3-08-83 12:00p
*/
var sSize = matchSize[1];
var sTime = matchTime[1];
var sFileName = matchFileName[1].replace(/&amp;/g, "&");
Expand All @@ -93,12 +97,11 @@ function processManifest(sManifest)
sBaseName = sFileName.substr(0, i);
sExtension = sFileName.substr(i + 1);
}
sBaseName = (sBaseName + " ").substr(0, 9);
sExtension = (sExtension + " ").substr(0, 3);
sSize = (" " + sSize).slice(-9);
var iMonth = +matchTime[2];
var sDate = (" " + iMonth).slice(-4) + '-' + matchTime[3] + '-' + matchTime[1].substr(2);
var iDay = +matchTime[3];
var iYear = +matchTime[1] % 100;
var iHour = +matchTime[4];
var iMinute = +matchTime[5];
var sSuffix;
if (iHour < 12) {
sSuffix = "a";
Expand All @@ -108,11 +111,20 @@ function processManifest(sManifest)
sSuffix = "p";
if (iHour > 12) iHour -= 12;
}
var sTime = (" " + iHour).slice(-4) + ':' + matchTime[5] + sSuffix;
println("\t" + sBaseName + sExtension + sSize + sDate + sTime);
/*
* Here's our template, from PC-DOS 2.00:
*
* COMMAND COM 17664 3-08-83 12:00p
*/
printf(" %-8s %-3s %8s %2d-%02d-%02d %2d:%02d%s\n", sBaseName, sExtension, sSize, iMonth, iDay, iYear, iHour, iMinute, sSuffix);
}
println("");
printf("\n");
}
}

processManifest("../../../disks/pcx86/tools/microsoft/pascal/4.00/manifest.xml");
if (args.argc > 1) {
processManifest(args.argv[1]);
process.exit(0);
}

printf("usage: disklist <manifest>\n");
2 changes: 1 addition & 1 deletion modules/pc8080/lib/chipset.js
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@ class ChipSet8080 extends Component {
* setBinding(sHTMLType, sBinding, control, sValue)
*
* @this {ChipSet8080}
* @param {string|null} sHTMLType is the type of the HTML control (eg, "button", "list", "text", "submit", "textarea", "canvas")
* @param {string} sHTMLType is the type of the HTML control (eg, "button", "list", "text", "submit", "textarea", "canvas")
* @param {string} sBinding is the value of the 'binding' parameter stored in the HTML control's "data-value" attribute (eg, "sw1")
* @param {HTMLElement} control is the HTML control DOM object (eg, HTMLButtonElement)
* @param {string} [sValue] optional data value
Expand Down
2 changes: 1 addition & 1 deletion modules/pc8080/lib/computer.js
Original file line number Diff line number Diff line change
Expand Up @@ -1036,7 +1036,7 @@ class Computer8080 extends Component {
* setBinding(sHTMLType, sBinding, control, sValue)
*
* @this {Computer8080}
* @param {string|null} sHTMLType is the type of the HTML control (eg, "button", "list", "text", "submit", "textarea", "canvas")
* @param {string} sHTMLType is the type of the HTML control (eg, "button", "list", "text", "submit", "textarea", "canvas")
* @param {string} sBinding is the value of the 'binding' parameter stored in the HTML control's "data-value" attribute (eg, "reset")
* @param {HTMLElement} control is the HTML control DOM object (eg, HTMLButtonElement)
* @param {string} [sValue] optional data value
Expand Down
4 changes: 2 additions & 2 deletions modules/pc8080/lib/cpu.js
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,7 @@ class CPU8080 extends Component {

for (var i = 0; i < CPU8080.BUTTONS.length; i++) {
var control = this.bindings[CPU8080.BUTTONS[i]];
if (control) this.cmp.setBinding(null, CPU8080.BUTTONS[i], control);
if (control) this.cmp.setBinding("", CPU8080.BUTTONS[i], control);
}

/*
Expand Down Expand Up @@ -439,7 +439,7 @@ class CPU8080 extends Component {
* setBinding(sHTMLType, sBinding, control, sValue)
*
* @this {CPU8080}
* @param {string|null} sHTMLType is the type of the HTML control (eg, "button", "list", "text", "submit", "textarea", "canvas")
* @param {string} sHTMLType is the type of the HTML control (eg, "button", "list", "text", "submit", "textarea", "canvas")
* @param {string} sBinding is the value of the 'binding' parameter stored in the HTML control's "data-value" attribute (eg, "run")
* @param {HTMLElement} control is the HTML control DOM object (eg, HTMLButtonElement)
* @param {string} [sValue] optional data value
Expand Down
2 changes: 1 addition & 1 deletion modules/pc8080/lib/cpustate.js
Original file line number Diff line number Diff line change
Expand Up @@ -258,7 +258,7 @@ class CPUState8080 extends CPU8080 {
* setBinding(sHTMLType, sBinding, control, sValue)
*
* @this {CPUState8080}
* @param {string|null} sHTMLType is the type of the HTML control (eg, "button", "list", "text", "submit", "textarea", "canvas")
* @param {string} sHTMLType is the type of the HTML control (eg, "button", "list", "text", "submit", "textarea", "canvas")
* @param {string} sBinding is the value of the 'binding' parameter stored in the HTML control's "data-value" attribute (eg, "AX")
* @param {HTMLElement} control is the HTML control DOM object (eg, HTMLButtonElement)
* @param {string} [sValue] optional data value
Expand Down
2 changes: 1 addition & 1 deletion modules/pc8080/lib/debugger.js
Original file line number Diff line number Diff line change
Expand Up @@ -209,7 +209,7 @@ class Debugger8080 extends Debugger {
* setBinding(sHTMLType, sBinding, control, sValue)
*
* @this {Debugger8080}
* @param {string|null} sHTMLType is the type of the HTML control (eg, "button", "list", "text", "submit", "textarea", "canvas")
* @param {string} sHTMLType is the type of the HTML control (eg, "button", "list", "text", "submit", "textarea", "canvas")
* @param {string} sBinding is the value of the 'binding' parameter stored in the HTML control's "data-value" attribute (eg, "debugInput")
* @param {HTMLElement} control is the HTML control DOM object (eg, HTMLButtonElement)
* @param {string} [sValue] optional data value
Expand Down
2 changes: 1 addition & 1 deletion modules/pc8080/lib/keyboard.js
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ class Keyboard8080 extends Component {
* setBinding(sHTMLType, sBinding, control, sValue)
*
* @this {Keyboard8080}
* @param {string|null} sHTMLType is the type of the HTML control (eg, "button", "list", "text", "submit", "textarea", "canvas")
* @param {string} sHTMLType is the type of the HTML control (eg, "button", "list", "text", "submit", "textarea", "canvas")
* @param {string} sBinding is the value of the 'binding' parameter stored in the HTML control's "data-value" attribute (eg, "esc")
* @param {HTMLElement} control is the HTML control DOM object (eg, HTMLButtonElement)
* @param {string} [sValue] optional data value
Expand Down
2 changes: 1 addition & 1 deletion modules/pc8080/lib/panel.js
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ class Panel8080 extends Component {
* that doesn't recognize the specified binding should simply ignore it.
*
* @this {Panel8080}
* @param {string|null} sHTMLType is the type of the HTML control (eg, "button", "list", "text", "submit", "textarea", "canvas")
* @param {string} sHTMLType is the type of the HTML control (eg, "button", "list", "text", "submit", "textarea", "canvas")
* @param {string} sBinding is the value of the 'binding' parameter stored in the HTML control's "data-value" attribute (eg, "reset")
* @param {HTMLElement} control is the HTML control DOM object (eg, HTMLButtonElement)
* @param {string} [sValue] optional data value
Expand Down
4 changes: 2 additions & 2 deletions modules/pc8080/lib/serial.js
Original file line number Diff line number Diff line change
Expand Up @@ -174,7 +174,7 @@ class SerialPort8080 extends Component {
* setBinding(sHTMLType, sBinding, control, sValue)
*
* @this {SerialPort8080}
* @param {string|null} sHTMLType is the type of the HTML control (eg, "button", "list", "text", "submit", "textarea", "canvas")
* @param {string} sHTMLType is the type of the HTML control (eg, "button", "list", "text", "submit", "textarea", "canvas")
* @param {string} sBinding is the value of the 'binding' parameter stored in the HTML control's "data-value" attribute (eg, "buffer")
* @param {HTMLElement} control is the HTML control DOM object (eg, HTMLButtonElement)
* @param {string} [sValue] optional data value
Expand All @@ -184,7 +184,7 @@ class SerialPort8080 extends Component {
{
var serial = this;

if (sHTMLType == null || sHTMLType == "textarea") {
if (!sHTMLType || sHTMLType == "textarea") {

this.bindings[sBinding] = this.controlBuffer = control;

Expand Down
2 changes: 1 addition & 1 deletion modules/pc8080/lib/video.js
Original file line number Diff line number Diff line change
Expand Up @@ -342,7 +342,7 @@ class Video8080 extends Component {
* setBinding(sHTMLType, sBinding, control, sValue)
*
* @this {Video8080}
* @param {string|null} sHTMLType is the type of the HTML control (eg, "button", "list", "text", "submit", "textarea", "canvas")
* @param {string} sHTMLType is the type of the HTML control (eg, "button", "list", "text", "submit", "textarea", "canvas")
* @param {string} sBinding is the value of the 'binding' parameter stored in the HTML control's "data-value" attribute (eg, "refresh")
* @param {HTMLElement} control is the HTML control DOM object (eg, HTMLButtonElement)
* @param {string} [sValue] optional data value
Expand Down
2 changes: 1 addition & 1 deletion modules/pcx86/lib/chipset.js
Original file line number Diff line number Diff line change
Expand Up @@ -268,7 +268,7 @@ class ChipSet extends Component {
* setBinding(sHTMLType, sBinding, control, sValue)
*
* @this {ChipSet}
* @param {string|null} sHTMLType is the type of the HTML control (eg, "button", "list", "text", "submit", "textarea", "canvas")
* @param {string} sHTMLType is the type of the HTML control (eg, "button", "list", "text", "submit", "textarea", "canvas")
* @param {string} sBinding is the value of the 'binding' parameter stored in the HTML control's "data-value" attribute (eg, "sw1")
* @param {HTMLElement} control is the HTML control DOM object (eg, HTMLButtonElement)
* @param {string} [sValue] optional data value
Expand Down
Loading

0 comments on commit dc95b1d

Please sign in to comment.