We’re rewarding the question askers & reputations are being recalculated! Read more.

Hot answers tagged

56

An x86 CPU running in real mode is intended to be backwards-compatible with an 8086 or 8088, but there do end up being a number of differences, for example: newer CPUs run faster (in general); newer CPUs add new instructions (and, with the 386, new registers, since the 32-bit registers can be used in real mode); 286 and later CPUs add more address lines, ...


52

As far as I’m aware, the last FPU-less x86-compatible CPU which could still be considered general-purpose is the Vortex86SX, released in 2007 and still available now. This is a Pentium-class CPU, capable of running any Pentium code which doesn’t require an FPU. It is targeted at embedded applications, with up to 512 MiB of RAM, and includes a PCI bus, USB, ...


50

Video game hardware, whether for home consoles or arcade machines, is designed pretty much from scratch. Hardware designers have pretty much free rein on choosing what CPU to use, basing their choice on factors like cost and ease of programming. The Intel 8086, quite frankly, was a poorly designed processor and was never well regarded. While you could ...


43

The term x86 is shorthand for 80x86, which was used to refer to any member of the family 8086 (and also, incidently, 8088), 80186, 80286, etc. Things have since gotten a bit muddled by the fact that while an 80386 had a mode that was compatible with the old architecture, it also introduced some fundamentally new ways of doing things which were shared by the ...


42

8086 was designed to make asm source porting from 8080 easy (not the other direction). It is not binary compatible with 8080, and not source-compatible either. 8080 is not an x86 CPU. 8080 is a more distant ancestor that had some influence on the design of 8086, but it's not the same architecture. As an analogy, all x86 CPUs are the same genus but ...


37

x is meant as wildcard, so this represents all CPUs able to run 8086 compatible code.


26

Here is a reference to BIOS beep codes. For American Megatrends, look under AMI. 3 beeps means the low 64K failed - a very basic test - which probably means the RAM isn't working at all. You should first check whether the RAM is compatible with your machine. At that time, there was a lot of variation - 5V vs 3.3V, 30-pin vs 72-pin, EDO vs FPM, not to ...


21

To supplement @PeterCordes's excellent answer, I thought it would be worth going into the details of exactly how close to source code compatible the two processors are -- for example, how easy would it be to use textual substitutions (e.g. macros) to automatically translate 8080 code to 8086 code, and what the limitations would be. The first point would be ...


18

Preface The question is a bit unclear(*1) about the margins set regarding: Must it be a single motherboard or do separate assemblies qualify? Must it be PC-compatible or does any x86 system qualify? Must the board have been available separately (to the general public) or do complete assembled systems qualify? So answers do vary a lot depending on what ...


16

All Intel x86 CPUs since the 80486 line have included floating point instructions, i.e. everything from the Pentium* onward. So the last Intel processor to lack an on-board floating-point unit (FPU) was the 80486SX (and the embedded 80486GX). Other manufacturers, who made 486-compatible processors, continued making non-FPU chips, aiming for the budget ...


13

This addressing mode was introduced with the first 32-bit x86 processor, i.e. the 80386. Ref: 80386 Programmer's reference manual sec 2.5.3.2.


13

The XMS specification is still accurate: functions 0x10 and 0x11 provide access to UMBs. However, the specification doesn’t decide where those functions are implemented. On its own, HIMEM.SYS does indeed only provide access to memory above 1MiB, i.e. the HMA (so it also controls the A20 line) and extended memory (which it makes available as XMS). If you ...


10

Your code is correct; a yellow prompt means that you’re using the red/green/brown palette. However, to get the low intensity variant, you also need to call interrupt 10h service 0Bh with BX set to 0 (black background, low intensity; strictly speaking, you can have any background — the bottom four bits, 3–0 — and the fifth bit, bit 4, controls the intensity; ...


10

Actually this is a lot easier than I thought, after trying to link to another MSW note, I found it in the Intel Instruction Set: Machine Status Word (286+ only). The machine status word seems to be a predecessor to CR0, and protected mode was set in first bit. Of note, you can't return from Protected Mode on the 286. MSW - Machine Status Word (286+ only) ...


10

What exactly does it mean to be a "Pascal machine" in that context? It's close but not really the case. It starts with the term Pascal Machine being misused, as this usually describes a software and/or hardware to interpret p-code; today we would call it bytecode, like the Pascal Microengine or a p-code interpreter. This virtual machine was called by its ...


10

If you’re looking specifically for motherboards directly supporting multiple x86 CPUs, in a multiprocessor configuration, and available for purchase outside the system they were designed for, a likely candidate for the first such motherboard is the Gigabyte GA-586ID, which supported two socket 5 Pentium CPUs in an SMP configuration. It was released in 1994. ...


9

Note all your references to changing values are below the stack pointer, actually a free space. You are not expected to care about this area (stack grows towards lower addresses), as this is of no concern to your application. Even if your computer is sitting at a debugger prompt and apparently is inactive, it isn't. It constantly runs through interrupt ...


9

In modern usage it also means software which only uses the 32-bit architecture of the earlier 80x86 processors, to distinguish it from 64-bit applications. Microsoft uses it that way on 64-bit versions of Windows, which have two separate directories called "Program Files" and "Program Files (x86)." The 32-bit applications will run on 64-bit hardware, but ...


9

Konix Multisystem: 6 MHz 8086 (1989). Sure, it was cancelled just before release, but it got amazing press (I remember Jeff Minter raving about it at Earls Court) and some of it lived on as the (68k based) Atari Jaguar.


8

The original 8086 was quickly overshadowed by the Z80, which was somewhat compatible but easier to work with as it required less support hardware. Also many arcade developers preferred the 6502 and derivatives, and then later the 68000 which was easier to work with on both the hardware and software fronts. Another issue was that the development machines ...


8

The “ASCII” instructions are really about unpacked BCD, not ASCII. There is some justification for calling them “ASCII”, because unpacked BCD can easily be converted to and from ASCII, and in fact if only the lower nibble is considered, ASCII numerals are encoded using the exact same values as their unpacked BCD counterparts. The 8086 Primer explains the ...


8

iRMX III is a real-time operating system for Intel 80386 and later processors, originally developed by Intel and now maintained by tenAsys. A quick look at the System Call Reference manual reveals that it uses call gates.


8

The original Xbox was an ~$800 computer sold at a loss, with embedded hardware making it impossible to use it as such. To my knowledge, Microsoft was the first company to take that gamble: that it couldn't be hacked and used as a home PC, and therefore negate the sales of their peripherals or software that they get kickbacks on. They took that gamble because ...


7

Writing single pixels is a non-starter if you want any performance, even if you don't go through the overhead of a BIOS call for each pixel. Graphics libraries in and around the EGA era were based on drawing entire lines at a time, curved lines that were segments of axis-parallel elipses, and things like filled rectangles and circles. The interior of the ...


7

When an x86 CPU is running in real mode, can it be considered to be basically an 8086 CPU (or maybe 8088)? As so often it depends on your value of 'basically' (and there is no user visible difference between 8086 and 8088 beside speed). Or are there differences between the two? Well, it's so far the same, as every (modern) x86 operating in real mode ...


7

The 486, introduced in 1989, was the first x86 CPU to include a cache. It added cache-supporting instructions to the x86 ISA such as INVD and WBINVD. The 386 didn’t have an on-board cache, but it could be associated with an 82385 controller to use an external cache. Some later 386-compatible CPUs, such as IBM’s 386SLC, included on-board cache; Intel’s own ...


6

Intel products were numbered. For example, their first microprocessor was the 4-bit Intel 4004, which was coupled with the 4001 ROM, 4002 RAM, and 4003 shift register. The start denoted the series, and the last digit denoted the specific part. Later, the intel 8008 came along, which was an 8-bit microprocessor. This was succeeded by the 8080, which was ...


6

If you’re using BIOS functions to read from the keyboard in your game, the quickest way to clear the buffer is to make its tail equal to its head: read the value at 0x0041A and write it to 0x0041C: proc clearkeyboardbuffer ; AX is clobbered push ds mov ax, 0040h mov ds, ax mov ax, [001Ah] mov [001Ch], ax pop ds ret endp ...


5

In the Pentium® II Processor Specification Update Release Date: October 1998 errata for the Intel documentation, the entry for A62 states: Plans - Errata NoFix - SYSENTER/SYSEXIT instructions can implicitly load “null segment selector” to SS and CS registers SYSENTER would set wrong selectors, but that was okay, because you were still in kernel ...


5

MMURTL by Richard Burgess, was the subject of a book that Sams published as: Developing your own 32-bit Operating System. MMURTL makes no attempt at portability, instead making direct (and heavy) use of the 386's hardware support for tasks, task switching, and pretty much everything else. The licensing conditions for either/both the book and code are fairly ...


Only top voted, non community-wiki answers of a minimum length are eligible