Some improvements for FOOTBALL, including support for the 386 LOADALL instruction

This commit is contained in:
Jeff Parsons 2016-01-28 22:22:36 -08:00
commit a5b9e0cae7
27 changed files with 4431 additions and 3981 deletions

View file

@ -9,6 +9,7 @@ Intel 80286 CPU Information
### 80286 Errata
* [Early 80286 Errata of Interest](early_errata/#early-80286-errata-of-interest)
* [ARPL Behavior](arpl/)
* [Coprocessor Operand Beyond Segment Limit](b2_b3_info/#coprocessor-operand-partially-beyond-limit-of-erc-segment)
* [Instructions Longer than 10 Bytes](extra_prefixes/)
@ -16,9 +17,8 @@ Intel 80286 CPU Information
* [Non-Restartable Protection Violations](b2_b3_info/#non-restartable-protection-violations)
* [POPF Behavior](b2_b3_info/#popf-behavior)
* [REP MOVS and REP INS Restartability](rep_restart/)
* [Early 80286 Errata of Interest](early_errata/#early-80286-errata-of-interest)
### 80286 Undocumented Opcodes
### 80286 Undocumented Instructions
* [LOADALL](loadall/)

View file

@ -1,12 +1,14 @@
---
layout: page
title: "Intel 80286 CPU Documentation: ARPL"
title: "Intel 80286 CPU Errata: ARPL"
permalink: /pubs/pc/reference/intel/80286/arpl/
---
Intel 80286 CPU Documentation
Intel 80286 CPU Errata: ARPL
---
[The following information is from an Intel document titled "80286 ARPL and Overlength Instructions, 15 October 1984"]
### ARPL (63H)
When the second operand of the ARPL instruction (as described in the iAPX286 Programmer's Reference Manual) is a null
@ -15,5 +17,3 @@ but will be described in future revisions of the "iAPX286 Programmer's Reference
This functionality of the ARPL is not believed not to be a problem, and there are no plans to change this functionality
of the ARPL instruction.
[This information is from an Intel document titled "80286 ARPL and Overlength Instructions, 15 October 1984"]

View file

@ -1,12 +1,14 @@
---
layout: page
title: "Intel 80286 CPU Documentation: B-2/B-3 Steppings"
title: "Intel 80286 CPU Errata: B-2/B-3 Steppings"
permalink: /pubs/pc/reference/intel/80286/b2_b3_info/
---
Intel 80286 CPU Documentation
Intel 80286 CPU Errata: B-2/B-3 Steppings
---
[The following information is from a 7-page Intel document titled "80286(B-2/B-3) Information Sheet, 21 November 1984"]
### 80286 B-2/B-3 Steppings
This applies to S-spec #40093 and to S-spec #54012 of the 80286, since they contain a (B-2/B-3) stepping of the 80286.
@ -197,5 +199,3 @@ handled if the 80286 interrupts are always disabled before programming the inter
is performed no unmasked interrupt is active. The interrupt handler for IR7 can read ISR7 of the 8259A to tell if this was a real
interrupt on IR7. The ISR7 bit will be 0 if at the time the interrupt was acknowledged, no unmasked IR inputs of the 8259A were
active ("phantom" interrupt).
[This information is from a 7-page Intel document titled "80286(B-2/B-3) Information Sheet, 21 November 1984"]

View file

@ -1,12 +1,16 @@
---
layout: page
title: "Intel 80286 CPU Documentation: Early Errata"
title: "Intel 80286 CPU Errata: Early Problems"
permalink: /pubs/pc/reference/intel/80286/early_errata/
---
Intel 80286 CPU Documentation
Intel 80286 CPU Errata: Early Problems
---
[The following information is from an undated 15-page Intel document titled "Undocumented iAPX 286 Test Instruction".
NOTE: The initial reference to LOADALL as "opcode 0F04H" and the subsequent references to the "0F05H opcode" are exactly
as they appear in the original document. Whether or not they were mistakes is unknown.]
### Exceptions from Undefined Opcodes and String Instructions
The exception 13 handler will probably use a lookup table for the opcode byte of the instruction causing exception
@ -101,5 +105,3 @@ steppings of the 80286 and are fixed in later steppings of the 80286.
0-wait memory for the data values or be sure bit 0 of memory location 804H is zero. HOLD requests and processor
extension data transfers should be inhibited while [LOADALL](../loadall/) is running. Later steppings of the 80286 will correctly
load the MSW during [LOADALL](../loadall/) with HOLD and processor extension transfers.
[This information is from an undated 15-page Intel document titled "Undocumented iAPX 286 Test Instruction"]

View file

@ -1,12 +1,14 @@
---
layout: page
title: "Intel 80286 CPU Documentation: Extra Prefixes"
title: "Intel 80286 CPU Errata: Extra Prefixes"
permalink: /pubs/pc/reference/intel/80286/extra_prefixes/
---
Intel 80286 CPU Documentation
Intel 80286 CPU Errata: Extra Prefixes
---
[The following information is from an Intel document titled "80286 ARPL and Overlength Instructions, 15 October 1984"]
### Instructions Longer than 10 Bytes
When the CPU detects an instruction that is illegal due to being greater than 10 bytes in length, it generates an
@ -16,5 +18,3 @@ greater than ten bytes can occur is by using the assembler to intentionally plac
There are no plans to change this functionality of the 80286 and future editions of the "iAPX286 Programmer's Reference
Manual" and 80286 datasheet will accurately describe how 80286 reacts to instructions greater than 10 bytes in length.
[This information is from an Intel document titled "80286 ARPL and Overlength Instructions, 15 October 1984"]

View file

@ -1,12 +1,14 @@
---
layout: page
title: "Intel 80286 CPU Documentation: LOADALL"
title: "Intel 80286 LOADALL Instruction"
permalink: /pubs/pc/reference/intel/80286/loadall/
---
Intel 80286 CPU Documentation
Intel 80286 LOADALL Instruction
---
[The following information is from an undated 15-page Intel document titled "Undocumented iAPX 286 Test Instruction"]
### LOADALL (0F05H)
The iAPX 286 microprocessor (part number 80286) has an undocumented instruction used by Intel test programs to
@ -154,5 +156,3 @@ For proper protected mode operation, the following is required:
4. The DPL fields of the ES and DS descriptors should be 3 to prevent their being zeroed by RET or IRET
instructions.
[This information is from an undated 15-page Intel document titled "Undocumented iAPX 286 Test Instruction"]

View file

@ -4,9 +4,11 @@ title: "Intel 80286 CPU Documentation: Real Mode"
permalink: /pubs/pc/reference/intel/80286/real_mode/
---
Intel 80286 CPU Documentation
Intel 80286 CPU Documentation: Real Mode
---
[The following information is from an undated 15-page Intel document titled "Undocumented iAPX 286 Test Instruction"]
### Executing Real Mode Programs in Protected Mode
An iAPX 86/88 program using real mode addressing can be executed in protected mode with full protection between
@ -300,5 +302,3 @@ Interrupts must be handled specially. Interrupt handlers for both real mode and
times. If an interrupt handler needs to access a data area, that data area must be addressable from both real and
protected mode. The real mode interrupt table would be would be kept at location 000000H. The protected mode IDT could
be anywhere. [LOADALL](../loadall/) will switch to the protected interrupt table.
[This information is from an undated 15-page Intel document titled "Undocumented iAPX 286 Test Instruction"]

View file

@ -1,12 +1,14 @@
---
layout: page
title: "Intel 80286 CPU Documentation: REP Restart"
title: "Intel 80286 CPU Errata: REP Restart"
permalink: /pubs/pc/reference/intel/80286/rep_restart/
---
Intel 80286 CPU Documentation
Intel 80286 CPU Errata: REP Restart
---
[The following information is from an Intel document titled "80286 REP MOVS and REP INS Restartability, 15 October 1984"]
### 80286 REP MOVS and REP INS Restartability
The repeated string instructions on 80286 were made restartable after protection violations on the (B-2/B-3) and
@ -46,5 +48,3 @@ The above three problems are being corrected in all future steppings of the 8028
register will hold 0ffffH when the CPU detects a violation due to the conditions above. Note that even when REP MOVS and
REP INS restartability is corrected, CX will correctly continue to be 0000H when these instructions complete without generating
a protection violation.
[This information is from an Intel document titled "80286 REP MOVS and REP INS Restartability, 15 October 1984"]