mvslovers / brexx370

MVS version of Vasilis Vlachoudis awesome rexx implementation
46 stars 11 forks source link

ADDR/BADDR #42

Closed mgrossmann closed 10 months ago

mgrossmann commented 5 years ago

To be compatible with the STORAGE() & BSTORAGE() BRexx/370 functions where STORAGE() mimics IBM’s Rexx370 utilizing hexadecimal addresses and BSTORAGE, the original STORAGE function in BRexx, I’d like to recommend BRexx/370 having an ADDR() & BADDR. ADDR() would function with hexadecimal addresses and BADDR() would function as the original with decimal addresses.

If: a = “Hello” and a is located at decimal address 4096 then: ADDR(‘a’) should return ‘1000’x and: BADDR(‘a’) from RxLib should return 4096

One (or 2) less data type conversions keeping one to less hair-pulling .

Peter-Jacob commented 10 months ago

There are some new functions (PEEKx) which do the conversion: PEEKS(decimal-address,length) PEEKS returns the content (typically a string) of a main-storage address in a given length. The address must be in decimal format. PEEKS is a shortcut of STORAGE(d2x(decimal-address),length). PEEKA(decimal-address) PEEKA returns an address (4 bytes) stored at a given address. The address must be in decimal format. PEEKA is a shortcut of STORAGE(d2x(decimal-address),4). PEEKU(decimal-address) PEEKU returns an unsigned integer stored at the given decimal address (4 bytes). The address must be in decimal format.