‹ BackHN Continuity

Thread

Unearthing my 1996 windowed OS in machine code for Am29000 homebrew computer

152 points · 32 comments · nanochess

  1. fidotron · · focus · HN ↗
    How is the phrase &quot;register window&quot; not in this article? <a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Register_window" rel="nofollow">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Register_window

    &quot;The AMD 29000 improved the design by allowing the windows to be of variable size, which helps utilization in the common case where fewer than eight registers are needed for a call. It also separated the registers into a global set of 64, and an additional 128 for the windows.&quot;

    Amazing stuff. (Both the 29K and the article).

    1. taolson · · focus · HN ↗
      The registers could also be partitioned into fixed sizes and protected, to allow for a banked register file that allowed for amazingly fast context switches in RTOS systems.
      1. fidotron · · focus · HN ↗
        Yes, I had an architecture professor that was a fan of it (and so your work, presumably!) It&#x27;s the only way I&#x27;d encountered it, sadly.

        That was back around 2000 at Loughborough in the UK.

    2. nanochess · · focus · HN ↗
      There was so much stuff to cover but there&#x27;s a slight mention saying &quot; had to add the LOADM and STOREM instructions as these handle the spilling of local registers to memory when the register stack is full&quot; I can add an extra explanation there.
      1. fidotron · · focus · HN ↗
        It was more an expression of surprise than anything else. The defining feature of the 29K, when I was introduced to it at least, was what appeared to be an enormous register set and the way of dealing with the stack better than the SPARC equivalents.

        The fact you got this stuff working at all is completely mind bending.

Open on Hacker News to reply ↗

Unofficial Hacker News client; not affiliated with Y Combinator.