linux-mips-fnet
[Top] [All Lists]

Re: m700-10 success

To: linux-mips@fnet.fr
Subject: Re: m700-10 success
From: tor@spacetec.no (Tor Arntsen)
Date: Thu, 9 May 1996 10:35:38 +0200
In-reply-to: "Arnim Littek" <arnim@digitech.co.nz> "Re: m700-10 success" (May 9, 5:35)
On May 9,  5:35, "Arnim Littek" wrote:
>On Wed, 8 May 1996 06:20:31 +0200 (MET DST), linux-mips@fnet.fr wrote:
>> PS: Little endian sucks.
>
>
>I'd be interested in your quantifiable reasons behind that, if you
>don't mind...

We should avoid too much on this I think, however I agree with the 'le sucks'
opinion.  The only feature I know about for little endian is the following:
      PROGRAM PJX0
      INTEGER*4 J11
      INTEGER*4 N
      J11 = 24
      CALL YE_OLDE_CODE (J11,N)
      WRITE (*,*) 'IF THIS WORKS IT IS PROBABLY A VAX',N
      END
      SUBROUTINE YE_OLDE_CODE (I0,I1)
      INTEGER*2 I0
      INTEGER*2 I1
      I1 = I2 * 9
      END
And as I really consider that a bug, not a feature, not much is left..
You could (in the past at least) find a lot of this among VMS programmers, 
and it's a way of keeping huge amounts of old programs and code alive for a 
little longer, in that even if you write all your new progs with 32 bit ints 
you can still use the old old libs from 20 years back (with 16 bit ints) 
without having to rewrite them.  Of course this will fail in unpredictable 
(and silent) ways when you call the old libs with values allowed for I4 but 
not for I2.  
A lot of times I've worked with people complaining about their code not 
working on this **$! computer we're porting their code to.. and then had to 
explain to them that the **$! comp is using something called Big Endian
and it's really a nice comp and that their programs are actually buggy :-)

And people get so confused when they try to convert between BE and LE,
because they don't realise that it applies to *integers* stored into memory
only, and not byte sequences in general (a struct with bitfields on a big 
endian host will usually not have to be byte-swapped before it's inter-
changed with a LE host, for example).  And even LE computers are usually BE
inside registers.  This applies to e.g. DMA registers, and registers on
IO boards too -- this gives the byte-swappers no end of confusion.
On the other hand, BE is BE is BE all the time..

I would really like to switch my Olivetti M700-10 over to big endian at some
stage, if that's at all technically possible.  If for no other reason than
that SGI and Sun are big endian and I want to interchange data and do other 
interesting things.
(And then I have my really old bitstring functions laying around somewhere, 
 that's at least easier to write with BE)

Cheers folks,
Tor


<Prev in Thread] Current Thread [Next in Thread>