Comprehensive Test Set Released For The Intel 80286

Remember the 80286? It was the sequel to the 8086, the chip that started it all, and it powered a great number of machines in the early years of the personal computing revolution. It might not be as relevant today, but regardless, [Daniel Balsom] has now released a comprehensive test suite for the ancient chip. (via The Register)

The complete battery of tests are available on Github, and were produced using a Harris N80C286-12 from 1986. “The real mode test suite contains 326 instruction forms, containing nearly 1.5 million instruction executions with over 32 million cycle states captured,” Daniel explains. “This is fewer tests than the previous 8088 test suite, but test coverage is better overall due to improved instruction generation methods.” For now, the tests focus on the 286 running in real mode. There are no “unreal” or protected mode tests, but [Daniel] aims to deliver the in the future.

[Daniel] uses the tests with the ArduinoX86, a platform that uses the microcontroller to control and test old-school CPUs. The tests aid with development of emulators like [Daniel’s] own MartyPC, by verifying the CPU’s behavior in a cycle-accurate way.

We’ve explored some secrets of the 286 before, too. If you’ve been doing your own digging into Intel’s old processors, or anyone else’s for that matter, don’t hesitate to notify the tipsline.

[Thanks to Stephen Walters for the tip!]

23 thoughts on “Comprehensive Test Set Released For The Intel 80286

  1. “[The 80286] was the sequel to the 8086” is either an over-simplification or disingenuous, I can’t decide. There was the 80186/80188 in there, though they’re a special kettle of fish in their own right. Yes, I know, the 80186 wasn’t exactly a microprocessor, but a microcontroller … yet the article just says “chip”, not specifying what flavor.

    To avoid being a negative poster, and for the obligatory old-guy “I had an [x]”, I had a Tandy 2000, which I used for rendering Mandelbrots calculated on an 80286-based S100 system. Because I could, not because it made sense =))

      1. Mmm, interesting. My memories aren’t what they used to be — insert joke here about DRAM needing refresh or flash failure or something — so I guess I gotta go wiki-ing.

        IIRC, the errata to the 80186 was longer than the manual proper, so at the very least the ‘286 got more right =))

    1. The original IBM-PC has an 8088 anyway, not an 8086.

      Sometimes we sold an IBM pc with a V20 chip replacing the 8088. The V20 could also execute pure Z80 assembly, and thus dual boot CP/M or DOS 1.2a.

      1. Olivetti M24 (AT&T 6300) and Schneider PC1512/1640 had the real 8086, though.
        The German ct’86 computer used it, too.

        The NEC V30 was a popular upgrade on these, also added some 80186/80286 instructions.
        But newer real mode instructions wee useful by early 90s, rather, when software expected 80286..

        Then ladt but not least.. Accelerator boards.
        Orchid Tiny Turbo, Microsoft MACH 10, MACH 20 etc.
        They all upgraded 8088 to something better.

        https://www.youtube.com/watch?v=ofD-xZ3f9MQ
        https://www.youtube.com/watch?v=a4Py5VnKQE8

        https://www.siliconindia.com/news/technology/microsofts-littleknown-hardware-history-nid-125937-cid-2.html

      1. If it wasn’t made clear by the article these tests are intended for emulator authors, to validate correctness of 286 emulation. Checkit may fail in your emulator, but you may not know why. These tests will hopefully narrow it down to a specific instruction.

          1. You could use it as a chip-tester by feeding the instructions back into the CPU – I call this validation mode. But there are more practical ways to test a CPU. The FPGA-based Universal Chip Analyzer will probably be the best tool for that job, when it is released.

        1. Greg’s point remains – I was extremely excited when I saw the coverage of this stuff, in the hope that it would be worth pointing the rest of the MAME team towards, but protected-mode coverage is a wide gap.

          That doesn’t detract from the sheer level of skill and determination it takes to cover almost the entirety of real-mode. I think people who have gripes about the lack of protected-mode coverage are missing the forest for the trees, since I’d be pretty surprised if protected-mode isn’t somewhere on your future radar. You know what you’re doing and you’re doing a damn good job doing it.

          Just try not to let it get to you when commenters express a certain level of disappointment. Your Github repo is pretty unambiguous about what the test suite is and isn’t, so any end-user disappointment is entirely the fault of the people writing breathless articles based on a bunch of assumptions without fully understanding what they’re actually looking at.

          1. Originally, I was going to do 186 tests, once I had an 80L186 under Arduino control. But when 286 looked feasible, I figured that most people were ever only using 186 tests because 286 tests weren’t available. I’ll probably go back and put out some 186 tests for fun, but I’d like to use an older 186 that retains the queue status lines so we can do prefetching.

            I felt that having a real mode test suite was immediately useful – and it would be good to get them in front of people and shake out any bugs before proceeding with protected mode.

            Protected mode is definitely on my radar, considering I want MartyPC to be accurate there too, and I am my own test consumer. I am not sure if the ‘single instruction’ test methodology will be appropriate or not, we’ll see. I’m still learning the ins and outs of how protected mode works.

            In any case, protected mode tests are trickier as we can’t simply randomize memory, or we’ll have a test suite full of triple faults which aren’t much use to anyone. So heuristics need to be developed to have a decent mix of successful and faulting instructions.

  2. Ever wonder how they debugged a CPU chip after making it?

    Imagine what they needed in the 70.and 80s

    Big very expensive chip tester costing like a 100 grand

    Has its own CPU and logic faster than the one being tested

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.