|WikiProject Computing||(Rated Start-class, Mid-importance)|
Mostly it's middleware, most notably CICS,IBM DB2 and Websphere Application Server, that have concerned themselves with exploiting 64-bit Z/Architecture. Application programs rarely, I agree, need to - *yet*.
"Perhaps the only computing architecture based on 31-bit addressing is one of computing's most famous and most profitable." Is this perhaps a bit editorial? Should I change it? 9irl (talk) 18:30, 26 May 2014 (UTC)
Seems like the editorializing was left alone. I like it. It might not be completely accurate, however it seems authentic. This is along series of articles on bit sizes which is recording what is close to folklore, and the value system most appropriately weighs authenticity, since the material has a subjectivity to it, in its essence. Ozga (talk) 03:09, 5 September 2015 (UTC)
- Well, it was now removed, and I think it was appropriate that it was removed. If there's folklore (especially folklore with a fanboyish tone) in other N-bit articles, it should be removed. If somebody wants to talk about their fun times with some line of computers, they can find somebody to host their blog. Guy Harris (talk) 07:41, 7 March 2016 (UTC)
Actually, the CPU can work in two different modes, the switch between them can be performed via instructions BASSM (Branch And Save [return address] and Set Mode) and BSM (Branch and Set Mode).
In 24-bit mode, the highest 8 bits of addresses are ignored; every code and data must be in the lowest 16 MiB; instructions BAL and BALR fill the highest byte of the return address with other pieces of information (e.g. the program mask); new instructions BAS and BASR fill the highest byte of the return address with zero.
In 31-bit mode, the highest bit of addresses is ignored, code and data can be anywhere in the 2 GiB address space; instructions BAL, BALR, BAS and BASR set the highest bit of the return address to one, to indicate the new CPU-mode.
Compatibility problems arise when you get an address via BAL/BALR in 24-bit mode, any try to use it later in 31-bit mode: the garbage in the highest byte makes the address invalid.
To create compatible programs, you have to use BAS/BASR instead BAL/BALR; stop using 3-bytes addresses (DC AL3(symbol)), and when use macros having new and old formats, choose the new format. NevemTeve (talk) 11:20, 10 June 2016 (UTC)
Also CSECTs got two new attributes: AMODE (addressing mode: in which CPU-mode the code of this csect can be executed) and RMODE (residency mode: where this csect can be loaded); the values for AMODE are 24, 31 and ANY; the values for RMODE are 24 and ANY. Commonly used combinations: AMODE=RMODE=24 and AMODE=RMODE=ANY. Invalid combination: AMODE=24, RMODE=ANY. The other three combinations can be used for special purposes. NevemTeve (talk) 09:19, 15 June 2016 (UTC)
A note: you can write XS31-compatible routine-calls without BAS/BASR too:
L R15,=A(CALLÉE) BALR R14,R15 RETPT LTR R15,R15
L R15,=A(CALLÉE) LA R14,RETPT BR R15 RETPT LTR R15,R15