From b813385fd9eb1897a2f07a645a3d6027d098a743 Mon Sep 17 00:00:00 2001 From: Jeff Parsons Date: Sun, 9 Jul 2017 11:15:45 -0700 Subject: [PATCH 1/4] Updated 1-2-3 READMEs --- disks/pcx86/apps/lotus/123/1a/README.md | 4 ++-- disks/pcx86/apps/lotus/123/1as/README.md | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/disks/pcx86/apps/lotus/123/1a/README.md b/disks/pcx86/apps/lotus/123/1a/README.md index 9cc274e7a..2b643a7bb 100644 --- a/disks/pcx86/apps/lotus/123/1a/README.md +++ b/disks/pcx86/apps/lotus/123/1a/README.md @@ -16,8 +16,8 @@ Lotus 1-2-3 Release 1A ---------------------- This version of 1-2-3 is known as **Release 1A**, which differs from the later -[Release 1A*](/disks/pcx86/apps/lotus/123/1as/). This version contained files dated `6-07-83`, -whereas **Release 1A*** contained files dated `7-01-83`. +[Release 1A\*](/disks/pcx86/apps/lotus/123/1as/). This version contained files dated `6-07-83`, +whereas [Release 1A\*](/disks/pcx86/apps/lotus/123/1as/) contained files dated `7-01-83`. WARNING: These disk images are not originals. We've tried to recreate the System Disk as it was originally distributed (aside from the [Copy-Protection Patch](#copy-protection-patch)), but the other disks we've left as we found diff --git a/disks/pcx86/apps/lotus/123/1as/README.md b/disks/pcx86/apps/lotus/123/1as/README.md index d303e55a2..2f48bfd1d 100644 --- a/disks/pcx86/apps/lotus/123/1as/README.md +++ b/disks/pcx86/apps/lotus/123/1as/README.md @@ -17,9 +17,9 @@ machines: Lotus 1-2-3 Release 1A* ----------------------- -This version of 1-2-3 is known as **Release 1A***, which differs from the original -[Release 1A](/disks/pcx86/apps/lotus/123/1a/). **Release 1A** contained files dated `6-07-83`, -whereas this release contained files dated `7-01-83`. +This version of 1-2-3 is known as **Release 1A\***, which differs from the original +[Release 1A](/disks/pcx86/apps/lotus/123/1a/). This version contained files dated `7-01-83`, +whereas [Release 1A](/disks/pcx86/apps/lotus/123/1a/) contained files dated `6-07-83`. Unlike the [Release 1A](/disks/pcx86/apps/lotus/123/1a/) disks, these disk images are from the private PCjs disk collection, and (aside from the [Copy-Protection Patch](#copy-protection-patch)) we believe they are authentic copies @@ -151,7 +151,7 @@ of the original distribution disks. ### Copy-Protection Patch -The PCjs **Release 1A*** System disk does not include any copy-protection features. Instead, the disk contains a +The PCjs **Release 1A\*** System disk does not include any copy-protection features. Instead, the disk contains a patched copy of `123.EXE` which bypasses the usual copy-protection tests. The patch is described in the "unprotection" document [LOTUS.TXT](https://www.pcorner.com/list/UNP/UNPROT-1.ZIP/LOTUS.TXT/): @@ -189,5 +189,5 @@ When `DEBUG` is used to examine our `123.EXE`: This confirms that 1) `C3 (RET)` has been stored at the specified location, and 2) the remnants of a `MOV CX,0002` instruction still reside there. -WARNING: LOTUS apparently released other **1A*** `123.EXE` binaries, with the same size and date, but with rearranged +WARNING: LOTUS apparently released other **1A\*** `123.EXE` binaries, with the same size and date, but with rearranged contents. This may have been an attempt on their part to defeat a universal patch. From f5b8345c1bc12c26456bc8d482e8180027294b69 Mon Sep 17 00:00:00 2001 From: Jeff Parsons Date: Sun, 9 Jul 2017 11:22:09 -0700 Subject: [PATCH 2/4] Updated 1-2-3 READMEs --- disks/pcx86/apps/lotus/123/1a/README.md | 8 ++++---- disks/pcx86/apps/lotus/123/1as/README.md | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/disks/pcx86/apps/lotus/123/1a/README.md b/disks/pcx86/apps/lotus/123/1a/README.md index 2b643a7bb..ed8f9ab87 100644 --- a/disks/pcx86/apps/lotus/123/1a/README.md +++ b/disks/pcx86/apps/lotus/123/1a/README.md @@ -20,9 +20,9 @@ This version of 1-2-3 is known as **Release 1A**, which differs from the later whereas [Release 1A\*](/disks/pcx86/apps/lotus/123/1as/) contained files dated `7-01-83`. WARNING: These disk images are not originals. We've tried to recreate the System Disk as it was originally -distributed (aside from the [Copy-Protection Patch](#copy-protection-patch)), but the other disks we've left as we found -them: original Lotus 1-2-3 files dated `6-07-83` along with a mixture of PC-DOS 1.10 and PC-DOS 2.10 binaries (eg, -`COMMAND.COM`, `DISKCOPY.COM`, `DISKCOMP.COM`, etc.) +distributed (aside from the [Copy-Protection Patch](#copy-protection-patch)), but the other disks have been left +as we found them: original Lotus 1-2-3 files dated `6-07-83` along with a random mixture of PC-DOS 1.10 and +PC-DOS 2.10 binaries (eg, `COMMAND.COM`, `DISKCOPY.COM`, `DISKCOMP.COM`, etc.) {% include machine.html id="ibm5150-123-1a" %} @@ -179,7 +179,7 @@ of `123.EXE` which bypasses the usual copy-protection tests. The patch is descr 7. type Q 8. Rename 123.XYZ 123.EXE -The following hexdump confirms the precise location of the patch in the `123.EXE` binary: +The following hexdump `diff` confirms the precise differences between the original `123.EXE` and the patched copy: 2698c2698 < 0000aaa0 02 b0 01 1e 07 8d 1e 92 06 cd 13 80 fc 02 75 01 |..............u.| diff --git a/disks/pcx86/apps/lotus/123/1as/README.md b/disks/pcx86/apps/lotus/123/1as/README.md index 2f48bfd1d..8be2e3e23 100644 --- a/disks/pcx86/apps/lotus/123/1as/README.md +++ b/disks/pcx86/apps/lotus/123/1as/README.md @@ -22,7 +22,7 @@ This version of 1-2-3 is known as **Release 1A\***, which differs from the origi whereas [Release 1A](/disks/pcx86/apps/lotus/123/1a/) contained files dated `6-07-83`. Unlike the [Release 1A](/disks/pcx86/apps/lotus/123/1a/) disks, these disk images are from the private PCjs disk -collection, and (aside from the [Copy-Protection Patch](#copy-protection-patch)) we believe they are authentic copies +collection, and aside from the [Copy-Protection Patch](#copy-protection-patch), we believe they are authentic copies of the original distribution disks. {% include machine.html id="ibm5150-123-1as" %} From ff23ec1d95dbf8ee5fba2d49634d8145b363b606 Mon Sep 17 00:00:00 2001 From: Jeff Parsons Date: Sun, 9 Jul 2017 11:37:33 -0700 Subject: [PATCH 3/4] Updated shareware READMEs --- disks/pcx86/shareware/pcmag/README.md | 8 ++++---- disks/pcx86/shareware/pctj/README.md | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/disks/pcx86/shareware/pcmag/README.md b/disks/pcx86/shareware/pcmag/README.md index e60ff281f..fb30e6623 100644 --- a/disks/pcx86/shareware/pcmag/README.md +++ b/disks/pcx86/shareware/pcmag/README.md @@ -8,12 +8,12 @@ PC Magazine Disks ----------------- To build the following collection, we started with the ZIP archives at -"[THE PROGRAMMER'S CORNER BBS ARCHIVE FROM THE PAST](https://www.pcorner.com/list/MAG)". +"[THE PROGRAMMER'S CORNER: BBS ARCHIVE FROM THE PAST](https://www.pcorner.com/list/MAG)". We filtered out the duplicates, organized them chronologically, and then put their contents onto diskette -images that you can easily "Load" and "Save" in any PCjs machine. +images that you can easily "Load" and "Save" in any [PCjs Machine](devices/pcx86/machine/). -Looking at the dates alone, you can tell that this collection is woefully incomplete, but perhaps more will surface -over time. [Let us know](mailto:Jeff@pcjs.org) if you find more. Thanks. +Looking at the volume numbers alone, you can tell that this collection is woefully incomplete, but perhaps more +will surface over time. [Let us know](mailto:Jeff@pcjs.org) if you find more. Thanks. ### Directory of PC Magazine (Vol. 06 No. 08) diff --git a/disks/pcx86/shareware/pctj/README.md b/disks/pcx86/shareware/pctj/README.md index 8a687ab10..374a07363 100644 --- a/disks/pcx86/shareware/pctj/README.md +++ b/disks/pcx86/shareware/pctj/README.md @@ -13,7 +13,7 @@ dial-up service and download them for free (aside from any long-distance phone c I'm not sure if PC Tech Journal regularly (or *ever*) distributed their software collections on diskette, or archived them in monthly ZIP files, but obviously someone did, because you can find a bunch of ZIP archives at -"[THE PROGRAMMER'S CORNER BBS ARCHIVE FROM THE PAST](https://www.pcorner.com/list/MAG)". +"[THE PROGRAMMER'S CORNER: BBS ARCHIVE FROM THE PAST](https://www.pcorner.com/list/MAG)". Of particular interest is the "[Best Of](#directory-of-pc-tech-journal-best-of)" collection, a diskette that we had to recreate from multiple ZIP archives. It includes this note from the magazine's editors: @@ -43,7 +43,7 @@ to recreate from multiple ZIP archives. It includes this note from the magazine Editor Editorial Director We've gone through those ZIP archives, filtered out the duplicates, organized them chronologically, and then put -their contents onto diskette images that you can easily "Load" and "Save" in any PCjs machine. +their contents onto diskette images that you can easily "Load" and "Save" in any [PCjs Machine](devices/pcx86/machine/). Looking at the dates alone, you can tell that this collection is woefully incomplete, but perhaps more will surface over time. [Let us know](mailto:Jeff@pcjs.org) if you find more. Thanks. From 18c97fdb58d2808826f224a067bd1ab8aff80bcf Mon Sep 17 00:00:00 2001 From: Jeff Parsons Date: Sun, 9 Jul 2017 14:33:17 -0700 Subject: [PATCH 4/4] New blog post: Magware --- _posts/2017-07-09-magware.md | 79 ++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 _posts/2017-07-09-magware.md diff --git a/_posts/2017-07-09-magware.md b/_posts/2017-07-09-magware.md new file mode 100644 index 000000000..0315b7151 --- /dev/null +++ b/_posts/2017-07-09-magware.md @@ -0,0 +1,79 @@ +--- +layout: post +title: Magware +date: 2017-07-09 22:00:00 +permalink: /blog/2017/07/09/ +--- + +You may recall from my [last post](/blog/2017/07/03/) that I had tracked down some useful Modula-2 test code, +originally published in [PC Tech Journal (October 1986)](http://www.pcjs.org/pubs/pc/magazines/pctj/PCTJ-1986-10/), +inside a ZIP archive at "[THE PROGRAMMER'S CORNER: BBS ARCHIVE FROM THE PAST](https://www.pcorner.com/list/MAG)". + +It turned out that that archive was a rabbit hole I could not *not* go down. + +First, I collected all the other PC Tech Journal ZIP archives there (from December 1985 through January 1989), +recreated them as a set of [PC Tech Journal Disks](/disks/pcx86/shareware/pctj/), and added them to the +[PCjs Disk Library](/disks/pcx86/), so now you can "Load" and "Save" them in any [PCjs Machine](devices/pcx86/machine/). + +Next, since I was also a fan of PC Magazine back in the day, I decided to do the same for all the PC Magazine ZIP +archives. So now there's a set of [PC Magazine Disks](/disks/pcx86/shareware/pcmag/) you can play with as well. + +I'm calling these disks *Magware* because I can't be sure exactly how to classify everything on them. Most of it +was probably considered free: source code was generally included without any restrictions. But it's possible that +the magazines also redistributed some third-party software that fell into more of a *Shareware* category. + +About these collections: I'm thrilled that they exist. Not everyone needs to be (or should be) a collector, but the +world needs at least a few dedicated individuals working in every domain (hardware, software, books, magazines, +photographs, recordings, etc) along with museums and libraries to support their efforts. So kudos to the folks +at [The Programmer's Corner](https://www.pcorner.com) for saving what they could and continuing to make them available. + +Sadly, these collections are woefully incomplete. The people who could have done the best job of archiving +everything that PC Tech Journal and PC Magazine produced were the publishers themselves, but of course, we don't +live in a society where "archiving" is part of the corporate compact. Corporations care about assets and monetization. +Even if an asset is never used and gradually disintegrates over time, your average corporation is fine with that, +because the fact that no *other* corporation was able to use it is just another kind of monetization. Some corporations +do build their own archives, but you can never be sure they weren't edited in self-serving or promotional ways. And +other corporations are happy to see their old products archived, provided someone pays them for the privilege. + +I'm also a little sad to see these collections being leveraged as a way of making money. For one thing, it goes +against the spirit in which the software was originally shared (ie, for free). For another, it's a real nuisance. + +For example, if you visit [MAG Files from The Programmer's Corner](https://www.pcorner.com/list/MAG), you can't +simply download everything on that page. You have to click on a link to a ZIP file, which takes you to a second page +listing the contents of the ZIP file and a "Download File Here" link, which takes you to a third page with a tiny +"Click here" link that will finally download the ZIP file. And at every step of the way, you're also being asked +to "Donate". + +So what should have been a quick ONE-click operation becomes a very slow THREE-click operation, giving you lots of +opportunities to stare at lots of ads. Three pages of them, with ads across the top, down the right-hand side, and +across the bottom. I understand that running a web server has a cost and that ads help defray that cost. But there +HAVE to be better ways to do this. + +For starters, there are users like me, who are happy to support the preservation efforts of others. I opted to pay +the requested $40 donation for "unlimited access" to The Programmer's Corner. However, that merely allowed me download +more than 5 files per hour. I still had to slowly wade through endless pages of ads to get the roughly 200 files I was +specifically interested in. This isn't exactly endearing behavior, which means I probably won't return to The +Programmer's Corner by choice, but only out of necessity. + +On a more philosophical note, I think it's important for a service to be clear about what we're paying for; ie, that +we're paying for an archival service and that the money being generated for that service (whether by ads or donations) +is purely in support of that service, and that the archived items themselves are not being held hostage ("ransomed") or +used in any way that the original authors might have disapproved of. + +It shouldn't be hard to create a compelling website with useful features that people will *want* to revisit repeatedly. +Even a site that's just a bunch of "downloads" should be able to avoid resorting to gimmicks if they at least have a +mission, are actively working to promote that mission, and build a community of like-minded people who believe in that +mission. + +The [Patreon](https://www.patreon.com/) model, where you try to get a handful of people to support your project with +small monthly contributions, seems like one possible solution. Of course, that usually requires working on the project +on a regular basis, and if a website like [The Programmer's Corner](https://www.pcorner.com) is more or less on auto-pilot, +that probably won't work. + +I've thought about this problem in the context of PCjs, and what, if anything, I could or should do to help pay for its +monthly operating costs (which are currently around $30/month for hosting and bandwidth). Ads are a horrible idea, +because they're both unsightly and unseemly. I've come to conclusion that you have to make money doing something else, +and that projects like this just have to be supported by people's own personal obsessions, passions, and other intangibles. + +*[@jeffpar](http://twitter.com/jeffpar)* +*Jul 9, 2017*