TX-2 / TX-2-simulator

Simulator for the pioneering TX-2 computer
https://tx-2.github.io/
MIT License
21 stars 2 forks source link

Find/use documentation on metabits of AE registers #59

Open jamesyoungman opened 2 years ago

jamesyoungman commented 2 years ago

The AE registers (A, B, C, D) are stored in the Arithmetic Element. E is stored in the Exchange Element, but is also described as an Arithmetic Element register. They are mapped into the Vff memory range.

I have a fuzzy recollection that they don't have metabits and so netabit operations take effect on the M register but have no effect on the actual AE registers themselves. But I can't right now find a spot in the documentation that talks about this.

The necessary action here is to find the relevant documentation and add tests relating to it. For example use of the SKM instuction on the addresses corresponding to some of the AE registers.

jamesyoungman commented 2 years ago

There is a mention of this on page 5-23 of the Users Handbook (which describes the Sync System, which is what the "can be detected" phrase refers to):

The data reference metabit (M⁴𛲄¹⁰) can be detected only when set (just as N⁴𛲄¹⁰). Note that it can be changed without a memory reference for it serves as the metabit of the A, B, C, D, and E registers. (i.e., MKC₄.₁₀ A or MKC₄.₁₀ B will change bit 4.10 of M).

jamesyoungman commented 2 years ago

If the AE registers share a metabit (in M) then we will likely need a struct attribute somewhere which holds the value of M, and will need to integrate this with the working of the exchange element code (which up to now has been stateless).