Am 20.01.2015 um 18:43 schrieb Paul Gilmartin:
On Tue, 20 Jan 2015 11:12:33 -0500, Farley, Peter x23353 wrote:

Jumping in a little late here, but AMODE 64 for *code* is not necessarily the 
need for most business purposes.  AMODE 64 for *data* is the need that I 
perceive as primary.  I would be well satisfied if 64-bit data storage could be 
used transparently even with code running only in 31-bit storage.

Of course there are no separate AMODEs for code references and data references.
But 31-bit addressing instructions might be used for code and 64 for data.
Reminds me of the diverse memory models in historic Windows.

3. ... direct I/O buffer addressing (unfortunately not usually supported by 
existing HLL file semantics) ...

Pascal.  But not Borland's Pascal.  What ever happened to Pascal?

I have built an extended (2014) version of the (1982) McGill University version
of the 1979 Stanford Pascal compiler, which runs on VM 370/R6 on Hercules.
When I am retired (or when I have enough free time), I will rework the code generation
to build 31-bit machine code (now it is all AMODE 24).

4. As some others have also mentioned, interfacing with Java (or any other 
JVM-based language) processes passing data from 64-bit storage for HLL business 
processing will be a growing requirement

.... The ability to use direct pointer arithmetic using HLL semantics instead 
of needing to use integer redefinitions of pointers to perform pointer 
arithmetic would be quite helpful in such data restructuring projects.

This is intrinsic to C.

Scientific Data Systems (later Xerox) hardware multiplied the index register
content by the operand size when calculating effective addresses.  Not the
best idea.  It's *so* FORTRAN!

In C, if you add one to a ptr, in fact the address points at the next array element, that is, the number you add to the ptr is multipled by the element size. Same goes for the difference of two pointers; you get the numbers of elements between the
pointers. That's because every pointer is typed in C.

PL/1 today also allows simple pointer arithmetic, and even with a C-like syntax (if you want):

DCL P PTR;

P = ADDR (X);
P += 5;

/* now P contains the ADDR of X plus 5 */

but unlike C, pointers in PL/1 have no type, so in this case, you get simple
address arithmetic.

Kind regards

Bernd


-- gil

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

Reply via email to