Make "None" a special diskette entry (no longer required to be present in any disk manifest, although if it IS present, it will get sorted along with all the other disk entries)

This commit is contained in:
Jeff Parsons 2016-04-16 16:20:26 -07:00
commit af7f618821
24 changed files with 69 additions and 72 deletions

View file

@ -422,12 +422,13 @@ module.exports = function(grunt) {
var contentOrig = content;
var reManifest = /([ \t]*)<manifest.*? ref="(.*?)".*?\/>/g, matchManifest;
while ((matchManifest = reManifest.exec(contentOrig))) {
var sManifest = grunt.file.read(path.join('.', matchManifest[2]));
var sFile = matchManifest[2];
var sManifest = grunt.file.read(path.join('.', sFile));
if (!sManifest) continue;
var sDefaultName = "", match;
match = sManifest.match(/<title.*?>(.*?)<\/title>/);
if (match) {
sDefaultName = match[1];
sDefaultName += match[1];
match = sManifest.match(/<version.*?>(.*?)<\/version>/);
if (match) sDefaultName += ' ' + match[1];
}

View file

@ -13,6 +13,7 @@
<license href="http://www.bricklin.com/history/vclicense.htm">Lotus Development</license>
<machine href="/devices/pc/machine/5150/mda/64kb/machine.xml" state="/apps/pc/1981/visicalc/state.json"/>
<disk id="disk01" size="163840" chs="40:1:8" dir="archive/" href="/apps/pc/1981/visicalc/disk.json" md5="61494f998d5fb0e31e7b8bd99f1cc588" md5json="3ad82ed815725e6bd786f92a4714e84f">
<name>Demo: VisiCalc</name>
<file size="27520" time="1981-12-16 23:00:00" attr="0x20" md5="28997dfedb2440c6054d8be835be8634">VC.COM</file>
<file dir="../">README.md</file>
<link href="http://www.bricklin.com/history/vclicense.htm">VisiCalc License</link>

View file

@ -9,7 +9,7 @@
<releaseDate>1982</releaseDate>
<machine href="/devices/pc/machine/5160/mda/256kb/fake188/machine.xml" state="/apps/pc/1982/esuite/state.json"/>
<disk id="disk01" size="368640" chs="40:2:9" dir="archive/" href="/apps/pc/1982/esuite/disk.json" md5="7721a7bc9fcbd0005e7c1d87ecc055c5" md5json="dbf0a2c0176b8128d87e2465794764f4">
<name>Executive Suite (1982)</name>
<name>Demo: Executive Suite (1982)</name>
<file size="384" time="2000-02-29 08:04:48" attr="0x20" md5="3e638560a5f483cdbd1be486b07c767e">ESUITE.COM</file>
<file size="163840" time="2000-02-29 06:57:40" attr="0x20" md5="dcc72026cdc906109cf0e3b2d07ffd5d">GAME.DAT</file>
<link href="http://www.mobygames.com/game/executive-suite">MobyGames</link>

View file

@ -13,7 +13,7 @@
<author>Jon Lane</author>
<author>Michael Toy</author>
<disk id="disk01" size="163840" chs="40:1:8" dir="archive/" href="/apps/pc/1985/rogue/disk.json" md5="91fab29636a7517e17eaa38b30ff156a" md5json="c531e9f249b20adad667a3c376e427c8">
<name>Rogue (1985)</name>
<name>Demo: Rogue (1985)</name>
<file size="14016" time="1985-03-25 14:33:18" attr="0x20" md5="e8f7c7b97210f480c7b741a0d58951bd">MKOPT.EXE</file>
<file size="2616" time="1995-09-01 18:46:18" attr="0x20" md5="275fd64a3502af22b56e23934c79e9ef">ROGUE.COM</file>
<file size="71520" time="1986-05-30 12:55:50" attr="0x20" md5="11cc922975d21f9a32812ff6c5ed3430">ROGUE.EXE</file>

View file

@ -8,7 +8,7 @@
<company>Living Videotext</company>
<releaseDate>September 25, 1987</releaseDate>
<disk id="disk01" size="368640" chs="40:2:9" dir="archive/" href="/apps/pc/1987/thinktank/disk.json" md5="94053339672452fba42da85481893d68" md5json="bd39020bff244db9af3ac9eb656e7878">
<name>ThinkTank 2.41NP</name>
<name>Demo: ThinkTank 2.41NP</name>
<file size="6" time="2012-11-20 15:29:40" attr="0x20" md5="50b68f3f99eda119c661b2b50cb9f4de">AUTOEXEC.BAT</file>
<file size="8192" time="2012-11-20 15:29:35" attr="0x20" md5="3355afbc122700f13647ee0d1bbf9ed7">READ_ME.DB</file>
<file size="512" time="2012-11-20 15:29:31" attr="0x20" md5="8b989397eb275032eb8cf929def9c6cc">READ_ME.SAV</file>

View file

@ -15,7 +15,7 @@
<desc>MSDOS port</desc>
</author>
<disk id="disk01" size="1228800" chs="80:2:15" dir="archive/" href="/apps/pc/1988/moria/disk.json" md5="7bb84a7ac4e9b03e8cd1e6753b1359fb" md5json="7630122397a57af2d0c767141af3817c">
<name>Moria v4.872</name>
<name>Demo: Moria v4.872</name>
<file size="11143" time="1988-11-01 00:00:00" attr="0x20" md5="dae278b77133f32949d0e8940f944c0d">CONFIG.DOC</file>
<file size="91154" time="1991-06-01 14:50:02" attr="0x20" md5="66593e83a2aa3870d7a9e8b43079ce42">GOD</file>
<file size="91154" time="1991-06-01 15:13:50" attr="0x20" md5="4a7c6e2ddf649f9700786624aaa91199">MADNESS1</file>

View file

@ -93,7 +93,7 @@
<desc>Macintosh port for Think C</desc>
</contributor>
<disk id="disk01" size="368640" chs="40:2:9" dir="archive/bin/" href="/apps/pc/1992/moria/disk.json" md5="da0023280238bc2ee9053ad2b9548816" md5json="1473be159bb5f9001db31c06b3a366c1">
<name>Moria 5.5</name>
<name>Demo: Moria 5.5</name>
<file size="6074" time="1992-11-01 23:15:36" attr="0x20" md5="078aca44b845ee8a787a324c1e827200">EXP.DOC</file>
<file size="2560" time="1992-11-01 23:15:36" attr="0x20" md5="a5c8620efd0dc841956f9cdc2e46220a">MORIA.CNF</file>
<file size="49267" time="1992-11-01 23:15:36" attr="0x20" md5="32c9f15c70256f540f531675ad0e217f">MORIA1.TXT</file>

View file

@ -12,7 +12,6 @@
<fdc id="fdcNEC" pos="left" padleft="8px" padbottom="8px" automount='{A:{name:"PC-DOS 2.00 (Disk 1)",path:"/disks/pc/dos/ibm/2.00/PCDOS200-DISK1.json"}, B:{name:"Executive Suite (1982)",path:"/apps/pc/1982/esuite/disk.json"}}'>
<control type="list" binding="listDrives"/>
<control type="list" binding="listDisks">
<disk path="">None</disk>
<manifest ref="/disks/pc/dos/ibm/1.00/manifest.xml" disk="*"/>
<manifest ref="/disks/pc/dos/ibm/1.10/manifest.xml" disk="*"/>
<manifest ref="/disks/pc/dos/ibm/2.00/manifest.xml" disk="*"/>

View file

@ -11,7 +11,6 @@
<fdc id="fdcNEC" pos="left" padleft="8px" padbottom="8px" automount='{A:{name:"PC-DOS 2.00 (Disk 1)",path:"/disks/pc/dos/ibm/2.00/PCDOS200-DISK1.json"}, B:{name:"Executive Suite (1982)",path:"/apps/pc/1982/esuite/disk.json"}}'>
<control type="list" binding="listDrives"/>
<control type="list" binding="listDisks">
<disk path="">None</disk>
<manifest ref="/disks/pc/dos/ibm/1.00/manifest.xml" disk="*"/>
<manifest ref="/disks/pc/dos/ibm/1.10/manifest.xml" disk="*"/>
<manifest ref="/disks/pc/dos/ibm/2.00/manifest.xml" disk="*"/>

View file

@ -2,7 +2,6 @@
<fdc id="fdcNEC" automount='{A:{name:"PC-DOS 2.00 (Disk 1)",path:"/disks/pc/dos/ibm/2.00/PCDOS200-DISK1.json"}, B:{name:"PC-DOS 2.00 (Disk 2)",path:"/disks/pc/dos/ibm/2.00/PCDOS200-DISK2.json"}}' pos="left" padleft="8px" padbottom="8px">
<control type="list" binding="listDrives"/>
<control type="list" binding="listDisks">
<disk path="">None</disk>
<disk path="/disks/pc/empty/EMPTY-360K.json">Empty Diskette (360K)</disk>
<disk path="/disks/pc/empty/EMPTY-720K.json">Empty Diskette (720K)</disk>
<disk path="/disks/pc/empty/EMPTY-1200K.json">Empty Diskette (1.2M)</disk>
@ -503,11 +502,11 @@
<disk path="/disks/pc/games/id/wolf3d/1WOLF14.json">Wolfenstein 3D 1.4</disk>
<disk path="/disks/pc/games/microsoft/flightsim/1982/FLIGHTSIM-1982.json">MS Flight Simulator (1982)</disk>
<disk path="/disks/pc/games/microsoft/flightsim/1984/FLIGHTSIM-1984.json">MS Flight Simulator (1984)</disk>
<disk path="/apps/pc/1981/visicalc/disk.json">VisiCalc</disk>
<disk path="/apps/pc/1982/esuite/disk.json">Executive Suite (1982)</disk>
<disk path="/apps/pc/1985/rogue/disk.json">Rogue (1985)</disk>
<disk path="/apps/pc/1987/thinktank/disk.json">ThinkTank 2.41NP</disk>
<disk path="/apps/pc/1992/moria/disk.json">Moria 5.5</disk>
<disk path="/apps/pc/1981/visicalc/disk.json">Demo: VisiCalc</disk>
<disk path="/apps/pc/1982/esuite/disk.json">Demo: Executive Suite (1982)</disk>
<disk path="/apps/pc/1985/rogue/disk.json">Demo: Rogue (1985)</disk>
<disk path="/apps/pc/1987/thinktank/disk.json">Demo: ThinkTank 2.41NP</disk>
<disk path="/apps/pc/1992/moria/disk.json">Demo: Moria 5.5</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>

View file

@ -2,13 +2,12 @@
<fdc id="fdcNEC" automount='{A:{name:"PC-DOS 2.00 (Disk 1)",path:"/disks/pc/dos/ibm/2.00/PCDOS200-DISK1.json"}, B:{name:"PC-DOS 2.00 (Disk 2)",path:"/disks/pc/dos/ibm/2.00/PCDOS200-DISK2.json"}}' pos="left" padleft="8px" padbottom="8px">
<control type="list" binding="listDrives"/>
<control type="list" binding="listDisks">
<disk path="">None</disk>
<disk path="/disks/pc/dos/ibm/1.00/PCDOS100.json">PC-DOS 1.00</disk>
<disk path="/disks/pc/dos/ibm/1.10/PCDOS110.json">PC-DOS 1.10</disk>
<disk path="/disks/pc/dos/ibm/2.00/PCDOS200-DISK1.json">PC-DOS 2.00 (Disk 1)</disk>
<disk path="/disks/pc/dos/ibm/2.00/PCDOS200-DISK2.json">PC-DOS 2.00 (Disk 2)</disk>
<disk path="/disks/pc/games/microsoft/adventure/ADVENTURE-1981.json">Microsoft Adventure</disk>
<disk path="/apps/pc/1981/visicalc/disk.json">VisiCalc</disk>
<disk path="/apps/pc/1981/visicalc/disk.json">Demo: VisiCalc</disk>
</control>
<control type="button" binding="loadDrive">Load</control>
<control type="button" binding="saveDrive" padright="8px">Save</control>

View file

@ -10,7 +10,6 @@
<fdc id="fdcNEC" automount='{A: {name: "CP/M-86 (Disk 1)", path: "/disks/pc/cpm/1.1b/CPM86-DISK1.json"}, B: {name: "CP/M-86 (Disk 2)", path: "/disks/pc/cpm/1.1b/CPM86-DISK2.json"}}' pos="right">
<control type="list" binding="listDrives"/>
<control type="list" binding="listDisks">
<disk path="">None</disk>
<manifest ref="/disks/pc/cpm/1.1b/manifest.xml" disk="*"/>
</control>
<control type="button" binding="loadDrive">Load</control>

View file

@ -2,7 +2,6 @@
<fdc id="fdcNEC" automount='{A: {name: "Zork I", path: "/disks/pc/games/infocom/zork1/ZORK1-READONLY.json"}}' padleft="8px" padbottom="8px" pos="left">
<control type="list" binding="listDrives"/>
<control type="list" binding="listDisks">
<disk path="">None</disk>
<manifest ref="/disks/pc/games/infocom/hhiker/manifest.xml" disk="*"/>
<manifest ref="/disks/pc/games/infocom/planet/manifest.xml" disk="*"/>
<manifest ref="/disks/pc/games/infocom/zork1/manifest.xml" disk="*"/>

View file

@ -2,7 +2,6 @@
<fdc id="fdcNEC" automount='{A:{name:"PC-DOS 2.00 (Disk 1)",path:"/disks/pc/dos/ibm/2.00/PCDOS200-DISK1.json"}, B:{name:"PC-DOS 2.00 (Disk 2)",path:"/disks/pc/dos/ibm/2.00/PCDOS200-DISK2.json"}}' pos="left" padleft="8px" padbottom="8px">
<control type="list" binding="listDrives"/>
<control type="list" binding="listDisks">
<disk path="">None</disk>
<manifest ref="/disks/pc/empty/manifest.xml"/>
<manifest ref="/disks/pc/cpm/1.1b/manifest.xml"/>
<manifest ref="/disks/pc/diags/ibm/manifest.xml"/>

View file

@ -2,7 +2,6 @@
<fdc id="fdcNEC" automount='{A:{name:"PC-DOS 2.00 (Disk 1)",path:"/disks/pc/dos/ibm/2.00/PCDOS200-DISK1.json"}, B:{name:"PC-DOS 2.00 (Disk 2)",path:"/disks/pc/dos/ibm/2.00/PCDOS200-DISK2.json"}}' pos="left" padleft="8px" padbottom="8px">
<control type="list" binding="listDrives"/>
<control type="list" binding="listDisks">
<disk path="">None</disk>
<manifest ref="/disks/pc/dos/ibm/1.00/manifest.xml"/>
<manifest ref="/disks/pc/dos/ibm/1.10/manifest.xml"/>
<manifest ref="/disks/pc/dos/ibm/2.00/manifest.xml"/>

View file

@ -2,7 +2,6 @@
<fdc id="fdcNEC" width="320px" pos="left" padtop="8px" automount='{A:{name:"PC-DOS 2.00 (Disk 1)",path:"/disks/pc/dos/ibm/2.00/PCDOS200-DISK1.json"}, B:{name:"PC-DOS 2.00 (Disk 2)",path:"/disks/pc/dos/ibm/2.00/PCDOS200-DISK2.json"}}'>
<control type="list" binding="listDrives"/>
<control type="list" binding="listDisks">
<disk path="">None</disk>
<manifest ref="/disks/pc/dos/ibm/2.00/manifest.xml" disk="*"/>
<disk path="/disks/pc/windows/1.01/01-SETUP/">Windows 1.01 (SETUP)</disk>
<disk path="/disks/pc/windows/1.01/02-BUILD/">Windows 1.01 (BUILD)</disk>

View file

@ -17,7 +17,6 @@
<control type="container">
<control type="list" binding="listDrives"/>
<control type="list" binding="listDisks">
<disk path="">None</disk>
<disk path="PCDOS100.json">PC-DOS 1.00</disk>
</control>
<control type="button" binding="loadDrive">Load</control>

View file

@ -56,7 +56,6 @@
<control type="container">
<control type="list" binding="listDrives"/>
<control type="list" binding="listDisks">
<disk path="">None</disk>
<disk path="PCDOS100.json">PC-DOS 1.00</disk>
<disk path="visicalc.json" href="http://www.bricklin.com/history/vclicense.htm" desc="VisiCalc License">VisiCalc</disk>
</control>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -655,6 +655,8 @@ FDC.prototype.initBus = function(cmp, bus, cpu, dbg)
bus.addPortInputTable(this, FDC.aPortInput);
bus.addPortOutputTable(this, FDC.aPortOutput);
this.addDiskette("None", "", true);
if (this.fLocalDisks) {
this.addDiskette("Local Disk", "?");
}
@ -1517,12 +1519,13 @@ FDC.prototype.doneLoadDiskette = function onFDCLoadNotify(drive, disk, sDiskette
};
/**
* addDiskette(sName, sPath)
* addDiskette(sName, sPath, fTop)
*
* @param {string} sName
* @param {string} sPath
* @param {boolean} [fTop] (default is bottom)
*/
FDC.prototype.addDiskette = function(sName, sPath)
FDC.prototype.addDiskette = function(sName, sPath, fTop)
{
var controlDisks = this.bindings["listDisks"];
if (controlDisks && controlDisks.options) {
@ -1532,8 +1535,12 @@ FDC.prototype.addDiskette = function(sName, sPath)
var controlOption = document.createElement("option");
controlOption.text = sName;
controlOption.value = sPath;
if (fTop && controlDisks.childNodes[0]) {
controlDisks.insertBefore(controlOption, controlDisks.childNodes[0]);
} else {
controlDisks.appendChild(controlOption);
}
}
};
/**

View file

@ -2,7 +2,6 @@
<fdc id="fdcNEC" automount='{A:{name:"PC-DOS 2.00 (Disk 1)",path:"/disks/pc/dos/ibm/2.00/PCDOS200-DISK1.json"}, B:{name:"BASIC Programs",path:"/pubs/pc/programming/Graphics_for_the_IBM_PC/programs/disk.json"}}' pos="left" padleft="8px" padbottom="8px">
<control type="list" binding="listDrives"/>
<control type="list" binding="listDisks">
<disk path="">None</disk>
<manifest ref="/disks/pc/dos/ibm/1.00/manifest.xml" disk="*"/>
<manifest ref="/disks/pc/dos/ibm/1.10/manifest.xml" disk="*"/>
<manifest ref="/disks/pc/dos/ibm/2.00/manifest.xml" disk="*"/>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long