>> If high-level language compilers start following
>> the 32-bit addressing rules, they will naturally
>> start supporting 4 GiB with no additional
>> effort by the programmer.

> If high level language compilers (and run-time environments) start 
> following 64-bit addressing rules, they will naturally start supporting 
> 16 EB, with no additional effort by the programmer.

> What's your point?

That assumes that you are happy to have the
extra baggage of 64-bit programming, with
64-bit addresses stored in memory instead
of 32-bit addresses.

Ideally *both* 32-bit and 64-bit programs
can be generated by a compiler, and you use
the 32-bit version if you don't need more
than 4 GiB of memory.

>> That's a good idea, and we could get a compiler
>> to generate such code, but it prevents the
>> 32-bit application from being moved to cheaper
>> 32-bit hardware in the future, as a possibility.

> OMFG! Is that what this is all about? Moving
> to 32-bit hardware?

It's about making 32-bit programs the best
they can be in theory. That means producing
a *single load module* that works as AM24
on MVS 3.8j, works as AM31 on MVS/XA and
above, and works as AM64 on z/OS.

>>No, what you are calling a 24-bit application is
>>actually a 32-bit application that runs on a
>>reduced addressing mode of 24.

> You are making up your own terminology,
> using words similar to 
> those of existing terminology.

I already asked you what terminology you
preferred to refer to programs that used
32-bit registers, but you didn't provide
any.

>>I want my programs to run on S/370 hardware

> S/370? really? System/370 doesn't even support 31-bit.

It doesn't need to. That's the whole point.
32-bit load modules should be constructed
in a manner that still works on S/370.
That means creating ANY/ANY load modules.

> You are asking to break lots of application
> code as well as system code so that you can
> run on a poorly implemented extension of
> MVS 3.8 on a PC under Hercules. Why don't
> you fix your implementation of MVS/380 instead?

This has nothing to do with MVS/380. It has
to do with making beautiful 32-bit load
modules that work anywhere. I already have
that, but when my load modules run on z/OS
they can only get 2 GiB of memory and I
would like to be able to bump that up to
4 GiB.

>>But you are happy to constrain
>>32-bit applications to 2 GiB when all you may
>>need is a LOC=32 parameter and you can go
>>all the way up to 4 GiB.

> No, you also have to run AMODE(64), which means that there are many 
> system services that you cannot use without switching to AMODE 31.

That is true, of z/OS, currently.

There are two solutions to this problem:

1. Add 20 lines of code to each system
service so that they switch to AM31
themselves instead of requiring the
program to do it itself.

2. Construct the 32-bit program so that
whenever it is about to execute a system
service like READ, it switches down to
AM31 itself.

I have implemented number 2 in my universal
32-bit modules, which means it can also run
on MVS/XA, where it needs to "step down" to
24-bit before executing READ. My modules
check the current AMODE and RMODE at startup
to see what "step down" paradigm is required.

> Maybe you believe that if you keep repeating
> the phrase "32-bit applications", it will be
> accepted that there is such a thing on
> z/Architecture. There is not.

The term "32-bit application" exists wherever
there are 32-bit registers. It is not specific
to z/Arch, it is ubiquitous.

BFN. Paul.

----------------------------------------------------------------------
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