Fixed machine array demos, by permitting machine IDs with hyphenated numeric suffixes to use a machine state file created with an unhyphenated machine ID, and added a demo of Windows 1.0 (the "Premiere Edition")
This commit is contained in:
parent
2f1ab7df40
commit
503cda40f7
27 changed files with 99 additions and 57 deletions
|
|
@ -4,13 +4,13 @@ title: IBM PC XT (Model 5160, 256Kb, 10Mb Drive) Machine Array with CGA Displays
|
|||
permalink: /devices/pcx86/machine/5160/cga/256kb/array/
|
||||
machines:
|
||||
- type: pcx86
|
||||
id: ibm5160a
|
||||
id: ibm5160-1
|
||||
- type: pcx86
|
||||
id: ibm5160b
|
||||
id: ibm5160-2
|
||||
---
|
||||
|
||||
IBM PC XT Machine Array with CGA Displays
|
||||
---
|
||||
-----------------------------------------
|
||||
|
||||
### Demonstration of Multiple IBM PCs on a Single Web Page
|
||||
|
||||
|
|
@ -18,6 +18,6 @@ The simulations below are identical PC XT configurations, each with a clock spee
|
|||
and a CGA display, using the original IBM PC Model 5160 ROM BIOS and CGA font ROM. Each also includes an
|
||||
empty/unformatted 10Mb hard disk. Use FDISK and then FORMAT to turn it into a usable C: drive.
|
||||
|
||||
{% include machine.html id="ibm5160a" %}
|
||||
{% include machine.html id="ibm5160-1" %}
|
||||
|
||||
{% include machine.html id="ibm5160b" %}
|
||||
{% include machine.html id="ibm5160-2" %}
|
||||
|
|
|
|||
|
|
@ -3,28 +3,36 @@ layout: page
|
|||
title: IBM PC XT (Model 5160, 256Kb, 10Mb Drive) Machine Array with EGA Displays
|
||||
permalink: /devices/pcx86/machine/5160/ega/640kb/array/
|
||||
machines:
|
||||
- type: pcx86
|
||||
id: ibm5160a
|
||||
- type: pcx86
|
||||
id: ibm5160b
|
||||
- type: pcx86
|
||||
id: ibm5160c
|
||||
- type: pcx86
|
||||
id: ibm5160d
|
||||
- id: ibm5160-ega-win101-1
|
||||
type: pcx86
|
||||
state: /disks/pcx86/windows/1.01/state.json
|
||||
drives: '[{name:"10Mb Hard Disk",type:3,path:"/disks/pcx86/fixed/10mb/PCDOS200-WIN101-EGA.json"}]'
|
||||
- id: ibm5160-ega-win101-2
|
||||
type: pcx86
|
||||
state: /disks/pcx86/windows/1.01/state.json
|
||||
drives: '[{name:"10Mb Hard Disk",type:3,path:"/disks/pcx86/fixed/10mb/PCDOS200-WIN101-EGA.json"}]'
|
||||
- id: ibm5160-ega-win101-3
|
||||
type: pcx86
|
||||
state: /disks/pcx86/windows/1.01/state.json
|
||||
drives: '[{name:"10Mb Hard Disk",type:3,path:"/disks/pcx86/fixed/10mb/PCDOS200-WIN101-EGA.json"}]'
|
||||
- id: ibm5160-ega-win101-4
|
||||
type: pcx86
|
||||
state: /disks/pcx86/windows/1.01/state.json
|
||||
drives: '[{name:"10Mb Hard Disk",type:3,path:"/disks/pcx86/fixed/10mb/PCDOS200-WIN101-EGA.json"}]'
|
||||
---
|
||||
|
||||
IBM PC XT Machine Array with EGA Displays
|
||||
---
|
||||
-----------------------------------------
|
||||
|
||||
### Demonstration of Multiple IBM PCs on a Single Web Page
|
||||
|
||||
The simulations below are identical PC XT configurations, each with a clock speed of 4.77Mhz, 640Kb of RAM,
|
||||
and a 128Kb EGA connected to an Enhanced Color Display, using the original IBM EGA BIOS.
|
||||
|
||||
{% include machine.html id="ibm5160a" %}
|
||||
{% include machine.html id="ibm5160-ega-win101-1" %}
|
||||
|
||||
{% include machine.html id="ibm5160b" %}
|
||||
{% include machine.html id="ibm5160-ega-win101-2" %}
|
||||
|
||||
{% include machine.html id="ibm5160c" %}
|
||||
{% include machine.html id="ibm5160-ega-win101-3" %}
|
||||
|
||||
{% include machine.html id="ibm5160d" %}
|
||||
{% include machine.html id="ibm5160-ega-win101-4" %}
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
<?xml-stylesheet type="text/xsl" href="/versions/pcx86/1.35.1/machine.xsl"?>
|
||||
<machine id="ibm5160" type="pcx86" border="1" width="680px" float="left" background="default">
|
||||
<name pos="center">IBM PC XT, 128K EGA, 640K RAM, 10Mb Hard Disk</name>
|
||||
<computer id="xt-ega-640k" name="IBM PC XT" state="/disks/pcx86/windows/1.01/ibm5160-ega.json"/>
|
||||
<computer id="xt-ega-640k" name="IBM PC XT"/>
|
||||
<ram id="ramLow" addr="0x00000" test="false" size="0xa0000" comment="0xa0000 (640Kb) size overrides SW1|ROM BIOS memory test has been disabled"/>
|
||||
<rom id="romHDC" addr="0xc8000" size="0x2000" file="/devices/pcx86/hdc/ibm-xebec-1982.json"/>
|
||||
<rom id="romBASIC" addr="0xf6000" size="0x8000" file="/devices/pcx86/rom/5160/basic/BASIC110.json"/>
|
||||
|
|
@ -14,7 +14,7 @@
|
|||
<control type="button" binding="setSpeed">Fast</control>
|
||||
</cpu>
|
||||
<chipset id="chipset" model="5160" sw1="01001101"/>
|
||||
<hdc ref="/disks/pcx86/fixed/10mb/pcdos200-win101-ega.xml"/>
|
||||
<hdc ref="/disks/pcx86/fixed/10mb/unformatted.xml"/>
|
||||
<serial id="com2" adapter="2"/>
|
||||
<mouse serial="com2"/>
|
||||
</machine>
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@
|
|||
<control type="switches" label="SW1" binding="sw1" left="0px"/>
|
||||
<control type="description" binding="swdesc" left="0px"/>
|
||||
</chipset>
|
||||
<hdc ref="/disks/pcx86/fixed/10mb/pcdos200-win101-ega.xml"/>
|
||||
<hdc ref="/disks/pcx86/fixed/10mb/unformatted.xml"/>
|
||||
<serial id="com1" adapter="1" binding="print"/>
|
||||
<serial id="com2" adapter="2"/>
|
||||
<mouse serial="com2"/>
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@
|
|||
<fdc ref="/disks/pcx86/compiled/library.xml"/>
|
||||
<keyboard ref="/devices/pcx86/keyboard/us83-buttons-functions.xml"/>
|
||||
<chipset id="chipset" model="5160" sw1="01001101"/>
|
||||
<hdc id="hdcXT" drives='[{name:"10Mb Hard Disk",type:3}]'/>
|
||||
<hdc ref="/disks/pcx86/fixed/10mb/unformatted.xml"/>
|
||||
<serial id="com2" adapter="2"/>
|
||||
<mouse serial="com2"/>
|
||||
</machine>
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ permalink: /disks/pcx86/dos/ibm/3.00/
|
|||
---
|
||||
|
||||
PC-DOS 3.00
|
||||
---
|
||||
-----------
|
||||
|
||||
PC-DOS 3.00 was announced on August 14, 1984 and released in September 1984.
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ permalink: /disks/pcx86/dos/ibm/3.10/
|
|||
---
|
||||
|
||||
PC-DOS 3.10
|
||||
---
|
||||
-----------
|
||||
|
||||
PC-DOS 3.10 was announced on August 14, 1984 (along with [PC-DOS 3.00](/disks/pcx86/dos/ibm/3.00/)) and released
|
||||
on April 2, 1985.
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ permalink: /disks/pcx86/dos/ibm/3.20/
|
|||
---
|
||||
|
||||
PC-DOS 3.20
|
||||
---
|
||||
-----------
|
||||
|
||||
PC-DOS 3.20 was first announced on March 18, 1986 and released later that year.
|
||||
|
||||
|
|
|
|||
1
disks/pcx86/fixed/10mb/PCDOS310-WIN100-EGA.json
Normal file
1
disks/pcx86/fixed/10mb/PCDOS310-WIN100-EGA.json
Normal file
File diff suppressed because one or more lines are too long
|
|
@ -5,11 +5,11 @@ permalink: /disks/pcx86/fixed/10mb/
|
|||
---
|
||||
|
||||
10Mb Hard Drive (Fixed Disk) Images
|
||||
---
|
||||
-----------------------------------
|
||||
|
||||
This folder contains the following 10Mb fixed disk images:
|
||||
|
||||
* [Empty formatted disk](PCDOS200-EMPTY.json)
|
||||
* [Empty formatted disk](PCDOS200-EMPTY.json) ([XML](pcdos200-empty.xml))
|
||||
* [PC-DOS 2.00 with Windows 1.01 for CGA](PCDOS200-WIN101-CGA.json) ([XML](pcdos200-win101-cga.xml))
|
||||
* [PC-DOS 2.00 with Windows 1.01 for EGA](PCDOS200-WIN101-EGA.json) ([XML](pcdos200-win101-ega.xml))
|
||||
|
||||
|
|
@ -28,10 +28,10 @@ or by reference:
|
|||
|
||||
### Notes Regarding 10Mb Disks
|
||||
|
||||
The [Empty formatted disk](PCDOS200-EMPTY.json) is *completely* empty. It was partitioned with the PC-DOS 2.00 **FDISK** utility,
|
||||
allocating the entire disk to a single DOS partition, and then it was formatted with the PC-DOS 2.00 **FORMAT** utility.
|
||||
Neither the **FORMAT** "/S" option nor the **SYS** command were used, so no system files were transferred, leaving
|
||||
the disk completely empty and non-bootable.
|
||||
The [Empty formatted disk](PCDOS200-EMPTY.json) is *completely* empty. It was partitioned with the PC-DOS 2.00
|
||||
**FDISK** utility, allocating the entire disk to a single DOS partition, and then it was formatted with the PC-DOS 2.00
|
||||
**FORMAT** utility. Neither the **FORMAT** "/S" option nor the **SYS** command were used, so no system files were
|
||||
transferred, leaving the disk completely empty and non-bootable.
|
||||
|
||||
After formatting, PC-DOS 2.00 reports:
|
||||
|
||||
|
|
@ -75,7 +75,7 @@ is not allowed, another 2 sectors are lost, bringing the total FAT file system o
|
|||
Thus, actual free space is (20739 - 51) * 512, or 10,592,256 bytes, which is exactly what DOS reports as the available
|
||||
space.
|
||||
|
||||
Some sources on the internet (eg, [http://www.wikiwand.com/en/Timeline_of_DOS_operating_systems](http://www.wikiwand.com/en/Timeline_of_DOS_operating_systems))
|
||||
Some sources on the internet (eg,[http://www.wikiwand.com/en/Timeline_of_DOS_operating_systems](http://www.wikiwand.com/en/Timeline_of_DOS_operating_systems))
|
||||
claim that the FAT file system overhead for the XT's 10Mb disk is "50 sectors". As they explain:
|
||||
|
||||
"The fixed disk has 10,618,880 bytes of raw space: 305 cylinders (the equivalent of tracks) × 2 platters
|
||||
|
|
|
|||
4
disks/pcx86/fixed/10mb/pcdos200-empty.xml
Normal file
4
disks/pcx86/fixed/10mb/pcdos200-empty.xml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<hdc id="hdcXT" drives='[{name:"10Mb Hard Disk",type:3,path:"/disks/pcx86/fixed/10mb/PCDOS200-EMPTY.json"}]' padLeft="8px" padBottom="8px">
|
||||
<control type="button" binding="saveHD0">Save HD</control>
|
||||
</hdc>
|
||||
|
|
@ -1,2 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<hdc id="hdcXT" drives='[{name:"10Mb Hard Drive",path:"/disks/pcx86/fixed/10mb/PCDOS200-WIN101-CGA.json",type:3}]'/>
|
||||
<hdc id="hdcXT" drives='[{name:"10Mb Hard Disk",type:3,path:"/disks/pcx86/fixed/10mb/PCDOS200-WIN101-CGA.json"}]' padLeft="8px" padBottom="8px">
|
||||
<control type="button" binding="saveHD0">Save HD</control>
|
||||
</hdc>
|
||||
|
|
|
|||
|
|
@ -1,2 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<hdc id="hdcXT" drives='[{name:"10Mb Hard Drive",path:"/disks/pcx86/fixed/10mb/PCDOS200-WIN101-EGA.json",type:3}]'/>
|
||||
<hdc id="hdcXT" drives='[{name:"10Mb Hard Disk",type:3,path:"/disks/pcx86/fixed/10mb/PCDOS200-WIN101-EGA.json"}]' padLeft="8px" padBottom="8px">
|
||||
<control type="button" binding="saveHD0">Save HD</control>
|
||||
</hdc>
|
||||
|
|
|
|||
4
disks/pcx86/fixed/10mb/unformatted.xml
Normal file
4
disks/pcx86/fixed/10mb/unformatted.xml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<hdc id="hdcXT" drives='[{name:"10Mb Hard Disk",type:3}]' padLeft="8px" padBottom="8px">
|
||||
<control type="button" binding="saveHD0">Save HD</control>
|
||||
</hdc>
|
||||
|
|
@ -5,7 +5,7 @@ permalink: /disks/pcx86/fixed/20mb/
|
|||
---
|
||||
|
||||
20Mb Hard Drive (Fixed Disk) Images
|
||||
---
|
||||
-----------------------------------
|
||||
|
||||
This folder contains the following 20Mb disk images:
|
||||
|
||||
|
|
|
|||
|
|
@ -1,16 +1,28 @@
|
|||
---
|
||||
layout: page
|
||||
title: Microsoft Windows 1.00
|
||||
title: Microsoft Windows 1.0
|
||||
permalink: /disks/pcx86/windows/1.00/
|
||||
machines:
|
||||
- id: ibm5160-ega-win100
|
||||
type: pcx86
|
||||
state: /disks/pcx86/windows/1.00/state.json
|
||||
config: /devices/pcx86/machine/5160/ega/640kb/machine.xml
|
||||
drives: '[{name:"10Mb Hard Disk",type:3,path:"/disks/pcx86/fixed/10mb/PCDOS310-WIN100-EGA.json"}]'
|
||||
autoMount:
|
||||
A:
|
||||
path: /disks/pcx86/dos/ibm/3.10/PCDOS310-DISK1.json
|
||||
B:
|
||||
name: /disks/pcx86/dos/ibm/3.10/PCDOS310-DISK1.json
|
||||
---
|
||||
|
||||
Microsoft Windows 1.00 ("Premiere Edition")
|
||||
---
|
||||
Microsoft Windows 1.0 ("Premiere Edition")
|
||||
------------------------------------------
|
||||
|
||||
Windows 1.00 was not a public release. Microsoft released these disks (dubbed the "Premiere Edition") to selected
|
||||
vendors, analysts, and members of the press in Summer 1985 to obtain feedback on the product.
|
||||
Windows 1.0 was not a public release. Microsoft released these disks (dubbed the "Premiere Edition") to selected
|
||||
vendors, analysts, and members of the press in Summer 1985 to obtain feedback on the product. [Windows 1.01](../1.01/)
|
||||
was the first public release.
|
||||
|
||||
[Windows 1.01](../1.01/) was the first public release.
|
||||
{% include machine.html id="ibm5160-ega-win100" %}
|
||||
|
||||
Directory listings of the four 360Kb distribution diskettes are provided below.
|
||||
|
||||
|
|
|
|||
1
disks/pcx86/windows/1.00/state.json
Normal file
1
disks/pcx86/windows/1.00/state.json
Normal file
File diff suppressed because one or more lines are too long
|
|
@ -9,7 +9,7 @@ Microsoft Windows
|
|||
|
||||
Information is available for assorted versions of Microsoft Windows:
|
||||
|
||||
* [Microsoft Windows 1.00](/disks/pcx86/windows/1.00/)
|
||||
* [Microsoft Windows 1.00 (Demo)](/disks/pcx86/windows/1.00/)
|
||||
* [Microsoft Windows 1.01 (Demo)](/disks/pcx86/windows/1.01/)
|
||||
* [Microsoft Windows 1.02](/disks/pcx86/windows/1.02/)
|
||||
* [Microsoft Windows 1.03](/disks/pcx86/windows/1.03/)
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -2686,11 +2686,15 @@ DiskDump.prototype.convertToJSON = function()
|
|||
var bMediaTypeBPB = this.bufDisk.readUInt8(offBootSector + DiskAPI.BPB.MEDIA_TYPE);
|
||||
var nSectorsTotalBPB = this.bufDisk.readUInt16LE(offBootSector + DiskAPI.BPB.TOTAL_SECS);
|
||||
var nSectorsPerCylinderBPB = nSectorsPerTrackBPB * nHeadsBPB;
|
||||
var nCylindersBPB = Math.floor(nSectorsTotalBPB / nSectorsPerCylinderBPB);
|
||||
var nSectorsHiddenBPB = this.bufDisk.readUInt16LE(offBootSector + DiskAPI.BPB.HIDDEN_SECS);
|
||||
var nCylindersBPB = (nSectorsHiddenBPB + nSectorsTotalBPB) / nSectorsPerCylinderBPB;
|
||||
|
||||
if (diskFormat) {
|
||||
if (nCylinders != nCylindersBPB) {
|
||||
DiskDump.logWarning("BPB cylinders (" + nCylindersBPB + ") do not match actual cylinders (" + nCylinders + ")");
|
||||
if (nCylinders - nCylindersBPB == 1) {
|
||||
DiskDump.logWarning("the BIOS may have reserved the last cylinder for diagnostics");
|
||||
}
|
||||
}
|
||||
if (nHeads != nHeadsBPB) {
|
||||
DiskDump.logWarning("BPB heads (" + nHeadsBPB + ") do not match actual heads (" + nHeads + ")");
|
||||
|
|
|
|||
|
|
@ -645,15 +645,17 @@ class Computer extends Component {
|
|||
if (!data) {
|
||||
/*
|
||||
* This is a hack that makes it possible for a machine whose ID has been
|
||||
* supplemented with a suffix (a single letter or digit) to find object IDs
|
||||
* in states created from a machine without the suffix.
|
||||
* supplemented with a hyphenated numeric suffix to find object IDs in states
|
||||
* created from a machine without such a suffix.
|
||||
*
|
||||
* For example, if a state file was created from a machine with ID "ibm5160"
|
||||
* but the current machine is "ibm5160a", this attempts a second lookup with
|
||||
* but the current machine is "ibm5160-1", this attempts a second lookup with
|
||||
* "ibm5160", enabling us to find objects that match the original machine ID
|
||||
* (eg, "ibm5160.romEGA").
|
||||
*
|
||||
* See /devices/pcx86/machine/5160/ega/640kb/array/ for examples of this.
|
||||
*/
|
||||
data = stateComputer.get(component.id.replace(/[a-z0-9]\./i, '.'));
|
||||
data = stateComputer.get(component.id.replace(/-[0-9]+\./i, '.'));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -74457,15 +74457,17 @@ class Computer extends Component {
|
|||
if (!data) {
|
||||
/*
|
||||
* This is a hack that makes it possible for a machine whose ID has been
|
||||
* supplemented with a suffix (a single letter or digit) to find object IDs
|
||||
* in states created from a machine without the suffix.
|
||||
* supplemented with a hyphenated numeric suffix to find object IDs in states
|
||||
* created from a machine without such a suffix.
|
||||
*
|
||||
* For example, if a state file was created from a machine with ID "ibm5160"
|
||||
* but the current machine is "ibm5160a", this attempts a second lookup with
|
||||
* but the current machine is "ibm5160-1", this attempts a second lookup with
|
||||
* "ibm5160", enabling us to find objects that match the original machine ID
|
||||
* (eg, "ibm5160.romEGA").
|
||||
*
|
||||
* See /devices/pcx86/machine/5160/ega/640kb/array/ for examples of this.
|
||||
*/
|
||||
data = stateComputer.get(component.id.replace(/[a-z0-9]\./i, '.'));
|
||||
data = stateComputer.get(component.id.replace(/-[0-9]+\./i, '.'));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Loading…
Reference in a new issue