Do Unisys latest mainframe systems still use ones' complement representations?
Asked Answered
H

2

6

From the Wikipedia article it seems ones' complement representation for signed integers is mostly obsolete, but they mention some Unisys systems, namely the UNIVAC 1100/2200 series as still supporting this representation.

Do the latest systems in the Unisys Clearpath series still support and use ones' complement?

Since they use intel chips, do they require an emulator? How performant is this?

Are there C compilers targeting this architecture?

Headed answered 18/4, 2020 at 23:3 Comment(1)
I think you'll find that the systems can emulate the older OS 1100 one's complement machines — probably taking the instructions from the older machines. But it's likely that new code executes native x86_64 instructions with two's complement arithmetic. I'm no expert, and I didn't find a quick answer at Unisys, but I probably didn't poke quite hard enough in quite the right place. (And the C standard is inconsistent with "ones' complement" and "two's complement"; Wikipedia likes "ones' complement"; many other sources use "one's complement". Grump!)Interregnum
P
3

I don't know the facts.

What I do know is that when you have mountains of running software, it is really hard to pull the technology base out from underneath.

I'd make a pretty big bet that it still does ones' complement math in any instruction set simulation (or chip implementation) that runs the software.

You can build an emulator on top of any other CPU. UNISYS asked us to help them do that back around 2007 with an explicit target of a hi-reliability 64 CPU x86 system. Then there was a financial crisis so the project didn't materialize for us.

They've obviously done a great deal of engineering since to keep it alive. And yes, people still run these.

Pierpont answered 19/4, 2020 at 0:15 Comment(0)
M
3

Yes, the 2200 line still uses ones complement. Emulating one's complement on a two's complement machine is not hard, you just need to add the carry back in (end around carry). And the MCP line still uses signed magnitude.

Machismo answered 18/2, 2021 at 18:1 Comment(1)
It is not hard to convert negative results to ones' complement representation for storage, but also need to convert them back to two's complement when loading them from memory for any calculation: MOV eax,[address]; CMP eax,0x80000000; ADC eax,-1; Sign/magnitude is even more work.Headed

© 2022 - 2024 — McMap. All rights reserved.