From a5b9e0cae7b961e7e901b0a8cd1ed4b79bcbba8f Mon Sep 17 00:00:00 2001 From: Jeff Parsons Date: Thu, 28 Jan 2016 22:22:36 -0800 Subject: [PATCH] Some improvements for FOOTBALL, including support for the 386 LOADALL instruction --- _posts/2016-01-23-early-os2-artifacts.md | 39 + _posts/2016-01-23-unearthing-os2.md | 22 - .../compaq/deskpro386/ega/2048kb/machine.xml | 4 +- docs/README.md | 1 + docs/pcjs/demos/pc-dbg.js | 2030 +++++++++-------- docs/pcjs/demos/pc.js | 1775 +++++++------- docs/x86/ops/aaa.md | 8 +- modules/pcjs/lib/debugger.js | 8 + modules/pcjs/lib/x86.js | 2 +- modules/pcjs/lib/x86cpu.js | 31 +- modules/pcjs/lib/x86func.js | 42 +- modules/pcjs/lib/x86op0f.js | 162 +- modules/pcjs/lib/x86ops.js | 2 +- modules/pcjs/lib/x86seg.js | 113 +- pubs/pc/reference/README.md | 2 +- pubs/pc/reference/intel/80286/README.md | 4 +- pubs/pc/reference/intel/80286/arpl/README.md | 8 +- .../intel/80286/b2_b3_info/README.md | 8 +- .../intel/80286/early_errata/README.md | 10 +- .../intel/80286/extra_prefixes/README.md | 8 +- .../reference/intel/80286/loadall/README.md | 8 +- .../reference/intel/80286/real_mode/README.md | 6 +- .../intel/80286/rep_restart/README.md | 8 +- pubs/pc/reference/intel/80386/README.md | 29 +- .../reference/intel/80386/loadall/README.md | 277 +++ versions/pcjs/1.20.7/pc-dbg.js | 2030 +++++++++-------- versions/pcjs/1.20.7/pc.js | 1775 +++++++------- 27 files changed, 4431 insertions(+), 3981 deletions(-) create mode 100644 _posts/2016-01-23-early-os2-artifacts.md delete mode 100644 _posts/2016-01-23-unearthing-os2.md create mode 100644 pubs/pc/reference/intel/80386/loadall/README.md diff --git a/_posts/2016-01-23-early-os2-artifacts.md b/_posts/2016-01-23-early-os2-artifacts.md new file mode 100644 index 000000000..62a9606d8 --- /dev/null +++ b/_posts/2016-01-23-early-os2-artifacts.md @@ -0,0 +1,39 @@ +--- +layout: post +title: Early OS/2 Artifacts +date: 2016-01-23 14:00:00 +category: OS/2 +permalink: /blog/2016/01/23/ +--- + +Before OS/2 was named **OS/2** by IBM on April 2, 1987, the operating system was known by many different names at +Microsoft as it evolved, including **DOS5**, **MT-DOS**, **CP-DOS**, and **ADOS**. + +In late 1986, Microsoft began working on a couple different branches. One was called **SIZZLE**, where a variety of +performance improvements were tested before being merged back into the main branch. + +Another branch was **FOOTBALL** (aka **PIGSKIN**), an early 80386-based prototype intended to test the viability +of the running multiple DOS applications in V86-mode. Sometimes this 80386 version was also called **386DOS**, +to distinguish it from **286DOS**. More details are in this +[FOOTBALL Design Document](/disks/pc/os2/misc/football/87058/#football-design-document). + +To shed some light on those efforts, I recently added a few [OS/2 Prototype Disks](/disks/pc/os2/misc/): a small +collection of early (mostly pre-1.0) OS/2 boot disks that provide a glimpse of what some of those early OS/2 builds +looked like. + +Getting these early versions of OS/2 to run in **PCjs** has been a bit of a challenge. There have been some successes +but also some lingering issues. Debugging continues. + +Part of the problem is that these pre-1.0 builds still contain a few bugs. Also, the original +[OS/2 FOOTBALL Boot Disk](/disks/pc/os2/misc/football/87058/) from February 1987 was developed and +tested exclusively on Compaq DeskPro 386 machines from late 1986, so it has some uncommon 80386 dependencies: + +* The [80386 LOADALL](/pubs/pc/reference/intel/80386/loadall/) instruction +* 32-bit segment register writes must modify only 16 bits of memory + +**FOOTBALL** also had some specific video hardware requirements: CGA or EGA. Note that the VGA, which is what most +emulators use by default these days, did not exist in 1986. The VGA was introduced in April 1987, when IBM +unveiled their new PS/2 hardware line -- and announced OS/2. + +*[@jeffpar](http://twitter.com/jeffpar)* +*January 23, 2016* diff --git a/_posts/2016-01-23-unearthing-os2.md b/_posts/2016-01-23-unearthing-os2.md deleted file mode 100644 index 97471007e..000000000 --- a/_posts/2016-01-23-unearthing-os2.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -layout: post -title: Unearthing OS/2 -date: 2016-01-23 14:00:00 -category: OS/2 -permalink: /blog/2016/01/23/ ---- - -Before OS/2 was named **OS/2** by IBM on April 2, 1987 (as part of IBM's "Divide By Two And Conquer" initiative), -OS/2 was known variously as **CP-DOS**, **MT-DOS**, **DOS5**, or **ADOS**. Or, when referring to 80286-only and -80386-only versions: **286DOS** and **386DOS**. - -And then there were all the early codes-names, like **SIZZLE**, **PIGSKIN**, and **FOOTBALL**, which were little-known -projects to help improve and/or shape the direction that OS/2 was headed. - -To shed some light on those efforts, I recently added a small collection of early (mostly pre-1.0) OS/2 boot disks -that provide a glimpse of what early OS/2 builds looked like. - -More details are available in [OS/2 Prototype Disks](/disks/pc/os2/misc/). - -*[@jeffpar](http://twitter.com/jeffpar)* -*January 23, 2016* diff --git a/devices/pc/machine/compaq/deskpro386/ega/2048kb/machine.xml b/devices/pc/machine/compaq/deskpro386/ega/2048kb/machine.xml index 9f780a9f3..1cb50f19d 100644 --- a/devices/pc/machine/compaq/deskpro386/ega/2048kb/machine.xml +++ b/devices/pc/machine/compaq/deskpro386/ega/2048kb/machine.xml @@ -10,8 +10,8 @@