I believe that the OP wanted a solution for BSAM. If VSAM is an option then it's a nobrainer.
Does anybody know whether CI size = block size for PDSE and zFS (linear) data sets? VSAM used to use multiple blocks for a CI. -- Shmuel (Seymour J.) Metz http://mason.gmu.edu/~smetz3 עַם יִשְׂרָאֵל חַי ________________________________________ From: IBM Mainframe Assembler List <[email protected]> on behalf of Jon Perryman <[email protected]> Sent: Sunday, November 12, 2023 8:27 PM To: [email protected] Subject: Re: Is True Skip-Sequential Processing Possible with RECFM=FB,DSORG=PS? On Sun, 12 Nov 2023 17:14:49 -0700, Paul Gilmartin <[email protected]> wrote: >RECFM=FBS prevents that. That is certainly a partial solution but the correct solution is VSAM RRDS or ESDS which eliminates the special handling. >That's mostly how the Divide instruction works. Division is not the hard part. Implementation is what's being discussed which involves division.. >... Fill the block with additional records and rewrite in place. What ever floats your boat. If the OP wants to fully implement that logic, it's available. >Why, in this 21st Century hasn't that function been added to the >access methods!? UNIX does it, as you say below. What makes you falsely claim that function doesn't exist. There is no difference between z/OS and Unix files in this respect. Your programs must deal with those extra records by ignoring them. Both must retain a pointer to the first available instead of using EOF. >I think that can be done by the Multiply instruction, provided >by most modern computer hardware. Wow, the computers you use can't multiply? I stated "times" which is another word for multiply. > But fixed-length records are >alien to UNIX -- I think they're a relic of UR-device practice. RECFM=FB & VB are not relics. It's a vital concept used by databases. A max length is required by VARCHAR for a reason. They know it's more efficient to add a number instead of scanning for X'00'. Databases encourage you to supply max length for everything and truly unknown lengths are avoided. Just because a basic concept is not understood by Unix programmers doesn't mean it doesn't have great value.
