From f1115aa8f458702c7abba85a8b945708ee085d4e Mon Sep 17 00:00:00 2001 From: Jeff Parsons Date: Wed, 12 Nov 2014 16:01:40 -0800 Subject: [PATCH] Updated all machine 'video' elements to use new 'menu' element ('name' element is now deprecated) --- blog/2014/10/17/README.md | 22 +++++++++++-------- .../5150/cga/384kb/softkbd/machine.xml | 4 +++- .../5150/cga/64kb/donkey/debugger/machine.xml | 4 +++- .../machine/5150/cga/64kb/donkey/machine.xml | 4 +++- .../machine/5150/cga/64kb/softkbd/machine.xml | 4 +++- .../5150/mda/64kb/debugger/machine.xml | 4 +++- devices/pc/machine/5150/mda/64kb/machine.xml | 4 +++- .../machine/5150/mda/64kb/softkbd/machine.xml | 4 +++- .../machine/5160/cga/256kb/array/machine.xml | 4 +++- .../5160/cga/256kb/demo/debugger/machine.xml | 4 +++- .../machine/5160/cga/256kb/demo/machine.xml | 6 +++-- .../5160/cga/256kb/softkbd/machine.xml | 4 +++- .../cga/256kb/win101/debugger/machine.xml | 7 ++++-- .../machine/5160/cga/256kb/win101/machine.xml | 7 ++++-- .../5160/cga/256kb/win101/softkbd/machine.xml | 7 ++++-- .../5160/cga/512kb/win101/softkbd/machine.xml | 7 ++++-- .../5160/cga/640kb/debugger/machine.xml | 4 +++- .../5160/cga/640kb/dos400m/machine.xml | 9 +++++--- devices/pc/machine/5160/cga/640kb/machine.xml | 6 +++-- .../5160/ega/256kb/debugger/machine.xml | 6 +++-- .../machine/5160/ega/640kb/array/machine.xml | 7 ++++-- .../5160/ega/640kb/debugger/machine.xml | 9 +++++--- devices/pc/machine/5160/ega/640kb/machine.xml | 7 ++++-- .../mda/256kb/fake188/debugger/machine.xml | 4 +++- .../5160/mda/256kb/fake188/machine.xml | 4 +++- devices/pc/machine/5160/mda/256kb/machine.xml | 4 +++- .../machine/5160/mda/64kb/softkbd/machine.xml | 4 +++- .../machine/5170/ega/1152kb/rev1/machine.xml | 9 +++++--- .../machine/5170/ega/1152kb/rev3/machine.xml | 9 +++++--- .../machine/5170/ega/640kb/rev1/machine.xml | 9 +++++--- disks/pc/cpm/machine.xml | 4 +++- disks/pc/diags/ibm/2.20/machine.xml | 4 +++- disks/pc/games/infocom/machine-debug.xml | 4 +++- disks/pc/games/infocom/machine.xml | 4 +++- .../games/infocom/zork1/debugger/machine.xml | 6 +++-- .../pc/games/microsoft/adventure/machine.xml | 4 +++- modules/pcjs/lib/keyboard.js | 12 +++++----- 37 files changed, 155 insertions(+), 70 deletions(-) diff --git a/blog/2014/10/17/README.md b/blog/2014/10/17/README.md index e085c9456..5204028dd 100644 --- a/blog/2014/10/17/README.md +++ b/blog/2014/10/17/README.md @@ -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. diff --git a/devices/pc/machine/5150/cga/384kb/softkbd/machine.xml b/devices/pc/machine/5150/cga/384kb/softkbd/machine.xml index 71aeb6406..7c6947cf2 100644 --- a/devices/pc/machine/5150/cga/384kb/softkbd/machine.xml +++ b/devices/pc/machine/5150/cga/384kb/softkbd/machine.xml @@ -9,7 +9,9 @@ diff --git a/devices/pc/machine/5150/cga/64kb/donkey/debugger/machine.xml b/devices/pc/machine/5150/cga/64kb/donkey/debugger/machine.xml index 71812a304..8a78558cf 100644 --- a/devices/pc/machine/5150/cga/64kb/donkey/debugger/machine.xml +++ b/devices/pc/machine/5150/cga/64kb/donkey/debugger/machine.xml @@ -7,7 +7,9 @@ diff --git a/devices/pc/machine/5150/cga/64kb/donkey/machine.xml b/devices/pc/machine/5150/cga/64kb/donkey/machine.xml index a8c61b36e..d8e7c1feb 100644 --- a/devices/pc/machine/5150/cga/64kb/donkey/machine.xml +++ b/devices/pc/machine/5150/cga/64kb/donkey/machine.xml @@ -7,7 +7,9 @@ Run diff --git a/devices/pc/machine/5150/cga/64kb/softkbd/machine.xml b/devices/pc/machine/5150/cga/64kb/softkbd/machine.xml index e30770c8f..effa1d0c6 100644 --- a/devices/pc/machine/5150/cga/64kb/softkbd/machine.xml +++ b/devices/pc/machine/5150/cga/64kb/softkbd/machine.xml @@ -8,7 +8,9 @@ diff --git a/devices/pc/machine/5150/mda/64kb/debugger/machine.xml b/devices/pc/machine/5150/mda/64kb/debugger/machine.xml index 7745bff7a..d8f885231 100644 --- a/devices/pc/machine/5150/mda/64kb/debugger/machine.xml +++ b/devices/pc/machine/5150/mda/64kb/debugger/machine.xml @@ -7,7 +7,9 @@ diff --git a/devices/pc/machine/5150/mda/64kb/machine.xml b/devices/pc/machine/5150/mda/64kb/machine.xml index f9ef25227..114a9b025 100644 --- a/devices/pc/machine/5150/mda/64kb/machine.xml +++ b/devices/pc/machine/5150/mda/64kb/machine.xml @@ -7,7 +7,9 @@ Run diff --git a/devices/pc/machine/5150/mda/64kb/softkbd/machine.xml b/devices/pc/machine/5150/mda/64kb/softkbd/machine.xml index 6232e78b3..fbffa4c43 100644 --- a/devices/pc/machine/5150/mda/64kb/softkbd/machine.xml +++ b/devices/pc/machine/5150/mda/64kb/softkbd/machine.xml @@ -8,7 +8,9 @@ diff --git a/devices/pc/machine/5160/cga/256kb/array/machine.xml b/devices/pc/machine/5160/cga/256kb/array/machine.xml index ed981a5ea..3ba70a661 100644 --- a/devices/pc/machine/5160/cga/256kb/array/machine.xml +++ b/devices/pc/machine/5160/cga/256kb/array/machine.xml @@ -8,7 +8,9 @@ Run diff --git a/devices/pc/machine/5160/cga/256kb/demo/debugger/machine.xml b/devices/pc/machine/5160/cga/256kb/demo/debugger/machine.xml index bce5b4f2e..3e3f19c48 100644 --- a/devices/pc/machine/5160/cga/256kb/demo/debugger/machine.xml +++ b/devices/pc/machine/5160/cga/256kb/demo/debugger/machine.xml @@ -8,7 +8,9 @@ diff --git a/devices/pc/machine/5160/cga/256kb/demo/machine.xml b/devices/pc/machine/5160/cga/256kb/demo/machine.xml index 5bed17102..31df0b7ea 100644 --- a/devices/pc/machine/5160/cga/256kb/demo/machine.xml +++ b/devices/pc/machine/5160/cga/256kb/demo/machine.xml @@ -8,7 +8,9 @@ Run @@ -18,4 +20,4 @@ - \ No newline at end of file + diff --git a/devices/pc/machine/5160/cga/256kb/softkbd/machine.xml b/devices/pc/machine/5160/cga/256kb/softkbd/machine.xml index 455303108..d1b83a0b5 100644 --- a/devices/pc/machine/5160/cga/256kb/softkbd/machine.xml +++ b/devices/pc/machine/5160/cga/256kb/softkbd/machine.xml @@ -9,7 +9,9 @@ diff --git a/devices/pc/machine/5160/cga/256kb/win101/debugger/machine.xml b/devices/pc/machine/5160/cga/256kb/win101/debugger/machine.xml index ae0116740..ae5831016 100644 --- a/devices/pc/machine/5160/cga/256kb/win101/debugger/machine.xml +++ b/devices/pc/machine/5160/cga/256kb/win101/debugger/machine.xml @@ -7,8 +7,11 @@ -