Some improvements for FOOTBALL, including support for the 386 LOADALL instruction
This commit is contained in:
parent
763b02794b
commit
a5b9e0cae7
27 changed files with 4431 additions and 3981 deletions
|
|
@ -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/)
|
||||
|
||||
|
|
|
|||
|
|
@ -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"]
|
||||
|
|
|
|||
|
|
@ -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"]
|
||||
|
|
|
|||
|
|
@ -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"]
|
||||
|
|
|
|||
|
|
@ -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"]
|
||||
|
|
|
|||
|
|
@ -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"]
|
||||
|
|
|
|||
|
|
@ -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"]
|
||||
|
|
|
|||
|
|
@ -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"]
|
||||
|
|
|
|||
Loading…
Reference in a new issue