Prev: Problem with automatic reallocation of allocatable scalar on assignment
Next: a wiki entry for gfortran
From: Dr Ivan D. Reid on 8 Aug 2010 12:59 On Mon, 9 Aug 2010 02:21:47 +1000, robin <robin51(a)dodo.com.au> wrote in <4c5ed99f$0$34575$c30e37c6(a)exi-reader.telstra.net>: > "Dr Ivan D. Reid" <Ivan.Reid(a)ivan.fsnet.co.uk> wrote in message news:slrni5tk95.94f.Ivan.Reid(a)smtp.orangehome.co.uk... >| On Sun, 8 Aug 2010 21:47:15 +1000, robin <robin51(a)dodo.com.au> >| wrote in <4c5e9948$0$34572$c30e37c6(a)exi-reader.telstra.net>: > "Dr Ivan >| D. Reid" <Ivan.Reid(a)ivan.fsnet.co.uk> wrote in message >| news:slrni5nem7.1uk.Ivan.Reid(a)smtp.orangehome.co.uk... >| >| My experience with a Cyber in 1978 was that it had a 60-bit word >| >| but integer multiply/divide only worked up to 48 bits. To shift a 48-bit >| >| integer to 60 bits to add a 5th 12-bit byte I had to use successive adds >| >| (i=i+i). >| > There was a shift instruction that would have done the job in one step. >| In FORTRAN? > ISHFT in FORTRAN, OK, guess I never noticed that in the manuals[1]. Everything I did in that exercise was done by reading manuals. The Adelaide Uni computer centre was worse than useless -- worse because they didn't know they were useless. Every time I came up with a problem (starting with "How do I punch 8-bit paper tape from a FORTRAN programme?") I was met with "I dunno...". [1] Possibly I did, but selective memory has blanked it. -- Ivan Reid, School of Engineering & Design, _____________ CMS Collaboration, Brunel University. Ivan.Reid@[brunel.ac.uk|cern.ch] Room 40-1-B12, CERN KotPT -- "for stupidity above and beyond the call of duty".
From: glen herrmannsfeldt on 8 Aug 2010 13:26 robin <robin51(a)dodo.com.au> wrote: (snip) > The 64-character set was the result of having 6-bit characters. > CDC attempted to have also one character to serve as end-of-record > indication. There were many problems with six bit characters. Back to Fortran I on the IBM 704, which used even parity NRZI coding on tape, and requires at least one transition (1 bit) per character written. With odd parity (as used in 9 track NRZI) the parity bit is one if all the other bits are zero. With even parity you can't write the X'00' character to tape. In the code used internally on the 704, X'00' is the zero character, which is hard to write Fortran or numeric data without, so they used a different six bit code for tape. (There are only 48 characters in the Fortran I character set, so it shouldn't have been a problem.) Even more, there are two - characters, one punched with the 11 punch, and the other 8-4 punch. It seems that only the 11 punch minus is allowed for Fortran source, either for input data, and only the 8-4 generated in object programs. -- glen
From: glen herrmannsfeldt on 8 Aug 2010 13:44 Richard Maine <nospam(a)see.signature> wrote: (snip) > On occasion, you might here someone > talking about the machines having a 6-bit byte, but I don't consider > that accurate; they just didn't have bytes of any size - only words. The PDP-10 byte instructions allow one to specify the size, from one to 36 bits. As far as I understand it, that was before the word 'byte' was generally used to mean eight bits. (And not consistent with the story when I first learned about bytes, that it was a contraction of the words 'eight bit'.) It seems that the IBM 36 bit machines used 'BCD character' as the name for the six bit characters used at the time. (Which doesn't make that much sense now, either, but apparently did at the time.) The six bit BCDIC code was later extended and modified to the eight bit EBCDIC code. As for Fortran, I believe that the six letter variable names that were standard in Fortran 66 came from six bit codes on 36 bit machines. Storing one per word is very convenient in compiler symbol table processing. According to wikipedia, the word 'byte' orginated with the IBM Stretch in 1956, as either a four bit instruction field, or six bit character used in I/O. The eight bit byte didn't come until S/360. Much of the networking standards and documentation uses 'octet' to describe the eight bit unit. -- glen
From: glen herrmannsfeldt on 8 Aug 2010 14:01 mecej4 <mecej4.nyetspam(a)opferamail.com> wrote: > Richard Maine wrote: (snip) >> Probably f66 compiler manuals. IBM was quite late in releasing their >> f77. I forget the exact date. (snip) It seems that there is no wikipedia entry for VS Fortran... > I have a copy of IBM GC26-3986-1, Release 1.1, the 2nd. edition, January > 1982, VS FORTRAN, Application Programming: Language Reference. The preface > says "... includes full ANS FORTRAN plus IBM extensions". So, 1982 for release 1.1, maybe 1981 for release 1.0? > ENTRY is definitely there, and is covered in pages 81-83. ENTRY was in the IBM OS/360 (Fortran G and H) compilers, so it would have also been in VS Fortran, as an extension, even if not standard. -- glen
From: Richard Maine on 8 Aug 2010 14:21
mecej4 <mecej4.nyetspam(a)opFeramail.com> wrote: > Richard Maine wrote: > > > Probably f66 compiler manuals. IBM was quite late in releasing their > > f77. I forget the exact date. I think it was before 1985, but I know it > > was late, > > I have a copy of IBM GC26-3986-1, Release 1.1, the 2nd. edition, January > 1982, VS FORTRAN, Application Programming: Language Reference. The preface > says "... includes full ANS FORTRAN plus IBM extensions". > > ENTRY is definitely there, and is covered in pages 81-83. That doesn't tell me for sure whether it was f77 or f66 plus ENTRY as an externsion. After all, f66 was also an ANS Fortran. I'm fairly sure I recall some IBM f66 compilers as having ENTRY as an extension. In fact, I think I recall having some porting pains because both the IBM and CDC compilers had ENTRY, but with different syntax. I think the CDC extension had no argument list on the ENTRY, though I could be confusing different compilers on that. -- Richard Maine | Good judgment comes from experience; email: last name at domain . net | experience comes from bad judgment. domain: summertriangle | -- Mark Twain |