Article View: bit.listserv.asm370
Article #125Re: Shifting memory to the right
From: David P. de Jongh
Date: Fri, 30 Sep 2005 16:23
Date: Fri, 30 Sep 2005 16:23
84 lines
5061 bytes
5061 bytes
Depending on how often the tables are updated, you could use a secondary area that stores additions. I assume (though I may be wrong) that you are using a common look-up routine. If it gets a miss on the binary search, it can then do a serial search on the secondary area. I'm also assuming the table starts out large and adds a relatively small number of rows over time. If that is true, you would expect most requests to be satisfied from the primary area. When the secondary area gets to be too large, you can just rebuild the primary area, or sort the overflow entries and merge them into a new area. If you allocate enough space initially, you could merge the sorted overflow entries starting at the top end of the primary area. D de J -----Original Message----- From: IBM Mainframe Assembler List [mailto:ASSEMBLER-LIST@LISTSERV.UGA.EDU] On Behalf Of Don Nielsen Sent: Friday, September 30, 2005 9:58 AM To: ASSEMBLER-LIST@LISTSERV.UGA.EDU Subject: Re: Shifting memory to the right > Why not just have the table entries linked with a "next" pointer ? Binary searching of the tables after they have been loaded. > Have a second buffer for the table. Good thought. There are three tables involved, which are already very large (75 meg between them). I'll look into a fourth for buffer space. -----Original Message----- From: IBM Mainframe Assembler List [mailto:ASSEMBLER-LIST@LISTSERV.UGA.EDU]On Behalf Of Beate Kawelke Sent: Friday, September 30, 2005 9:14 AM To: ASSEMBLER-LIST@LISTSERV.UGA.EDU Subject: Re: Shifting memory to the right Hmmmm - two thoughts: 1. Why not just have the table entries linked with a "next" pointer ? If necessary, throw in a "previous" pointer, too. Navigation through the table is quite easy, and you can add / delete entries simply by chaining them in the right place. 2. Have a second buffer for the table. Move upper part to buffer, then the new entry, then the lower part. HTH, Beate > -----Original Message----- > From: IBM Mainframe Assembler List > [mailto:ASSEMBLER-LIST@LISTSERV.UGA.EDU] On Behalf Of Don Nielsen > Sent: Friday, September 30, 2005 3:56 PM > To: ASSEMBLER-LIST@LISTSERV.UGA.EDU > Subject: [ASSEMBLER-LIST] Shifting memory to the right > > Nothing like a dumb applications programmer question to end > the week. Is there an instruction like MVCL that moves > memory starting at the end working to the beginning. I have > a table that is in sequence. I want to insert a new row, > maintaining sequence. That requires shifting right the end > of the table. It would be great to just code an MVCL to do > it, but I would be overwrite data. But if MVCL started with > the last byte and worked its way to the start, then the shift > would be easy. Does any such instruction or function exist? > > I guess I could do something silly and build the table > starting at the end of the of memory block and shift it left > as I build it. > > dvn > > Don V Nielsen > Products & Tools > CMS > 3707 Corporate Drive > Marshfield, WI 54449 > donn@cmscms.com > > > '715-486-8807 X434 > > > Better Results, Faster! >
Technical Details
Message-ID:
<000301c5c5db$3a5b5160$0100a8c0@davidantecp4>Path:
arc1-ca.pugleaf.net!g2news1.google.com!news3.google.com!border1.nntp.dca.giganews.com!nntp.giganews.com!newscon06.news.prodigy.com!prodigy.net!logbridge.uoregon.edu!canoe.uoregon.edu!newsfeed.news.ucla.edu!newsfeed.berkeley.edu!ucberkeley!sn-xit-03!sn-xit-08!sn-xit-14!supernews.com!149.173.6.116.MISMATCH!foggy!vm.sas.com!worldnet.att.net!daviddejonghShow Full Headers
Complete Article Headers
X-Google-Thread: fcdcb,3e46d196c2b56e33
X-Google-Attributes: gidfcdcb,public
X-Google-Language: ENGLISH,ASCII-7-bit
Path: arc1-ca.pugleaf.net!g2news1.google.com!news3.google.com!border1.nntp.dca.giganews.com!nntp.giganews.com!newscon06.news.prodigy.com!prodigy.net!logbridge.uoregon.edu!canoe.uoregon.edu!newsfeed.news.ucla.edu!newsfeed.berkeley.edu!ucberkeley!sn-xit-03!sn-xit-08!sn-xit-14!supernews.com!149.173.6.116.MISMATCH!foggy!vm.sas.com!worldnet.att.net!daviddejongh
From: "David P. de Jongh" <daviddejongh@worldnet.att.net>
Newsgroups: bit.listserv.asm370
Subject: Re: Shifting memory to the right
Date: Fri, 30 Sep 2005 11:23:00 -0500
Organization: SAS Inc.
Lines: 84
Sender: IBM Mainframe Assembler List <ASSEMBLER-LIST@LISTSERV.UGA.EDU>
Message-ID: <000301c5c5db$3a5b5160$0100a8c0@davidantecp4>
NNTP-Posting-Host: mozart.unx.sas.com
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-Trace: foggy.unx.sas.com 1128097562 18198 10.19.150.41 (30 Sep 2005 16:26:02 GMT)
X-Complaints-To: usenet@unx.sas.com
NNTP-Posting-Date: Fri, 30 Sep 2005 16:26:02 +0000 (UTC)
Comments: Gated by NETNEWS@VM.SAS.COM
Return-Path: <owner-assembler-list@LISTSERV.UGA.EDU>
X-Priority: 3 (Normal)
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook, Build 10.0.6626
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2180
Importance: Normal
X-MIME-Autoconverted: from quoted-printable to 8bit by listserv.cc.uga.edu id
j8UGN1l7028343
Approved-By: "David P. de Jongh" <daviddejongh@WORLDNET.ATT.NET>
In-Reply-To: <F57FDB5201A2AA488C21CC5CC9759029848D60@cdmail.cmscms.com>
Return-Path: owner-assembler-list@LISTSERV.UGA.EDU
X-OriginalArrivalTime: 30 Sep 2005 16:25:56.0408 (UTC)
FILETIME=[A2760380:01C5C5DB]
X-Mime-Autoconverted: from 8bit to 7bit by mime827
Originator: daemon@mozart.unx.sas.com