fhg
Volume 9, Number 23 -- July 15, 2009

Are MOVE and MOVEL Obsolete?

Published: July 15, 2009

by Ted Holt

I've been writing free-format RPG calculations for several years now, yet I still find myself missing a couple of old friends. No, I don't mean GOTO and TAG. I refer to MOVE and MOVEL. Usually I can find a way to avoid them, but occasionally, it gets a bit difficult.

For example, suppose I read an eight-digit numeric field that identifies a customer. Into this field are loaded two pieces of information. The first two digits are a company number. The last six digits contain a customer number. (This is by no means far-fetched; we have been doing this sort of thing since our industry was known as data processing.)

D AccountNumber   s              8  0

D Company         s              2  0
D Customer        s              6  0

How do I split the field into two variables? Here's one way.

/free                                       
    Company  = %div(AccountNumber: 1000000);
    Customer = %rem(AccountNumber: 1000000);

Here's another.

/free
     Company  = AccountNumber / 1000000;
     Customer = AccountNumber - Company * 1000000;
/end-free

All this multiplication and division seems overly complicated to me. I can understand multiplying a quantity by a price in order to invoice a customer. But multiplying and dividing to get a customer number strikes me as inappropriate, unsuitable, inapt, improper, malapropos, incongruous, and out of place. And I fail to see how multiplication and division could ever perform as efficiently as memory-copy operations.

Let's complicate it somewhat by making the variables a tad larger.

D SomeNumber      s             63 30
D Whole           s             33  0
D Fraction        s             30  0

Here I want to take a very large number and split it into two portions--the part left of the decimal point and the part right of the decimal point. Notice that both resulting variables have zero decimal places. Can you think of an easy, straightforward way to load WHOLE and FRACTION using multiplication and/or division?

This makes more sense to me.

C                   movel     SomeNumber    Whole   
C                   move      SomeNumber    Fraction

Fortunately, I don't often encounter situations that I cannot avoid MOVE and MOVEL. But when I need them, I use them.

Today's tip: Free-format calculations are far better than fixed-format calcs, but like everything else on this planet, they're not perfect. When you need a fixed-format op code, don't be afraid to use it.




                     Post this story to del.icio.us
               Post this story to Digg
    Post this story to Slashdot


Sponsored By
HELP/SYSTEMS

                                                 SEQUEL
                                                 IBM® System i® Data Access Made Easy

                                              · Complete management access to critical data
                                              · Easy to use by IT and end users
                                              · Automated data access and display
                                              · Comprehensive BI package: reports, tables,
                                                 key performance indicators, and dashboards
                                              · System i-centric for real-time data analysis
                                              · Expert support and training

Click here for a FREE Information Kit!


Senior Technical Editor: Ted Holt
Technical Editor: Joe Hertvik
Contributing Technical Editors: Erwin Earley, Brian Kelly, Michael Sansoterra
Publisher and Advertising Director: Jenny Thomas
Advertising Sales Representative: Kim Reed
Contact the Editors: To contact anyone on the IT Jungle Team
Go to our contacts page and send us a message.

Sponsored Links

New Generation Software:  Migrating from IBM Query/400? FREE Webinar, July 21
Linoma Software:  Learn how to protect your data and get a free trial
COMMON:  Celebrate our 50th anniversary at annual conference, May 2 - 6, 2010, in Orlando


 

IT Jungle Store Top Book Picks

Easy Steps to Internet Programming for AS/400, iSeries, and System i: List Price, $49.95
The iSeries Express Web Implementer's Guide: List Price, $49.95
The System i RPG & RPG IV Tutorial and Lab Exercises: List Price, $59.95
The System i Pocket RPG & RPG IV Guide: List Price, $69.95
The iSeries Pocket Database Guide: List Price, $59.00
The iSeries Pocket SQL Guide: List Price, $59.00
The iSeries Pocket Query Guide: List Price, $49.00
The iSeries Pocket WebFacing Primer: List Price, $39.00
Migrating to WebSphere Express for iSeries: List Price, $49.00
Getting Started With WebSphere Development Studio Client for iSeries: List Price, $89.00
Getting Started with WebSphere Express for iSeries: List Price, $49.00
Can the AS/400 Survive IBM?: List Price, $49.00
Chip Wars: List Price, $29.95


 
The Four Hundred
IBM Touts Power Systems Prowess on SAP Tests

IBM Indeed Relaunches Tweaked Power Systems Deal

Focus on Data Management with App Modernization Projects

As I See It: The Green Gap

Gartner, Forrester Chop IT Spending Forecasts Again

Four Hundred Stuff
Cicero Evolves Application Integration through Desktop Automation

JDA Plots Course Forward for MMS, and--Surprise--It's Java

Phantom Targets UDO Customers Following Plasmon Bankruptcy

Free Tool from Linoma Detects Credit Card, Social Security Numbers

Bytware Adds Auditing to i OS Security Product

Four Hundred Monitor
Four Hundred Monitor's
Full iSeries Events Calendar

System i PTF Guide
July 11, 2009: Volume 11, Number 28

July 4, 2009: Volume 11, Number 27

June 27, 2009: Volume 11, Number 26

June 20, 2009: Volume 11, Number 25

June 13, 2009: Volume 11, Number 24

June 6, 2009: Volume 11, Number 23

TPM at The Register
Nehalems make like elephants on HPC memory test

Microsoft and Citrix mix 'n' match fake desktops

FastScale deploys skinnied stacks to EC2

AMD delivers more six-shooter Istanbul Opterons

VMware copes with performance, chargeback anxiety

Citrix gives away more virtual goodies

Optimism down as priorities shift in mid-market IT

iSuppli chops semi, electronics forecasts

Lenovo punts Nehalem server quartet

Cisco taps chief strategy officer

EMC stakes claim in IT management

Neon revs cost-cutting mainframeware

Fujitsu chases SMBs with entry tower

Gartner cuts 2009 IT spending forecasts

THIS ISSUE SPONSORED BY:

WorksRight Software
Help/Systems
Guild Companies


Printer Friendly Version


TABLE OF CONTENTS
The Case of the Missing .NET Data Provider for i5/OS in Visual Studio 2008

Are MOVE and MOVEL Obsolete?

Restoring Spooled File Data After a System Restore

Four Hundred Guru

BACK ISSUES

From the IT Jungle Forums
PHP CLI Call

Perl, PHP, and/or ZendCore

batch printing PDF files from RPG program

Using db2_connect in PHP on iSeries

How to return value from CL program?

ADO.NET/IBM.Data.DB2.iSeries/ iDB2Connection

Order by alias names




 
Subscription Information:
You can unsubscribe, change your email address, or sign up for any of IT Jungle's free e-newsletters through our Web site at http://www.itjungle.com/sub/subscribe.html.

Copyright © 1996-2009 Guild Companies, Inc. All Rights Reserved.
Guild Companies, Inc., 50 Park Terrace East, Suite 8F, New York, NY 10034

Privacy Statement