Updated all machine 'video' elements to use new 'menu' element ('name' element is now deprecated)

This commit is contained in:
Jeff Parsons 2014-11-12 16:01:40 -08:00 committed by jeffpar
commit f1115aa8f4
37 changed files with 155 additions and 70 deletions

View file

@ -8,24 +8,28 @@ v1.15.5 of PCjs now, which includes the following fixes:
of the refresh bit in port 0x61 to bit 6 of the CPU cycle count (see *in8042RWReg()* in [chipset.js](/modules/pcjs/lib/chipset.js));
the original AT BIOS was satisfied with a refresh bit that merely alternated, whereas the new AT BIOS
is much more particular about the rate at which that bit changes, since many hard-coded delay-loops have
now been replaced with code that waits for a specific number of refresh cycles.
now been replaced with code that waits for a specific number of refresh cycles.
+ The 8042 Keyboard Controller emulation needed a few more tweaks, mainly with respect to what happens
when the keyboard's "clock" line is toggled (see *set8042CmdData()* in [chipset.js](/modules/pcjs/lib/chipset.js)).
+ The Floppy Disk Controller needed to add support for the "READ ID" command, in order for the BIOS
"double-stepping" test to work (double-stepping is required on an 80-track drive when attempting to read
a 40-track diskette).
+ The BIOS Diskette Reset function does something odd after resetting the Floppy Disk Controller: it
issues not one but *four* "SENSE INTERRUPT STATUS" commands to the FDC, and expects each response to
return an incrementally larger drive number. I found this a bit mystifying, considering that IBM's
own FDC/HDC "combo card" supports a maximum of *two* diskette drives. But, there's no point in arguing
own FDC/HDC "combo card" supports a maximum of *two* diskette drives. But, there's no point arguing
with a BIOS that's almost 30 years old.
+ The BIOS attempts to detect what its authors must have considered a common problem: failure to run SETUP
after installing a second hard drive. So, when the CMOS reports only one hard drive installed, the BIOS
probes for a second hard drive anyway, and it does so by simply writing the drive number to the ATC's "DRVHD"
register and then immediately reading the "STATUS" register, without issuing any intervening command.
+ The BIOS attempts to detect what its authors must have considered a common problem: the user's failure
to run SETUP after installing a second hard drive. So, when the CMOS reports only one hard drive installed,
the BIOS probes for a second hard drive anyway, and it does so by simply writing the drive number to the ATC's
"DRVHD" register and then immediately reading the "STATUS" register, without issuing any intervening command.
It was an easy fix to *outATCDrvHd()* in [hdc.js](/modules/pcjs/lib/hdc.js), but I was surprised
to discover that the ATC had this behavior, and now I'm wondering how many other I/O operations require
immediate "STATUS" register updates.
to discover that the ATC had this behavior, and now I'm wondering if there are any other I/O operations
that must immediately update the "STATUS" register.
This PCjs release also fixes a problem reported by a user: if you disable **localStorage** support in your
browser, previous versions of PCjs would fault. While every browser that supports PCjs also supports
@ -41,7 +45,7 @@ and a little annoying, because **localStorage** is *not* a **cookie**.
PCjs *never* sets any cookies. Cookies are bits of data that your browser saves and then automatically sends
off to the server every time you make a request. **localStorage** is nothing more than local storage; it is
*not* automatically sent anywhere. Granted, a JavaScript application could abuse it and send it around like a
*not* automatically sent anywhere. Granted, a JavaScript application could abuse it and send it out just like a
cookie, but PCjs does *not* do that; the only exception is when PCjs detects a problem, and even then, you must
first agree to submit your machine's state as part of the bug report.

View file

@ -9,7 +9,9 @@
<rom id="romBASIC" addr="0xf6000" size="0x8000" file="/devices/pc/basic/ibm-basic-1.00.json"/>
<rom id="romBIOS" addr="0xfe000" size="0x2000" file="/devices/pc/bios/5150/1981-04-24.json"/>
<video id="videoCGA" screenwidth="960" screenheight="400" scale="true" charset="/devices/pc/video/ibm-mda-cga.json" pos="center" width="960px" padding="8px">
<name>Color Display</name>
<menu>
<title>Color Display</title>
</menu>
</video>
<keyboard ref="/devices/pc/keyboard/us83.xml"/>
<panel ref="/devices/pc/panel/wide.xml"/>

View file

@ -7,7 +7,9 @@
<rom id="romBASIC" addr="0xf6000" size="0x8000" file="/devices/pc/basic/ibm-basic-1.00.json"/>
<rom id="romBIOS" addr="0xfe000" size="0x2000" file="/devices/pc/bios/5150/1981-04-24.json"/>
<video id="videoCGA" screenwidth="960" screenheight="400" scale="true" charset="/devices/pc/video/ibm-mda-cga.json" width="960px" padding="8px">
<name>Color Display</name>
<menu>
<title>Color Display</title>
</menu>
</video>
<cpu id="cpu8088" model="8088" autostart="true"/>
<keyboard ref="/devices/pc/keyboard/minimal.xml"/>

View file

@ -7,7 +7,9 @@
<rom id="romBASIC" addr="0xf6000" size="0x8000" file="/devices/pc/basic/ibm-basic-1.00.json"/>
<rom id="romBIOS" addr="0xfe000" size="0x2000" file="/devices/pc/bios/5150/1981-04-24.json"/>
<video id="videoCGA" screenwidth="960" screenheight="400" scale="true" charset="/devices/pc/video/ibm-mda-cga.json" width="960px" padding="8px">
<name>Color Display</name>
<menu>
<title>Color Display</title>
</menu>
</video>
<cpu id="cpu8088" model="8088" autostart="true" padleft="8px">
<control type="button" class="input" binding="run">Run</control>

View file

@ -8,7 +8,9 @@
<rom id="romBASIC" addr="0xf6000" size="0x8000" file="/devices/pc/basic/ibm-basic-1.00.json"/>
<rom id="romBIOS" addr="0xfe000" size="0x2000" file="/devices/pc/bios/5150/1981-04-24.json"/>
<video id="videoCGA" screenwidth="960" screenheight="400" scale="true" charset="/devices/pc/video/ibm-mda-cga.json" pos="center" width="960px" padding="8px">
<name>Color Display</name>
<menu>
<title>Color Display</title>
</menu>
</video>
<keyboard ref="/devices/pc/keyboard/us83.xml"/>
<debugger id="debugger"/>

View file

@ -7,7 +7,9 @@
<rom id="romBASIC" addr="0xf6000" size="0x8000" file="/devices/pc/basic/ibm-basic-1.00.json"/>
<rom id="romBIOS" addr="0xfe000" size="0x2000" file="/devices/pc/bios/5150/1981-04-24.json"/>
<video id="videoMDA" screenwidth="720" screenheight="350" scale="true" charset="/devices/pc/video/ibm-mda-cga.json" pos="center" padding="8px">
<name>Monochrome Display</name>
<menu>
<title>Monochrome Display</title>
</menu>
</video>
<cpu id="cpu8088" model="8088" autostart="true"/>
<keyboard ref="/devices/pc/keyboard/minimal-functions.xml"/>

View file

@ -7,7 +7,9 @@
<rom id="romBASIC" addr="0xf6000" size="0x8000" file="/devices/pc/basic/ibm-basic-1.00.json"/>
<rom id="romBIOS" addr="0xfe000" size="0x2000" file="/devices/pc/bios/5150/1981-04-24.json"/>
<video id="videoMDA" screenwidth="720" screenheight="350" scale="true" charset="/devices/pc/video/ibm-mda-cga.json" pos="center" padding="8px">
<name>Monochrome Display</name>
<menu>
<title>Monochrome Display</title>
</menu>
</video>
<cpu id="cpu8088" model="8088" autostart="true" padleft="8px">
<control type="button" class="input" binding="run">Run</control>

View file

@ -8,7 +8,9 @@
<rom id="romBASIC" addr="0xf6000" size="0x8000" file="/devices/pc/basic/ibm-basic-1.00.json"/>
<rom id="romBIOS" addr="0xfe000" size="0x2000" file="/devices/pc/bios/5150/1981-04-24.json"/>
<video id="videoMDA" screenwidth="720" screenheight="350" scale="true" charset="/devices/pc/video/ibm-mda-cga.json" pos="center" padding="8px">
<name>Monochrome Display</name>
<menu>
<title>Monochrome Display</title>
</menu>
</video>
<keyboard ref="/devices/pc/keyboard/us83.xml"/>
<debugger id="debugger"/>

View file

@ -8,7 +8,9 @@
<rom id="romBASIC" addr="0xf6000" size="0x8000" file="/devices/pc/basic/ibm-basic-1.10.json"/>
<rom id="romBIOS" addr="0xfe000" size="0x2000" file="/devices/pc/bios/5160/1982-11-08.json"/>
<video id="videoCGA" screenwidth="960" screenheight="400" scale="true" charset="/devices/pc/video/ibm-mda-cga.json" pos="center" width="960px" padding="8px">
<name>Color Display</name>
<menu>
<title>Color Display</title>
</menu>
</video>
<cpu id="cpu8088" model="8088" autostart="true" pos="left" padleft="8px">
<control type="button" class="input" binding="run">Run</control>

View file

@ -8,7 +8,9 @@
<rom id="romBASIC" addr="0xf6000" size="0x8000" file="/devices/pc/basic/ibm-basic-1.10.json"/>
<rom id="romBIOS" addr="0xfe000" size="0x2000" file="/devices/pc/bios/5160/1982-11-08.json"/>
<video id="videoCGA" screenwidth="960" screenheight="400" scale="true" charset="/devices/pc/video/ibm-mda-cga.json" pos="center" width="960px" padding="8px">
<name>Color Display</name>
<menu>
<title>Color Display</title>
</menu>
</video>
<cpu id="cpu8088" model="8088" autostart="true"/>
<keyboard ref="/devices/pc/keyboard/minimal-functions.xml"/>

View file

@ -8,7 +8,9 @@
<rom id="romBASIC" addr="0xf6000" size="0x8000" file="/devices/pc/basic/ibm-basic-1.10.json"/>
<rom id="romBIOS" addr="0xfe000" size="0x2000" file="/devices/pc/bios/5160/1982-11-08.json"/>
<video id="videoCGA" screenwidth="960" screenheight="400" scale="true" charset="/devices/pc/video/ibm-mda-cga.json" pos="center" width="960px" padding="8px">
<name>Color Display</name>
<menu>
<title>Color Display</title>
</menu>
</video>
<cpu id="cpu8088" model="8088" autostart="true" pos="left" padleft="8px">
<control type="button" class="input" binding="run">Run</control>
@ -18,4 +20,4 @@
<fdc ref="/disks/pc/samples.xml" pos="right"/>
<hdc id="hdcXT" drives='[{name:"10Mb Hard Disk",type:3}]'/>
<chipset id="chipset" model="5160" sw1="01001001"/>
</machine>
</machine>

View file

@ -9,7 +9,9 @@
<rom id="romBASIC" addr="0xf6000" size="0x8000" file="/devices/pc/basic/ibm-basic-1.10.json"/>
<rom id="romBIOS" addr="0xfe000" size="0x2000" file="/devices/pc/bios/5160/1982-11-08.json"/>
<video id="videoCGA" screenwidth="960" screenheight="400" scale="true" charset="/devices/pc/video/ibm-mda-cga.json" pos="center" width="960px" padding="8px">
<name>Color Display</name>
<menu>
<title>Color Display</title>
</menu>
</video>
<keyboard ref="/devices/pc/keyboard/us83.xml"/>
<debugger id="debugger"/>

View file

@ -7,8 +7,11 @@
<rom id="romHDC" addr="0xc8000" size="0x2000" file="/devices/pc/hdc/ibm-xebec-1982.json"/>
<rom id="romBASIC" addr="0xf6000" size="0x8000" file="/devices/pc/basic/ibm-basic-1.10.json"/>
<rom id="romBIOS" addr="0xfe000" size="0x2000" file="/devices/pc/bios/5160/1982-11-08.json"/>
<video id="videoCGA" screenwidth="960" screenheight="400" scale="true" charset="/devices/pc/video/ibm-mda-cga.json" width="960px" padding="8px">
<name>CGA Display</name>
<video id="videoCGA" screenwidth="960" screenheight="400" scale="true" autolock="true" charset="/devices/pc/video/ibm-mda-cga.json" width="960px" padding="8px">
<menu>
<title>Color Display</title>
<control type="button" class="input" binding="lockPointer" pos="right">Lock Pointer</control>
</menu>
</video>
<cpu id="cpu8088" model="8088" autostart="false"/>
<keyboard ref="/devices/pc/keyboard/minimal-functions.xml"/>

View file

@ -7,8 +7,11 @@
<rom id="romHDC" addr="0xc8000" size="0x2000" file="/devices/pc/hdc/ibm-xebec-1982.json"/>
<rom id="romBASIC" addr="0xf6000" size="0x8000" file="/devices/pc/basic/ibm-basic-1.10.json"/>
<rom id="romBIOS" addr="0xfe000" size="0x2000" file="/devices/pc/bios/5160/1982-11-08.json"/>
<video id="videoCGA" screenwidth="960" screenheight="400" scale="true" charset="/devices/pc/video/ibm-mda-cga.json" padding="8px">
<name>CGA Display</name>
<video id="videoCGA" screenwidth="960" screenheight="400" scale="true" autolock="true" charset="/devices/pc/video/ibm-mda-cga.json" padding="8px">
<menu>
<title>Color Display</title>
<control type="button" class="input" binding="lockPointer" pos="right">Lock Pointer</control>
</menu>
</video>
<cpu id="cpu8088" model="8088" autostart="true" pos="left" padleft="8px">
<control type="button" class="input" binding="run">Run</control>

View file

@ -8,8 +8,11 @@
<rom id="romHDC" addr="0xc8000" size="0x2000" file="/devices/pc/hdc/ibm-xebec-1982.json"/>
<rom id="romBASIC" addr="0xf6000" size="0x8000" file="/devices/pc/basic/ibm-basic-1.10.json"/>
<rom id="romBIOS" addr="0xfe000" size="0x2000" file="/devices/pc/bios/5160/1982-11-08.json"/>
<video id="videoCGA" screenwidth="960" screenheight="400" scale="true" charset="/devices/pc/video/ibm-mda-cga.json" pos="center" width="960px" padding="8px">
<name>Color Display</name>
<video id="videoCGA" screenwidth="960" screenheight="400" scale="true" autolock="true" charset="/devices/pc/video/ibm-mda-cga.json" pos="center" width="960px" padding="8px">
<menu>
<title>Color Display</title>
<control type="button" class="input" binding="lockPointer" pos="right">Lock Pointer</control>
</menu>
</video>
<keyboard ref="/devices/pc/keyboard/us83.xml"/>
<debugger id="debugger"/>

View file

@ -8,8 +8,11 @@
<rom id="romHDC" addr="0xc8000" size="0x2000" file="/devices/pc/hdc/ibm-xebec-1982.json"/>
<rom id="romBASIC" addr="0xf6000" size="0x8000" file="/devices/pc/basic/ibm-basic-1.10.json"/>
<rom id="romBIOS" addr="0xfe000" size="0x2000" file="/devices/pc/bios/5160/1982-11-08.json"/>
<video id="videoCGA" screenwidth="960" screenheight="400" scale="true" charset="/devices/pc/video/ibm-mda-cga.json" pos="center" width="960px" padding="8px">
<name>Color Display</name>
<video id="videoCGA" screenwidth="960" screenheight="400" scale="true" autolock="true" charset="/devices/pc/video/ibm-mda-cga.json" pos="center" width="960px" padding="8px">
<menu>
<title>Color Display</title>
<control type="button" class="input" binding="lockPointer" pos="right">Lock Pointer</control>
</menu>
</video>
<keyboard ref="/devices/pc/keyboard/us83.xml"/>
<debugger id="debugger"/>

View file

@ -8,7 +8,9 @@
<rom id="romBASIC" addr="0xf6000" size="0x8000" file="/devices/pc/basic/ibm-basic-1.10.json"/>
<rom id="romBIOS" addr="0xfe000" size="0x2000" file="/devices/pc/bios/5160/1982-11-08.json"/>
<video id="videoCGA" screenwidth="960" screenheight="400" scale="true" charset="/devices/pc/video/ibm-mda-cga.json" touchscreen="true" pos="center" width="960px" padding="8px">
<name>Color Display</name>
<menu>
<title>Color Display</title>
</menu>
</video>
<cpu id="cpu8088" model="8088" autostart="true"/>
<keyboard ref="/devices/pc/keyboard/minimal-f1-f10.xml"/>

View file

@ -8,13 +8,16 @@
<rom id="romHDC" addr="0xc8000" size="0x2000" file="/devices/pc/hdc/ibm-xebec-1982.json"/>
<rom id="romBASIC" addr="0xf6000" size="0x8000" file="/devices/pc/basic/ibm-basic-1.10.json"/>
<rom id="romBIOS" addr="0xfe000" size="0x2000" file="/devices/pc/bios/5160/1982-11-08.json"/>
<video id="videoCGA" screenwidth="960" screenheight="400" scale="true" fontrom="/devices/pc/video/ibm-mda-cga.json" pos="center" width="960px" padding="8px">
<name>Color Display</name>
<video id="videoCGA" screenwidth="960" screenheight="400" scale="true" autolock="true" fontrom="/devices/pc/video/ibm-mda-cga.json" pos="center" width="960px" padding="8px">
<menu>
<title>Color Display</title>
<control type="button" class="input" binding="lockPointer" pos="right">Lock Pointer</control>
</menu>
</video>
<keyboard ref="/devices/pc/keyboard/us83.xml"/>
<debugger id="debugger"/>
<panel ref="/devices/pc/panel/wide.xml"/>
<fdc ref="/disks/pc/library.xml" automount='{A:{name:"MS-DOS 4.0M (Disk 1)",path:"/disks/pc/dos/microsoft/4.0M/MSDOS400M-DISK1.json"}, B:{name:"MS-DOS 4.0M (Disk 2)",path:"/disks/pc/dos/microsoft/4.0M/MSDOS400M-DISK2.json"}}'/>
<fdc ref="/disks/pc/library.xml" width="320px" automount='{A:{name:"MS-DOS 4.0M (Disk 1)",path:"/disks/pc/dos/microsoft/4.0M/MSDOS400M-DISK1.json"}, B:{name:"MS-DOS 4.0M (Disk 2)",path:"/disks/pc/dos/microsoft/4.0M/MSDOS400M-DISK2.json"}}'/>
<chipset id="chipset" model="5160" sw1="01001001" pos="left" padleft="8px" padbottom="8px">
<control type="switches" class="input" label="SW1" binding="sw1" left="0px"/>
<control type="description" class="output" binding="swdesc" left="0px"/>

View file

@ -8,7 +8,9 @@
<rom id="romBASIC" addr="0xf6000" size="0x8000" file="/devices/pc/basic/ibm-basic-1.10.json"/>
<rom id="romBIOS" addr="0xfe000" size="0x2000" file="/devices/pc/bios/5160/1982-11-08.json"/>
<video id="videoCGA" screenwidth="960" screenheight="400" scale="true" charset="/devices/pc/video/ibm-mda-cga.json" touchscreen="true" pos="center" padding="8px">
<name>Color Display</name>
<menu>
<title>Color Display</title>
</menu>
</video>
<cpu id="cpu8088" model="8088" autostart="true" pos="left" padleft="8px">
<control type="button" class="input" binding="run">Run</control>
@ -18,4 +20,4 @@
<fdc ref="/disks/pc/library.xml" pos="right"/>
<hdc id="hdcXT" drives='[{name:"10Mb Hard Disk",type:3}]'/>
<chipset id="chipset" model="5160" sw1="01001001"/>
</machine>
</machine>

View file

@ -10,12 +10,14 @@
<rom id="romBASIC" addr="0xf6000" size="0x8000" file="/devices/pc/basic/ibm-basic-1.10.json"/>
<rom id="romBIOS" addr="0xfe000" size="0x2000" file="/devices/pc/bios/5160/1982-11-08.json"/>
<video id="videoEGA" model="ega" memory="0x10000" screenwidth="640" screenheight="350" pos="center" padding="8px">
<name>Enhanced Color Display</name>
<menu>
<title>Enhanced Color Display</title>
</menu>
</video>
<keyboard ref="/devices/pc/keyboard/minimal-functions.xml"/>
<debugger id="debugger"/>
<panel ref="/devices/pc/panel/wide.xml"/>
<fdc ref="/disks/pc/library.xml"/>
<fdc ref="/disks/pc/library.xml" width="320px"/>
<chipset id="chipset" model="5160" sw1="01001101" pos="left" padleft="8px" padbottom="8px">
<control type="switches" class="input" label="SW1" binding="sw1" left="0px"/>
<control type="description" class="output" binding="swdesc" left="0px"/>

View file

@ -8,8 +8,11 @@
<rom id="romHDC" addr="0xc8000" size="0x2000" file="/devices/pc/hdc/ibm-xebec-1982.json"/>
<rom id="romBASIC" addr="0xf6000" size="0x8000" file="/devices/pc/basic/ibm-basic-1.10.json"/>
<rom id="romBIOS" addr="0xfe000" size="0x2000" file="/devices/pc/bios/5160/1982-11-08.json"/>
<video id="videoEGA" model="ega" memory="0x20000" screenwidth="640" screenheight="350" width="640px" pos="center" padding="8px">
<name>Enhanced Color Display</name>
<video id="videoEGA" model="ega" memory="0x20000" screenwidth="640" screenheight="350" width="640px" autolock="true" pos="center" padding="8px">
<menu>
<title>Enhanced Color Display</title>
<control type="button" class="input" binding="lockPointer" pos="right">Lock Pointer</control>
</menu>
</video>
<keyboard ref="/devices/pc/keyboard/minimal.xml"/>
<cpu id="cpu8088" model="8088">

View file

@ -9,13 +9,16 @@
<rom id="romHDC" addr="0xc8000" size="0x2000" file="/devices/pc/hdc/ibm-xebec-1982.json"/>
<rom id="romBASIC" addr="0xf6000" size="0x8000" file="/devices/pc/basic/ibm-basic-1.10.json"/>
<rom id="romBIOS" addr="0xfe000" size="0x2000" file="/devices/pc/bios/5160/1982-11-08.json"/>
<video id="videoEGA" model="ega" memory="0x20000" screenwidth="640" screenheight="350" pos="center" padding="8px">
<name>Enhanced Color Display</name>
<video id="videoEGA" model="ega" memory="0x20000" screenwidth="640" screenheight="350" autolock="true" pos="center" padding="8px">
<menu>
<title>Enhanced Color Display</title>
<control type="button" class="input" binding="lockPointer" pos="right">Lock Pointer</control>
</menu>
</video>
<keyboard ref="/devices/pc/keyboard/minimal-functions.xml"/>
<debugger id="debugger"/>
<panel ref="/devices/pc/panel/wide.xml"/>
<fdc ref="/disks/pc/library.xml"/>
<fdc ref="/disks/pc/library.xml" width="320px"/>
<chipset id="chipset" model="5160" sw1="01001101" pos="left" padleft="8px" padbottom="8px">
<control type="switches" class="input" label="SW1" binding="sw1" left="0px"/>
<control type="description" class="output" binding="swdesc" left="0px"/>

View file

@ -9,8 +9,11 @@
<rom id="romHDC" addr="0xc8000" size="0x2000" file="/devices/pc/hdc/ibm-xebec-1982.json"/>
<rom id="romBASIC" addr="0xf6000" size="0x8000" file="/devices/pc/basic/ibm-basic-1.10.json"/>
<rom id="romBIOS" addr="0xfe000" size="0x2000" file="/devices/pc/bios/5160/1982-11-08.json"/>
<video id="videoEGA" model="ega" memory="0x20000" screenwidth="640" screenheight="350" pos="center" padding="8px">
<name>Enhanced Color Display</name>
<video id="videoEGA" model="ega" memory="0x20000" screenwidth="640" screenheight="350" autolock="true" pos="center" padding="8px">
<menu>
<title>Enhanced Color Display</title>
<control type="button" class="input" binding="lockPointer" pos="right">Lock Pointer</control>
</menu>
</video>
<keyboard ref="/devices/pc/keyboard/minimal-functions.xml"/>
<fdc ref="/disks/pc/library.xml"/>

View file

@ -9,7 +9,9 @@
<rom id="romBASIC" addr="0xf6000" size="0x8000" file="/devices/pc/basic/ibm-basic-1.10.json"/>
<rom id="romBIOS" addr="0xfe000" size="0x2000" file="/devices/pc/bios/5160/1982-11-08.json"/>
<video id="videoMDA" screenwidth="720" screenheight="350" scale="true" charset="/devices/pc/video/ibm-mda-cga.json" pos="center" width="720px" padding="8px">
<name>Monochrome Display</name>
<menu>
<title>Monochrome Display</title>
</menu>
</video>
<keyboard ref="/devices/pc/keyboard/minimal.xml"/>
<debugger id="debugger"/>

View file

@ -8,7 +8,9 @@
<rom id="romBASIC" addr="0xf6000" size="0x8000" file="/devices/pc/basic/ibm-basic-1.10.json"/>
<rom id="romBIOS" addr="0xfe000" size="0x2000" file="/devices/pc/bios/5160/1982-11-08.json"/>
<video id="videoMDA" screenwidth="720" screenheight="350" scale="true" charset="/devices/pc/video/ibm-mda-cga.json" pos="center" padding="8px">
<name>Monochrome Display</name>
<menu>
<title>Monochrome Display</title>
</menu>
</video>
<cpu id="cpu80188" model="80188" autostart="true" padleft="8px">
<control type="button" class="input" binding="run">Run</control>

View file

@ -9,7 +9,9 @@
<rom id="romBASIC" addr="0xf6000" size="0x8000" file="/devices/pc/basic/ibm-basic-1.10.json"/>
<rom id="romBIOS" addr="0xfe000" size="0x2000" file="/devices/pc/bios/5160/1982-11-08.json"/>
<video id="videoMDA" screenwidth="720" screenheight="350" scale="true" charset="/devices/pc/video/ibm-mda-cga.json" pos="center" width="720px" padding="8px">
<name>Monochrome Display</name>
<menu>
<title>Monochrome Display</title>
</menu>
</video>
<keyboard ref="/devices/pc/keyboard/minimal.xml"/>
<fdc ref="/disks/pc/samples.xml"/>

View file

@ -9,7 +9,9 @@
<rom id="romBASIC" addr="0xf6000" size="0x8000" file="/devices/pc/basic/ibm-basic-1.10.json"/>
<rom id="romBIOS" addr="0xfe000" size="0x2000" file="/devices/pc/bios/5160/1982-11-08.json"/>
<video id="videoMDA" screenwidth="720" screenheight="350" scale="true" charset="/devices/pc/video/ibm-mda-cga.json" pos="center" width="720px" padding="8px">
<name>Monochrome Display</name>
<menu>
<title>Monochrome Display</title>
</menu>
</video>
<keyboard ref="/devices/pc/keyboard/us83.xml"/>
<debugger id="debugger"/>

View file

@ -8,13 +8,16 @@
<ram id="ramExt" addr="0x100000" size="0x80000" comment=""/>
<rom id="romEGA" addr="0xc0000" size="0x4000" file="/devices/pc/video/ibm-ega.json" notify="videoEGA"/>
<rom id="romBIOS" addr="0xf0000" size="0x10000" alias="0xff0000" file="/devices/pc/bios/5170/1984-01-10.json"/>
<video id="videoEGA" model="ega" memory="0x20000" screenwidth="640" screenheight="350" pos="center" padding="8px">
<name>Enhanced Color Display</name>
<video id="videoEGA" model="ega" memory="0x20000" screenwidth="640" screenheight="350" autolock="true" pos="center" padding="8px">
<menu>
<title>Enhanced Color Display</title>
<control type="button" class="input" binding="lockPointer" pos="right">Lock Pointer</control>
</menu>
</video>
<keyboard ref="/devices/pc/keyboard/minimal-functions.xml"/>
<debugger id="debugger" messages="" commands=""/>
<panel ref="/devices/pc/panel/wide.xml"/>
<fdc ref="/disks/pc/library.xml" automount='{A: {name: "PC-DOS 3.00 (Disk 1)", path: "/disks/pc/dos/ibm/3.00/PCDOS300-DISK1.json"}, B: {name: "PC-DOS 3.00 (Disk 2)", path: "/disks/pc/dos/ibm/3.00/PCDOS300-DISK2.json"}}'/>
<fdc ref="/disks/pc/library.xml" width="320px" automount='{A: {name: "PC-DOS 3.00 (Disk 1)", path: "/disks/pc/dos/ibm/3.00/PCDOS300-DISK1.json"}, B: {name: "PC-DOS 3.00 (Disk 2)", path: "/disks/pc/dos/ibm/3.00/PCDOS300-DISK2.json"}}'/>
<hdc id="hdcAT" type="at" drives='[{name:"20Mb Hard Disk",type:2}]'/>
<chipset id="chipset" model="5170" floppies="[1200,1200]"/>
<serial id="com1" adapter="1" binding="print"/>

View file

@ -8,13 +8,16 @@
<ram id="ramExt" addr="0x100000" size="0x80000" comment=""/>
<rom id="romEGA" addr="0xc0000" size="0x4000" file="/devices/pc/video/ibm-ega.json" notify="videoEGA"/>
<rom id="romBIOS" addr="0xf0000" size="0x10000" alias="0xff0000" file="/devices/pc/bios/5170/1985-11-15.json"/>
<video id="videoEGA" model="ega" memory="0x20000" screenwidth="640" screenheight="350" pos="center" padding="8px">
<name>Enhanced Color Display</name>
<video id="videoEGA" model="ega" memory="0x20000" screenwidth="640" screenheight="350" autolock="true" pos="center" padding="8px">
<menu>
<title>Enhanced Color Display</title>
<control type="button" class="input" binding="lockPointer" pos="right">Lock Pointer</control>
</menu>
</video>
<keyboard ref="/devices/pc/keyboard/minimal-functions.xml"/>
<debugger id="debugger" messages="" commands=""/>
<panel ref="/devices/pc/panel/wide.xml"/>
<fdc ref="/disks/pc/library.xml" automount='{A: {name: "PC-DOS 3.20 (Disk 1)", path: "/disks/pc/dos/ibm/3.20/PCDOS320-DISK1.json"}, B: {name: "PC-DOS 3.20 (Disk 2)", path: "/disks/pc/dos/ibm/3.20/PCDOS320-DISK2.json"}}'/>
<fdc ref="/disks/pc/library.xml" width="320px" automount='{A: {name: "PC-DOS 3.20 (Disk 1)", path: "/disks/pc/dos/ibm/3.20/PCDOS320-DISK1.json"}, B: {name: "PC-DOS 3.20 (Disk 2)", path: "/disks/pc/dos/ibm/3.20/PCDOS320-DISK2.json"}}'/>
<hdc id="hdcAT" type="at" drives='[{name:"20Mb Hard Disk",type:2}]'/>
<chipset id="chipset" model="5170" floppies="[1440,1200]"/>
<serial id="com1" adapter="1" binding="print"/>

View file

@ -7,13 +7,16 @@
<ram id="ramLow" addr="0x00000" size="0xa0000"/>
<rom id="romEGA" addr="0xc0000" size="0x4000" file="/devices/pc/video/ibm-ega.json" notify="videoEGA"/>
<rom id="romBIOS" addr="0xf0000" size="0x10000" alias="0xff0000" file="/devices/pc/bios/5170/1984-01-10.json"/>
<video id="videoEGA" model="ega" memory="0x20000" screenwidth="640" screenheight="350" pos="center" padding="8px">
<name>Enhanced Color Display</name>
<video id="videoEGA" model="ega" memory="0x20000" screenwidth="640" screenheight="350" autolock="true" pos="center" padding="8px">
<menu>
<title>Enhanced Color Display</title>
<control type="button" class="input" binding="lockPointer" pos="right">Lock Pointer</control>
</menu>
</video>
<keyboard ref="/devices/pc/keyboard/minimal-functions.xml"/>
<debugger id="debugger" messages="" commands=""/>
<panel ref="/devices/pc/panel/wide.xml"/>
<fdc ref="/disks/pc/library.xml" automount='{A: {name: "PC-DOS 3.00 (Disk 1)", path: "/disks/pc/dos/ibm/3.00/PCDOS300-DISK1.json"}, B: {name: "PC-DOS 3.00 (Disk 2)", path: "/disks/pc/dos/ibm/3.00/PCDOS300-DISK2.json"}}'/>
<fdc ref="/disks/pc/library.xml" width="320px" automount='{A: {name: "PC-DOS 3.00 (Disk 1)", path: "/disks/pc/dos/ibm/3.00/PCDOS300-DISK1.json"}, B: {name: "PC-DOS 3.00 (Disk 2)", path: "/disks/pc/dos/ibm/3.00/PCDOS300-DISK2.json"}}'/>
<chipset id="chipset" model="5170" floppies="[1200,1200]"/>
<serial id="com1" adapter="1" binding="print"/>
<serial id="com2" adapter="2"/>

View file

@ -7,7 +7,9 @@
<rom id="romBASIC" addr="0xf6000" size="0x8000" file="/devices/pc/basic/ibm-basic-1.00.json"/>
<rom id="romBIOS" addr="0xfe000" size="0x2000" file="/devices/pc/bios/5150/1981-04-24.json"/>
<video id="videoMDA" screenwidth="720" screenheight="350" scale="true" charset="/devices/pc/video/ibm-mda-cga.json" padding="8px">
<name>Monochrome Display</name>
<menu>
<title>Monochrome Display</title>
</menu>
</video>
<cpu id="cpu8088" model="8088" autostart="true" pos="left" padleft="8px" padbottom="8px">
<control type="button" class="input" binding="run">Run</control>

View file

@ -7,7 +7,9 @@
<rom id="romBASIC" addr="0xf6000" size="0x8000" file="/devices/pc/basic/ibm-basic-1.00.json"/>
<rom id="romBIOS" addr="0xfe000" size="0x2000" file="/devices/pc/bios/5150/1981-04-24.json"/>
<video id="videoMDA" screenwidth="720" screenheight="350" scale="true" charset="/devices/pc/video/ibm-mda-cga.json" padding="8px">
<name>Monochrome Display</name>
<menu>
<title>Monochrome Display</title>
</menu>
</video>
<cpu id="cpu8088" model="8088" autostart="true" pos="left" padleft="8px" padbottom="8px">
<control type="button" class="input" binding="run">Run</control>

View file

@ -8,7 +8,9 @@
<rom id="romBASIC" addr="0xf6000" size="0x8000" file="/devices/pc/basic/ibm-basic-1.00.rom"/>
<rom id="romBIOS" addr="0xfe000" size="0x2000" file="/devices/pc/bios/5150/1981-04-24.rom"/>
<video id="videoCGA" screenwidth="960" screenheight="400" scale="true" charset="/devices/pc/video/ibm-mda-cga.rom" padding="8px">
<name>Color Display</name>
<menu>
<title>Color Display</title>
</menu>
</video>
<keyboard id="keyboard" pos="left" padleft="8px">
<control type="button" class="input" binding="esc">ESC</control>

View file

@ -7,7 +7,9 @@
<rom id="romBASIC" addr="0xf6000" size="0x8000" file="/devices/pc/basic/ibm-basic-1.00.json"/>
<rom id="romBIOS" addr="0xfe000" size="0x2000" file="/devices/pc/bios/5150/1981-04-24.json"/>
<video id="videoCGA" screenwidth="960" screenheight="400" scale="true" charset="/devices/pc/video/ibm-mda-cga.json" padding="8px">
<name>Color Display</name>
<menu>
<title>Color Display</title>
</menu>
</video>
<cpu id="cpu8088" model="8088" autostart="true" pos="left" padleft="8px" padbottom="8px">
<control type="button" class="input" binding="run">Run</control>

View file

@ -8,7 +8,9 @@
<rom id="romBASIC" addr="0xf6000" size="0x8000" file="/devices/pc/basic/ibm-basic-1.00.json"/>
<rom id="romBIOS" addr="0xfe000" size="0x2000" file="/devices/pc/bios/5150/1981-04-24.json"/>
<video id="videoCGA" screenwidth="960" screenheight="400" scale="true" charset="/devices/pc/video/ibm-mda-cga.json" padding="8px">
<name>Color Display</name>
<menu>
<title>Color Display</title>
</menu>
</video>
<keyboard id="keyboard" pos="left" padleft="8px">
<control type="button" class="input" binding="esc">ESC</control>
@ -18,7 +20,7 @@
<debugger id="debugger"/>
<panel ref="/devices/pc/panel/default.xml"/>
<fdc id="fdcNEC" automount='{A: {name: "Zork I", path: "/disks/pc/games/infocom/zork1/zork1-readonly.json"}}' pos="left" padleft="8px">
<control type="list" class="input" binding="listDrives"></control>
<control type="list" class="input" binding="listDrives"/>
<control type="list" class="input" binding="listDisks">
<disk path="">None</disk>
<manifest ref="/disks/pc/games/infocom/zork1/manifest.xml" disk="*"/>

View file

@ -7,7 +7,9 @@
<rom id="romBASIC" addr="0xf6000" size="0x8000" file="/devices/pc/basic/ibm-basic-1.00.json"/>
<rom id="romBIOS" addr="0xfe000" size="0x2000" file="/devices/pc/bios/5150/1981-04-24.json"/>
<video id="videoMDA" screenwidth="720" screenheight="350" scale="true" charset="/devices/pc/video/ibm-mda-cga.json" padding="8px">
<name>Monochrome Display</name>
<menu>
<title>Monochrome Display</title>
</menu>
</video>
<cpu id="cpu8088" model="8088" autostart="true" pos="left" padleft="8px">
<control type="button" class="input" binding="run">Run</control>

View file

@ -541,7 +541,7 @@ Keyboard.aSoftCodes = {
* keyUp events, in part because of differences in the way browsers generate the keyDown and keyUp events.
* For example, Safari on iOS devices will not generate up/down events for shift keys, and for other keys,
* the up/down events are usually generated after the actual press is complete, and in rapid succession,
* which doesn't always give the simulation enough time to detect the key.
* which doesn't always give a simulation (eg, C1Pjs) enough time to detect the key.
*
* The other problem (which is more of a problem with keyboards like the C1P than any IBM keyboards) is
* that the shift/modifier state for a character on the "source" keyboard may not match the shift/modifier
@ -697,12 +697,12 @@ Keyboard.aKeyCodes[Keyboard.KEYCODE.DEL + Keyboard.KEYCODE.ONDOWN] = Keyboard
Keyboard.aKeyCodes[Keyboard.KEYCODE.F11 + Keyboard.KEYCODE.ONDOWN] = Keyboard.SCANCODE.F11;
Keyboard.aKeyCodes[Keyboard.KEYCODE.F12 + Keyboard.KEYCODE.ONDOWN] = Keyboard.SCANCODE.F12;
Keyboard.aKeyCodes[Keyboard.KEYCODE.FAKE_CTRLC] = Keyboard.SCANCODE.C + (Keyboard.SCANCODE.CTRL << 8);
Keyboard.aKeyCodes[Keyboard.KEYCODE.FAKE_CTRLC] = Keyboard.SCANCODE.C | (Keyboard.SCANCODE.CTRL << 8);
Keyboard.aKeyCodes[Keyboard.KEYCODE.FAKE_CTRLBREAK] = Keyboard.SCANCODE.SCROLL_LOCK | (Keyboard.SCANCODE.CTRL << 8);
Keyboard.aKeyCodes[Keyboard.KEYCODE.FAKE_CTRLALTDEL] = Keyboard.SCANCODE.NUM_DEL + (Keyboard.SCANCODE.CTRL << 8) + (Keyboard.SCANCODE.ALT << 16);
Keyboard.aKeyCodes[Keyboard.KEYCODE.FAKE_CTRLALTDEL] = Keyboard.SCANCODE.NUM_DEL | (Keyboard.SCANCODE.CTRL << 8) | (Keyboard.SCANCODE.ALT << 16);
/**
* keySimulateUpOrDown() origin codes (useful only for debugging)
* keySimulateUpOrDown() codes (for diagnostic purposes only)
*
* @enum {number}
*/
@ -1108,9 +1108,9 @@ Keyboard.prototype.reset = function()
this.initState();
/*
* The physical (not virtual) state of various shift keys.
* The physical (not virtual) state of various shift/lock keys.
*
* TODO: Determine how (or whether) we can query the browser's initial key states.
* TODO: Determine how (or whether) we can query the browser's initial shift/lock key states.
*/
this.bitsShift = 0;