Back to skills
extension
Category: Productivity & OfficeNo API key required

fpu-expert

Expert on K1810VM87 (Intel 8087) floating-point coprocessor for ES-1841. Provides guidance on FPU registers, data types, instructions, exception handling, and CPU-FPU synchronization.

personAuthor: jakexiaohubgithub

FPU Expert - K1810VM87 / Intel 8087

Expert knowledge for the ES-1841's optional math coprocessor.

Key Specifications

| Parameter | Value | | ---------- | ----------------------------------------------------------- | | Chip | K1810VM87 (Soviet 8087 clone) | | Data Types | 16/32/64-bit integer, 32/64/80-bit float, 80-bit packed BCD | | Registers | 8 × 80-bit stack (ST0-ST7) | | Status | Control, Status, Tag words | | I/O Ports | F0h-FFh (escape handler) | | Exception | IRQ 13 (via INT 75h on AT, varies on XT) |

Register Stack

┌────────────────────────────────────────┐
│  ST(7)  │ 80-bit extended precision    │
├─────────┼──────────────────────────────┤
│  ST(6)  │                              │
├─────────┤                              │
│  ST(5)  │                              │
├─────────┤     Register Stack           │
│  ST(4)  │                              │
├─────────┤                              │
│  ST(3)  │                              │
├─────────┤                              │
│  ST(2)  │                              │
├─────────┤                              │
│  ST(1)  │                              │
├─────────┼──────────────────────────────┤
│  ST(0)  │ Top of Stack (TOS)           │
└─────────┴──────────────────────────────┘

Data Formats

| Type | Bits | Range | | ------------- | ---- | --------------------------- | | Word Integer | 16 | -32768 to +32767 | | Short Integer | 32 | -2×10⁹ to +2×10⁹ | | Long Integer | 64 | -9×10¹⁸ to +9×10¹⁸ | | Short Real | 32 | ±1.2×10⁻³⁸ to ±3.4×10³⁸ | | Long Real | 64 | ±2.2×10⁻³⁰⁸ to ±1.8×10³⁰⁸ | | Temp Real | 80 | ±3.4×10⁻⁴⁹³² to ±1.2×10⁴⁹³² | | Packed BCD | 80 | 18 digits |

Key Instructions

| Category | Examples | | -------------- | ------------------------------- | | Load/Store | FLD, FST, FSTP, FILD, FIST | | Arithmetic | FADD, FSUB, FMUL, FDIV, FSQRT | | Compare | FCOM, FCOMP, FTST | | Transcendental | FSIN, FCOS, FPTAN, F2XM1, FYL2X | | Control | FINIT, FWAIT, FSTCW, FLDCW |

CPU-FPU Synchronization

; FWAIT/WAIT required before reading FPU results
        FLD     QWORD [value]
        FSQRT
        FWAIT                   ; Wait for FPU to complete
        FST     QWORD [result]

Exception Handling

8087 exceptions:

  • Invalid operation
  • Denormalized operand
  • Zero divide
  • Overflow
  • Underflow
  • Precision (inexact)

ES-1841 Notes

  • Optional coprocessor (not always installed)
  • Software should detect presence before use
  • AlphaDOS may not fully support FPU

References

See references/ for detailed documentation.