From 7a2fd2ac14a32cbf9162c316027d977606a9d72e Mon Sep 17 00:00:00 2001 From: Jeff Parsons Date: Tue, 27 Jun 2017 10:29:57 -0700 Subject: [PATCH] More attempts to clean-up and reduce spurious alerts --- apps/README.md | 2 ++ apps/pcx86/README.md | 47 +---------------------------------- apps/pcx86/apps.md | 46 ++++++++++++++++++++++++++++++++++ modules/pcx86/lib/computer.js | 16 ++++++++++-- 4 files changed, 63 insertions(+), 48 deletions(-) create mode 100644 apps/pcx86/apps.md diff --git a/apps/README.md b/apps/README.md index 118123d58..6141796af 100644 --- a/apps/README.md +++ b/apps/README.md @@ -22,6 +22,8 @@ You can also browse our collection of archived disks: * [Challenger 1P Disk Library](/disks/c1p/) * [DEC Disk Library](/disks/dec/) +{% include_relative pcx86/apps.md %} + --- ### Software Application Manifests diff --git a/apps/pcx86/README.md b/apps/pcx86/README.md index 508abc9f3..101f3badf 100644 --- a/apps/pcx86/README.md +++ b/apps/pcx86/README.md @@ -4,52 +4,7 @@ title: IBM PC Application Demos permalink: /apps/pcx86/ --- -IBM PC Application Demos ------------------------- - -Below are selected [PCx86](/docs/about/pcx86/) demos of classic IBM PC applications. In many cases, -we've had to create our own "Demo Disks", because copies of the original distribution disks are difficult -to find, and in some cases (e.g., [Executive Suite](1982/esuite/)), the original disks were copy-protected, -so we've been forced to use a "cracked" copy of the software instead. - -A list of all the software available to PCx86 machines can be found in the [IBM PC Disk Library](/disks/pcx86/). - -### 1981 - -* [DONKEY.BAS](1981/donkey/) -* [Microsoft Adventure](/disks/pcx86/games/microsoft/adventure/) -* [VisiCalc](1981/visicalc/) - -### 1982 - -* [Executive Suite](1982/esuite/) -* [RatBas v2.13](1982/ratbas/) -* [Zork I](/disks/pcx86/games/infocom/zork1/) - -### 1983 - -* [Adventures in Math v1.00](1983/adventmath/) -* [Planetfall](/disks/pcx86/games/infocom/planet/) -* [SuperCalc2 v1.00](/disks/pcx86/apps/other/sc2/1.00/) -* [SuperCalc3 v1.00](/disks/pcx86/apps/other/sc3/1.00/) -* [Zork II](/disks/pcx86/games/infocom/zork2/) -* [Zork III](/disks/pcx86/games/infocom/zork3/) - -### 1984 - -* [The Hitchhiker's Guide to the Galaxy](/disks/pcx86/games/infocom/hhiker/) - -### 1985 - -* [Rogue](1985/rogue/) - -### 1987 - -* [ThinkTank v2.14](1987/thinktank/) - -### 1992 - -* [The Dungeons of Moria v5.5](1992/moria/) +{% include_relative apps.md %} --- diff --git a/apps/pcx86/apps.md b/apps/pcx86/apps.md new file mode 100644 index 000000000..17123b6f6 --- /dev/null +++ b/apps/pcx86/apps.md @@ -0,0 +1,46 @@ +IBM PC Application Demos +------------------------ + +Below are selected [PCx86](/docs/about/pcx86/) demos of classic IBM PC applications. In many cases, +we've had to create our own "Demo Disks", because copies of the original distribution disks are difficult +to find, and in some cases (e.g., [Executive Suite](/apps/pcx86/1982/esuite/)), the original disks were +copy-protected, so we've been forced to use a "cracked" copy of the software instead. + +A list of all the software available to PCx86 machines can be found in the [IBM PC Disk Library](/disks/pcx86/). + +### 1981 + +* [DONKEY.BAS](/apps/pcx86/1981/donkey/) +* [Microsoft Adventure](/disks/pcx86/games/microsoft/adventure/) +* [VisiCalc](/apps/pcx86/1981/visicalc/) + +### 1982 + +* [Executive Suite](/apps/pcx86/1982/esuite/) +* [RatBas v2.13](/apps/pcx86/1982/ratbas/) +* [Zork I](/disks/pcx86/games/infocom/zork1/) + +### 1983 + +* [Adventures in Math v1.00](/apps/pcx86/1983/adventmath/) +* [Planetfall](/disks/pcx86/games/infocom/planet/) +* [SuperCalc2 v1.00](/disks/pcx86/apps/other/sc2/1.00/) +* [SuperCalc3 v1.00](/disks/pcx86/apps/other/sc3/1.00/) +* [Zork II](/disks/pcx86/games/infocom/zork2/) +* [Zork III](/disks/pcx86/games/infocom/zork3/) + +### 1984 + +* [The Hitchhiker's Guide to the Galaxy](/disks/pcx86/games/infocom/hhiker/) + +### 1985 + +* [Rogue](/apps/pcx86/1985/rogue/) + +### 1987 + +* [ThinkTank v2.14](/apps/pcx86/1987/thinktank/) + +### 1992 + +* [The Dungeons of Moria v5.5](/apps/pcx86/1992/moria/) diff --git a/modules/pcx86/lib/computer.js b/modules/pcx86/lib/computer.js index 53da796cd..2a0b085a2 100644 --- a/modules/pcx86/lib/computer.js +++ b/modules/pcx86/lib/computer.js @@ -538,7 +538,7 @@ class Computer extends Component { this.stateFailSafe.store(); var fValidate = this.resume && !this.fServerState; - if (resume == Computer.RESUME_AUTO || Component.confirmUser("Click OK to restore the previous " + PCX86.APPNAME + " machine state, or CANCEL to reset the machine.")) { + if (resume == Computer.RESUME_AUTO || Component.confirmUser("Click OK to restore the previous " + PCX86.APPNAME + " machine state.")) { fRestore = stateComputer.parse(); if (fRestore) { var sCode = stateComputer.get(UserAPI.RES.CODE); @@ -810,6 +810,18 @@ class Computer extends Component { /** * powerReport(stateComputer) * + * TODO: Ever since I migrated the PCjs website from a Node-based web server on AWS to a GitHub Pages-based site, + * the sendReport() API has been a bit-bucket. To be honest though, even before that change, I never really had + * the time (or desire) to look through all the anonymous machine states that were being posted. Most of them were + * probably due to the user switching away from a page before it finished loading anyway, leaving the machine in + * an incomplete state. That said, there should be SOME automated way for people to share their machine states + * when there's a more serious problem -- not this misleading prompt. + * + * In the meantime, to help reduce those kind of useless alerts, there's the new 'unloading' flag. However, I'm + * not sure how reliably that's being set, so additionally, the default 'resume' setting (RESUME_AUTO) tries to be + * MUCH more automatic now; this function, for example, shouldn't even be called now when RESUME_AUTO is in effect. + * Another 'resume' setting (eg, RESUME_PROMPT) must be selected instead. + * * @this {Computer} * @param {State} stateComputer * @return {boolean} @@ -1364,7 +1376,7 @@ class Computer extends Component { * I used to bypass the prompt if this.resume == Computer.RESUME_AUTO, setting fSave to true automatically, * but that gives the user no means of resetting a resumable machine that contains errors in its resume state. */ - var fSave = (/* this.resume == Computer.RESUME_AUTO || */ this.flags.unloading || Component.confirmUser("Click OK to save changes to this " + PCX86.APPNAME + " machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.")); + var fSave = (/* this.resume == Computer.RESUME_AUTO || */ this.flags.unloading || !Component.confirmUser("Click OK to reset this " + PCX86.APPNAME + " machine and discard all disk modifications.")); this.powerOff(fSave, true); /* * Forcing the page to reload is an expedient option, but ugly. It's preferable to call powerOn()