Login
You're viewing the discuss.systems public feed.
  • Oct 14, 2026, 3:54 AM

    The V20 has a fairly clean design, with its own set of edge cases.

    It's different from the 8088 in little ways, but in ways that were far less annoying to figure out.

    trying to make diagrams of what is going on but i am bad at diagrams.

    there's a suggestion of a newly discovered register - the queue read latch, but it could also just be something really strange and weird about the instruction queue timing. modelling a separate latch makes the cycles line up.

    a diagram of some of the NEC v20's bus logic as a sad flowchart thingie
    💬 1🔄 0⭐ 1

Replies

  • Oct 14, 2026, 4:02 AM

    The 8088 can request a bus cycle and then the EU pauses until it is complete.

    The V20 is designed around the idea that stalling the EU should be avoided, so its bus requests are asynchronous for the most part, with a synchronization flag confusingly called F.

    Two bus operations can be in flight at the same time. Is two things enough things to have a queue of things? I'm calling it a bus request queue anyway.

    Like the 8088 the V20 has to calculate the address to put on the bus at T1 before a bus cycle can begin, and this takes time, but this design allows the address calculation to happen while other stuff is going on instead of making the EU come to a screeching halt.

    💬 3🔄 0⭐ 0
  • Oct 14, 2026, 4:15 AM

    I decoded a bit more of the group decode ROM.

    The last four bits are not status outputs, they are an instruction family selector.

    Some of these are useful - here's IO operations, at 1111, which was conspicuously missing before, so that's good.

    Seeing things like DAD is also good because that has special flag behavior. I was able to use these families to eliminate several of the hardcoded opcode checks in the code.

    A table illustrating several values of the 4-bit instruction family selector in the  v20 group decode ROM.
    💬 1🔄 1⭐ 3
  • Oct 14, 2026, 4:25 AM

    I also started working on the Rust version of the code generator.

    I've decided to replace MartyPC's V20 with this first. MartyPC's 8088 is pretty damn good already, but its V20 is pretty inaccurate, cycle-wise, so this will be a decent improvement, and I don't have to worry about breaking Area 5150 since it doesn't run on a V20 anyway.

    💬 0🔄 1⭐ 2
  • 💬 1🔄 0⭐ 0
  • 💬 0🔄 0⭐ 0
  • Oct 14, 2026, 8:53 AM

    @gloriouscow Hungarian humorist George Mikes once remarked "An Englishman, even if he is alone, forms an orderly queue of one".

    So two is clearly plenty!

    💬 0🔄 0⭐ 0